#![allow(non_snake_case, non_camel_case_types, non_upper_case_globals, clashing_extern_declarations, clippy::all)]
#[cfg(feature = "UI_Xaml_Controls_Maps")]
pub mod Maps;
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
pub mod Primitives;
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct AnchorRequestedEventArgs(::windows::core::IUnknown);
impl AnchorRequestedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Anchor(&self) -> ::windows::core::Result<super::UIElement> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Anchor)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::UIElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetAnchor<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetAnchor)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn AnchorCandidates(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVector<super::UIElement>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AnchorCandidates)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<super::UIElement>>(result__)
        }
    }
}
impl ::core::clone::Clone for AnchorRequestedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for AnchorRequestedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for AnchorRequestedEventArgs {}
impl ::core::fmt::Debug for AnchorRequestedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("AnchorRequestedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for AnchorRequestedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.AnchorRequestedEventArgs;{5175f55d-4785-5a72-b462-eb11e9bdf897})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for AnchorRequestedEventArgs {
    type Vtable = IAnchorRequestedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IAnchorRequestedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for AnchorRequestedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.AnchorRequestedEventArgs";
}
impl ::core::convert::From<AnchorRequestedEventArgs> for ::windows::core::IUnknown {
    fn from(value: AnchorRequestedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&AnchorRequestedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &AnchorRequestedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for AnchorRequestedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a AnchorRequestedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<AnchorRequestedEventArgs> for ::windows::core::IInspectable {
    fn from(value: AnchorRequestedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&AnchorRequestedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &AnchorRequestedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for AnchorRequestedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a AnchorRequestedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for AnchorRequestedEventArgs {}
unsafe impl ::core::marker::Sync for AnchorRequestedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct AppBar(::windows::core::IUnknown);
impl AppBar {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsOpen(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsOpen)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsOpen(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsOpen)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsSticky(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsSticky)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsSticky(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsSticky)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Opened<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventHandler<::windows::core::IInspectable>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Opened)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveOpened<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveOpened)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Closed<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventHandler<::windows::core::IInspectable>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Closed)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveClosed<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveClosed)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ClosedDisplayMode(&self) -> ::windows::core::Result<AppBarClosedDisplayMode> {
        let this = &::windows::core::Interface::cast::<IAppBar2>(self)?;
        unsafe {
            let mut result__: AppBarClosedDisplayMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ClosedDisplayMode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<AppBarClosedDisplayMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetClosedDisplayMode(&self, value: AppBarClosedDisplayMode) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IAppBar2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetClosedDisplayMode)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn TemplateSettings(&self) -> ::windows::core::Result<Primitives::AppBarTemplateSettings> {
        let this = &::windows::core::Interface::cast::<IAppBar3>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TemplateSettings)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::AppBarTemplateSettings>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Opening<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventHandler<::windows::core::IInspectable>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IAppBar3>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Opening)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveOpening<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IAppBar3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveOpening)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Closing<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventHandler<::windows::core::IInspectable>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IAppBar3>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Closing)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveClosing<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IAppBar3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveClosing)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LightDismissOverlayMode(&self) -> ::windows::core::Result<LightDismissOverlayMode> {
        let this = &::windows::core::Interface::cast::<IAppBar4>(self)?;
        unsafe {
            let mut result__: LightDismissOverlayMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LightDismissOverlayMode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<LightDismissOverlayMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetLightDismissOverlayMode(&self, value: LightDismissOverlayMode) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IAppBar4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetLightDismissOverlayMode)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<AppBar> {
        Self::IAppBarFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<AppBar>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<AppBar> {
        Self::IAppBarFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<AppBar>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsOpenProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAppBarStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsOpenProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsStickyProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAppBarStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsStickyProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ClosedDisplayModeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAppBarStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ClosedDisplayModeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LightDismissOverlayModeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAppBarStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LightDismissOverlayModeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IAppBarFactory<R, F: FnOnce(&IAppBarFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<AppBar, IAppBarFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IAppBarStatics<R, F: FnOnce(&IAppBarStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<AppBar, IAppBarStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IAppBarStatics2<R, F: FnOnce(&IAppBarStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<AppBar, IAppBarStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IAppBarStatics4<R, F: FnOnce(&IAppBarStatics4) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<AppBar, IAppBarStatics4> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for AppBar {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for AppBar {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for AppBar {}
impl ::core::fmt::Debug for AppBar {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("AppBar").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for AppBar {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.AppBar;{7b0fc253-86a5-4b43-9872-0b8a6234b74b})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for AppBar {
    type Vtable = IAppBar_Vtbl;
    const IID: ::windows::core::GUID = <IAppBar as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for AppBar {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.AppBar";
}
impl ::core::convert::From<AppBar> for ::windows::core::IUnknown {
    fn from(value: AppBar) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&AppBar> for ::windows::core::IUnknown {
    fn from(value: &AppBar) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for AppBar {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a AppBar {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<AppBar> for ::windows::core::IInspectable {
    fn from(value: AppBar) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&AppBar> for ::windows::core::IInspectable {
    fn from(value: &AppBar) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for AppBar {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a AppBar {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<AppBar> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: AppBar) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&AppBar> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &AppBar) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for AppBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &AppBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<AppBar> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: AppBar) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&AppBar> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &AppBar) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for AppBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &AppBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<AppBar> for ContentControl {
    fn from(value: AppBar) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&AppBar> for ContentControl {
    fn from(value: &AppBar) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for AppBar {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &AppBar {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<AppBar> for Control {
    fn from(value: AppBar) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&AppBar> for Control {
    fn from(value: &AppBar) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for AppBar {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &AppBar {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<AppBar> for super::FrameworkElement {
    fn from(value: AppBar) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&AppBar> for super::FrameworkElement {
    fn from(value: &AppBar) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for AppBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &AppBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<AppBar> for super::UIElement {
    fn from(value: AppBar) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&AppBar> for super::UIElement {
    fn from(value: &AppBar) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for AppBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &AppBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<AppBar> for super::DependencyObject {
    fn from(value: AppBar) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&AppBar> for super::DependencyObject {
    fn from(value: &AppBar) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for AppBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &AppBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for AppBar {}
unsafe impl ::core::marker::Sync for AppBar {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct AppBarButton(::windows::core::IUnknown);
impl AppBarButton {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Label(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Label)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetLabel<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetLabel)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Icon(&self) -> ::windows::core::Result<IconElement> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Icon)(::core::mem::transmute_copy(this), &mut result__).from_abi::<IconElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIcon<'a, Param0: ::windows::core::IntoParam<'a, IconElement>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIcon)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LabelPosition(&self) -> ::windows::core::Result<CommandBarLabelPosition> {
        let this = &::windows::core::Interface::cast::<IAppBarButton3>(self)?;
        unsafe {
            let mut result__: CommandBarLabelPosition = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LabelPosition)(::core::mem::transmute_copy(this), &mut result__).from_abi::<CommandBarLabelPosition>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetLabelPosition(&self, value: CommandBarLabelPosition) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IAppBarButton3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetLabelPosition)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn KeyboardAcceleratorTextOverride(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = &::windows::core::Interface::cast::<IAppBarButton4>(self)?;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).KeyboardAcceleratorTextOverride)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetKeyboardAcceleratorTextOverride<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IAppBarButton4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetKeyboardAcceleratorTextOverride)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn TemplateSettings(&self) -> ::windows::core::Result<Primitives::AppBarButtonTemplateSettings> {
        let this = &::windows::core::Interface::cast::<IAppBarButton5>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TemplateSettings)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::AppBarButtonTemplateSettings>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<AppBarButton> {
        Self::IAppBarButtonFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<AppBarButton>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<AppBarButton> {
        Self::IAppBarButtonFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<AppBarButton>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LabelProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAppBarButtonStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LabelProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IconProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAppBarButtonStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IconProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsCompactProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAppBarButtonStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsCompactProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LabelPositionProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAppBarButtonStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LabelPositionProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsInOverflowProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAppBarButtonStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsInOverflowProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DynamicOverflowOrderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAppBarButtonStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DynamicOverflowOrderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn KeyboardAcceleratorTextOverrideProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAppBarButtonStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).KeyboardAcceleratorTextOverrideProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsCompact(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<ICommandBarElement>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsCompact)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsCompact(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICommandBarElement>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsCompact)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsInOverflow(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<ICommandBarElement2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsInOverflow)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DynamicOverflowOrder(&self) -> ::windows::core::Result<i32> {
        let this = &::windows::core::Interface::cast::<ICommandBarElement2>(self)?;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DynamicOverflowOrder)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDynamicOverflowOrder(&self, value: i32) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICommandBarElement2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetDynamicOverflowOrder)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc(hidden)]
    pub fn IAppBarButtonFactory<R, F: FnOnce(&IAppBarButtonFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<AppBarButton, IAppBarButtonFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IAppBarButtonStatics<R, F: FnOnce(&IAppBarButtonStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<AppBarButton, IAppBarButtonStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IAppBarButtonStatics3<R, F: FnOnce(&IAppBarButtonStatics3) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<AppBarButton, IAppBarButtonStatics3> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IAppBarButtonStatics4<R, F: FnOnce(&IAppBarButtonStatics4) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<AppBarButton, IAppBarButtonStatics4> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for AppBarButton {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for AppBarButton {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for AppBarButton {}
impl ::core::fmt::Debug for AppBarButton {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("AppBarButton").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for AppBarButton {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.AppBarButton;{4459a451-69e8-440c-9896-4bb4f5f642d1})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for AppBarButton {
    type Vtable = IAppBarButton_Vtbl;
    const IID: ::windows::core::GUID = <IAppBarButton as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for AppBarButton {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.AppBarButton";
}
impl ::core::convert::From<AppBarButton> for ::windows::core::IUnknown {
    fn from(value: AppBarButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&AppBarButton> for ::windows::core::IUnknown {
    fn from(value: &AppBarButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for AppBarButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a AppBarButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<AppBarButton> for ::windows::core::IInspectable {
    fn from(value: AppBarButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&AppBarButton> for ::windows::core::IInspectable {
    fn from(value: &AppBarButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for AppBarButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a AppBarButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<AppBarButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: AppBarButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&AppBarButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &AppBarButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for AppBarButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &AppBarButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::TryFrom<AppBarButton> for ICommandBarElement {
    type Error = ::windows::core::Error;
    fn try_from(value: AppBarButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
impl ::core::convert::TryFrom<&AppBarButton> for ICommandBarElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &AppBarButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ICommandBarElement> for AppBarButton {
    fn into_param(self) -> ::windows::core::Param<'a, ICommandBarElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ICommandBarElement> for &AppBarButton {
    fn into_param(self) -> ::windows::core::Param<'a, ICommandBarElement> {
        ::core::convert::TryInto::<ICommandBarElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::TryFrom<AppBarButton> for ICommandBarElement2 {
    type Error = ::windows::core::Error;
    fn try_from(value: AppBarButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
impl ::core::convert::TryFrom<&AppBarButton> for ICommandBarElement2 {
    type Error = ::windows::core::Error;
    fn try_from(value: &AppBarButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ICommandBarElement2> for AppBarButton {
    fn into_param(self) -> ::windows::core::Param<'a, ICommandBarElement2> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ICommandBarElement2> for &AppBarButton {
    fn into_param(self) -> ::windows::core::Param<'a, ICommandBarElement2> {
        ::core::convert::TryInto::<ICommandBarElement2>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<AppBarButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: AppBarButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&AppBarButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &AppBarButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for AppBarButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &AppBarButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<AppBarButton> for Button {
    fn from(value: AppBarButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&AppBarButton> for Button {
    fn from(value: &AppBarButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Button> for AppBarButton {
    fn into_param(self) -> ::windows::core::Param<'a, Button> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Button> for &AppBarButton {
    fn into_param(self) -> ::windows::core::Param<'a, Button> {
        ::windows::core::Param::Owned(::core::convert::Into::<Button>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<AppBarButton> for Primitives::ButtonBase {
    fn from(value: AppBarButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&AppBarButton> for Primitives::ButtonBase {
    fn from(value: &AppBarButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for AppBarButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for &AppBarButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ButtonBase>::into(self))
    }
}
impl ::core::convert::From<AppBarButton> for ContentControl {
    fn from(value: AppBarButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&AppBarButton> for ContentControl {
    fn from(value: &AppBarButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for AppBarButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &AppBarButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<AppBarButton> for Control {
    fn from(value: AppBarButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&AppBarButton> for Control {
    fn from(value: &AppBarButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for AppBarButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &AppBarButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<AppBarButton> for super::FrameworkElement {
    fn from(value: AppBarButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&AppBarButton> for super::FrameworkElement {
    fn from(value: &AppBarButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for AppBarButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &AppBarButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<AppBarButton> for super::UIElement {
    fn from(value: AppBarButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&AppBarButton> for super::UIElement {
    fn from(value: &AppBarButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for AppBarButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &AppBarButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<AppBarButton> for super::DependencyObject {
    fn from(value: AppBarButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&AppBarButton> for super::DependencyObject {
    fn from(value: &AppBarButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for AppBarButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &AppBarButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for AppBarButton {}
unsafe impl ::core::marker::Sync for AppBarButton {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct AppBarClosedDisplayMode(pub i32);
impl AppBarClosedDisplayMode {
    pub const Compact: Self = Self(0i32);
    pub const Minimal: Self = Self(1i32);
    pub const Hidden: Self = Self(2i32);
}
impl ::core::marker::Copy for AppBarClosedDisplayMode {}
impl ::core::clone::Clone for AppBarClosedDisplayMode {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for AppBarClosedDisplayMode {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for AppBarClosedDisplayMode {
    type Abi = Self;
}
impl ::core::fmt::Debug for AppBarClosedDisplayMode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("AppBarClosedDisplayMode").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for AppBarClosedDisplayMode {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.AppBarClosedDisplayMode;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct AppBarElementContainer(::windows::core::IUnknown);
impl AppBarElementContainer {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<AppBarElementContainer> {
        Self::IAppBarElementContainerFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<AppBarElementContainer>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<AppBarElementContainer> {
        Self::IAppBarElementContainerFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<AppBarElementContainer>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsCompactProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAppBarElementContainerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsCompactProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsInOverflowProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAppBarElementContainerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsInOverflowProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DynamicOverflowOrderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAppBarElementContainerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DynamicOverflowOrderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsCompact(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<ICommandBarElement>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsCompact)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsCompact(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICommandBarElement>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsCompact)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsInOverflow(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<ICommandBarElement2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsInOverflow)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DynamicOverflowOrder(&self) -> ::windows::core::Result<i32> {
        let this = &::windows::core::Interface::cast::<ICommandBarElement2>(self)?;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DynamicOverflowOrder)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDynamicOverflowOrder(&self, value: i32) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICommandBarElement2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetDynamicOverflowOrder)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc(hidden)]
    pub fn IAppBarElementContainerFactory<R, F: FnOnce(&IAppBarElementContainerFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<AppBarElementContainer, IAppBarElementContainerFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IAppBarElementContainerStatics<R, F: FnOnce(&IAppBarElementContainerStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<AppBarElementContainer, IAppBarElementContainerStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for AppBarElementContainer {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for AppBarElementContainer {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for AppBarElementContainer {}
impl ::core::fmt::Debug for AppBarElementContainer {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("AppBarElementContainer").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for AppBarElementContainer {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.AppBarElementContainer;{1d5ba067-a990-5dab-a9c3-e6be56642a1a})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for AppBarElementContainer {
    type Vtable = IAppBarElementContainer_Vtbl;
    const IID: ::windows::core::GUID = <IAppBarElementContainer as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for AppBarElementContainer {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.AppBarElementContainer";
}
impl ::core::convert::From<AppBarElementContainer> for ::windows::core::IUnknown {
    fn from(value: AppBarElementContainer) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&AppBarElementContainer> for ::windows::core::IUnknown {
    fn from(value: &AppBarElementContainer) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for AppBarElementContainer {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a AppBarElementContainer {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<AppBarElementContainer> for ::windows::core::IInspectable {
    fn from(value: AppBarElementContainer) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&AppBarElementContainer> for ::windows::core::IInspectable {
    fn from(value: &AppBarElementContainer) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for AppBarElementContainer {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a AppBarElementContainer {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<AppBarElementContainer> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: AppBarElementContainer) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&AppBarElementContainer> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &AppBarElementContainer) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for AppBarElementContainer {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &AppBarElementContainer {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::TryFrom<AppBarElementContainer> for ICommandBarElement {
    type Error = ::windows::core::Error;
    fn try_from(value: AppBarElementContainer) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
impl ::core::convert::TryFrom<&AppBarElementContainer> for ICommandBarElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &AppBarElementContainer) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ICommandBarElement> for AppBarElementContainer {
    fn into_param(self) -> ::windows::core::Param<'a, ICommandBarElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ICommandBarElement> for &AppBarElementContainer {
    fn into_param(self) -> ::windows::core::Param<'a, ICommandBarElement> {
        ::core::convert::TryInto::<ICommandBarElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::TryFrom<AppBarElementContainer> for ICommandBarElement2 {
    type Error = ::windows::core::Error;
    fn try_from(value: AppBarElementContainer) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
impl ::core::convert::TryFrom<&AppBarElementContainer> for ICommandBarElement2 {
    type Error = ::windows::core::Error;
    fn try_from(value: &AppBarElementContainer) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ICommandBarElement2> for AppBarElementContainer {
    fn into_param(self) -> ::windows::core::Param<'a, ICommandBarElement2> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ICommandBarElement2> for &AppBarElementContainer {
    fn into_param(self) -> ::windows::core::Param<'a, ICommandBarElement2> {
        ::core::convert::TryInto::<ICommandBarElement2>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<AppBarElementContainer> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: AppBarElementContainer) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&AppBarElementContainer> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &AppBarElementContainer) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for AppBarElementContainer {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &AppBarElementContainer {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<AppBarElementContainer> for ContentControl {
    fn from(value: AppBarElementContainer) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&AppBarElementContainer> for ContentControl {
    fn from(value: &AppBarElementContainer) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for AppBarElementContainer {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &AppBarElementContainer {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<AppBarElementContainer> for Control {
    fn from(value: AppBarElementContainer) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&AppBarElementContainer> for Control {
    fn from(value: &AppBarElementContainer) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for AppBarElementContainer {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &AppBarElementContainer {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<AppBarElementContainer> for super::FrameworkElement {
    fn from(value: AppBarElementContainer) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&AppBarElementContainer> for super::FrameworkElement {
    fn from(value: &AppBarElementContainer) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for AppBarElementContainer {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &AppBarElementContainer {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<AppBarElementContainer> for super::UIElement {
    fn from(value: AppBarElementContainer) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&AppBarElementContainer> for super::UIElement {
    fn from(value: &AppBarElementContainer) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for AppBarElementContainer {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &AppBarElementContainer {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<AppBarElementContainer> for super::DependencyObject {
    fn from(value: AppBarElementContainer) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&AppBarElementContainer> for super::DependencyObject {
    fn from(value: &AppBarElementContainer) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for AppBarElementContainer {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &AppBarElementContainer {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for AppBarElementContainer {}
unsafe impl ::core::marker::Sync for AppBarElementContainer {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct AppBarSeparator(::windows::core::IUnknown);
impl AppBarSeparator {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<AppBarSeparator> {
        Self::IAppBarSeparatorFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<AppBarSeparator>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<AppBarSeparator> {
        Self::IAppBarSeparatorFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<AppBarSeparator>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsCompactProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAppBarSeparatorStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsCompactProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsInOverflowProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAppBarSeparatorStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsInOverflowProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DynamicOverflowOrderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAppBarSeparatorStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DynamicOverflowOrderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsCompact(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<ICommandBarElement>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsCompact)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsCompact(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICommandBarElement>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsCompact)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsInOverflow(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<ICommandBarElement2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsInOverflow)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DynamicOverflowOrder(&self) -> ::windows::core::Result<i32> {
        let this = &::windows::core::Interface::cast::<ICommandBarElement2>(self)?;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DynamicOverflowOrder)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDynamicOverflowOrder(&self, value: i32) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICommandBarElement2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetDynamicOverflowOrder)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc(hidden)]
    pub fn IAppBarSeparatorFactory<R, F: FnOnce(&IAppBarSeparatorFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<AppBarSeparator, IAppBarSeparatorFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IAppBarSeparatorStatics<R, F: FnOnce(&IAppBarSeparatorStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<AppBarSeparator, IAppBarSeparatorStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IAppBarSeparatorStatics3<R, F: FnOnce(&IAppBarSeparatorStatics3) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<AppBarSeparator, IAppBarSeparatorStatics3> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for AppBarSeparator {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for AppBarSeparator {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for AppBarSeparator {}
impl ::core::fmt::Debug for AppBarSeparator {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("AppBarSeparator").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for AppBarSeparator {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.AppBarSeparator;{1b0795a1-1bc1-4d53-95ea-fb0a2cccc905})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for AppBarSeparator {
    type Vtable = IAppBarSeparator_Vtbl;
    const IID: ::windows::core::GUID = <IAppBarSeparator as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for AppBarSeparator {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.AppBarSeparator";
}
impl ::core::convert::From<AppBarSeparator> for ::windows::core::IUnknown {
    fn from(value: AppBarSeparator) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&AppBarSeparator> for ::windows::core::IUnknown {
    fn from(value: &AppBarSeparator) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for AppBarSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a AppBarSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<AppBarSeparator> for ::windows::core::IInspectable {
    fn from(value: AppBarSeparator) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&AppBarSeparator> for ::windows::core::IInspectable {
    fn from(value: &AppBarSeparator) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for AppBarSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a AppBarSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<AppBarSeparator> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: AppBarSeparator) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&AppBarSeparator> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &AppBarSeparator) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for AppBarSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &AppBarSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::TryFrom<AppBarSeparator> for ICommandBarElement {
    type Error = ::windows::core::Error;
    fn try_from(value: AppBarSeparator) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
impl ::core::convert::TryFrom<&AppBarSeparator> for ICommandBarElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &AppBarSeparator) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ICommandBarElement> for AppBarSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, ICommandBarElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ICommandBarElement> for &AppBarSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, ICommandBarElement> {
        ::core::convert::TryInto::<ICommandBarElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::TryFrom<AppBarSeparator> for ICommandBarElement2 {
    type Error = ::windows::core::Error;
    fn try_from(value: AppBarSeparator) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
impl ::core::convert::TryFrom<&AppBarSeparator> for ICommandBarElement2 {
    type Error = ::windows::core::Error;
    fn try_from(value: &AppBarSeparator) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ICommandBarElement2> for AppBarSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, ICommandBarElement2> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ICommandBarElement2> for &AppBarSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, ICommandBarElement2> {
        ::core::convert::TryInto::<ICommandBarElement2>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<AppBarSeparator> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: AppBarSeparator) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&AppBarSeparator> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &AppBarSeparator) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for AppBarSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &AppBarSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<AppBarSeparator> for Control {
    fn from(value: AppBarSeparator) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&AppBarSeparator> for Control {
    fn from(value: &AppBarSeparator) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for AppBarSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &AppBarSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<AppBarSeparator> for super::FrameworkElement {
    fn from(value: AppBarSeparator) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&AppBarSeparator> for super::FrameworkElement {
    fn from(value: &AppBarSeparator) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for AppBarSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &AppBarSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<AppBarSeparator> for super::UIElement {
    fn from(value: AppBarSeparator) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&AppBarSeparator> for super::UIElement {
    fn from(value: &AppBarSeparator) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for AppBarSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &AppBarSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<AppBarSeparator> for super::DependencyObject {
    fn from(value: AppBarSeparator) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&AppBarSeparator> for super::DependencyObject {
    fn from(value: &AppBarSeparator) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for AppBarSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &AppBarSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for AppBarSeparator {}
unsafe impl ::core::marker::Sync for AppBarSeparator {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct AppBarToggleButton(::windows::core::IUnknown);
impl AppBarToggleButton {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Label(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Label)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetLabel<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetLabel)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Icon(&self) -> ::windows::core::Result<IconElement> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Icon)(::core::mem::transmute_copy(this), &mut result__).from_abi::<IconElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIcon<'a, Param0: ::windows::core::IntoParam<'a, IconElement>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIcon)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LabelPosition(&self) -> ::windows::core::Result<CommandBarLabelPosition> {
        let this = &::windows::core::Interface::cast::<IAppBarToggleButton3>(self)?;
        unsafe {
            let mut result__: CommandBarLabelPosition = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LabelPosition)(::core::mem::transmute_copy(this), &mut result__).from_abi::<CommandBarLabelPosition>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetLabelPosition(&self, value: CommandBarLabelPosition) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IAppBarToggleButton3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetLabelPosition)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn KeyboardAcceleratorTextOverride(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = &::windows::core::Interface::cast::<IAppBarToggleButton4>(self)?;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).KeyboardAcceleratorTextOverride)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetKeyboardAcceleratorTextOverride<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IAppBarToggleButton4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetKeyboardAcceleratorTextOverride)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn TemplateSettings(&self) -> ::windows::core::Result<Primitives::AppBarToggleButtonTemplateSettings> {
        let this = &::windows::core::Interface::cast::<IAppBarToggleButton5>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TemplateSettings)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::AppBarToggleButtonTemplateSettings>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<AppBarToggleButton> {
        Self::IAppBarToggleButtonFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<AppBarToggleButton>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<AppBarToggleButton> {
        Self::IAppBarToggleButtonFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<AppBarToggleButton>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LabelProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAppBarToggleButtonStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LabelProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IconProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAppBarToggleButtonStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IconProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsCompactProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAppBarToggleButtonStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsCompactProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LabelPositionProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAppBarToggleButtonStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LabelPositionProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsInOverflowProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAppBarToggleButtonStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsInOverflowProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DynamicOverflowOrderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAppBarToggleButtonStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DynamicOverflowOrderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn KeyboardAcceleratorTextOverrideProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAppBarToggleButtonStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).KeyboardAcceleratorTextOverrideProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsCompact(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<ICommandBarElement>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsCompact)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsCompact(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICommandBarElement>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsCompact)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsInOverflow(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<ICommandBarElement2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsInOverflow)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DynamicOverflowOrder(&self) -> ::windows::core::Result<i32> {
        let this = &::windows::core::Interface::cast::<ICommandBarElement2>(self)?;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DynamicOverflowOrder)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDynamicOverflowOrder(&self, value: i32) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICommandBarElement2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetDynamicOverflowOrder)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc(hidden)]
    pub fn IAppBarToggleButtonFactory<R, F: FnOnce(&IAppBarToggleButtonFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<AppBarToggleButton, IAppBarToggleButtonFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IAppBarToggleButtonStatics<R, F: FnOnce(&IAppBarToggleButtonStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<AppBarToggleButton, IAppBarToggleButtonStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IAppBarToggleButtonStatics3<R, F: FnOnce(&IAppBarToggleButtonStatics3) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<AppBarToggleButton, IAppBarToggleButtonStatics3> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IAppBarToggleButtonStatics4<R, F: FnOnce(&IAppBarToggleButtonStatics4) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<AppBarToggleButton, IAppBarToggleButtonStatics4> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for AppBarToggleButton {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for AppBarToggleButton {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for AppBarToggleButton {}
impl ::core::fmt::Debug for AppBarToggleButton {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("AppBarToggleButton").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for AppBarToggleButton {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.AppBarToggleButton;{2e914438-fd53-4b8d-858b-3644269f8e4d})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for AppBarToggleButton {
    type Vtable = IAppBarToggleButton_Vtbl;
    const IID: ::windows::core::GUID = <IAppBarToggleButton as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for AppBarToggleButton {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.AppBarToggleButton";
}
impl ::core::convert::From<AppBarToggleButton> for ::windows::core::IUnknown {
    fn from(value: AppBarToggleButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&AppBarToggleButton> for ::windows::core::IUnknown {
    fn from(value: &AppBarToggleButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for AppBarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a AppBarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<AppBarToggleButton> for ::windows::core::IInspectable {
    fn from(value: AppBarToggleButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&AppBarToggleButton> for ::windows::core::IInspectable {
    fn from(value: &AppBarToggleButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for AppBarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a AppBarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<AppBarToggleButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: AppBarToggleButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&AppBarToggleButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &AppBarToggleButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for AppBarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &AppBarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::TryFrom<AppBarToggleButton> for ICommandBarElement {
    type Error = ::windows::core::Error;
    fn try_from(value: AppBarToggleButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
impl ::core::convert::TryFrom<&AppBarToggleButton> for ICommandBarElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &AppBarToggleButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ICommandBarElement> for AppBarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, ICommandBarElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ICommandBarElement> for &AppBarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, ICommandBarElement> {
        ::core::convert::TryInto::<ICommandBarElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::TryFrom<AppBarToggleButton> for ICommandBarElement2 {
    type Error = ::windows::core::Error;
    fn try_from(value: AppBarToggleButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
impl ::core::convert::TryFrom<&AppBarToggleButton> for ICommandBarElement2 {
    type Error = ::windows::core::Error;
    fn try_from(value: &AppBarToggleButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ICommandBarElement2> for AppBarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, ICommandBarElement2> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ICommandBarElement2> for &AppBarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, ICommandBarElement2> {
        ::core::convert::TryInto::<ICommandBarElement2>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<AppBarToggleButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: AppBarToggleButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&AppBarToggleButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &AppBarToggleButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for AppBarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &AppBarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<AppBarToggleButton> for Primitives::ToggleButton {
    fn from(value: AppBarToggleButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&AppBarToggleButton> for Primitives::ToggleButton {
    fn from(value: &AppBarToggleButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ToggleButton> for AppBarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ToggleButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ToggleButton> for &AppBarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ToggleButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ToggleButton>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<AppBarToggleButton> for Primitives::ButtonBase {
    fn from(value: AppBarToggleButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&AppBarToggleButton> for Primitives::ButtonBase {
    fn from(value: &AppBarToggleButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for AppBarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for &AppBarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ButtonBase>::into(self))
    }
}
impl ::core::convert::From<AppBarToggleButton> for ContentControl {
    fn from(value: AppBarToggleButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&AppBarToggleButton> for ContentControl {
    fn from(value: &AppBarToggleButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for AppBarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &AppBarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<AppBarToggleButton> for Control {
    fn from(value: AppBarToggleButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&AppBarToggleButton> for Control {
    fn from(value: &AppBarToggleButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for AppBarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &AppBarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<AppBarToggleButton> for super::FrameworkElement {
    fn from(value: AppBarToggleButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&AppBarToggleButton> for super::FrameworkElement {
    fn from(value: &AppBarToggleButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for AppBarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &AppBarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<AppBarToggleButton> for super::UIElement {
    fn from(value: AppBarToggleButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&AppBarToggleButton> for super::UIElement {
    fn from(value: &AppBarToggleButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for AppBarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &AppBarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<AppBarToggleButton> for super::DependencyObject {
    fn from(value: AppBarToggleButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&AppBarToggleButton> for super::DependencyObject {
    fn from(value: &AppBarToggleButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for AppBarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &AppBarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for AppBarToggleButton {}
unsafe impl ::core::marker::Sync for AppBarToggleButton {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct AutoSuggestBox(::windows::core::IUnknown);
impl AutoSuggestBox {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<AutoSuggestBox, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxSuggestionListHeight(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxSuggestionListHeight)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMaxSuggestionListHeight(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMaxSuggestionListHeight)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsSuggestionListOpen(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsSuggestionListOpen)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsSuggestionListOpen(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsSuggestionListOpen)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextMemberPath(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextMemberPath)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTextMemberPath<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTextMemberPath)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Text(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Text)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetText<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetText)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn UpdateTextOnSelect(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).UpdateTextOnSelect)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetUpdateTextOnSelect(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetUpdateTextOnSelect)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PlaceholderText(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlaceholderText)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPlaceholderText<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPlaceholderText)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Header(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Header)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeader<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHeader)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AutoMaximizeSuggestionArea(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AutoMaximizeSuggestionArea)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetAutoMaximizeSuggestionArea(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetAutoMaximizeSuggestionArea)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextBoxStyle(&self) -> ::windows::core::Result<super::Style> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextBoxStyle)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Style>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTextBoxStyle<'a, Param0: ::windows::core::IntoParam<'a, super::Style>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTextBoxStyle)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SuggestionChosen<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<AutoSuggestBox, AutoSuggestBoxSuggestionChosenEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SuggestionChosen)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveSuggestionChosen<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveSuggestionChosen)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn TextChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<AutoSuggestBox, AutoSuggestBoxTextChangedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveTextChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveTextChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn QueryIcon(&self) -> ::windows::core::Result<IconElement> {
        let this = &::windows::core::Interface::cast::<IAutoSuggestBox2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).QueryIcon)(::core::mem::transmute_copy(this), &mut result__).from_abi::<IconElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetQueryIcon<'a, Param0: ::windows::core::IntoParam<'a, IconElement>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IAutoSuggestBox2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetQueryIcon)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn QuerySubmitted<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<AutoSuggestBox, AutoSuggestBoxQuerySubmittedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IAutoSuggestBox2>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).QuerySubmitted)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveQuerySubmitted<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IAutoSuggestBox2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveQuerySubmitted)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LightDismissOverlayMode(&self) -> ::windows::core::Result<LightDismissOverlayMode> {
        let this = &::windows::core::Interface::cast::<IAutoSuggestBox3>(self)?;
        unsafe {
            let mut result__: LightDismissOverlayMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LightDismissOverlayMode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<LightDismissOverlayMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetLightDismissOverlayMode(&self, value: LightDismissOverlayMode) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IAutoSuggestBox3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetLightDismissOverlayMode)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Description(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = &::windows::core::Interface::cast::<IAutoSuggestBox4>(self)?;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Description)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDescription<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IAutoSuggestBox4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetDescription)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxSuggestionListHeightProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAutoSuggestBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxSuggestionListHeightProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsSuggestionListOpenProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAutoSuggestBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsSuggestionListOpenProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextMemberPathProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAutoSuggestBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextMemberPathProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAutoSuggestBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn UpdateTextOnSelectProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAutoSuggestBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).UpdateTextOnSelectProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PlaceholderTextProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAutoSuggestBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlaceholderTextProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAutoSuggestBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AutoMaximizeSuggestionAreaProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAutoSuggestBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AutoMaximizeSuggestionAreaProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextBoxStyleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAutoSuggestBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextBoxStyleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn QueryIconProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAutoSuggestBoxStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).QueryIconProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LightDismissOverlayModeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAutoSuggestBoxStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LightDismissOverlayModeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DescriptionProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAutoSuggestBoxStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DescriptionProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IAutoSuggestBoxStatics<R, F: FnOnce(&IAutoSuggestBoxStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<AutoSuggestBox, IAutoSuggestBoxStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IAutoSuggestBoxStatics2<R, F: FnOnce(&IAutoSuggestBoxStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<AutoSuggestBox, IAutoSuggestBoxStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IAutoSuggestBoxStatics3<R, F: FnOnce(&IAutoSuggestBoxStatics3) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<AutoSuggestBox, IAutoSuggestBoxStatics3> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IAutoSuggestBoxStatics4<R, F: FnOnce(&IAutoSuggestBoxStatics4) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<AutoSuggestBox, IAutoSuggestBoxStatics4> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for AutoSuggestBox {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for AutoSuggestBox {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for AutoSuggestBox {}
impl ::core::fmt::Debug for AutoSuggestBox {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("AutoSuggestBox").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for AutoSuggestBox {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.AutoSuggestBox;{103e9b13-3400-4a16-90b9-6912bf06974f})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for AutoSuggestBox {
    type Vtable = IAutoSuggestBox_Vtbl;
    const IID: ::windows::core::GUID = <IAutoSuggestBox as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for AutoSuggestBox {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.AutoSuggestBox";
}
impl ::core::convert::From<AutoSuggestBox> for ::windows::core::IUnknown {
    fn from(value: AutoSuggestBox) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&AutoSuggestBox> for ::windows::core::IUnknown {
    fn from(value: &AutoSuggestBox) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for AutoSuggestBox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a AutoSuggestBox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<AutoSuggestBox> for ::windows::core::IInspectable {
    fn from(value: AutoSuggestBox) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&AutoSuggestBox> for ::windows::core::IInspectable {
    fn from(value: &AutoSuggestBox) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for AutoSuggestBox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a AutoSuggestBox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<AutoSuggestBox> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: AutoSuggestBox) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&AutoSuggestBox> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &AutoSuggestBox) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for AutoSuggestBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &AutoSuggestBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::TryFrom<AutoSuggestBox> for IItemContainerMapping {
    type Error = ::windows::core::Error;
    fn try_from(value: AutoSuggestBox) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
impl ::core::convert::TryFrom<&AutoSuggestBox> for IItemContainerMapping {
    type Error = ::windows::core::Error;
    fn try_from(value: &AutoSuggestBox) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IItemContainerMapping> for AutoSuggestBox {
    fn into_param(self) -> ::windows::core::Param<'a, IItemContainerMapping> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IItemContainerMapping> for &AutoSuggestBox {
    fn into_param(self) -> ::windows::core::Param<'a, IItemContainerMapping> {
        ::core::convert::TryInto::<IItemContainerMapping>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<AutoSuggestBox> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: AutoSuggestBox) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&AutoSuggestBox> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &AutoSuggestBox) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for AutoSuggestBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &AutoSuggestBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<AutoSuggestBox> for ItemsControl {
    fn from(value: AutoSuggestBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&AutoSuggestBox> for ItemsControl {
    fn from(value: &AutoSuggestBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ItemsControl> for AutoSuggestBox {
    fn into_param(self) -> ::windows::core::Param<'a, ItemsControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ItemsControl> for &AutoSuggestBox {
    fn into_param(self) -> ::windows::core::Param<'a, ItemsControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ItemsControl>::into(self))
    }
}
impl ::core::convert::From<AutoSuggestBox> for Control {
    fn from(value: AutoSuggestBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&AutoSuggestBox> for Control {
    fn from(value: &AutoSuggestBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for AutoSuggestBox {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &AutoSuggestBox {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<AutoSuggestBox> for super::FrameworkElement {
    fn from(value: AutoSuggestBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&AutoSuggestBox> for super::FrameworkElement {
    fn from(value: &AutoSuggestBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for AutoSuggestBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &AutoSuggestBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<AutoSuggestBox> for super::UIElement {
    fn from(value: AutoSuggestBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&AutoSuggestBox> for super::UIElement {
    fn from(value: &AutoSuggestBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for AutoSuggestBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &AutoSuggestBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<AutoSuggestBox> for super::DependencyObject {
    fn from(value: AutoSuggestBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&AutoSuggestBox> for super::DependencyObject {
    fn from(value: &AutoSuggestBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for AutoSuggestBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &AutoSuggestBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for AutoSuggestBox {}
unsafe impl ::core::marker::Sync for AutoSuggestBox {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct AutoSuggestBoxQuerySubmittedEventArgs(::windows::core::IUnknown);
impl AutoSuggestBoxQuerySubmittedEventArgs {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<AutoSuggestBoxQuerySubmittedEventArgs, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn QueryText(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).QueryText)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ChosenSuggestion(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ChosenSuggestion)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
}
impl ::core::clone::Clone for AutoSuggestBoxQuerySubmittedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for AutoSuggestBoxQuerySubmittedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for AutoSuggestBoxQuerySubmittedEventArgs {}
impl ::core::fmt::Debug for AutoSuggestBoxQuerySubmittedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("AutoSuggestBoxQuerySubmittedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for AutoSuggestBoxQuerySubmittedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.AutoSuggestBoxQuerySubmittedEventArgs;{78dcb116-818a-4cb5-bca7-382ce6ddc90d})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for AutoSuggestBoxQuerySubmittedEventArgs {
    type Vtable = IAutoSuggestBoxQuerySubmittedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IAutoSuggestBoxQuerySubmittedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for AutoSuggestBoxQuerySubmittedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.AutoSuggestBoxQuerySubmittedEventArgs";
}
impl ::core::convert::From<AutoSuggestBoxQuerySubmittedEventArgs> for ::windows::core::IUnknown {
    fn from(value: AutoSuggestBoxQuerySubmittedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&AutoSuggestBoxQuerySubmittedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &AutoSuggestBoxQuerySubmittedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for AutoSuggestBoxQuerySubmittedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a AutoSuggestBoxQuerySubmittedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<AutoSuggestBoxQuerySubmittedEventArgs> for ::windows::core::IInspectable {
    fn from(value: AutoSuggestBoxQuerySubmittedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&AutoSuggestBoxQuerySubmittedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &AutoSuggestBoxQuerySubmittedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for AutoSuggestBoxQuerySubmittedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a AutoSuggestBoxQuerySubmittedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<AutoSuggestBoxQuerySubmittedEventArgs> for super::DependencyObject {
    fn from(value: AutoSuggestBoxQuerySubmittedEventArgs) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&AutoSuggestBoxQuerySubmittedEventArgs> for super::DependencyObject {
    fn from(value: &AutoSuggestBoxQuerySubmittedEventArgs) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for AutoSuggestBoxQuerySubmittedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &AutoSuggestBoxQuerySubmittedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for AutoSuggestBoxQuerySubmittedEventArgs {}
unsafe impl ::core::marker::Sync for AutoSuggestBoxQuerySubmittedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct AutoSuggestBoxSuggestionChosenEventArgs(::windows::core::IUnknown);
impl AutoSuggestBoxSuggestionChosenEventArgs {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<AutoSuggestBoxSuggestionChosenEventArgs, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedItem(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedItem)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
}
impl ::core::clone::Clone for AutoSuggestBoxSuggestionChosenEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for AutoSuggestBoxSuggestionChosenEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for AutoSuggestBoxSuggestionChosenEventArgs {}
impl ::core::fmt::Debug for AutoSuggestBoxSuggestionChosenEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("AutoSuggestBoxSuggestionChosenEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for AutoSuggestBoxSuggestionChosenEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.AutoSuggestBoxSuggestionChosenEventArgs;{396f7254-1ed5-4bc5-a060-655530bca6ba})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for AutoSuggestBoxSuggestionChosenEventArgs {
    type Vtable = IAutoSuggestBoxSuggestionChosenEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IAutoSuggestBoxSuggestionChosenEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for AutoSuggestBoxSuggestionChosenEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.AutoSuggestBoxSuggestionChosenEventArgs";
}
impl ::core::convert::From<AutoSuggestBoxSuggestionChosenEventArgs> for ::windows::core::IUnknown {
    fn from(value: AutoSuggestBoxSuggestionChosenEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&AutoSuggestBoxSuggestionChosenEventArgs> for ::windows::core::IUnknown {
    fn from(value: &AutoSuggestBoxSuggestionChosenEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for AutoSuggestBoxSuggestionChosenEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a AutoSuggestBoxSuggestionChosenEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<AutoSuggestBoxSuggestionChosenEventArgs> for ::windows::core::IInspectable {
    fn from(value: AutoSuggestBoxSuggestionChosenEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&AutoSuggestBoxSuggestionChosenEventArgs> for ::windows::core::IInspectable {
    fn from(value: &AutoSuggestBoxSuggestionChosenEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for AutoSuggestBoxSuggestionChosenEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a AutoSuggestBoxSuggestionChosenEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<AutoSuggestBoxSuggestionChosenEventArgs> for super::DependencyObject {
    fn from(value: AutoSuggestBoxSuggestionChosenEventArgs) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&AutoSuggestBoxSuggestionChosenEventArgs> for super::DependencyObject {
    fn from(value: &AutoSuggestBoxSuggestionChosenEventArgs) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for AutoSuggestBoxSuggestionChosenEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &AutoSuggestBoxSuggestionChosenEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for AutoSuggestBoxSuggestionChosenEventArgs {}
unsafe impl ::core::marker::Sync for AutoSuggestBoxSuggestionChosenEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct AutoSuggestBoxTextChangedEventArgs(::windows::core::IUnknown);
impl AutoSuggestBoxTextChangedEventArgs {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<AutoSuggestBoxTextChangedEventArgs, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Reason(&self) -> ::windows::core::Result<AutoSuggestionBoxTextChangeReason> {
        let this = self;
        unsafe {
            let mut result__: AutoSuggestionBoxTextChangeReason = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Reason)(::core::mem::transmute_copy(this), &mut result__).from_abi::<AutoSuggestionBoxTextChangeReason>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetReason(&self, value: AutoSuggestionBoxTextChangeReason) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetReason)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CheckCurrent(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CheckCurrent)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ReasonProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IAutoSuggestBoxTextChangedEventArgsStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ReasonProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IAutoSuggestBoxTextChangedEventArgsStatics<R, F: FnOnce(&IAutoSuggestBoxTextChangedEventArgsStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<AutoSuggestBoxTextChangedEventArgs, IAutoSuggestBoxTextChangedEventArgsStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for AutoSuggestBoxTextChangedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for AutoSuggestBoxTextChangedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for AutoSuggestBoxTextChangedEventArgs {}
impl ::core::fmt::Debug for AutoSuggestBoxTextChangedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("AutoSuggestBoxTextChangedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for AutoSuggestBoxTextChangedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.AutoSuggestBoxTextChangedEventArgs;{3a6f7254-1ed5-4bc5-a060-655530bca6ba})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for AutoSuggestBoxTextChangedEventArgs {
    type Vtable = IAutoSuggestBoxTextChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IAutoSuggestBoxTextChangedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for AutoSuggestBoxTextChangedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.AutoSuggestBoxTextChangedEventArgs";
}
impl ::core::convert::From<AutoSuggestBoxTextChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: AutoSuggestBoxTextChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&AutoSuggestBoxTextChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &AutoSuggestBoxTextChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for AutoSuggestBoxTextChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a AutoSuggestBoxTextChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<AutoSuggestBoxTextChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: AutoSuggestBoxTextChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&AutoSuggestBoxTextChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &AutoSuggestBoxTextChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for AutoSuggestBoxTextChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a AutoSuggestBoxTextChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<AutoSuggestBoxTextChangedEventArgs> for super::DependencyObject {
    fn from(value: AutoSuggestBoxTextChangedEventArgs) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&AutoSuggestBoxTextChangedEventArgs> for super::DependencyObject {
    fn from(value: &AutoSuggestBoxTextChangedEventArgs) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for AutoSuggestBoxTextChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &AutoSuggestBoxTextChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for AutoSuggestBoxTextChangedEventArgs {}
unsafe impl ::core::marker::Sync for AutoSuggestBoxTextChangedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct AutoSuggestionBoxTextChangeReason(pub i32);
impl AutoSuggestionBoxTextChangeReason {
    pub const UserInput: Self = Self(0i32);
    pub const ProgrammaticChange: Self = Self(1i32);
    pub const SuggestionChosen: Self = Self(2i32);
}
impl ::core::marker::Copy for AutoSuggestionBoxTextChangeReason {}
impl ::core::clone::Clone for AutoSuggestionBoxTextChangeReason {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for AutoSuggestionBoxTextChangeReason {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for AutoSuggestionBoxTextChangeReason {
    type Abi = Self;
}
impl ::core::fmt::Debug for AutoSuggestionBoxTextChangeReason {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("AutoSuggestionBoxTextChangeReason").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for AutoSuggestionBoxTextChangeReason {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.AutoSuggestionBoxTextChangeReason;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct BackClickEventArgs(::windows::core::IUnknown);
impl BackClickEventArgs {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<BackClickEventArgs, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Handled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Handled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHandled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHandled)(::core::mem::transmute_copy(this), value).ok() }
    }
}
impl ::core::clone::Clone for BackClickEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for BackClickEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for BackClickEventArgs {}
impl ::core::fmt::Debug for BackClickEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("BackClickEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for BackClickEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.BackClickEventArgs;{2ae6146c-477e-48c9-8830-2c464b7c7104})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for BackClickEventArgs {
    type Vtable = IBackClickEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IBackClickEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for BackClickEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.BackClickEventArgs";
}
impl ::core::convert::From<BackClickEventArgs> for ::windows::core::IUnknown {
    fn from(value: BackClickEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&BackClickEventArgs> for ::windows::core::IUnknown {
    fn from(value: &BackClickEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for BackClickEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a BackClickEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<BackClickEventArgs> for ::windows::core::IInspectable {
    fn from(value: BackClickEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&BackClickEventArgs> for ::windows::core::IInspectable {
    fn from(value: &BackClickEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for BackClickEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a BackClickEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for BackClickEventArgs {}
unsafe impl ::core::marker::Sync for BackClickEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct BackClickEventHandler(pub ::windows::core::IUnknown);
impl BackClickEventHandler {
    pub fn new<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<BackClickEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static>(invoke: F) -> Self {
        let com = BackClickEventHandlerBox::<F> { vtable: &BackClickEventHandlerBox::<F>::VTABLE, count: ::windows::core::RefCount::new(1), invoke };
        unsafe { ::core::mem::transmute(::windows::core::alloc::boxed::Box::new(com)) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Invoke<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>, Param1: ::windows::core::IntoParam<'a, BackClickEventArgs>>(&self, sender: Param0, e: Param1) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Invoke)(::core::mem::transmute_copy(this), sender.into_param().abi(), e.into_param().abi()).ok() }
    }
}
#[repr(C)]
struct BackClickEventHandlerBox<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<BackClickEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static> {
    vtable: *const BackClickEventHandler_Vtbl,
    invoke: F,
    count: ::windows::core::RefCount,
}
impl<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<BackClickEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static> BackClickEventHandlerBox<F> {
    const VTABLE: BackClickEventHandler_Vtbl = BackClickEventHandler_Vtbl { base: ::windows::core::IUnknownVtbl { QueryInterface: Self::QueryInterface, AddRef: Self::AddRef, Release: Self::Release }, Invoke: Self::Invoke };
    unsafe extern "system" fn QueryInterface(this: ::windows::core::RawPtr, iid: &::windows::core::GUID, interface: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        *interface = if iid == &<BackClickEventHandler as ::windows::core::Interface>::IID || iid == &<::windows::core::IUnknown as ::windows::core::Interface>::IID || iid == &<::windows::core::IAgileObject as ::windows::core::Interface>::IID { &mut (*this).vtable as *mut _ as _ } else { ::core::ptr::null_mut() };
        if (*interface).is_null() {
            ::windows::core::HRESULT(-2147467262)
        } else {
            (*this).count.add_ref();
            ::windows::core::HRESULT(0)
        }
    }
    unsafe extern "system" fn AddRef(this: ::windows::core::RawPtr) -> u32 {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        (*this).count.add_ref()
    }
    unsafe extern "system" fn Release(this: ::windows::core::RawPtr) -> u32 {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        let remaining = (*this).count.release();
        if remaining == 0 {
            ::windows::core::alloc::boxed::Box::from_raw(this);
        }
        remaining
    }
    unsafe extern "system" fn Invoke(this: *mut ::core::ffi::c_void, sender: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        ((*this).invoke)(::core::mem::transmute(&sender), ::core::mem::transmute(&e)).into()
    }
}
impl ::core::clone::Clone for BackClickEventHandler {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for BackClickEventHandler {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for BackClickEventHandler {}
impl ::core::fmt::Debug for BackClickEventHandler {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("BackClickEventHandler").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for BackClickEventHandler {
    type Vtable = BackClickEventHandler_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xfa9bc21f_9892_482e_abf6_eb2d607d32de);
}
unsafe impl ::windows::core::RuntimeType for BackClickEventHandler {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"{fa9bc21f-9892-482e-abf6-eb2d607d32de}");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
#[repr(C)]
#[doc(hidden)]
pub struct BackClickEventHandler_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    pub Invoke: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sender: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct BackgroundSizing(pub i32);
impl BackgroundSizing {
    pub const InnerBorderEdge: Self = Self(0i32);
    pub const OuterBorderEdge: Self = Self(1i32);
}
impl ::core::marker::Copy for BackgroundSizing {}
impl ::core::clone::Clone for BackgroundSizing {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for BackgroundSizing {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for BackgroundSizing {
    type Abi = Self;
}
impl ::core::fmt::Debug for BackgroundSizing {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("BackgroundSizing").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for BackgroundSizing {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.BackgroundSizing;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct BitmapIcon(::windows::core::IUnknown);
impl BitmapIcon {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn UriSource(&self) -> ::windows::core::Result<super::super::super::Foundation::Uri> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).UriSource)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Uri>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SetUriSource<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::Uri>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetUriSource)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ShowAsMonochrome(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IBitmapIcon2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ShowAsMonochrome)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetShowAsMonochrome(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IBitmapIcon2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetShowAsMonochrome)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<BitmapIcon> {
        Self::IBitmapIconFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<BitmapIcon>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<BitmapIcon> {
        Self::IBitmapIconFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<BitmapIcon>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn UriSourceProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IBitmapIconStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).UriSourceProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ShowAsMonochromeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IBitmapIconStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ShowAsMonochromeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IBitmapIconFactory<R, F: FnOnce(&IBitmapIconFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<BitmapIcon, IBitmapIconFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IBitmapIconStatics<R, F: FnOnce(&IBitmapIconStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<BitmapIcon, IBitmapIconStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IBitmapIconStatics2<R, F: FnOnce(&IBitmapIconStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<BitmapIcon, IBitmapIconStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for BitmapIcon {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for BitmapIcon {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for BitmapIcon {}
impl ::core::fmt::Debug for BitmapIcon {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("BitmapIcon").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for BitmapIcon {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.BitmapIcon;{e8fe17cb-35f7-40f3-a185-48b397b73e68})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for BitmapIcon {
    type Vtable = IBitmapIcon_Vtbl;
    const IID: ::windows::core::GUID = <IBitmapIcon as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for BitmapIcon {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.BitmapIcon";
}
impl ::core::convert::From<BitmapIcon> for ::windows::core::IUnknown {
    fn from(value: BitmapIcon) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&BitmapIcon> for ::windows::core::IUnknown {
    fn from(value: &BitmapIcon) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for BitmapIcon {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a BitmapIcon {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<BitmapIcon> for ::windows::core::IInspectable {
    fn from(value: BitmapIcon) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&BitmapIcon> for ::windows::core::IInspectable {
    fn from(value: &BitmapIcon) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for BitmapIcon {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a BitmapIcon {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<BitmapIcon> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: BitmapIcon) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&BitmapIcon> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &BitmapIcon) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for BitmapIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &BitmapIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<BitmapIcon> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: BitmapIcon) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&BitmapIcon> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &BitmapIcon) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for BitmapIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &BitmapIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<BitmapIcon> for IconElement {
    fn from(value: BitmapIcon) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&BitmapIcon> for IconElement {
    fn from(value: &BitmapIcon) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, IconElement> for BitmapIcon {
    fn into_param(self) -> ::windows::core::Param<'a, IconElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IconElement> for &BitmapIcon {
    fn into_param(self) -> ::windows::core::Param<'a, IconElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<IconElement>::into(self))
    }
}
impl ::core::convert::From<BitmapIcon> for super::FrameworkElement {
    fn from(value: BitmapIcon) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&BitmapIcon> for super::FrameworkElement {
    fn from(value: &BitmapIcon) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for BitmapIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &BitmapIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<BitmapIcon> for super::UIElement {
    fn from(value: BitmapIcon) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&BitmapIcon> for super::UIElement {
    fn from(value: &BitmapIcon) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for BitmapIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &BitmapIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<BitmapIcon> for super::DependencyObject {
    fn from(value: BitmapIcon) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&BitmapIcon> for super::DependencyObject {
    fn from(value: &BitmapIcon) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for BitmapIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &BitmapIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for BitmapIcon {}
unsafe impl ::core::marker::Sync for BitmapIcon {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct BitmapIconSource(::windows::core::IUnknown);
impl BitmapIconSource {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn UriSource(&self) -> ::windows::core::Result<super::super::super::Foundation::Uri> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).UriSource)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Uri>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SetUriSource<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::Uri>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetUriSource)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ShowAsMonochrome(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ShowAsMonochrome)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetShowAsMonochrome(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetShowAsMonochrome)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<BitmapIconSource> {
        Self::IBitmapIconSourceFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<BitmapIconSource>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<BitmapIconSource> {
        Self::IBitmapIconSourceFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<BitmapIconSource>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn UriSourceProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IBitmapIconSourceStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).UriSourceProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ShowAsMonochromeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IBitmapIconSourceStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ShowAsMonochromeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IBitmapIconSourceFactory<R, F: FnOnce(&IBitmapIconSourceFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<BitmapIconSource, IBitmapIconSourceFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IBitmapIconSourceStatics<R, F: FnOnce(&IBitmapIconSourceStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<BitmapIconSource, IBitmapIconSourceStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for BitmapIconSource {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for BitmapIconSource {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for BitmapIconSource {}
impl ::core::fmt::Debug for BitmapIconSource {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("BitmapIconSource").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for BitmapIconSource {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.BitmapIconSource;{c8e33dc7-d4ae-4a87-947f-ac4d0bcf5af4})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for BitmapIconSource {
    type Vtable = IBitmapIconSource_Vtbl;
    const IID: ::windows::core::GUID = <IBitmapIconSource as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for BitmapIconSource {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.BitmapIconSource";
}
impl ::core::convert::From<BitmapIconSource> for ::windows::core::IUnknown {
    fn from(value: BitmapIconSource) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&BitmapIconSource> for ::windows::core::IUnknown {
    fn from(value: &BitmapIconSource) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for BitmapIconSource {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a BitmapIconSource {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<BitmapIconSource> for ::windows::core::IInspectable {
    fn from(value: BitmapIconSource) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&BitmapIconSource> for ::windows::core::IInspectable {
    fn from(value: &BitmapIconSource) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for BitmapIconSource {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a BitmapIconSource {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<BitmapIconSource> for IconSource {
    fn from(value: BitmapIconSource) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&BitmapIconSource> for IconSource {
    fn from(value: &BitmapIconSource) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, IconSource> for BitmapIconSource {
    fn into_param(self) -> ::windows::core::Param<'a, IconSource> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IconSource> for &BitmapIconSource {
    fn into_param(self) -> ::windows::core::Param<'a, IconSource> {
        ::windows::core::Param::Owned(::core::convert::Into::<IconSource>::into(self))
    }
}
impl ::core::convert::From<BitmapIconSource> for super::DependencyObject {
    fn from(value: BitmapIconSource) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&BitmapIconSource> for super::DependencyObject {
    fn from(value: &BitmapIconSource) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for BitmapIconSource {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &BitmapIconSource {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for BitmapIconSource {}
unsafe impl ::core::marker::Sync for BitmapIconSource {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct Border(::windows::core::IUnknown);
impl Border {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Border, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn BorderBrush(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BorderBrush)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetBorderBrush<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetBorderBrush)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BorderThickness(&self) -> ::windows::core::Result<super::Thickness> {
        let this = self;
        unsafe {
            let mut result__: super::Thickness = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BorderThickness)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Thickness>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetBorderThickness<'a, Param0: ::windows::core::IntoParam<'a, super::Thickness>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetBorderThickness)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn Background(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Background)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetBackground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetBackground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CornerRadius(&self) -> ::windows::core::Result<super::CornerRadius> {
        let this = self;
        unsafe {
            let mut result__: super::CornerRadius = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CornerRadius)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::CornerRadius>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCornerRadius<'a, Param0: ::windows::core::IntoParam<'a, super::CornerRadius>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCornerRadius)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Padding(&self) -> ::windows::core::Result<super::Thickness> {
        let this = self;
        unsafe {
            let mut result__: super::Thickness = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Padding)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Thickness>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPadding<'a, Param0: ::windows::core::IntoParam<'a, super::Thickness>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPadding)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Child(&self) -> ::windows::core::Result<super::UIElement> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Child)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::UIElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetChild<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetChild)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'UI_Xaml_Media_Animation'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub fn ChildTransitions(&self) -> ::windows::core::Result<super::Media::Animation::TransitionCollection> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ChildTransitions)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Animation::TransitionCollection>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'UI_Xaml_Media_Animation'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub fn SetChildTransitions<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Animation::TransitionCollection>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetChildTransitions)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BackgroundSizing(&self) -> ::windows::core::Result<BackgroundSizing> {
        let this = &::windows::core::Interface::cast::<IBorder2>(self)?;
        unsafe {
            let mut result__: BackgroundSizing = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BackgroundSizing)(::core::mem::transmute_copy(this), &mut result__).from_abi::<BackgroundSizing>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetBackgroundSizing(&self, value: BackgroundSizing) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IBorder2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetBackgroundSizing)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BackgroundTransition(&self) -> ::windows::core::Result<super::BrushTransition> {
        let this = &::windows::core::Interface::cast::<IBorder2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BackgroundTransition)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::BrushTransition>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetBackgroundTransition<'a, Param0: ::windows::core::IntoParam<'a, super::BrushTransition>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IBorder2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetBackgroundTransition)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BorderBrushProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IBorderStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BorderBrushProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BorderThicknessProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IBorderStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BorderThicknessProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BackgroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IBorderStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BackgroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CornerRadiusProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IBorderStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CornerRadiusProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PaddingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IBorderStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaddingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ChildTransitionsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IBorderStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ChildTransitionsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BackgroundSizingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IBorderStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BackgroundSizingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IBorderStatics<R, F: FnOnce(&IBorderStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Border, IBorderStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IBorderStatics2<R, F: FnOnce(&IBorderStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Border, IBorderStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for Border {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for Border {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for Border {}
impl ::core::fmt::Debug for Border {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("Border").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for Border {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.Border;{797c4539-45bd-4633-a044-bfb02ef5170f})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for Border {
    type Vtable = IBorder_Vtbl;
    const IID: ::windows::core::GUID = <IBorder as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for Border {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.Border";
}
impl ::core::convert::From<Border> for ::windows::core::IUnknown {
    fn from(value: Border) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&Border> for ::windows::core::IUnknown {
    fn from(value: &Border) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for Border {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a Border {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<Border> for ::windows::core::IInspectable {
    fn from(value: Border) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&Border> for ::windows::core::IInspectable {
    fn from(value: &Border) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for Border {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a Border {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<Border> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: Border) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&Border> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &Border) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for Border {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &Border {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<Border> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: Border) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&Border> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &Border) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for Border {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &Border {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<Border> for super::FrameworkElement {
    fn from(value: Border) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Border> for super::FrameworkElement {
    fn from(value: &Border) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for Border {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &Border {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<Border> for super::UIElement {
    fn from(value: Border) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Border> for super::UIElement {
    fn from(value: &Border) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for Border {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &Border {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<Border> for super::DependencyObject {
    fn from(value: Border) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Border> for super::DependencyObject {
    fn from(value: &Border) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for Border {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &Border {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for Border {}
unsafe impl ::core::marker::Sync for Border {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct Button(::windows::core::IUnknown);
impl Button {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<Button> {
        Self::IButtonFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<Button>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<Button> {
        Self::IButtonFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<Button>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FlyoutProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IButtonStaticsWithFlyout(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FlyoutProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn Flyout(&self) -> ::windows::core::Result<Primitives::FlyoutBase> {
        let this = &::windows::core::Interface::cast::<IButtonWithFlyout>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Flyout)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::FlyoutBase>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn SetFlyout<'a, Param0: ::windows::core::IntoParam<'a, Primitives::FlyoutBase>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IButtonWithFlyout>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetFlyout)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc(hidden)]
    pub fn IButtonFactory<R, F: FnOnce(&IButtonFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Button, IButtonFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IButtonStaticsWithFlyout<R, F: FnOnce(&IButtonStaticsWithFlyout) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Button, IButtonStaticsWithFlyout> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for Button {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for Button {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for Button {}
impl ::core::fmt::Debug for Button {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("Button").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for Button {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.Button;{280335ae-5570-46c7-8e0b-602be71229a2})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for Button {
    type Vtable = IButton_Vtbl;
    const IID: ::windows::core::GUID = <IButton as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for Button {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.Button";
}
impl ::core::convert::From<Button> for ::windows::core::IUnknown {
    fn from(value: Button) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&Button> for ::windows::core::IUnknown {
    fn from(value: &Button) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for Button {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a Button {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<Button> for ::windows::core::IInspectable {
    fn from(value: Button) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&Button> for ::windows::core::IInspectable {
    fn from(value: &Button) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for Button {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a Button {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<Button> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: Button) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&Button> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &Button) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for Button {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &Button {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<Button> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: Button) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&Button> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &Button) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for Button {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &Button {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<Button> for Primitives::ButtonBase {
    fn from(value: Button) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&Button> for Primitives::ButtonBase {
    fn from(value: &Button) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for Button {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for &Button {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ButtonBase>::into(self))
    }
}
impl ::core::convert::From<Button> for ContentControl {
    fn from(value: Button) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Button> for ContentControl {
    fn from(value: &Button) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for Button {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &Button {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<Button> for Control {
    fn from(value: Button) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Button> for Control {
    fn from(value: &Button) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for Button {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &Button {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<Button> for super::FrameworkElement {
    fn from(value: Button) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Button> for super::FrameworkElement {
    fn from(value: &Button) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for Button {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &Button {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<Button> for super::UIElement {
    fn from(value: Button) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Button> for super::UIElement {
    fn from(value: &Button) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for Button {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &Button {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<Button> for super::DependencyObject {
    fn from(value: Button) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Button> for super::DependencyObject {
    fn from(value: &Button) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for Button {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &Button {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for Button {}
unsafe impl ::core::marker::Sync for Button {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct CalendarDatePicker(::windows::core::IUnknown);
impl CalendarDatePicker {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Date(&self) -> ::windows::core::Result<super::super::super::Foundation::IReference<super::super::super::Foundation::DateTime>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Date)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::IReference<super::super::super::Foundation::DateTime>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SetDate<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::IReference<super::super::super::Foundation::DateTime>>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetDate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsCalendarOpen(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsCalendarOpen)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsCalendarOpen(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsCalendarOpen)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DateFormat(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DateFormat)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDateFormat<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetDateFormat)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PlaceholderText(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlaceholderText)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPlaceholderText<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPlaceholderText)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Header(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Header)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeader<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHeader)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTemplate(&self) -> ::windows::core::Result<super::DataTemplate> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTemplate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeaderTemplate<'a, Param0: ::windows::core::IntoParam<'a, super::DataTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHeaderTemplate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CalendarViewStyle(&self) -> ::windows::core::Result<super::Style> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CalendarViewStyle)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Style>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCalendarViewStyle<'a, Param0: ::windows::core::IntoParam<'a, super::Style>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCalendarViewStyle)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn MinDate(&self) -> ::windows::core::Result<super::super::super::Foundation::DateTime> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::DateTime = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MinDate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::DateTime>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SetMinDate<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::DateTime>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMinDate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn MaxDate(&self) -> ::windows::core::Result<super::super::super::Foundation::DateTime> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::DateTime = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxDate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::DateTime>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SetMaxDate<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::DateTime>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMaxDate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTodayHighlighted(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTodayHighlighted)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsTodayHighlighted(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsTodayHighlighted)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DisplayMode(&self) -> ::windows::core::Result<CalendarViewDisplayMode> {
        let this = self;
        unsafe {
            let mut result__: CalendarViewDisplayMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DisplayMode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<CalendarViewDisplayMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDisplayMode(&self, value: CalendarViewDisplayMode) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetDisplayMode)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Globalization'*"]
    #[cfg(feature = "Globalization")]
    pub fn FirstDayOfWeek(&self) -> ::windows::core::Result<super::super::super::Globalization::DayOfWeek> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Globalization::DayOfWeek = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FirstDayOfWeek)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Globalization::DayOfWeek>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Globalization'*"]
    #[cfg(feature = "Globalization")]
    pub fn SetFirstDayOfWeek(&self, value: super::super::super::Globalization::DayOfWeek) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFirstDayOfWeek)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DayOfWeekFormat(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DayOfWeekFormat)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDayOfWeekFormat<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetDayOfWeekFormat)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CalendarIdentifier(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CalendarIdentifier)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCalendarIdentifier<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCalendarIdentifier)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsOutOfScopeEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsOutOfScopeEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsOutOfScopeEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsOutOfScopeEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsGroupLabelVisible(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsGroupLabelVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsGroupLabelVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsGroupLabelVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn CalendarViewDayItemChanging<'a, Param0: ::windows::core::IntoParam<'a, CalendarViewDayItemChangingEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CalendarViewDayItemChanging)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveCalendarViewDayItemChanging<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveCalendarViewDayItemChanging)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn DateChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<CalendarDatePicker, CalendarDatePickerDateChangedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DateChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveDateChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveDateChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Opened<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventHandler<::windows::core::IInspectable>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Opened)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveOpened<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveOpened)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Closed<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventHandler<::windows::core::IInspectable>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Closed)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveClosed<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveClosed)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SetDisplayDate<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::DateTime>>(&self, date: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetDisplayDate)(::core::mem::transmute_copy(this), date.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetYearDecadeDisplayDimensions(&self, columns: i32, rows: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetYearDecadeDisplayDimensions)(::core::mem::transmute_copy(this), columns, rows).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LightDismissOverlayMode(&self) -> ::windows::core::Result<LightDismissOverlayMode> {
        let this = &::windows::core::Interface::cast::<ICalendarDatePicker2>(self)?;
        unsafe {
            let mut result__: LightDismissOverlayMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LightDismissOverlayMode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<LightDismissOverlayMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetLightDismissOverlayMode(&self, value: LightDismissOverlayMode) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICalendarDatePicker2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetLightDismissOverlayMode)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Description(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = &::windows::core::Interface::cast::<ICalendarDatePicker3>(self)?;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Description)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDescription<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICalendarDatePicker3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetDescription)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<CalendarDatePicker> {
        Self::ICalendarDatePickerFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<CalendarDatePicker>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<CalendarDatePicker> {
        Self::ICalendarDatePickerFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<CalendarDatePicker>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarDatePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsCalendarOpenProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarDatePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsCalendarOpenProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DateFormatProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarDatePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DateFormatProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PlaceholderTextProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarDatePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlaceholderTextProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarDatePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTemplateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarDatePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTemplateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CalendarViewStyleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarDatePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CalendarViewStyleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MinDateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarDatePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MinDateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxDateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarDatePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxDateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTodayHighlightedProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarDatePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTodayHighlightedProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DisplayModeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarDatePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DisplayModeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FirstDayOfWeekProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarDatePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FirstDayOfWeekProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DayOfWeekFormatProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarDatePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DayOfWeekFormatProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CalendarIdentifierProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarDatePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CalendarIdentifierProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsOutOfScopeEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarDatePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsOutOfScopeEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsGroupLabelVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarDatePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsGroupLabelVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LightDismissOverlayModeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarDatePickerStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LightDismissOverlayModeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DescriptionProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarDatePickerStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DescriptionProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ICalendarDatePickerFactory<R, F: FnOnce(&ICalendarDatePickerFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<CalendarDatePicker, ICalendarDatePickerFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ICalendarDatePickerStatics<R, F: FnOnce(&ICalendarDatePickerStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<CalendarDatePicker, ICalendarDatePickerStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ICalendarDatePickerStatics2<R, F: FnOnce(&ICalendarDatePickerStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<CalendarDatePicker, ICalendarDatePickerStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ICalendarDatePickerStatics3<R, F: FnOnce(&ICalendarDatePickerStatics3) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<CalendarDatePicker, ICalendarDatePickerStatics3> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for CalendarDatePicker {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for CalendarDatePicker {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for CalendarDatePicker {}
impl ::core::fmt::Debug for CalendarDatePicker {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("CalendarDatePicker").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for CalendarDatePicker {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.CalendarDatePicker;{63c9c16f-668c-4491-9444-d45d8bf4fa29})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for CalendarDatePicker {
    type Vtable = ICalendarDatePicker_Vtbl;
    const IID: ::windows::core::GUID = <ICalendarDatePicker as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for CalendarDatePicker {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.CalendarDatePicker";
}
impl ::core::convert::From<CalendarDatePicker> for ::windows::core::IUnknown {
    fn from(value: CalendarDatePicker) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&CalendarDatePicker> for ::windows::core::IUnknown {
    fn from(value: &CalendarDatePicker) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for CalendarDatePicker {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a CalendarDatePicker {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<CalendarDatePicker> for ::windows::core::IInspectable {
    fn from(value: CalendarDatePicker) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&CalendarDatePicker> for ::windows::core::IInspectable {
    fn from(value: &CalendarDatePicker) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for CalendarDatePicker {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a CalendarDatePicker {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<CalendarDatePicker> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: CalendarDatePicker) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&CalendarDatePicker> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &CalendarDatePicker) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for CalendarDatePicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &CalendarDatePicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<CalendarDatePicker> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: CalendarDatePicker) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&CalendarDatePicker> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &CalendarDatePicker) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for CalendarDatePicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &CalendarDatePicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<CalendarDatePicker> for Control {
    fn from(value: CalendarDatePicker) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&CalendarDatePicker> for Control {
    fn from(value: &CalendarDatePicker) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for CalendarDatePicker {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &CalendarDatePicker {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<CalendarDatePicker> for super::FrameworkElement {
    fn from(value: CalendarDatePicker) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&CalendarDatePicker> for super::FrameworkElement {
    fn from(value: &CalendarDatePicker) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for CalendarDatePicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &CalendarDatePicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<CalendarDatePicker> for super::UIElement {
    fn from(value: CalendarDatePicker) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&CalendarDatePicker> for super::UIElement {
    fn from(value: &CalendarDatePicker) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for CalendarDatePicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &CalendarDatePicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<CalendarDatePicker> for super::DependencyObject {
    fn from(value: CalendarDatePicker) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&CalendarDatePicker> for super::DependencyObject {
    fn from(value: &CalendarDatePicker) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for CalendarDatePicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &CalendarDatePicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for CalendarDatePicker {}
unsafe impl ::core::marker::Sync for CalendarDatePicker {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct CalendarDatePickerDateChangedEventArgs(::windows::core::IUnknown);
impl CalendarDatePickerDateChangedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn NewDate(&self) -> ::windows::core::Result<super::super::super::Foundation::IReference<super::super::super::Foundation::DateTime>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).NewDate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::IReference<super::super::super::Foundation::DateTime>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn OldDate(&self) -> ::windows::core::Result<super::super::super::Foundation::IReference<super::super::super::Foundation::DateTime>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OldDate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::IReference<super::super::super::Foundation::DateTime>>(result__)
        }
    }
}
impl ::core::clone::Clone for CalendarDatePickerDateChangedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for CalendarDatePickerDateChangedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for CalendarDatePickerDateChangedEventArgs {}
impl ::core::fmt::Debug for CalendarDatePickerDateChangedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("CalendarDatePickerDateChangedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for CalendarDatePickerDateChangedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.CalendarDatePickerDateChangedEventArgs;{60d90db2-5010-46ba-842d-a4152c6504e7})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for CalendarDatePickerDateChangedEventArgs {
    type Vtable = ICalendarDatePickerDateChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <ICalendarDatePickerDateChangedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for CalendarDatePickerDateChangedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.CalendarDatePickerDateChangedEventArgs";
}
impl ::core::convert::From<CalendarDatePickerDateChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: CalendarDatePickerDateChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&CalendarDatePickerDateChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &CalendarDatePickerDateChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for CalendarDatePickerDateChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a CalendarDatePickerDateChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<CalendarDatePickerDateChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: CalendarDatePickerDateChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&CalendarDatePickerDateChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &CalendarDatePickerDateChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for CalendarDatePickerDateChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a CalendarDatePickerDateChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for CalendarDatePickerDateChangedEventArgs {}
unsafe impl ::core::marker::Sync for CalendarDatePickerDateChangedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct CalendarView(::windows::core::IUnknown);
impl CalendarView {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CalendarIdentifier(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CalendarIdentifier)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCalendarIdentifier<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCalendarIdentifier)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DayOfWeekFormat(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DayOfWeekFormat)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDayOfWeekFormat<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetDayOfWeekFormat)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsGroupLabelVisible(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsGroupLabelVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsGroupLabelVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsGroupLabelVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DisplayMode(&self) -> ::windows::core::Result<CalendarViewDisplayMode> {
        let this = self;
        unsafe {
            let mut result__: CalendarViewDisplayMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DisplayMode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<CalendarViewDisplayMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDisplayMode(&self, value: CalendarViewDisplayMode) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetDisplayMode)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Globalization'*"]
    #[cfg(feature = "Globalization")]
    pub fn FirstDayOfWeek(&self) -> ::windows::core::Result<super::super::super::Globalization::DayOfWeek> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Globalization::DayOfWeek = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FirstDayOfWeek)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Globalization::DayOfWeek>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Globalization'*"]
    #[cfg(feature = "Globalization")]
    pub fn SetFirstDayOfWeek(&self, value: super::super::super::Globalization::DayOfWeek) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFirstDayOfWeek)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsOutOfScopeEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsOutOfScopeEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsOutOfScopeEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsOutOfScopeEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTodayHighlighted(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTodayHighlighted)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsTodayHighlighted(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsTodayHighlighted)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn MaxDate(&self) -> ::windows::core::Result<super::super::super::Foundation::DateTime> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::DateTime = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxDate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::DateTime>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SetMaxDate<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::DateTime>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMaxDate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn MinDate(&self) -> ::windows::core::Result<super::super::super::Foundation::DateTime> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::DateTime = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MinDate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::DateTime>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SetMinDate<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::DateTime>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMinDate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn NumberOfWeeksInView(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).NumberOfWeeksInView)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetNumberOfWeeksInView(&self, value: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetNumberOfWeeksInView)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn SelectedDates(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVector<super::super::super::Foundation::DateTime>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedDates)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<super::super::super::Foundation::DateTime>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionMode(&self) -> ::windows::core::Result<CalendarViewSelectionMode> {
        let this = self;
        unsafe {
            let mut result__: CalendarViewSelectionMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionMode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<CalendarViewSelectionMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSelectionMode(&self, value: CalendarViewSelectionMode) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectionMode)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn TemplateSettings(&self) -> ::windows::core::Result<Primitives::CalendarViewTemplateSettings> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TemplateSettings)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::CalendarViewTemplateSettings>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn FocusBorderBrush(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FocusBorderBrush)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetFocusBorderBrush<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFocusBorderBrush)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SelectedHoverBorderBrush(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedHoverBorderBrush)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetSelectedHoverBorderBrush<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectedHoverBorderBrush)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SelectedPressedBorderBrush(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedPressedBorderBrush)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetSelectedPressedBorderBrush<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectedPressedBorderBrush)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SelectedBorderBrush(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedBorderBrush)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetSelectedBorderBrush<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectedBorderBrush)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn HoverBorderBrush(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HoverBorderBrush)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetHoverBorderBrush<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHoverBorderBrush)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn PressedBorderBrush(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PressedBorderBrush)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetPressedBorderBrush<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPressedBorderBrush)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn CalendarItemBorderBrush(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CalendarItemBorderBrush)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetCalendarItemBorderBrush<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCalendarItemBorderBrush)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn OutOfScopeBackground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OutOfScopeBackground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetOutOfScopeBackground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetOutOfScopeBackground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn CalendarItemBackground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CalendarItemBackground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetCalendarItemBackground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCalendarItemBackground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn PressedForeground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PressedForeground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetPressedForeground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPressedForeground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn TodayForeground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TodayForeground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetTodayForeground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTodayForeground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn BlackoutForeground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BlackoutForeground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetBlackoutForeground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetBlackoutForeground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SelectedForeground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedForeground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetSelectedForeground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectedForeground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn OutOfScopeForeground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OutOfScopeForeground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetOutOfScopeForeground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetOutOfScopeForeground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn CalendarItemForeground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CalendarItemForeground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetCalendarItemForeground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCalendarItemForeground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn DayItemFontFamily(&self) -> ::windows::core::Result<super::Media::FontFamily> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DayItemFontFamily)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::FontFamily>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetDayItemFontFamily<'a, Param0: ::windows::core::IntoParam<'a, super::Media::FontFamily>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetDayItemFontFamily)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DayItemFontSize(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DayItemFontSize)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDayItemFontSize(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetDayItemFontSize)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn DayItemFontStyle(&self) -> ::windows::core::Result<super::super::Text::FontStyle> {
        let this = self;
        unsafe {
            let mut result__: super::super::Text::FontStyle = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DayItemFontStyle)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Text::FontStyle>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn SetDayItemFontStyle(&self, value: super::super::Text::FontStyle) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetDayItemFontStyle)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn DayItemFontWeight(&self) -> ::windows::core::Result<super::super::Text::FontWeight> {
        let this = self;
        unsafe {
            let mut result__: super::super::Text::FontWeight = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DayItemFontWeight)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Text::FontWeight>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn SetDayItemFontWeight<'a, Param0: ::windows::core::IntoParam<'a, super::super::Text::FontWeight>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetDayItemFontWeight)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn TodayFontWeight(&self) -> ::windows::core::Result<super::super::Text::FontWeight> {
        let this = self;
        unsafe {
            let mut result__: super::super::Text::FontWeight = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TodayFontWeight)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Text::FontWeight>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn SetTodayFontWeight<'a, Param0: ::windows::core::IntoParam<'a, super::super::Text::FontWeight>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTodayFontWeight)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn FirstOfMonthLabelFontFamily(&self) -> ::windows::core::Result<super::Media::FontFamily> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FirstOfMonthLabelFontFamily)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::FontFamily>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetFirstOfMonthLabelFontFamily<'a, Param0: ::windows::core::IntoParam<'a, super::Media::FontFamily>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFirstOfMonthLabelFontFamily)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FirstOfMonthLabelFontSize(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FirstOfMonthLabelFontSize)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetFirstOfMonthLabelFontSize(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFirstOfMonthLabelFontSize)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn FirstOfMonthLabelFontStyle(&self) -> ::windows::core::Result<super::super::Text::FontStyle> {
        let this = self;
        unsafe {
            let mut result__: super::super::Text::FontStyle = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FirstOfMonthLabelFontStyle)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Text::FontStyle>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn SetFirstOfMonthLabelFontStyle(&self, value: super::super::Text::FontStyle) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFirstOfMonthLabelFontStyle)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn FirstOfMonthLabelFontWeight(&self) -> ::windows::core::Result<super::super::Text::FontWeight> {
        let this = self;
        unsafe {
            let mut result__: super::super::Text::FontWeight = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FirstOfMonthLabelFontWeight)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Text::FontWeight>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn SetFirstOfMonthLabelFontWeight<'a, Param0: ::windows::core::IntoParam<'a, super::super::Text::FontWeight>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFirstOfMonthLabelFontWeight)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn MonthYearItemFontFamily(&self) -> ::windows::core::Result<super::Media::FontFamily> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MonthYearItemFontFamily)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::FontFamily>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetMonthYearItemFontFamily<'a, Param0: ::windows::core::IntoParam<'a, super::Media::FontFamily>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMonthYearItemFontFamily)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MonthYearItemFontSize(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MonthYearItemFontSize)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMonthYearItemFontSize(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMonthYearItemFontSize)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn MonthYearItemFontStyle(&self) -> ::windows::core::Result<super::super::Text::FontStyle> {
        let this = self;
        unsafe {
            let mut result__: super::super::Text::FontStyle = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MonthYearItemFontStyle)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Text::FontStyle>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn SetMonthYearItemFontStyle(&self, value: super::super::Text::FontStyle) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMonthYearItemFontStyle)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn MonthYearItemFontWeight(&self) -> ::windows::core::Result<super::super::Text::FontWeight> {
        let this = self;
        unsafe {
            let mut result__: super::super::Text::FontWeight = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MonthYearItemFontWeight)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Text::FontWeight>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn SetMonthYearItemFontWeight<'a, Param0: ::windows::core::IntoParam<'a, super::super::Text::FontWeight>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMonthYearItemFontWeight)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn FirstOfYearDecadeLabelFontFamily(&self) -> ::windows::core::Result<super::Media::FontFamily> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FirstOfYearDecadeLabelFontFamily)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::FontFamily>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetFirstOfYearDecadeLabelFontFamily<'a, Param0: ::windows::core::IntoParam<'a, super::Media::FontFamily>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFirstOfYearDecadeLabelFontFamily)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FirstOfYearDecadeLabelFontSize(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FirstOfYearDecadeLabelFontSize)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetFirstOfYearDecadeLabelFontSize(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFirstOfYearDecadeLabelFontSize)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn FirstOfYearDecadeLabelFontStyle(&self) -> ::windows::core::Result<super::super::Text::FontStyle> {
        let this = self;
        unsafe {
            let mut result__: super::super::Text::FontStyle = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FirstOfYearDecadeLabelFontStyle)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Text::FontStyle>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn SetFirstOfYearDecadeLabelFontStyle(&self, value: super::super::Text::FontStyle) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFirstOfYearDecadeLabelFontStyle)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn FirstOfYearDecadeLabelFontWeight(&self) -> ::windows::core::Result<super::super::Text::FontWeight> {
        let this = self;
        unsafe {
            let mut result__: super::super::Text::FontWeight = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FirstOfYearDecadeLabelFontWeight)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Text::FontWeight>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn SetFirstOfYearDecadeLabelFontWeight<'a, Param0: ::windows::core::IntoParam<'a, super::super::Text::FontWeight>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFirstOfYearDecadeLabelFontWeight)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalDayItemAlignment(&self) -> ::windows::core::Result<super::HorizontalAlignment> {
        let this = self;
        unsafe {
            let mut result__: super::HorizontalAlignment = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalDayItemAlignment)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::HorizontalAlignment>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHorizontalDayItemAlignment(&self, value: super::HorizontalAlignment) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHorizontalDayItemAlignment)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalDayItemAlignment(&self) -> ::windows::core::Result<super::VerticalAlignment> {
        let this = self;
        unsafe {
            let mut result__: super::VerticalAlignment = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalDayItemAlignment)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::VerticalAlignment>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetVerticalDayItemAlignment(&self, value: super::VerticalAlignment) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetVerticalDayItemAlignment)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalFirstOfMonthLabelAlignment(&self) -> ::windows::core::Result<super::HorizontalAlignment> {
        let this = self;
        unsafe {
            let mut result__: super::HorizontalAlignment = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalFirstOfMonthLabelAlignment)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::HorizontalAlignment>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHorizontalFirstOfMonthLabelAlignment(&self, value: super::HorizontalAlignment) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHorizontalFirstOfMonthLabelAlignment)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalFirstOfMonthLabelAlignment(&self) -> ::windows::core::Result<super::VerticalAlignment> {
        let this = self;
        unsafe {
            let mut result__: super::VerticalAlignment = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalFirstOfMonthLabelAlignment)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::VerticalAlignment>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetVerticalFirstOfMonthLabelAlignment(&self, value: super::VerticalAlignment) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetVerticalFirstOfMonthLabelAlignment)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CalendarItemBorderThickness(&self) -> ::windows::core::Result<super::Thickness> {
        let this = self;
        unsafe {
            let mut result__: super::Thickness = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CalendarItemBorderThickness)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Thickness>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCalendarItemBorderThickness<'a, Param0: ::windows::core::IntoParam<'a, super::Thickness>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCalendarItemBorderThickness)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CalendarViewDayItemStyle(&self) -> ::windows::core::Result<super::Style> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CalendarViewDayItemStyle)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Style>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCalendarViewDayItemStyle<'a, Param0: ::windows::core::IntoParam<'a, super::Style>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCalendarViewDayItemStyle)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn CalendarViewDayItemChanging<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<CalendarView, CalendarViewDayItemChangingEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CalendarViewDayItemChanging)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveCalendarViewDayItemChanging<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveCalendarViewDayItemChanging)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SelectedDatesChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<CalendarView, CalendarViewSelectedDatesChangedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedDatesChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveSelectedDatesChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveSelectedDatesChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SetDisplayDate<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::DateTime>>(&self, date: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetDisplayDate)(::core::mem::transmute_copy(this), date.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetYearDecadeDisplayDimensions(&self, columns: i32, rows: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetYearDecadeDisplayDimensions)(::core::mem::transmute_copy(this), columns, rows).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SelectedDisabledBorderBrush(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedDisabledBorderBrush)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetSelectedDisabledBorderBrush<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectedDisabledBorderBrush)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn TodaySelectedInnerBorderBrush(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TodaySelectedInnerBorderBrush)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetTodaySelectedInnerBorderBrush<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetTodaySelectedInnerBorderBrush)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn BlackoutStrikethroughBrush(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BlackoutStrikethroughBrush)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetBlackoutStrikethroughBrush<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetBlackoutStrikethroughBrush)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn BlackoutBackground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BlackoutBackground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetBlackoutBackground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetBlackoutBackground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn CalendarItemHoverBackground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CalendarItemHoverBackground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetCalendarItemHoverBackground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetCalendarItemHoverBackground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn CalendarItemPressedBackground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CalendarItemPressedBackground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetCalendarItemPressedBackground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetCalendarItemPressedBackground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn CalendarItemDisabledBackground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CalendarItemDisabledBackground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetCalendarItemDisabledBackground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetCalendarItemDisabledBackground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn TodayBackground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TodayBackground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetTodayBackground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetTodayBackground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn TodayBlackoutBackground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TodayBlackoutBackground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetTodayBlackoutBackground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetTodayBlackoutBackground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn TodayHoverBackground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TodayHoverBackground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetTodayHoverBackground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetTodayHoverBackground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn TodayPressedBackground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TodayPressedBackground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetTodayPressedBackground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetTodayPressedBackground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn TodayDisabledBackground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TodayDisabledBackground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetTodayDisabledBackground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetTodayDisabledBackground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn TodayBlackoutForeground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TodayBlackoutForeground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetTodayBlackoutForeground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetTodayBlackoutForeground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SelectedHoverForeground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedHoverForeground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetSelectedHoverForeground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectedHoverForeground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SelectedPressedForeground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedPressedForeground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetSelectedPressedForeground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectedPressedForeground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SelectedDisabledForeground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedDisabledForeground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetSelectedDisabledForeground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectedDisabledForeground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn OutOfScopeHoverForeground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OutOfScopeHoverForeground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetOutOfScopeHoverForeground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetOutOfScopeHoverForeground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn OutOfScopePressedForeground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OutOfScopePressedForeground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetOutOfScopePressedForeground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetOutOfScopePressedForeground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn DisabledForeground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DisabledForeground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetDisabledForeground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetDisabledForeground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DayItemMargin(&self) -> ::windows::core::Result<super::Thickness> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe {
            let mut result__: super::Thickness = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DayItemMargin)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Thickness>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDayItemMargin<'a, Param0: ::windows::core::IntoParam<'a, super::Thickness>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetDayItemMargin)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MonthYearItemMargin(&self) -> ::windows::core::Result<super::Thickness> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe {
            let mut result__: super::Thickness = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MonthYearItemMargin)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Thickness>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMonthYearItemMargin<'a, Param0: ::windows::core::IntoParam<'a, super::Thickness>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetMonthYearItemMargin)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FirstOfMonthLabelMargin(&self) -> ::windows::core::Result<super::Thickness> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe {
            let mut result__: super::Thickness = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FirstOfMonthLabelMargin)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Thickness>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetFirstOfMonthLabelMargin<'a, Param0: ::windows::core::IntoParam<'a, super::Thickness>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetFirstOfMonthLabelMargin)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FirstOfYearDecadeLabelMargin(&self) -> ::windows::core::Result<super::Thickness> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe {
            let mut result__: super::Thickness = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FirstOfYearDecadeLabelMargin)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Thickness>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetFirstOfYearDecadeLabelMargin<'a, Param0: ::windows::core::IntoParam<'a, super::Thickness>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetFirstOfYearDecadeLabelMargin)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CalendarItemCornerRadius(&self) -> ::windows::core::Result<super::CornerRadius> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe {
            let mut result__: super::CornerRadius = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CalendarItemCornerRadius)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::CornerRadius>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCalendarItemCornerRadius<'a, Param0: ::windows::core::IntoParam<'a, super::CornerRadius>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICalendarView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetCalendarItemCornerRadius)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<CalendarView> {
        Self::ICalendarViewFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<CalendarView>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<CalendarView> {
        Self::ICalendarViewFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<CalendarView>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CalendarIdentifierProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CalendarIdentifierProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DayOfWeekFormatProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DayOfWeekFormatProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsGroupLabelVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsGroupLabelVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DisplayModeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DisplayModeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FirstDayOfWeekProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FirstDayOfWeekProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsOutOfScopeEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsOutOfScopeEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTodayHighlightedProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTodayHighlightedProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxDateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxDateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MinDateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MinDateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn NumberOfWeeksInViewProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).NumberOfWeeksInViewProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedDatesProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedDatesProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionModeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionModeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TemplateSettingsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TemplateSettingsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FocusBorderBrushProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FocusBorderBrushProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedHoverBorderBrushProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedHoverBorderBrushProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedPressedBorderBrushProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedPressedBorderBrushProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedBorderBrushProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedBorderBrushProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HoverBorderBrushProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HoverBorderBrushProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PressedBorderBrushProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PressedBorderBrushProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CalendarItemBorderBrushProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CalendarItemBorderBrushProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OutOfScopeBackgroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OutOfScopeBackgroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CalendarItemBackgroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CalendarItemBackgroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PressedForegroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PressedForegroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TodayForegroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TodayForegroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BlackoutForegroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BlackoutForegroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedForegroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedForegroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OutOfScopeForegroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OutOfScopeForegroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CalendarItemForegroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CalendarItemForegroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DayItemFontFamilyProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DayItemFontFamilyProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DayItemFontSizeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DayItemFontSizeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DayItemFontStyleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DayItemFontStyleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DayItemFontWeightProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DayItemFontWeightProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TodayFontWeightProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TodayFontWeightProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FirstOfMonthLabelFontFamilyProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FirstOfMonthLabelFontFamilyProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FirstOfMonthLabelFontSizeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FirstOfMonthLabelFontSizeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FirstOfMonthLabelFontStyleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FirstOfMonthLabelFontStyleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FirstOfMonthLabelFontWeightProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FirstOfMonthLabelFontWeightProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MonthYearItemFontFamilyProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MonthYearItemFontFamilyProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MonthYearItemFontSizeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MonthYearItemFontSizeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MonthYearItemFontStyleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MonthYearItemFontStyleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MonthYearItemFontWeightProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MonthYearItemFontWeightProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FirstOfYearDecadeLabelFontFamilyProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FirstOfYearDecadeLabelFontFamilyProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FirstOfYearDecadeLabelFontSizeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FirstOfYearDecadeLabelFontSizeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FirstOfYearDecadeLabelFontStyleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FirstOfYearDecadeLabelFontStyleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FirstOfYearDecadeLabelFontWeightProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FirstOfYearDecadeLabelFontWeightProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalDayItemAlignmentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalDayItemAlignmentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalDayItemAlignmentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalDayItemAlignmentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalFirstOfMonthLabelAlignmentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalFirstOfMonthLabelAlignmentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalFirstOfMonthLabelAlignmentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalFirstOfMonthLabelAlignmentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CalendarItemBorderThicknessProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CalendarItemBorderThicknessProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CalendarViewDayItemStyleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CalendarViewDayItemStyleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedDisabledBorderBrushProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedDisabledBorderBrushProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TodaySelectedInnerBorderBrushProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TodaySelectedInnerBorderBrushProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BlackoutStrikethroughBrushProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BlackoutStrikethroughBrushProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BlackoutBackgroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BlackoutBackgroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CalendarItemHoverBackgroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CalendarItemHoverBackgroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CalendarItemPressedBackgroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CalendarItemPressedBackgroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CalendarItemDisabledBackgroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CalendarItemDisabledBackgroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TodayBackgroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TodayBackgroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TodayBlackoutBackgroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TodayBlackoutBackgroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TodayHoverBackgroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TodayHoverBackgroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TodayPressedBackgroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TodayPressedBackgroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TodayDisabledBackgroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TodayDisabledBackgroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TodayBlackoutForegroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TodayBlackoutForegroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedHoverForegroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedHoverForegroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedPressedForegroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedPressedForegroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedDisabledForegroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedDisabledForegroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OutOfScopeHoverForegroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OutOfScopeHoverForegroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OutOfScopePressedForegroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OutOfScopePressedForegroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DisabledForegroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DisabledForegroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DayItemMarginProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DayItemMarginProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MonthYearItemMarginProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MonthYearItemMarginProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FirstOfMonthLabelMarginProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FirstOfMonthLabelMarginProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FirstOfYearDecadeLabelMarginProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FirstOfYearDecadeLabelMarginProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CalendarItemCornerRadiusProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CalendarItemCornerRadiusProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ICalendarViewFactory<R, F: FnOnce(&ICalendarViewFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<CalendarView, ICalendarViewFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ICalendarViewStatics<R, F: FnOnce(&ICalendarViewStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<CalendarView, ICalendarViewStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ICalendarViewStatics2<R, F: FnOnce(&ICalendarViewStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<CalendarView, ICalendarViewStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for CalendarView {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for CalendarView {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for CalendarView {}
impl ::core::fmt::Debug for CalendarView {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("CalendarView").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for CalendarView {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.CalendarView;{cd639203-dfb5-4312-ac07-c0391824607b})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for CalendarView {
    type Vtable = ICalendarView_Vtbl;
    const IID: ::windows::core::GUID = <ICalendarView as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for CalendarView {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.CalendarView";
}
impl ::core::convert::From<CalendarView> for ::windows::core::IUnknown {
    fn from(value: CalendarView) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&CalendarView> for ::windows::core::IUnknown {
    fn from(value: &CalendarView) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for CalendarView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a CalendarView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<CalendarView> for ::windows::core::IInspectable {
    fn from(value: CalendarView) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&CalendarView> for ::windows::core::IInspectable {
    fn from(value: &CalendarView) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for CalendarView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a CalendarView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<CalendarView> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: CalendarView) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&CalendarView> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &CalendarView) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for CalendarView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &CalendarView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<CalendarView> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: CalendarView) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&CalendarView> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &CalendarView) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for CalendarView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &CalendarView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<CalendarView> for Control {
    fn from(value: CalendarView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&CalendarView> for Control {
    fn from(value: &CalendarView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for CalendarView {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &CalendarView {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<CalendarView> for super::FrameworkElement {
    fn from(value: CalendarView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&CalendarView> for super::FrameworkElement {
    fn from(value: &CalendarView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for CalendarView {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &CalendarView {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<CalendarView> for super::UIElement {
    fn from(value: CalendarView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&CalendarView> for super::UIElement {
    fn from(value: &CalendarView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for CalendarView {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &CalendarView {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<CalendarView> for super::DependencyObject {
    fn from(value: CalendarView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&CalendarView> for super::DependencyObject {
    fn from(value: &CalendarView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for CalendarView {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &CalendarView {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for CalendarView {}
unsafe impl ::core::marker::Sync for CalendarView {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct CalendarViewDayItem(::windows::core::IUnknown);
impl CalendarViewDayItem {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsBlackout(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsBlackout)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsBlackout(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsBlackout)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Date(&self) -> ::windows::core::Result<super::super::super::Foundation::DateTime> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::DateTime = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Date)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::DateTime>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn SetDensityColors<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IIterable<super::super::Color>>>(&self, colors: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetDensityColors)(::core::mem::transmute_copy(this), colors.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<CalendarViewDayItem> {
        Self::ICalendarViewDayItemFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<CalendarViewDayItem>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<CalendarViewDayItem> {
        Self::ICalendarViewDayItemFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<CalendarViewDayItem>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsBlackoutProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewDayItemStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsBlackoutProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICalendarViewDayItemStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ICalendarViewDayItemFactory<R, F: FnOnce(&ICalendarViewDayItemFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<CalendarViewDayItem, ICalendarViewDayItemFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ICalendarViewDayItemStatics<R, F: FnOnce(&ICalendarViewDayItemStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<CalendarViewDayItem, ICalendarViewDayItemStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for CalendarViewDayItem {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for CalendarViewDayItem {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for CalendarViewDayItem {}
impl ::core::fmt::Debug for CalendarViewDayItem {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("CalendarViewDayItem").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for CalendarViewDayItem {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.CalendarViewDayItem;{0fdb2dc5-32c1-4b8f-befc-017b555b32d2})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for CalendarViewDayItem {
    type Vtable = ICalendarViewDayItem_Vtbl;
    const IID: ::windows::core::GUID = <ICalendarViewDayItem as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for CalendarViewDayItem {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.CalendarViewDayItem";
}
impl ::core::convert::From<CalendarViewDayItem> for ::windows::core::IUnknown {
    fn from(value: CalendarViewDayItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&CalendarViewDayItem> for ::windows::core::IUnknown {
    fn from(value: &CalendarViewDayItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for CalendarViewDayItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a CalendarViewDayItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<CalendarViewDayItem> for ::windows::core::IInspectable {
    fn from(value: CalendarViewDayItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&CalendarViewDayItem> for ::windows::core::IInspectable {
    fn from(value: &CalendarViewDayItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for CalendarViewDayItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a CalendarViewDayItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<CalendarViewDayItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: CalendarViewDayItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&CalendarViewDayItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &CalendarViewDayItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for CalendarViewDayItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &CalendarViewDayItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<CalendarViewDayItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: CalendarViewDayItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&CalendarViewDayItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &CalendarViewDayItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for CalendarViewDayItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &CalendarViewDayItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<CalendarViewDayItem> for Control {
    fn from(value: CalendarViewDayItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&CalendarViewDayItem> for Control {
    fn from(value: &CalendarViewDayItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for CalendarViewDayItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &CalendarViewDayItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<CalendarViewDayItem> for super::FrameworkElement {
    fn from(value: CalendarViewDayItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&CalendarViewDayItem> for super::FrameworkElement {
    fn from(value: &CalendarViewDayItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for CalendarViewDayItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &CalendarViewDayItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<CalendarViewDayItem> for super::UIElement {
    fn from(value: CalendarViewDayItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&CalendarViewDayItem> for super::UIElement {
    fn from(value: &CalendarViewDayItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for CalendarViewDayItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &CalendarViewDayItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<CalendarViewDayItem> for super::DependencyObject {
    fn from(value: CalendarViewDayItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&CalendarViewDayItem> for super::DependencyObject {
    fn from(value: &CalendarViewDayItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for CalendarViewDayItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &CalendarViewDayItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for CalendarViewDayItem {}
unsafe impl ::core::marker::Sync for CalendarViewDayItem {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct CalendarViewDayItemChangingEventArgs(::windows::core::IUnknown);
impl CalendarViewDayItemChangingEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn InRecycleQueue(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).InRecycleQueue)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Item(&self) -> ::windows::core::Result<CalendarViewDayItem> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Item)(::core::mem::transmute_copy(this), &mut result__).from_abi::<CalendarViewDayItem>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Phase(&self) -> ::windows::core::Result<u32> {
        let this = self;
        unsafe {
            let mut result__: u32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Phase)(::core::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RegisterUpdateCallback<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<CalendarView, CalendarViewDayItemChangingEventArgs>>>(&self, callback: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RegisterUpdateCallback)(::core::mem::transmute_copy(this), callback.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RegisterUpdateCallbackWithPhase<'a, Param1: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<CalendarView, CalendarViewDayItemChangingEventArgs>>>(&self, callbackphase: u32, callback: Param1) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RegisterUpdateCallbackWithPhase)(::core::mem::transmute_copy(this), callbackphase, callback.into_param().abi()).ok() }
    }
}
impl ::core::clone::Clone for CalendarViewDayItemChangingEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for CalendarViewDayItemChangingEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for CalendarViewDayItemChangingEventArgs {}
impl ::core::fmt::Debug for CalendarViewDayItemChangingEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("CalendarViewDayItemChangingEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for CalendarViewDayItemChangingEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.CalendarViewDayItemChangingEventArgs;{73146666-1fb1-44f9-b7ad-4de859ecc565})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for CalendarViewDayItemChangingEventArgs {
    type Vtable = ICalendarViewDayItemChangingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <ICalendarViewDayItemChangingEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for CalendarViewDayItemChangingEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.CalendarViewDayItemChangingEventArgs";
}
impl ::core::convert::From<CalendarViewDayItemChangingEventArgs> for ::windows::core::IUnknown {
    fn from(value: CalendarViewDayItemChangingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&CalendarViewDayItemChangingEventArgs> for ::windows::core::IUnknown {
    fn from(value: &CalendarViewDayItemChangingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for CalendarViewDayItemChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a CalendarViewDayItemChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<CalendarViewDayItemChangingEventArgs> for ::windows::core::IInspectable {
    fn from(value: CalendarViewDayItemChangingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&CalendarViewDayItemChangingEventArgs> for ::windows::core::IInspectable {
    fn from(value: &CalendarViewDayItemChangingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for CalendarViewDayItemChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a CalendarViewDayItemChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for CalendarViewDayItemChangingEventArgs {}
unsafe impl ::core::marker::Sync for CalendarViewDayItemChangingEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct CalendarViewDayItemChangingEventHandler(pub ::windows::core::IUnknown);
impl CalendarViewDayItemChangingEventHandler {
    pub fn new<F: FnMut(&::core::option::Option<CalendarView>, &::core::option::Option<CalendarViewDayItemChangingEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static>(invoke: F) -> Self {
        let com = CalendarViewDayItemChangingEventHandlerBox::<F> { vtable: &CalendarViewDayItemChangingEventHandlerBox::<F>::VTABLE, count: ::windows::core::RefCount::new(1), invoke };
        unsafe { ::core::mem::transmute(::windows::core::alloc::boxed::Box::new(com)) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Invoke<'a, Param0: ::windows::core::IntoParam<'a, CalendarView>, Param1: ::windows::core::IntoParam<'a, CalendarViewDayItemChangingEventArgs>>(&self, sender: Param0, e: Param1) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Invoke)(::core::mem::transmute_copy(this), sender.into_param().abi(), e.into_param().abi()).ok() }
    }
}
#[repr(C)]
struct CalendarViewDayItemChangingEventHandlerBox<F: FnMut(&::core::option::Option<CalendarView>, &::core::option::Option<CalendarViewDayItemChangingEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static> {
    vtable: *const CalendarViewDayItemChangingEventHandler_Vtbl,
    invoke: F,
    count: ::windows::core::RefCount,
}
impl<F: FnMut(&::core::option::Option<CalendarView>, &::core::option::Option<CalendarViewDayItemChangingEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static> CalendarViewDayItemChangingEventHandlerBox<F> {
    const VTABLE: CalendarViewDayItemChangingEventHandler_Vtbl = CalendarViewDayItemChangingEventHandler_Vtbl { base: ::windows::core::IUnknownVtbl { QueryInterface: Self::QueryInterface, AddRef: Self::AddRef, Release: Self::Release }, Invoke: Self::Invoke };
    unsafe extern "system" fn QueryInterface(this: ::windows::core::RawPtr, iid: &::windows::core::GUID, interface: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        *interface = if iid == &<CalendarViewDayItemChangingEventHandler as ::windows::core::Interface>::IID || iid == &<::windows::core::IUnknown as ::windows::core::Interface>::IID || iid == &<::windows::core::IAgileObject as ::windows::core::Interface>::IID { &mut (*this).vtable as *mut _ as _ } else { ::core::ptr::null_mut() };
        if (*interface).is_null() {
            ::windows::core::HRESULT(-2147467262)
        } else {
            (*this).count.add_ref();
            ::windows::core::HRESULT(0)
        }
    }
    unsafe extern "system" fn AddRef(this: ::windows::core::RawPtr) -> u32 {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        (*this).count.add_ref()
    }
    unsafe extern "system" fn Release(this: ::windows::core::RawPtr) -> u32 {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        let remaining = (*this).count.release();
        if remaining == 0 {
            ::windows::core::alloc::boxed::Box::from_raw(this);
        }
        remaining
    }
    unsafe extern "system" fn Invoke(this: *mut ::core::ffi::c_void, sender: ::windows::core::RawPtr, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        ((*this).invoke)(::core::mem::transmute(&sender), ::core::mem::transmute(&e)).into()
    }
}
impl ::core::clone::Clone for CalendarViewDayItemChangingEventHandler {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for CalendarViewDayItemChangingEventHandler {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for CalendarViewDayItemChangingEventHandler {}
impl ::core::fmt::Debug for CalendarViewDayItemChangingEventHandler {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("CalendarViewDayItemChangingEventHandler").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for CalendarViewDayItemChangingEventHandler {
    type Vtable = CalendarViewDayItemChangingEventHandler_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8d745891_4de3_49cb_974b_083871a3afe6);
}
unsafe impl ::windows::core::RuntimeType for CalendarViewDayItemChangingEventHandler {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"{8d745891-4de3-49cb-974b-083871a3afe6}");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
#[repr(C)]
#[doc(hidden)]
pub struct CalendarViewDayItemChangingEventHandler_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    pub Invoke: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sender: ::windows::core::RawPtr, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct CalendarViewDisplayMode(pub i32);
impl CalendarViewDisplayMode {
    pub const Month: Self = Self(0i32);
    pub const Year: Self = Self(1i32);
    pub const Decade: Self = Self(2i32);
}
impl ::core::marker::Copy for CalendarViewDisplayMode {}
impl ::core::clone::Clone for CalendarViewDisplayMode {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for CalendarViewDisplayMode {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for CalendarViewDisplayMode {
    type Abi = Self;
}
impl ::core::fmt::Debug for CalendarViewDisplayMode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("CalendarViewDisplayMode").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for CalendarViewDisplayMode {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.CalendarViewDisplayMode;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct CalendarViewSelectedDatesChangedEventArgs(::windows::core::IUnknown);
impl CalendarViewSelectedDatesChangedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn AddedDates(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVectorView<super::super::super::Foundation::DateTime>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AddedDates)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVectorView<super::super::super::Foundation::DateTime>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn RemovedDates(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVectorView<super::super::super::Foundation::DateTime>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).RemovedDates)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVectorView<super::super::super::Foundation::DateTime>>(result__)
        }
    }
}
impl ::core::clone::Clone for CalendarViewSelectedDatesChangedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for CalendarViewSelectedDatesChangedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for CalendarViewSelectedDatesChangedEventArgs {}
impl ::core::fmt::Debug for CalendarViewSelectedDatesChangedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("CalendarViewSelectedDatesChangedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for CalendarViewSelectedDatesChangedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.CalendarViewSelectedDatesChangedEventArgs;{ee6069f6-13ef-4896-8ffc-5302b1b17539})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for CalendarViewSelectedDatesChangedEventArgs {
    type Vtable = ICalendarViewSelectedDatesChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <ICalendarViewSelectedDatesChangedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for CalendarViewSelectedDatesChangedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.CalendarViewSelectedDatesChangedEventArgs";
}
impl ::core::convert::From<CalendarViewSelectedDatesChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: CalendarViewSelectedDatesChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&CalendarViewSelectedDatesChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &CalendarViewSelectedDatesChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for CalendarViewSelectedDatesChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a CalendarViewSelectedDatesChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<CalendarViewSelectedDatesChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: CalendarViewSelectedDatesChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&CalendarViewSelectedDatesChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &CalendarViewSelectedDatesChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for CalendarViewSelectedDatesChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a CalendarViewSelectedDatesChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for CalendarViewSelectedDatesChangedEventArgs {}
unsafe impl ::core::marker::Sync for CalendarViewSelectedDatesChangedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct CalendarViewSelectionMode(pub i32);
impl CalendarViewSelectionMode {
    pub const None: Self = Self(0i32);
    pub const Single: Self = Self(1i32);
    pub const Multiple: Self = Self(2i32);
}
impl ::core::marker::Copy for CalendarViewSelectionMode {}
impl ::core::clone::Clone for CalendarViewSelectionMode {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for CalendarViewSelectionMode {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for CalendarViewSelectionMode {
    type Abi = Self;
}
impl ::core::fmt::Debug for CalendarViewSelectionMode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("CalendarViewSelectionMode").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for CalendarViewSelectionMode {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.CalendarViewSelectionMode;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct CandidateWindowAlignment(pub i32);
impl CandidateWindowAlignment {
    pub const Default: Self = Self(0i32);
    pub const BottomEdge: Self = Self(1i32);
}
impl ::core::marker::Copy for CandidateWindowAlignment {}
impl ::core::clone::Clone for CandidateWindowAlignment {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for CandidateWindowAlignment {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for CandidateWindowAlignment {
    type Abi = Self;
}
impl ::core::fmt::Debug for CandidateWindowAlignment {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("CandidateWindowAlignment").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for CandidateWindowAlignment {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.CandidateWindowAlignment;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct CandidateWindowBoundsChangedEventArgs(::windows::core::IUnknown);
impl CandidateWindowBoundsChangedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Bounds(&self) -> ::windows::core::Result<super::super::super::Foundation::Rect> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::Rect = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Bounds)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Rect>(result__)
        }
    }
}
impl ::core::clone::Clone for CandidateWindowBoundsChangedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for CandidateWindowBoundsChangedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for CandidateWindowBoundsChangedEventArgs {}
impl ::core::fmt::Debug for CandidateWindowBoundsChangedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("CandidateWindowBoundsChangedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for CandidateWindowBoundsChangedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.CandidateWindowBoundsChangedEventArgs;{8a946458-83b0-4c32-9450-5169a5838b55})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for CandidateWindowBoundsChangedEventArgs {
    type Vtable = ICandidateWindowBoundsChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <ICandidateWindowBoundsChangedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for CandidateWindowBoundsChangedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.CandidateWindowBoundsChangedEventArgs";
}
impl ::core::convert::From<CandidateWindowBoundsChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: CandidateWindowBoundsChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&CandidateWindowBoundsChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &CandidateWindowBoundsChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for CandidateWindowBoundsChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a CandidateWindowBoundsChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<CandidateWindowBoundsChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: CandidateWindowBoundsChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&CandidateWindowBoundsChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &CandidateWindowBoundsChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for CandidateWindowBoundsChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a CandidateWindowBoundsChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for CandidateWindowBoundsChangedEventArgs {}
unsafe impl ::core::marker::Sync for CandidateWindowBoundsChangedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct Canvas(::windows::core::IUnknown);
impl Canvas {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<Canvas> {
        Self::ICanvasFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<Canvas>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<Canvas> {
        Self::ICanvasFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<Canvas>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LeftProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICanvasStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LeftProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetLeft<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0) -> ::windows::core::Result<f64> {
        Self::ICanvasStatics(|this| unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetLeft)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<f64>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetLeft<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0, length: f64) -> ::windows::core::Result<()> {
        Self::ICanvasStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetLeft)(::core::mem::transmute_copy(this), element.into_param().abi(), length).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TopProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICanvasStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TopProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetTop<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0) -> ::windows::core::Result<f64> {
        Self::ICanvasStatics(|this| unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetTop)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<f64>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTop<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0, length: f64) -> ::windows::core::Result<()> {
        Self::ICanvasStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetTop)(::core::mem::transmute_copy(this), element.into_param().abi(), length).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ZIndexProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICanvasStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ZIndexProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetZIndex<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0) -> ::windows::core::Result<i32> {
        Self::ICanvasStatics(|this| unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetZIndex)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<i32>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetZIndex<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0, value: i32) -> ::windows::core::Result<()> {
        Self::ICanvasStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetZIndex)(::core::mem::transmute_copy(this), element.into_param().abi(), value).ok() })
    }
    #[doc(hidden)]
    pub fn ICanvasFactory<R, F: FnOnce(&ICanvasFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Canvas, ICanvasFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ICanvasStatics<R, F: FnOnce(&ICanvasStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Canvas, ICanvasStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for Canvas {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for Canvas {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for Canvas {}
impl ::core::fmt::Debug for Canvas {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("Canvas").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for Canvas {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.Canvas;{79190e19-cd38-4823-aeae-64a77132f519})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for Canvas {
    type Vtable = ICanvas_Vtbl;
    const IID: ::windows::core::GUID = <ICanvas as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for Canvas {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.Canvas";
}
impl ::core::convert::From<Canvas> for ::windows::core::IUnknown {
    fn from(value: Canvas) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&Canvas> for ::windows::core::IUnknown {
    fn from(value: &Canvas) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for Canvas {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a Canvas {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<Canvas> for ::windows::core::IInspectable {
    fn from(value: Canvas) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&Canvas> for ::windows::core::IInspectable {
    fn from(value: &Canvas) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for Canvas {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a Canvas {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<Canvas> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: Canvas) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&Canvas> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &Canvas) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for Canvas {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &Canvas {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<Canvas> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: Canvas) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&Canvas> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &Canvas) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for Canvas {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &Canvas {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<Canvas> for Panel {
    fn from(value: Canvas) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Canvas> for Panel {
    fn from(value: &Canvas) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Panel> for Canvas {
    fn into_param(self) -> ::windows::core::Param<'a, Panel> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Panel> for &Canvas {
    fn into_param(self) -> ::windows::core::Param<'a, Panel> {
        ::windows::core::Param::Owned(::core::convert::Into::<Panel>::into(self))
    }
}
impl ::core::convert::From<Canvas> for super::FrameworkElement {
    fn from(value: Canvas) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Canvas> for super::FrameworkElement {
    fn from(value: &Canvas) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for Canvas {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &Canvas {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<Canvas> for super::UIElement {
    fn from(value: Canvas) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Canvas> for super::UIElement {
    fn from(value: &Canvas) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for Canvas {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &Canvas {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<Canvas> for super::DependencyObject {
    fn from(value: Canvas) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Canvas> for super::DependencyObject {
    fn from(value: &Canvas) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for Canvas {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &Canvas {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for Canvas {}
unsafe impl ::core::marker::Sync for Canvas {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct CaptureElement(::windows::core::IUnknown);
impl CaptureElement {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<CaptureElement, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Media_Capture'*"]
    #[cfg(feature = "Media_Capture")]
    pub fn Source(&self) -> ::windows::core::Result<super::super::super::Media::Capture::MediaCapture> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Source)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Media::Capture::MediaCapture>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Media_Capture'*"]
    #[cfg(feature = "Media_Capture")]
    pub fn SetSource<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Media::Capture::MediaCapture>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSource)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn Stretch(&self) -> ::windows::core::Result<super::Media::Stretch> {
        let this = self;
        unsafe {
            let mut result__: super::Media::Stretch = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Stretch)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Stretch>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetStretch(&self, value: super::Media::Stretch) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetStretch)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SourceProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICaptureElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SourceProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn StretchProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICaptureElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).StretchProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ICaptureElementStatics<R, F: FnOnce(&ICaptureElementStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<CaptureElement, ICaptureElementStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for CaptureElement {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for CaptureElement {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for CaptureElement {}
impl ::core::fmt::Debug for CaptureElement {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("CaptureElement").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for CaptureElement {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.CaptureElement;{31a5c0e7-f307-4d4a-b626-e978863f5b74})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for CaptureElement {
    type Vtable = ICaptureElement_Vtbl;
    const IID: ::windows::core::GUID = <ICaptureElement as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for CaptureElement {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.CaptureElement";
}
impl ::core::convert::From<CaptureElement> for ::windows::core::IUnknown {
    fn from(value: CaptureElement) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&CaptureElement> for ::windows::core::IUnknown {
    fn from(value: &CaptureElement) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for CaptureElement {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a CaptureElement {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<CaptureElement> for ::windows::core::IInspectable {
    fn from(value: CaptureElement) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&CaptureElement> for ::windows::core::IInspectable {
    fn from(value: &CaptureElement) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for CaptureElement {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a CaptureElement {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<CaptureElement> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: CaptureElement) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&CaptureElement> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &CaptureElement) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for CaptureElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &CaptureElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<CaptureElement> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: CaptureElement) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&CaptureElement> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &CaptureElement) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for CaptureElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &CaptureElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<CaptureElement> for super::FrameworkElement {
    fn from(value: CaptureElement) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&CaptureElement> for super::FrameworkElement {
    fn from(value: &CaptureElement) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for CaptureElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &CaptureElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<CaptureElement> for super::UIElement {
    fn from(value: CaptureElement) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&CaptureElement> for super::UIElement {
    fn from(value: &CaptureElement) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for CaptureElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &CaptureElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<CaptureElement> for super::DependencyObject {
    fn from(value: CaptureElement) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&CaptureElement> for super::DependencyObject {
    fn from(value: &CaptureElement) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for CaptureElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &CaptureElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for CaptureElement {}
unsafe impl ::core::marker::Sync for CaptureElement {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct CharacterCasing(pub i32);
impl CharacterCasing {
    pub const Normal: Self = Self(0i32);
    pub const Lower: Self = Self(1i32);
    pub const Upper: Self = Self(2i32);
}
impl ::core::marker::Copy for CharacterCasing {}
impl ::core::clone::Clone for CharacterCasing {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for CharacterCasing {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for CharacterCasing {
    type Abi = Self;
}
impl ::core::fmt::Debug for CharacterCasing {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("CharacterCasing").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for CharacterCasing {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.CharacterCasing;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct CheckBox(::windows::core::IUnknown);
impl CheckBox {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<CheckBox> {
        Self::ICheckBoxFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<CheckBox>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<CheckBox> {
        Self::ICheckBoxFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<CheckBox>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ICheckBoxFactory<R, F: FnOnce(&ICheckBoxFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<CheckBox, ICheckBoxFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for CheckBox {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for CheckBox {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for CheckBox {}
impl ::core::fmt::Debug for CheckBox {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("CheckBox").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for CheckBox {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.CheckBox;{2294c894-7e2a-4b70-b088-8f5d814875ba})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for CheckBox {
    type Vtable = ICheckBox_Vtbl;
    const IID: ::windows::core::GUID = <ICheckBox as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for CheckBox {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.CheckBox";
}
impl ::core::convert::From<CheckBox> for ::windows::core::IUnknown {
    fn from(value: CheckBox) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&CheckBox> for ::windows::core::IUnknown {
    fn from(value: &CheckBox) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for CheckBox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a CheckBox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<CheckBox> for ::windows::core::IInspectable {
    fn from(value: CheckBox) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&CheckBox> for ::windows::core::IInspectable {
    fn from(value: &CheckBox) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for CheckBox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a CheckBox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<CheckBox> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: CheckBox) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&CheckBox> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &CheckBox) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for CheckBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &CheckBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<CheckBox> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: CheckBox) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&CheckBox> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &CheckBox) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for CheckBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &CheckBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<CheckBox> for Primitives::ToggleButton {
    fn from(value: CheckBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&CheckBox> for Primitives::ToggleButton {
    fn from(value: &CheckBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ToggleButton> for CheckBox {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ToggleButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ToggleButton> for &CheckBox {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ToggleButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ToggleButton>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<CheckBox> for Primitives::ButtonBase {
    fn from(value: CheckBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&CheckBox> for Primitives::ButtonBase {
    fn from(value: &CheckBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for CheckBox {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for &CheckBox {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ButtonBase>::into(self))
    }
}
impl ::core::convert::From<CheckBox> for ContentControl {
    fn from(value: CheckBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&CheckBox> for ContentControl {
    fn from(value: &CheckBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for CheckBox {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &CheckBox {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<CheckBox> for Control {
    fn from(value: CheckBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&CheckBox> for Control {
    fn from(value: &CheckBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for CheckBox {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &CheckBox {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<CheckBox> for super::FrameworkElement {
    fn from(value: CheckBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&CheckBox> for super::FrameworkElement {
    fn from(value: &CheckBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for CheckBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &CheckBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<CheckBox> for super::UIElement {
    fn from(value: CheckBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&CheckBox> for super::UIElement {
    fn from(value: &CheckBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for CheckBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &CheckBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<CheckBox> for super::DependencyObject {
    fn from(value: CheckBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&CheckBox> for super::DependencyObject {
    fn from(value: &CheckBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for CheckBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &CheckBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for CheckBox {}
unsafe impl ::core::marker::Sync for CheckBox {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ChoosingGroupHeaderContainerEventArgs(::windows::core::IUnknown);
impl ChoosingGroupHeaderContainerEventArgs {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ChoosingGroupHeaderContainerEventArgs, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GroupHeaderContainer(&self) -> ::windows::core::Result<ListViewBaseHeaderItem> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GroupHeaderContainer)(::core::mem::transmute_copy(this), &mut result__).from_abi::<ListViewBaseHeaderItem>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetGroupHeaderContainer<'a, Param0: ::windows::core::IntoParam<'a, ListViewBaseHeaderItem>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetGroupHeaderContainer)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GroupIndex(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GroupIndex)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Group(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Group)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
}
impl ::core::clone::Clone for ChoosingGroupHeaderContainerEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ChoosingGroupHeaderContainerEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ChoosingGroupHeaderContainerEventArgs {}
impl ::core::fmt::Debug for ChoosingGroupHeaderContainerEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ChoosingGroupHeaderContainerEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ChoosingGroupHeaderContainerEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ChoosingGroupHeaderContainerEventArgs;{67db44d6-d201-4d72-beac-5e8e58afd8c7})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ChoosingGroupHeaderContainerEventArgs {
    type Vtable = IChoosingGroupHeaderContainerEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IChoosingGroupHeaderContainerEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ChoosingGroupHeaderContainerEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ChoosingGroupHeaderContainerEventArgs";
}
impl ::core::convert::From<ChoosingGroupHeaderContainerEventArgs> for ::windows::core::IUnknown {
    fn from(value: ChoosingGroupHeaderContainerEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ChoosingGroupHeaderContainerEventArgs> for ::windows::core::IUnknown {
    fn from(value: &ChoosingGroupHeaderContainerEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ChoosingGroupHeaderContainerEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ChoosingGroupHeaderContainerEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ChoosingGroupHeaderContainerEventArgs> for ::windows::core::IInspectable {
    fn from(value: ChoosingGroupHeaderContainerEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ChoosingGroupHeaderContainerEventArgs> for ::windows::core::IInspectable {
    fn from(value: &ChoosingGroupHeaderContainerEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ChoosingGroupHeaderContainerEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ChoosingGroupHeaderContainerEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for ChoosingGroupHeaderContainerEventArgs {}
unsafe impl ::core::marker::Sync for ChoosingGroupHeaderContainerEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ChoosingItemContainerEventArgs(::windows::core::IUnknown);
impl ChoosingItemContainerEventArgs {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ChoosingItemContainerEventArgs, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemIndex(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemIndex)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Item(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Item)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn ItemContainer(&self) -> ::windows::core::Result<Primitives::SelectorItem> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemContainer)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::SelectorItem>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn SetItemContainer<'a, Param0: ::windows::core::IntoParam<'a, Primitives::SelectorItem>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetItemContainer)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsContainerPrepared(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsContainerPrepared)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsContainerPrepared(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsContainerPrepared)(::core::mem::transmute_copy(this), value).ok() }
    }
}
impl ::core::clone::Clone for ChoosingItemContainerEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ChoosingItemContainerEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ChoosingItemContainerEventArgs {}
impl ::core::fmt::Debug for ChoosingItemContainerEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ChoosingItemContainerEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ChoosingItemContainerEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ChoosingItemContainerEventArgs;{9bb43bce-ae67-4a80-8363-e3fe1b244f2c})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ChoosingItemContainerEventArgs {
    type Vtable = IChoosingItemContainerEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IChoosingItemContainerEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ChoosingItemContainerEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ChoosingItemContainerEventArgs";
}
impl ::core::convert::From<ChoosingItemContainerEventArgs> for ::windows::core::IUnknown {
    fn from(value: ChoosingItemContainerEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ChoosingItemContainerEventArgs> for ::windows::core::IUnknown {
    fn from(value: &ChoosingItemContainerEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ChoosingItemContainerEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ChoosingItemContainerEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ChoosingItemContainerEventArgs> for ::windows::core::IInspectable {
    fn from(value: ChoosingItemContainerEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ChoosingItemContainerEventArgs> for ::windows::core::IInspectable {
    fn from(value: &ChoosingItemContainerEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ChoosingItemContainerEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ChoosingItemContainerEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for ChoosingItemContainerEventArgs {}
unsafe impl ::core::marker::Sync for ChoosingItemContainerEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct CleanUpVirtualizedItemEventArgs(::windows::core::IUnknown);
impl CleanUpVirtualizedItemEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Value(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Value)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn UIElement(&self) -> ::windows::core::Result<super::UIElement> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).UIElement)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::UIElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Cancel(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Cancel)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCancel(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCancel)(::core::mem::transmute_copy(this), value).ok() }
    }
}
impl ::core::clone::Clone for CleanUpVirtualizedItemEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for CleanUpVirtualizedItemEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for CleanUpVirtualizedItemEventArgs {}
impl ::core::fmt::Debug for CleanUpVirtualizedItemEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("CleanUpVirtualizedItemEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for CleanUpVirtualizedItemEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.CleanUpVirtualizedItemEventArgs;{ea05cce9-937c-4120-8406-792185784338})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for CleanUpVirtualizedItemEventArgs {
    type Vtable = ICleanUpVirtualizedItemEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <ICleanUpVirtualizedItemEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for CleanUpVirtualizedItemEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.CleanUpVirtualizedItemEventArgs";
}
impl ::core::convert::From<CleanUpVirtualizedItemEventArgs> for ::windows::core::IUnknown {
    fn from(value: CleanUpVirtualizedItemEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&CleanUpVirtualizedItemEventArgs> for ::windows::core::IUnknown {
    fn from(value: &CleanUpVirtualizedItemEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for CleanUpVirtualizedItemEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a CleanUpVirtualizedItemEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<CleanUpVirtualizedItemEventArgs> for ::windows::core::IInspectable {
    fn from(value: CleanUpVirtualizedItemEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&CleanUpVirtualizedItemEventArgs> for ::windows::core::IInspectable {
    fn from(value: &CleanUpVirtualizedItemEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for CleanUpVirtualizedItemEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a CleanUpVirtualizedItemEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<CleanUpVirtualizedItemEventArgs> for super::RoutedEventArgs {
    fn from(value: CleanUpVirtualizedItemEventArgs) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&CleanUpVirtualizedItemEventArgs> for super::RoutedEventArgs {
    fn from(value: &CleanUpVirtualizedItemEventArgs) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::RoutedEventArgs> for CleanUpVirtualizedItemEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, super::RoutedEventArgs> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::RoutedEventArgs> for &CleanUpVirtualizedItemEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, super::RoutedEventArgs> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::RoutedEventArgs>::into(self))
    }
}
unsafe impl ::core::marker::Send for CleanUpVirtualizedItemEventArgs {}
unsafe impl ::core::marker::Sync for CleanUpVirtualizedItemEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct CleanUpVirtualizedItemEventHandler(pub ::windows::core::IUnknown);
impl CleanUpVirtualizedItemEventHandler {
    pub fn new<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<CleanUpVirtualizedItemEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static>(invoke: F) -> Self {
        let com = CleanUpVirtualizedItemEventHandlerBox::<F> { vtable: &CleanUpVirtualizedItemEventHandlerBox::<F>::VTABLE, count: ::windows::core::RefCount::new(1), invoke };
        unsafe { ::core::mem::transmute(::windows::core::alloc::boxed::Box::new(com)) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Invoke<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>, Param1: ::windows::core::IntoParam<'a, CleanUpVirtualizedItemEventArgs>>(&self, sender: Param0, e: Param1) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Invoke)(::core::mem::transmute_copy(this), sender.into_param().abi(), e.into_param().abi()).ok() }
    }
}
#[repr(C)]
struct CleanUpVirtualizedItemEventHandlerBox<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<CleanUpVirtualizedItemEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static> {
    vtable: *const CleanUpVirtualizedItemEventHandler_Vtbl,
    invoke: F,
    count: ::windows::core::RefCount,
}
impl<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<CleanUpVirtualizedItemEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static> CleanUpVirtualizedItemEventHandlerBox<F> {
    const VTABLE: CleanUpVirtualizedItemEventHandler_Vtbl = CleanUpVirtualizedItemEventHandler_Vtbl { base: ::windows::core::IUnknownVtbl { QueryInterface: Self::QueryInterface, AddRef: Self::AddRef, Release: Self::Release }, Invoke: Self::Invoke };
    unsafe extern "system" fn QueryInterface(this: ::windows::core::RawPtr, iid: &::windows::core::GUID, interface: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        *interface = if iid == &<CleanUpVirtualizedItemEventHandler as ::windows::core::Interface>::IID || iid == &<::windows::core::IUnknown as ::windows::core::Interface>::IID || iid == &<::windows::core::IAgileObject as ::windows::core::Interface>::IID { &mut (*this).vtable as *mut _ as _ } else { ::core::ptr::null_mut() };
        if (*interface).is_null() {
            ::windows::core::HRESULT(-2147467262)
        } else {
            (*this).count.add_ref();
            ::windows::core::HRESULT(0)
        }
    }
    unsafe extern "system" fn AddRef(this: ::windows::core::RawPtr) -> u32 {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        (*this).count.add_ref()
    }
    unsafe extern "system" fn Release(this: ::windows::core::RawPtr) -> u32 {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        let remaining = (*this).count.release();
        if remaining == 0 {
            ::windows::core::alloc::boxed::Box::from_raw(this);
        }
        remaining
    }
    unsafe extern "system" fn Invoke(this: *mut ::core::ffi::c_void, sender: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        ((*this).invoke)(::core::mem::transmute(&sender), ::core::mem::transmute(&e)).into()
    }
}
impl ::core::clone::Clone for CleanUpVirtualizedItemEventHandler {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for CleanUpVirtualizedItemEventHandler {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for CleanUpVirtualizedItemEventHandler {}
impl ::core::fmt::Debug for CleanUpVirtualizedItemEventHandler {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("CleanUpVirtualizedItemEventHandler").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for CleanUpVirtualizedItemEventHandler {
    type Vtable = CleanUpVirtualizedItemEventHandler_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xcacad0d6_0f0d_4870_884d_f2dedf674288);
}
unsafe impl ::windows::core::RuntimeType for CleanUpVirtualizedItemEventHandler {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"{cacad0d6-0f0d-4870-884d-f2dedf674288}");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
#[repr(C)]
#[doc(hidden)]
pub struct CleanUpVirtualizedItemEventHandler_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    pub Invoke: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sender: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct ClickMode(pub i32);
impl ClickMode {
    pub const Release: Self = Self(0i32);
    pub const Press: Self = Self(1i32);
    pub const Hover: Self = Self(2i32);
}
impl ::core::marker::Copy for ClickMode {}
impl ::core::clone::Clone for ClickMode {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ClickMode {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ClickMode {
    type Abi = Self;
}
impl ::core::fmt::Debug for ClickMode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ClickMode").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ClickMode {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.ClickMode;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ColorChangedEventArgs(::windows::core::IUnknown);
impl ColorChangedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OldColor(&self) -> ::windows::core::Result<super::super::Color> {
        let this = self;
        unsafe {
            let mut result__: super::super::Color = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OldColor)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Color>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn NewColor(&self) -> ::windows::core::Result<super::super::Color> {
        let this = self;
        unsafe {
            let mut result__: super::super::Color = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).NewColor)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Color>(result__)
        }
    }
}
impl ::core::clone::Clone for ColorChangedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ColorChangedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ColorChangedEventArgs {}
impl ::core::fmt::Debug for ColorChangedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ColorChangedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ColorChangedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ColorChangedEventArgs;{34f7201f-aad0-4c3a-b97b-2abf36455539})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ColorChangedEventArgs {
    type Vtable = IColorChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IColorChangedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ColorChangedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ColorChangedEventArgs";
}
impl ::core::convert::From<ColorChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: ColorChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ColorChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &ColorChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ColorChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ColorChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ColorChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: ColorChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ColorChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &ColorChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ColorChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ColorChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for ColorChangedEventArgs {}
unsafe impl ::core::marker::Sync for ColorChangedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ColorPicker(::windows::core::IUnknown);
impl ColorPicker {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Color(&self) -> ::windows::core::Result<super::super::Color> {
        let this = self;
        unsafe {
            let mut result__: super::super::Color = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Color)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Color>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetColor<'a, Param0: ::windows::core::IntoParam<'a, super::super::Color>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetColor)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn PreviousColor(&self) -> ::windows::core::Result<super::super::super::Foundation::IReference<super::super::Color>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PreviousColor)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::IReference<super::super::Color>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SetPreviousColor<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::IReference<super::super::Color>>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPreviousColor)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsAlphaEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsAlphaEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsAlphaEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsAlphaEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsColorSpectrumVisible(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsColorSpectrumVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsColorSpectrumVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsColorSpectrumVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsColorPreviewVisible(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsColorPreviewVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsColorPreviewVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsColorPreviewVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsColorSliderVisible(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsColorSliderVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsColorSliderVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsColorSliderVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsAlphaSliderVisible(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsAlphaSliderVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsAlphaSliderVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsAlphaSliderVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsMoreButtonVisible(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsMoreButtonVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsMoreButtonVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsMoreButtonVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsColorChannelTextInputVisible(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsColorChannelTextInputVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsColorChannelTextInputVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsColorChannelTextInputVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsAlphaTextInputVisible(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsAlphaTextInputVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsAlphaTextInputVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsAlphaTextInputVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsHexInputVisible(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsHexInputVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsHexInputVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsHexInputVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MinHue(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MinHue)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMinHue(&self, value: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMinHue)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxHue(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxHue)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMaxHue(&self, value: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMaxHue)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MinSaturation(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MinSaturation)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMinSaturation(&self, value: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMinSaturation)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxSaturation(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxSaturation)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMaxSaturation(&self, value: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMaxSaturation)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MinValue(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MinValue)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMinValue(&self, value: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMinValue)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxValue(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxValue)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMaxValue(&self, value: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMaxValue)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ColorSpectrumShape(&self) -> ::windows::core::Result<ColorSpectrumShape> {
        let this = self;
        unsafe {
            let mut result__: ColorSpectrumShape = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ColorSpectrumShape)(::core::mem::transmute_copy(this), &mut result__).from_abi::<ColorSpectrumShape>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetColorSpectrumShape(&self, value: ColorSpectrumShape) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetColorSpectrumShape)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ColorSpectrumComponents(&self) -> ::windows::core::Result<ColorSpectrumComponents> {
        let this = self;
        unsafe {
            let mut result__: ColorSpectrumComponents = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ColorSpectrumComponents)(::core::mem::transmute_copy(this), &mut result__).from_abi::<ColorSpectrumComponents>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetColorSpectrumComponents(&self, value: ColorSpectrumComponents) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetColorSpectrumComponents)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ColorChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<ColorPicker, ColorChangedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ColorChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveColorChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveColorChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<ColorPicker> {
        Self::IColorPickerFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<ColorPicker>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<ColorPicker> {
        Self::IColorPickerFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<ColorPicker>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ColorProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IColorPickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ColorProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PreviousColorProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IColorPickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PreviousColorProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsAlphaEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IColorPickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsAlphaEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsColorSpectrumVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IColorPickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsColorSpectrumVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsColorPreviewVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IColorPickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsColorPreviewVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsColorSliderVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IColorPickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsColorSliderVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsAlphaSliderVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IColorPickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsAlphaSliderVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsMoreButtonVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IColorPickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsMoreButtonVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsColorChannelTextInputVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IColorPickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsColorChannelTextInputVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsAlphaTextInputVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IColorPickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsAlphaTextInputVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsHexInputVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IColorPickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsHexInputVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MinHueProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IColorPickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MinHueProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxHueProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IColorPickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxHueProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MinSaturationProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IColorPickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MinSaturationProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxSaturationProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IColorPickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxSaturationProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MinValueProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IColorPickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MinValueProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxValueProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IColorPickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxValueProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ColorSpectrumShapeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IColorPickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ColorSpectrumShapeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ColorSpectrumComponentsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IColorPickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ColorSpectrumComponentsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IColorPickerFactory<R, F: FnOnce(&IColorPickerFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ColorPicker, IColorPickerFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IColorPickerStatics<R, F: FnOnce(&IColorPickerStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ColorPicker, IColorPickerStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for ColorPicker {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ColorPicker {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ColorPicker {}
impl ::core::fmt::Debug for ColorPicker {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ColorPicker").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ColorPicker {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ColorPicker;{6232e371-5c64-43cb-8b35-7f82dde36740})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ColorPicker {
    type Vtable = IColorPicker_Vtbl;
    const IID: ::windows::core::GUID = <IColorPicker as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ColorPicker {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ColorPicker";
}
impl ::core::convert::From<ColorPicker> for ::windows::core::IUnknown {
    fn from(value: ColorPicker) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ColorPicker> for ::windows::core::IUnknown {
    fn from(value: &ColorPicker) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ColorPicker {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ColorPicker {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ColorPicker> for ::windows::core::IInspectable {
    fn from(value: ColorPicker) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ColorPicker> for ::windows::core::IInspectable {
    fn from(value: &ColorPicker) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ColorPicker {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ColorPicker {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ColorPicker> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: ColorPicker) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ColorPicker> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &ColorPicker) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for ColorPicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &ColorPicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ColorPicker> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: ColorPicker) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ColorPicker> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &ColorPicker) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for ColorPicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &ColorPicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<ColorPicker> for Control {
    fn from(value: ColorPicker) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ColorPicker> for Control {
    fn from(value: &ColorPicker) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for ColorPicker {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &ColorPicker {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<ColorPicker> for super::FrameworkElement {
    fn from(value: ColorPicker) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ColorPicker> for super::FrameworkElement {
    fn from(value: &ColorPicker) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for ColorPicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &ColorPicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<ColorPicker> for super::UIElement {
    fn from(value: ColorPicker) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ColorPicker> for super::UIElement {
    fn from(value: &ColorPicker) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for ColorPicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &ColorPicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<ColorPicker> for super::DependencyObject {
    fn from(value: ColorPicker) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ColorPicker> for super::DependencyObject {
    fn from(value: &ColorPicker) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for ColorPicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &ColorPicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for ColorPicker {}
unsafe impl ::core::marker::Sync for ColorPicker {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct ColorPickerHsvChannel(pub i32);
impl ColorPickerHsvChannel {
    pub const Hue: Self = Self(0i32);
    pub const Saturation: Self = Self(1i32);
    pub const Value: Self = Self(2i32);
    pub const Alpha: Self = Self(3i32);
}
impl ::core::marker::Copy for ColorPickerHsvChannel {}
impl ::core::clone::Clone for ColorPickerHsvChannel {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ColorPickerHsvChannel {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ColorPickerHsvChannel {
    type Abi = Self;
}
impl ::core::fmt::Debug for ColorPickerHsvChannel {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ColorPickerHsvChannel").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ColorPickerHsvChannel {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.ColorPickerHsvChannel;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct ColorSpectrumComponents(pub i32);
impl ColorSpectrumComponents {
    pub const HueValue: Self = Self(0i32);
    pub const ValueHue: Self = Self(1i32);
    pub const HueSaturation: Self = Self(2i32);
    pub const SaturationHue: Self = Self(3i32);
    pub const SaturationValue: Self = Self(4i32);
    pub const ValueSaturation: Self = Self(5i32);
}
impl ::core::marker::Copy for ColorSpectrumComponents {}
impl ::core::clone::Clone for ColorSpectrumComponents {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ColorSpectrumComponents {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ColorSpectrumComponents {
    type Abi = Self;
}
impl ::core::fmt::Debug for ColorSpectrumComponents {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ColorSpectrumComponents").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ColorSpectrumComponents {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.ColorSpectrumComponents;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct ColorSpectrumShape(pub i32);
impl ColorSpectrumShape {
    pub const Box: Self = Self(0i32);
    pub const Ring: Self = Self(1i32);
}
impl ::core::marker::Copy for ColorSpectrumShape {}
impl ::core::clone::Clone for ColorSpectrumShape {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ColorSpectrumShape {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ColorSpectrumShape {
    type Abi = Self;
}
impl ::core::fmt::Debug for ColorSpectrumShape {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ColorSpectrumShape").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ColorSpectrumShape {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.ColorSpectrumShape;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ColumnDefinition(::windows::core::IUnknown);
impl ColumnDefinition {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ColumnDefinition, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Width(&self) -> ::windows::core::Result<super::GridLength> {
        let this = self;
        unsafe {
            let mut result__: super::GridLength = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Width)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::GridLength>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetWidth<'a, Param0: ::windows::core::IntoParam<'a, super::GridLength>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetWidth)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxWidth(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxWidth)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMaxWidth(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMaxWidth)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MinWidth(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MinWidth)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMinWidth(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMinWidth)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ActualWidth(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ActualWidth)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn WidthProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IColumnDefinitionStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).WidthProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxWidthProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IColumnDefinitionStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxWidthProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MinWidthProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IColumnDefinitionStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MinWidthProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IColumnDefinitionStatics<R, F: FnOnce(&IColumnDefinitionStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ColumnDefinition, IColumnDefinitionStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for ColumnDefinition {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ColumnDefinition {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ColumnDefinition {}
impl ::core::fmt::Debug for ColumnDefinition {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ColumnDefinition").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ColumnDefinition {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ColumnDefinition;{f7f1b229-f024-467f-970a-7e705615db7b})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ColumnDefinition {
    type Vtable = IColumnDefinition_Vtbl;
    const IID: ::windows::core::GUID = <IColumnDefinition as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ColumnDefinition {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ColumnDefinition";
}
impl ::core::convert::From<ColumnDefinition> for ::windows::core::IUnknown {
    fn from(value: ColumnDefinition) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ColumnDefinition> for ::windows::core::IUnknown {
    fn from(value: &ColumnDefinition) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ColumnDefinition {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ColumnDefinition {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ColumnDefinition> for ::windows::core::IInspectable {
    fn from(value: ColumnDefinition) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ColumnDefinition> for ::windows::core::IInspectable {
    fn from(value: &ColumnDefinition) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ColumnDefinition {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ColumnDefinition {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ColumnDefinition> for super::DependencyObject {
    fn from(value: ColumnDefinition) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ColumnDefinition> for super::DependencyObject {
    fn from(value: &ColumnDefinition) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for ColumnDefinition {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &ColumnDefinition {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for ColumnDefinition {}
unsafe impl ::core::marker::Sync for ColumnDefinition {}
#[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
#[cfg(feature = "Foundation_Collections")]
#[repr(transparent)]
pub struct ColumnDefinitionCollection(::windows::core::IUnknown);
#[cfg(feature = "Foundation_Collections")]
impl ColumnDefinitionCollection {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn First(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IIterator<ColumnDefinition>> {
        let this = &::windows::core::Interface::cast::<super::super::super::Foundation::Collections::IIterable<ColumnDefinition>>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).First)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IIterator<ColumnDefinition>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn GetAt(&self, index: u32) -> ::windows::core::Result<ColumnDefinition> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetAt)(::core::mem::transmute_copy(this), index, &mut result__).from_abi::<ColumnDefinition>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn Size(&self) -> ::windows::core::Result<u32> {
        let this = self;
        unsafe {
            let mut result__: u32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Size)(::core::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn GetView(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVectorView<ColumnDefinition>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetView)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVectorView<ColumnDefinition>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn IndexOf<'a, Param0: ::windows::core::IntoParam<'a, ColumnDefinition>>(&self, value: Param0, index: &mut u32) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IndexOf)(::core::mem::transmute_copy(this), value.into_param().abi(), index, &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn SetAt<'a, Param1: ::windows::core::IntoParam<'a, ColumnDefinition>>(&self, index: u32, value: Param1) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetAt)(::core::mem::transmute_copy(this), index, value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn InsertAt<'a, Param1: ::windows::core::IntoParam<'a, ColumnDefinition>>(&self, index: u32, value: Param1) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).InsertAt)(::core::mem::transmute_copy(this), index, value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn RemoveAt(&self, index: u32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveAt)(::core::mem::transmute_copy(this), index).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn Append<'a, Param0: ::windows::core::IntoParam<'a, ColumnDefinition>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Append)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn RemoveAtEnd(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveAtEnd)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn Clear(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Clear)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn GetMany(&self, startindex: u32, items: &mut [::core::option::Option<ColumnDefinition>]) -> ::windows::core::Result<u32> {
        let this = self;
        unsafe {
            let mut result__: u32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetMany)(::core::mem::transmute_copy(this), startindex, items.len() as u32, ::core::mem::transmute_copy(&items), &mut result__).from_abi::<u32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn ReplaceAll(&self, items: &[::core::option::Option<ColumnDefinition>]) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).ReplaceAll)(::core::mem::transmute_copy(this), items.len() as u32, ::core::mem::transmute(items.as_ptr())).ok() }
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::clone::Clone for ColumnDefinitionCollection {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::cmp::PartialEq for ColumnDefinitionCollection {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::cmp::Eq for ColumnDefinitionCollection {}
#[cfg(feature = "Foundation_Collections")]
impl ::core::fmt::Debug for ColumnDefinitionCollection {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ColumnDefinitionCollection").field(&self.0).finish()
    }
}
#[cfg(feature = "Foundation_Collections")]
unsafe impl ::windows::core::RuntimeType for ColumnDefinitionCollection {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ColumnDefinitionCollection;pinterface({913337e9-11a1-4345-a3a2-4e7f956e222d};rc(Windows.UI.Xaml.Controls.ColumnDefinition;{f7f1b229-f024-467f-970a-7e705615db7b})))");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
#[cfg(feature = "Foundation_Collections")]
unsafe impl ::windows::core::Interface for ColumnDefinitionCollection {
    type Vtable = super::super::super::Foundation::Collections::IVector_Vtbl<ColumnDefinition>;
    const IID: ::windows::core::GUID = <super::super::super::Foundation::Collections::IVector<ColumnDefinition> as ::windows::core::Interface>::IID;
}
#[cfg(feature = "Foundation_Collections")]
impl ::windows::core::RuntimeName for ColumnDefinitionCollection {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ColumnDefinitionCollection";
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::iter::IntoIterator for ColumnDefinitionCollection {
    type Item = ColumnDefinition;
    type IntoIter = super::super::super::Foundation::Collections::VectorIterator<Self::Item>;
    fn into_iter(self) -> Self::IntoIter {
        ::core::iter::IntoIterator::into_iter(&self)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::iter::IntoIterator for &ColumnDefinitionCollection {
    type Item = ColumnDefinition;
    type IntoIter = super::super::super::Foundation::Collections::VectorIterator<Self::Item>;
    fn into_iter(self) -> Self::IntoIter {
        super::super::super::Foundation::Collections::VectorIterator::new(::core::convert::TryInto::try_into(self).ok())
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::From<ColumnDefinitionCollection> for ::windows::core::IUnknown {
    fn from(value: ColumnDefinitionCollection) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::From<&ColumnDefinitionCollection> for ::windows::core::IUnknown {
    fn from(value: &ColumnDefinitionCollection) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ColumnDefinitionCollection {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ColumnDefinitionCollection {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::From<ColumnDefinitionCollection> for ::windows::core::IInspectable {
    fn from(value: ColumnDefinitionCollection) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::From<&ColumnDefinitionCollection> for ::windows::core::IInspectable {
    fn from(value: &ColumnDefinitionCollection) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ColumnDefinitionCollection {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ColumnDefinitionCollection {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::TryFrom<ColumnDefinitionCollection> for super::super::super::Foundation::Collections::IIterable<ColumnDefinition> {
    type Error = ::windows::core::Error;
    fn try_from(value: ColumnDefinitionCollection) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::TryFrom<&ColumnDefinitionCollection> for super::super::super::Foundation::Collections::IIterable<ColumnDefinition> {
    type Error = ::windows::core::Error;
    fn try_from(value: &ColumnDefinitionCollection) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IIterable<ColumnDefinition>> for ColumnDefinitionCollection {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::super::Foundation::Collections::IIterable<ColumnDefinition>> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IIterable<ColumnDefinition>> for &ColumnDefinitionCollection {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::super::Foundation::Collections::IIterable<ColumnDefinition>> {
        ::core::convert::TryInto::<super::super::super::Foundation::Collections::IIterable<ColumnDefinition>>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::TryFrom<ColumnDefinitionCollection> for super::super::super::Foundation::Collections::IVector<ColumnDefinition> {
    type Error = ::windows::core::Error;
    fn try_from(value: ColumnDefinitionCollection) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::TryFrom<&ColumnDefinitionCollection> for super::super::super::Foundation::Collections::IVector<ColumnDefinition> {
    type Error = ::windows::core::Error;
    fn try_from(value: &ColumnDefinitionCollection) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IVector<ColumnDefinition>> for ColumnDefinitionCollection {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::super::Foundation::Collections::IVector<ColumnDefinition>> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IVector<ColumnDefinition>> for &ColumnDefinitionCollection {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::super::Foundation::Collections::IVector<ColumnDefinition>> {
        ::core::convert::TryInto::<super::super::super::Foundation::Collections::IVector<ColumnDefinition>>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "Foundation_Collections")]
unsafe impl ::core::marker::Send for ColumnDefinitionCollection {}
#[cfg(feature = "Foundation_Collections")]
unsafe impl ::core::marker::Sync for ColumnDefinitionCollection {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ComboBox(::windows::core::IUnknown);
impl ComboBox {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsDropDownOpen(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsDropDownOpen)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsDropDownOpen(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsDropDownOpen)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsEditable(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsEditable)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsSelectionBoxHighlighted(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsSelectionBoxHighlighted)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxDropDownHeight(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxDropDownHeight)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMaxDropDownHeight(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMaxDropDownHeight)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionBoxItem(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionBoxItem)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionBoxItemTemplate(&self) -> ::windows::core::Result<super::DataTemplate> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionBoxItemTemplate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn TemplateSettings(&self) -> ::windows::core::Result<Primitives::ComboBoxTemplateSettings> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TemplateSettings)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::ComboBoxTemplateSettings>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn DropDownClosed<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventHandler<::windows::core::IInspectable>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DropDownClosed)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveDropDownClosed<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveDropDownClosed)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn DropDownOpened<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventHandler<::windows::core::IInspectable>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DropDownOpened)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveDropDownOpened<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveDropDownOpened)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Header(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = &::windows::core::Interface::cast::<IComboBox2>(self)?;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Header)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeader<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IComboBox2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetHeader)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTemplate(&self) -> ::windows::core::Result<super::DataTemplate> {
        let this = &::windows::core::Interface::cast::<IComboBox2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTemplate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeaderTemplate<'a, Param0: ::windows::core::IntoParam<'a, super::DataTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IComboBox2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetHeaderTemplate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PlaceholderText(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = &::windows::core::Interface::cast::<IComboBox2>(self)?;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlaceholderText)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPlaceholderText<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IComboBox2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetPlaceholderText)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LightDismissOverlayMode(&self) -> ::windows::core::Result<LightDismissOverlayMode> {
        let this = &::windows::core::Interface::cast::<IComboBox3>(self)?;
        unsafe {
            let mut result__: LightDismissOverlayMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LightDismissOverlayMode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<LightDismissOverlayMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetLightDismissOverlayMode(&self, value: LightDismissOverlayMode) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IComboBox3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetLightDismissOverlayMode)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTextSearchEnabled(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IComboBox3>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTextSearchEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsTextSearchEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IComboBox3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsTextSearchEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionChangedTrigger(&self) -> ::windows::core::Result<ComboBoxSelectionChangedTrigger> {
        let this = &::windows::core::Interface::cast::<IComboBox4>(self)?;
        unsafe {
            let mut result__: ComboBoxSelectionChangedTrigger = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionChangedTrigger)(::core::mem::transmute_copy(this), &mut result__).from_abi::<ComboBoxSelectionChangedTrigger>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSelectionChangedTrigger(&self, value: ComboBoxSelectionChangedTrigger) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IComboBox4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectionChangedTrigger)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn PlaceholderForeground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = &::windows::core::Interface::cast::<IComboBox5>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlaceholderForeground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetPlaceholderForeground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IComboBox5>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetPlaceholderForeground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsEditable(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IComboBox6>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsEditable)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Text(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = &::windows::core::Interface::cast::<IComboBox6>(self)?;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Text)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetText<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IComboBox6>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetText)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextBoxStyle(&self) -> ::windows::core::Result<super::Style> {
        let this = &::windows::core::Interface::cast::<IComboBox6>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextBoxStyle)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Style>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTextBoxStyle<'a, Param0: ::windows::core::IntoParam<'a, super::Style>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IComboBox6>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetTextBoxStyle)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Description(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = &::windows::core::Interface::cast::<IComboBox6>(self)?;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Description)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDescription<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IComboBox6>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetDescription)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn TextSubmitted<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<ComboBox, ComboBoxTextSubmittedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IComboBox6>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextSubmitted)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveTextSubmitted<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IComboBox6>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveTextSubmitted)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<ComboBox> {
        Self::IComboBoxFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<ComboBox>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<ComboBox> {
        Self::IComboBoxFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<ComboBox>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsDropDownOpenProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IComboBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsDropDownOpenProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxDropDownHeightProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IComboBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxDropDownHeightProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IComboBoxStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTemplateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IComboBoxStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTemplateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PlaceholderTextProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IComboBoxStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlaceholderTextProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LightDismissOverlayModeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IComboBoxStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LightDismissOverlayModeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTextSearchEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IComboBoxStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTextSearchEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionChangedTriggerProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IComboBoxStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionChangedTriggerProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PlaceholderForegroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IComboBoxStatics5(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlaceholderForegroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsEditableProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IComboBoxStatics6(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsEditableProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IComboBoxStatics6(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextBoxStyleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IComboBoxStatics6(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextBoxStyleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DescriptionProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IComboBoxStatics6(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DescriptionProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IComboBoxFactory<R, F: FnOnce(&IComboBoxFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ComboBox, IComboBoxFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IComboBoxStatics<R, F: FnOnce(&IComboBoxStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ComboBox, IComboBoxStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IComboBoxStatics2<R, F: FnOnce(&IComboBoxStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ComboBox, IComboBoxStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IComboBoxStatics3<R, F: FnOnce(&IComboBoxStatics3) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ComboBox, IComboBoxStatics3> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IComboBoxStatics4<R, F: FnOnce(&IComboBoxStatics4) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ComboBox, IComboBoxStatics4> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IComboBoxStatics5<R, F: FnOnce(&IComboBoxStatics5) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ComboBox, IComboBoxStatics5> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IComboBoxStatics6<R, F: FnOnce(&IComboBoxStatics6) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ComboBox, IComboBoxStatics6> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for ComboBox {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ComboBox {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ComboBox {}
impl ::core::fmt::Debug for ComboBox {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ComboBox").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ComboBox {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ComboBox;{b9a8d05c-ac97-47f1-a5f4-3f9f4d4b116c})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ComboBox {
    type Vtable = IComboBox_Vtbl;
    const IID: ::windows::core::GUID = <IComboBox as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ComboBox {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ComboBox";
}
impl ::core::convert::From<ComboBox> for ::windows::core::IUnknown {
    fn from(value: ComboBox) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ComboBox> for ::windows::core::IUnknown {
    fn from(value: &ComboBox) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ComboBox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ComboBox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ComboBox> for ::windows::core::IInspectable {
    fn from(value: ComboBox) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ComboBox> for ::windows::core::IInspectable {
    fn from(value: &ComboBox) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ComboBox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ComboBox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ComboBox> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: ComboBox) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ComboBox> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &ComboBox) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for ComboBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &ComboBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::TryFrom<ComboBox> for IItemContainerMapping {
    type Error = ::windows::core::Error;
    fn try_from(value: ComboBox) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
impl ::core::convert::TryFrom<&ComboBox> for IItemContainerMapping {
    type Error = ::windows::core::Error;
    fn try_from(value: &ComboBox) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IItemContainerMapping> for ComboBox {
    fn into_param(self) -> ::windows::core::Param<'a, IItemContainerMapping> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IItemContainerMapping> for &ComboBox {
    fn into_param(self) -> ::windows::core::Param<'a, IItemContainerMapping> {
        ::core::convert::TryInto::<IItemContainerMapping>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ComboBox> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: ComboBox) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ComboBox> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &ComboBox) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for ComboBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &ComboBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<ComboBox> for Primitives::Selector {
    fn from(value: ComboBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&ComboBox> for Primitives::Selector {
    fn from(value: &ComboBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::Selector> for ComboBox {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::Selector> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::Selector> for &ComboBox {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::Selector> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::Selector>::into(self))
    }
}
impl ::core::convert::From<ComboBox> for ItemsControl {
    fn from(value: ComboBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ComboBox> for ItemsControl {
    fn from(value: &ComboBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ItemsControl> for ComboBox {
    fn into_param(self) -> ::windows::core::Param<'a, ItemsControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ItemsControl> for &ComboBox {
    fn into_param(self) -> ::windows::core::Param<'a, ItemsControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ItemsControl>::into(self))
    }
}
impl ::core::convert::From<ComboBox> for Control {
    fn from(value: ComboBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ComboBox> for Control {
    fn from(value: &ComboBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for ComboBox {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &ComboBox {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<ComboBox> for super::FrameworkElement {
    fn from(value: ComboBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ComboBox> for super::FrameworkElement {
    fn from(value: &ComboBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for ComboBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &ComboBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<ComboBox> for super::UIElement {
    fn from(value: ComboBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ComboBox> for super::UIElement {
    fn from(value: &ComboBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for ComboBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &ComboBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<ComboBox> for super::DependencyObject {
    fn from(value: ComboBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ComboBox> for super::DependencyObject {
    fn from(value: &ComboBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for ComboBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &ComboBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for ComboBox {}
unsafe impl ::core::marker::Sync for ComboBox {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ComboBoxItem(::windows::core::IUnknown);
impl ComboBoxItem {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<ComboBoxItem> {
        Self::IComboBoxItemFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<ComboBoxItem>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<ComboBoxItem> {
        Self::IComboBoxItemFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<ComboBoxItem>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IComboBoxItemFactory<R, F: FnOnce(&IComboBoxItemFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ComboBoxItem, IComboBoxItemFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for ComboBoxItem {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ComboBoxItem {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ComboBoxItem {}
impl ::core::fmt::Debug for ComboBoxItem {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ComboBoxItem").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ComboBoxItem {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ComboBoxItem;{993fd6d2-2aae-4f3b-b44d-5648f4d06114})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ComboBoxItem {
    type Vtable = IComboBoxItem_Vtbl;
    const IID: ::windows::core::GUID = <IComboBoxItem as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ComboBoxItem {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ComboBoxItem";
}
impl ::core::convert::From<ComboBoxItem> for ::windows::core::IUnknown {
    fn from(value: ComboBoxItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ComboBoxItem> for ::windows::core::IUnknown {
    fn from(value: &ComboBoxItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ComboBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ComboBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ComboBoxItem> for ::windows::core::IInspectable {
    fn from(value: ComboBoxItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ComboBoxItem> for ::windows::core::IInspectable {
    fn from(value: &ComboBoxItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ComboBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ComboBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ComboBoxItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: ComboBoxItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ComboBoxItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &ComboBoxItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for ComboBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &ComboBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ComboBoxItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: ComboBoxItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ComboBoxItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &ComboBoxItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for ComboBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &ComboBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<ComboBoxItem> for Primitives::SelectorItem {
    fn from(value: ComboBoxItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&ComboBoxItem> for Primitives::SelectorItem {
    fn from(value: &ComboBoxItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::SelectorItem> for ComboBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::SelectorItem> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::SelectorItem> for &ComboBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::SelectorItem> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::SelectorItem>::into(self))
    }
}
impl ::core::convert::From<ComboBoxItem> for ContentControl {
    fn from(value: ComboBoxItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ComboBoxItem> for ContentControl {
    fn from(value: &ComboBoxItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for ComboBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &ComboBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<ComboBoxItem> for Control {
    fn from(value: ComboBoxItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ComboBoxItem> for Control {
    fn from(value: &ComboBoxItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for ComboBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &ComboBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<ComboBoxItem> for super::FrameworkElement {
    fn from(value: ComboBoxItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ComboBoxItem> for super::FrameworkElement {
    fn from(value: &ComboBoxItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for ComboBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &ComboBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<ComboBoxItem> for super::UIElement {
    fn from(value: ComboBoxItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ComboBoxItem> for super::UIElement {
    fn from(value: &ComboBoxItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for ComboBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &ComboBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<ComboBoxItem> for super::DependencyObject {
    fn from(value: ComboBoxItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ComboBoxItem> for super::DependencyObject {
    fn from(value: &ComboBoxItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for ComboBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &ComboBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for ComboBoxItem {}
unsafe impl ::core::marker::Sync for ComboBoxItem {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct ComboBoxSelectionChangedTrigger(pub i32);
impl ComboBoxSelectionChangedTrigger {
    pub const Committed: Self = Self(0i32);
    pub const Always: Self = Self(1i32);
}
impl ::core::marker::Copy for ComboBoxSelectionChangedTrigger {}
impl ::core::clone::Clone for ComboBoxSelectionChangedTrigger {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ComboBoxSelectionChangedTrigger {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ComboBoxSelectionChangedTrigger {
    type Abi = Self;
}
impl ::core::fmt::Debug for ComboBoxSelectionChangedTrigger {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ComboBoxSelectionChangedTrigger").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ComboBoxSelectionChangedTrigger {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.ComboBoxSelectionChangedTrigger;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ComboBoxTextSubmittedEventArgs(::windows::core::IUnknown);
impl ComboBoxTextSubmittedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Text(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Text)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Handled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Handled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHandled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHandled)(::core::mem::transmute_copy(this), value).ok() }
    }
}
impl ::core::clone::Clone for ComboBoxTextSubmittedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ComboBoxTextSubmittedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ComboBoxTextSubmittedEventArgs {}
impl ::core::fmt::Debug for ComboBoxTextSubmittedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ComboBoxTextSubmittedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ComboBoxTextSubmittedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ComboBoxTextSubmittedEventArgs;{cb698cbb-6879-558e-af82-df1d08f62afa})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ComboBoxTextSubmittedEventArgs {
    type Vtable = IComboBoxTextSubmittedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IComboBoxTextSubmittedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ComboBoxTextSubmittedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ComboBoxTextSubmittedEventArgs";
}
impl ::core::convert::From<ComboBoxTextSubmittedEventArgs> for ::windows::core::IUnknown {
    fn from(value: ComboBoxTextSubmittedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ComboBoxTextSubmittedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &ComboBoxTextSubmittedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ComboBoxTextSubmittedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ComboBoxTextSubmittedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ComboBoxTextSubmittedEventArgs> for ::windows::core::IInspectable {
    fn from(value: ComboBoxTextSubmittedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ComboBoxTextSubmittedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &ComboBoxTextSubmittedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ComboBoxTextSubmittedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ComboBoxTextSubmittedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for ComboBoxTextSubmittedEventArgs {}
unsafe impl ::core::marker::Sync for ComboBoxTextSubmittedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct CommandBar(::windows::core::IUnknown);
impl CommandBar {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn PrimaryCommands(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IObservableVector<ICommandBarElement>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PrimaryCommands)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IObservableVector<ICommandBarElement>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn SecondaryCommands(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IObservableVector<ICommandBarElement>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SecondaryCommands)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IObservableVector<ICommandBarElement>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CommandBarOverflowPresenterStyle(&self) -> ::windows::core::Result<super::Style> {
        let this = &::windows::core::Interface::cast::<ICommandBar2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CommandBarOverflowPresenterStyle)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Style>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCommandBarOverflowPresenterStyle<'a, Param0: ::windows::core::IntoParam<'a, super::Style>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICommandBar2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetCommandBarOverflowPresenterStyle)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn CommandBarTemplateSettings(&self) -> ::windows::core::Result<Primitives::CommandBarTemplateSettings> {
        let this = &::windows::core::Interface::cast::<ICommandBar2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CommandBarTemplateSettings)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::CommandBarTemplateSettings>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DefaultLabelPosition(&self) -> ::windows::core::Result<CommandBarDefaultLabelPosition> {
        let this = &::windows::core::Interface::cast::<ICommandBar3>(self)?;
        unsafe {
            let mut result__: CommandBarDefaultLabelPosition = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DefaultLabelPosition)(::core::mem::transmute_copy(this), &mut result__).from_abi::<CommandBarDefaultLabelPosition>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDefaultLabelPosition(&self, value: CommandBarDefaultLabelPosition) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICommandBar3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetDefaultLabelPosition)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OverflowButtonVisibility(&self) -> ::windows::core::Result<CommandBarOverflowButtonVisibility> {
        let this = &::windows::core::Interface::cast::<ICommandBar3>(self)?;
        unsafe {
            let mut result__: CommandBarOverflowButtonVisibility = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OverflowButtonVisibility)(::core::mem::transmute_copy(this), &mut result__).from_abi::<CommandBarOverflowButtonVisibility>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetOverflowButtonVisibility(&self, value: CommandBarOverflowButtonVisibility) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICommandBar3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetOverflowButtonVisibility)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsDynamicOverflowEnabled(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<ICommandBar3>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsDynamicOverflowEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsDynamicOverflowEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICommandBar3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsDynamicOverflowEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn DynamicOverflowItemsChanging<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<CommandBar, DynamicOverflowItemsChangingEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<ICommandBar3>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DynamicOverflowItemsChanging)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveDynamicOverflowItemsChanging<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ICommandBar3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveDynamicOverflowItemsChanging)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<CommandBar> {
        Self::ICommandBarFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<CommandBar>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<CommandBar> {
        Self::ICommandBarFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<CommandBar>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PrimaryCommandsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICommandBarStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PrimaryCommandsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SecondaryCommandsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICommandBarStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SecondaryCommandsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CommandBarOverflowPresenterStyleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICommandBarStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CommandBarOverflowPresenterStyleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DefaultLabelPositionProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICommandBarStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DefaultLabelPositionProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OverflowButtonVisibilityProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICommandBarStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OverflowButtonVisibilityProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsDynamicOverflowEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ICommandBarStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsDynamicOverflowEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ICommandBarFactory<R, F: FnOnce(&ICommandBarFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<CommandBar, ICommandBarFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ICommandBarStatics<R, F: FnOnce(&ICommandBarStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<CommandBar, ICommandBarStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ICommandBarStatics2<R, F: FnOnce(&ICommandBarStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<CommandBar, ICommandBarStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ICommandBarStatics3<R, F: FnOnce(&ICommandBarStatics3) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<CommandBar, ICommandBarStatics3> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for CommandBar {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for CommandBar {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for CommandBar {}
impl ::core::fmt::Debug for CommandBar {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("CommandBar").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for CommandBar {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.CommandBar;{98bc4280-4a3d-4cee-bd07-22ce94c5af76})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for CommandBar {
    type Vtable = ICommandBar_Vtbl;
    const IID: ::windows::core::GUID = <ICommandBar as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for CommandBar {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.CommandBar";
}
impl ::core::convert::From<CommandBar> for ::windows::core::IUnknown {
    fn from(value: CommandBar) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&CommandBar> for ::windows::core::IUnknown {
    fn from(value: &CommandBar) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for CommandBar {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a CommandBar {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<CommandBar> for ::windows::core::IInspectable {
    fn from(value: CommandBar) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&CommandBar> for ::windows::core::IInspectable {
    fn from(value: &CommandBar) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for CommandBar {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a CommandBar {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<CommandBar> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: CommandBar) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&CommandBar> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &CommandBar) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for CommandBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &CommandBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<CommandBar> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: CommandBar) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&CommandBar> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &CommandBar) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for CommandBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &CommandBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<CommandBar> for AppBar {
    fn from(value: CommandBar) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&CommandBar> for AppBar {
    fn from(value: &CommandBar) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, AppBar> for CommandBar {
    fn into_param(self) -> ::windows::core::Param<'a, AppBar> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, AppBar> for &CommandBar {
    fn into_param(self) -> ::windows::core::Param<'a, AppBar> {
        ::windows::core::Param::Owned(::core::convert::Into::<AppBar>::into(self))
    }
}
impl ::core::convert::From<CommandBar> for ContentControl {
    fn from(value: CommandBar) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&CommandBar> for ContentControl {
    fn from(value: &CommandBar) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for CommandBar {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &CommandBar {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<CommandBar> for Control {
    fn from(value: CommandBar) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&CommandBar> for Control {
    fn from(value: &CommandBar) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for CommandBar {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &CommandBar {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<CommandBar> for super::FrameworkElement {
    fn from(value: CommandBar) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&CommandBar> for super::FrameworkElement {
    fn from(value: &CommandBar) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for CommandBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &CommandBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<CommandBar> for super::UIElement {
    fn from(value: CommandBar) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&CommandBar> for super::UIElement {
    fn from(value: &CommandBar) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for CommandBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &CommandBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<CommandBar> for super::DependencyObject {
    fn from(value: CommandBar) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&CommandBar> for super::DependencyObject {
    fn from(value: &CommandBar) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for CommandBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &CommandBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for CommandBar {}
unsafe impl ::core::marker::Sync for CommandBar {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct CommandBarDefaultLabelPosition(pub i32);
impl CommandBarDefaultLabelPosition {
    pub const Bottom: Self = Self(0i32);
    pub const Right: Self = Self(1i32);
    pub const Collapsed: Self = Self(2i32);
}
impl ::core::marker::Copy for CommandBarDefaultLabelPosition {}
impl ::core::clone::Clone for CommandBarDefaultLabelPosition {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for CommandBarDefaultLabelPosition {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for CommandBarDefaultLabelPosition {
    type Abi = Self;
}
impl ::core::fmt::Debug for CommandBarDefaultLabelPosition {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("CommandBarDefaultLabelPosition").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for CommandBarDefaultLabelPosition {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.CommandBarDefaultLabelPosition;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct CommandBarDynamicOverflowAction(pub i32);
impl CommandBarDynamicOverflowAction {
    pub const AddingToOverflow: Self = Self(0i32);
    pub const RemovingFromOverflow: Self = Self(1i32);
}
impl ::core::marker::Copy for CommandBarDynamicOverflowAction {}
impl ::core::clone::Clone for CommandBarDynamicOverflowAction {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for CommandBarDynamicOverflowAction {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for CommandBarDynamicOverflowAction {
    type Abi = Self;
}
impl ::core::fmt::Debug for CommandBarDynamicOverflowAction {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("CommandBarDynamicOverflowAction").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for CommandBarDynamicOverflowAction {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.CommandBarDynamicOverflowAction;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct CommandBarFlyout(::windows::core::IUnknown);
impl CommandBarFlyout {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn PrimaryCommands(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IObservableVector<ICommandBarElement>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PrimaryCommands)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IObservableVector<ICommandBarElement>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn SecondaryCommands(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IObservableVector<ICommandBarElement>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SecondaryCommands)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IObservableVector<ICommandBarElement>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<CommandBarFlyout> {
        Self::ICommandBarFlyoutFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<CommandBarFlyout>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<CommandBarFlyout> {
        Self::ICommandBarFlyoutFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<CommandBarFlyout>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ICommandBarFlyoutFactory<R, F: FnOnce(&ICommandBarFlyoutFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<CommandBarFlyout, ICommandBarFlyoutFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for CommandBarFlyout {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for CommandBarFlyout {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for CommandBarFlyout {}
impl ::core::fmt::Debug for CommandBarFlyout {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("CommandBarFlyout").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for CommandBarFlyout {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.CommandBarFlyout;{fecd2c4d-f16a-58cd-8aca-db0f046f25c3})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for CommandBarFlyout {
    type Vtable = ICommandBarFlyout_Vtbl;
    const IID: ::windows::core::GUID = <ICommandBarFlyout as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for CommandBarFlyout {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.CommandBarFlyout";
}
impl ::core::convert::From<CommandBarFlyout> for ::windows::core::IUnknown {
    fn from(value: CommandBarFlyout) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&CommandBarFlyout> for ::windows::core::IUnknown {
    fn from(value: &CommandBarFlyout) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for CommandBarFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a CommandBarFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<CommandBarFlyout> for ::windows::core::IInspectable {
    fn from(value: CommandBarFlyout) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&CommandBarFlyout> for ::windows::core::IInspectable {
    fn from(value: &CommandBarFlyout) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for CommandBarFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a CommandBarFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<CommandBarFlyout> for Primitives::FlyoutBase {
    fn from(value: CommandBarFlyout) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&CommandBarFlyout> for Primitives::FlyoutBase {
    fn from(value: &CommandBarFlyout) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::FlyoutBase> for CommandBarFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::FlyoutBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::FlyoutBase> for &CommandBarFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::FlyoutBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::FlyoutBase>::into(self))
    }
}
impl ::core::convert::From<CommandBarFlyout> for super::DependencyObject {
    fn from(value: CommandBarFlyout) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&CommandBarFlyout> for super::DependencyObject {
    fn from(value: &CommandBarFlyout) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for CommandBarFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &CommandBarFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for CommandBarFlyout {}
unsafe impl ::core::marker::Sync for CommandBarFlyout {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct CommandBarLabelPosition(pub i32);
impl CommandBarLabelPosition {
    pub const Default: Self = Self(0i32);
    pub const Collapsed: Self = Self(1i32);
}
impl ::core::marker::Copy for CommandBarLabelPosition {}
impl ::core::clone::Clone for CommandBarLabelPosition {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for CommandBarLabelPosition {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for CommandBarLabelPosition {
    type Abi = Self;
}
impl ::core::fmt::Debug for CommandBarLabelPosition {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("CommandBarLabelPosition").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for CommandBarLabelPosition {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.CommandBarLabelPosition;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct CommandBarOverflowButtonVisibility(pub i32);
impl CommandBarOverflowButtonVisibility {
    pub const Auto: Self = Self(0i32);
    pub const Visible: Self = Self(1i32);
    pub const Collapsed: Self = Self(2i32);
}
impl ::core::marker::Copy for CommandBarOverflowButtonVisibility {}
impl ::core::clone::Clone for CommandBarOverflowButtonVisibility {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for CommandBarOverflowButtonVisibility {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for CommandBarOverflowButtonVisibility {
    type Abi = Self;
}
impl ::core::fmt::Debug for CommandBarOverflowButtonVisibility {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("CommandBarOverflowButtonVisibility").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for CommandBarOverflowButtonVisibility {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.CommandBarOverflowButtonVisibility;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct CommandBarOverflowPresenter(::windows::core::IUnknown);
impl CommandBarOverflowPresenter {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<CommandBarOverflowPresenter> {
        Self::ICommandBarOverflowPresenterFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<CommandBarOverflowPresenter>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<CommandBarOverflowPresenter> {
        Self::ICommandBarOverflowPresenterFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<CommandBarOverflowPresenter>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ICommandBarOverflowPresenterFactory<R, F: FnOnce(&ICommandBarOverflowPresenterFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<CommandBarOverflowPresenter, ICommandBarOverflowPresenterFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for CommandBarOverflowPresenter {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for CommandBarOverflowPresenter {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for CommandBarOverflowPresenter {}
impl ::core::fmt::Debug for CommandBarOverflowPresenter {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("CommandBarOverflowPresenter").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for CommandBarOverflowPresenter {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.CommandBarOverflowPresenter;{6e7a9427-58ef-4366-a017-18c193d56b14})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for CommandBarOverflowPresenter {
    type Vtable = ICommandBarOverflowPresenter_Vtbl;
    const IID: ::windows::core::GUID = <ICommandBarOverflowPresenter as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for CommandBarOverflowPresenter {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.CommandBarOverflowPresenter";
}
impl ::core::convert::From<CommandBarOverflowPresenter> for ::windows::core::IUnknown {
    fn from(value: CommandBarOverflowPresenter) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&CommandBarOverflowPresenter> for ::windows::core::IUnknown {
    fn from(value: &CommandBarOverflowPresenter) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for CommandBarOverflowPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a CommandBarOverflowPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<CommandBarOverflowPresenter> for ::windows::core::IInspectable {
    fn from(value: CommandBarOverflowPresenter) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&CommandBarOverflowPresenter> for ::windows::core::IInspectable {
    fn from(value: &CommandBarOverflowPresenter) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for CommandBarOverflowPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a CommandBarOverflowPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<CommandBarOverflowPresenter> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: CommandBarOverflowPresenter) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&CommandBarOverflowPresenter> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &CommandBarOverflowPresenter) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for CommandBarOverflowPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &CommandBarOverflowPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::TryFrom<CommandBarOverflowPresenter> for IItemContainerMapping {
    type Error = ::windows::core::Error;
    fn try_from(value: CommandBarOverflowPresenter) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
impl ::core::convert::TryFrom<&CommandBarOverflowPresenter> for IItemContainerMapping {
    type Error = ::windows::core::Error;
    fn try_from(value: &CommandBarOverflowPresenter) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IItemContainerMapping> for CommandBarOverflowPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, IItemContainerMapping> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IItemContainerMapping> for &CommandBarOverflowPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, IItemContainerMapping> {
        ::core::convert::TryInto::<IItemContainerMapping>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<CommandBarOverflowPresenter> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: CommandBarOverflowPresenter) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&CommandBarOverflowPresenter> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &CommandBarOverflowPresenter) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for CommandBarOverflowPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &CommandBarOverflowPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<CommandBarOverflowPresenter> for ItemsControl {
    fn from(value: CommandBarOverflowPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&CommandBarOverflowPresenter> for ItemsControl {
    fn from(value: &CommandBarOverflowPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ItemsControl> for CommandBarOverflowPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ItemsControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ItemsControl> for &CommandBarOverflowPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ItemsControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ItemsControl>::into(self))
    }
}
impl ::core::convert::From<CommandBarOverflowPresenter> for Control {
    fn from(value: CommandBarOverflowPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&CommandBarOverflowPresenter> for Control {
    fn from(value: &CommandBarOverflowPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for CommandBarOverflowPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &CommandBarOverflowPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<CommandBarOverflowPresenter> for super::FrameworkElement {
    fn from(value: CommandBarOverflowPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&CommandBarOverflowPresenter> for super::FrameworkElement {
    fn from(value: &CommandBarOverflowPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for CommandBarOverflowPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &CommandBarOverflowPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<CommandBarOverflowPresenter> for super::UIElement {
    fn from(value: CommandBarOverflowPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&CommandBarOverflowPresenter> for super::UIElement {
    fn from(value: &CommandBarOverflowPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for CommandBarOverflowPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &CommandBarOverflowPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<CommandBarOverflowPresenter> for super::DependencyObject {
    fn from(value: CommandBarOverflowPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&CommandBarOverflowPresenter> for super::DependencyObject {
    fn from(value: &CommandBarOverflowPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for CommandBarOverflowPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &CommandBarOverflowPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for CommandBarOverflowPresenter {}
unsafe impl ::core::marker::Sync for CommandBarOverflowPresenter {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ContainerContentChangingEventArgs(::windows::core::IUnknown);
impl ContainerContentChangingEventArgs {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ContainerContentChangingEventArgs, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn ItemContainer(&self) -> ::windows::core::Result<Primitives::SelectorItem> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemContainer)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::SelectorItem>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn InRecycleQueue(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).InRecycleQueue)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemIndex(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemIndex)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Item(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Item)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Phase(&self) -> ::windows::core::Result<u32> {
        let this = self;
        unsafe {
            let mut result__: u32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Phase)(::core::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Handled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Handled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHandled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHandled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RegisterUpdateCallback<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<ListViewBase, ContainerContentChangingEventArgs>>>(&self, callback: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RegisterUpdateCallback)(::core::mem::transmute_copy(this), callback.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RegisterUpdateCallbackWithPhase<'a, Param1: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<ListViewBase, ContainerContentChangingEventArgs>>>(&self, callbackphase: u32, callback: Param1) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RegisterUpdateCallbackWithPhase)(::core::mem::transmute_copy(this), callbackphase, callback.into_param().abi()).ok() }
    }
}
impl ::core::clone::Clone for ContainerContentChangingEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ContainerContentChangingEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ContainerContentChangingEventArgs {}
impl ::core::fmt::Debug for ContainerContentChangingEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ContainerContentChangingEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ContainerContentChangingEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ContainerContentChangingEventArgs;{07deeaa7-018f-4dda-b399-fd4e13a31bea})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ContainerContentChangingEventArgs {
    type Vtable = IContainerContentChangingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IContainerContentChangingEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ContainerContentChangingEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ContainerContentChangingEventArgs";
}
impl ::core::convert::From<ContainerContentChangingEventArgs> for ::windows::core::IUnknown {
    fn from(value: ContainerContentChangingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ContainerContentChangingEventArgs> for ::windows::core::IUnknown {
    fn from(value: &ContainerContentChangingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ContainerContentChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ContainerContentChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ContainerContentChangingEventArgs> for ::windows::core::IInspectable {
    fn from(value: ContainerContentChangingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ContainerContentChangingEventArgs> for ::windows::core::IInspectable {
    fn from(value: &ContainerContentChangingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ContainerContentChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ContainerContentChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for ContainerContentChangingEventArgs {}
unsafe impl ::core::marker::Sync for ContainerContentChangingEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ContentControl(::windows::core::IUnknown);
impl ContentControl {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Content(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Content)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetContent<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetContent)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContentTemplate(&self) -> ::windows::core::Result<super::DataTemplate> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentTemplate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetContentTemplate<'a, Param0: ::windows::core::IntoParam<'a, super::DataTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetContentTemplate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContentTemplateSelector(&self) -> ::windows::core::Result<DataTemplateSelector> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentTemplateSelector)(::core::mem::transmute_copy(this), &mut result__).from_abi::<DataTemplateSelector>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetContentTemplateSelector<'a, Param0: ::windows::core::IntoParam<'a, DataTemplateSelector>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetContentTemplateSelector)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'UI_Xaml_Media_Animation'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub fn ContentTransitions(&self) -> ::windows::core::Result<super::Media::Animation::TransitionCollection> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentTransitions)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Animation::TransitionCollection>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'UI_Xaml_Media_Animation'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub fn SetContentTransitions<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Animation::TransitionCollection>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetContentTransitions)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContentTemplateRoot(&self) -> ::windows::core::Result<super::UIElement> {
        let this = &::windows::core::Interface::cast::<IContentControl2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentTemplateRoot)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::UIElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<ContentControl> {
        Self::IContentControlFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<ContentControl>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<ContentControl> {
        Self::IContentControlFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<ContentControl>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContentTemplateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentTemplateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContentTemplateSelectorProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentTemplateSelectorProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContentTransitionsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentTransitionsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IContentControlFactory<R, F: FnOnce(&IContentControlFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ContentControl, IContentControlFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IContentControlStatics<R, F: FnOnce(&IContentControlStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ContentControl, IContentControlStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for ContentControl {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ContentControl {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ContentControl {}
impl ::core::fmt::Debug for ContentControl {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ContentControl").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ContentControl {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ContentControl;{a26dd1dc-cd44-435c-be94-01d6241c231c})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ContentControl {
    type Vtable = IContentControl_Vtbl;
    const IID: ::windows::core::GUID = <IContentControl as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ContentControl {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ContentControl";
}
impl ::core::convert::From<ContentControl> for ::windows::core::IUnknown {
    fn from(value: ContentControl) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ContentControl> for ::windows::core::IUnknown {
    fn from(value: &ContentControl) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ContentControl {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ContentControl {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ContentControl> for ::windows::core::IInspectable {
    fn from(value: ContentControl) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ContentControl> for ::windows::core::IInspectable {
    fn from(value: &ContentControl) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ContentControl {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ContentControl {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ContentControl> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: ContentControl) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ContentControl> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &ContentControl) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for ContentControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &ContentControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ContentControl> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: ContentControl) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ContentControl> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &ContentControl) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for ContentControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &ContentControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<ContentControl> for Control {
    fn from(value: ContentControl) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ContentControl> for Control {
    fn from(value: &ContentControl) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for ContentControl {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &ContentControl {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<ContentControl> for super::FrameworkElement {
    fn from(value: ContentControl) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ContentControl> for super::FrameworkElement {
    fn from(value: &ContentControl) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for ContentControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &ContentControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<ContentControl> for super::UIElement {
    fn from(value: ContentControl) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ContentControl> for super::UIElement {
    fn from(value: &ContentControl) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for ContentControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &ContentControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<ContentControl> for super::DependencyObject {
    fn from(value: ContentControl) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ContentControl> for super::DependencyObject {
    fn from(value: &ContentControl) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for ContentControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &ContentControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for ContentControl {}
unsafe impl ::core::marker::Sync for ContentControl {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ContentDialog(::windows::core::IUnknown);
impl ContentDialog {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Title(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Title)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTitle<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTitle)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TitleTemplate(&self) -> ::windows::core::Result<super::DataTemplate> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TitleTemplate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTitleTemplate<'a, Param0: ::windows::core::IntoParam<'a, super::DataTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTitleTemplate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FullSizeDesired(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FullSizeDesired)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetFullSizeDesired(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFullSizeDesired)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PrimaryButtonText(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PrimaryButtonText)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPrimaryButtonText<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPrimaryButtonText)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SecondaryButtonText(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SecondaryButtonText)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSecondaryButtonText<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSecondaryButtonText)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Input'*"]
    #[cfg(feature = "UI_Xaml_Input")]
    pub fn PrimaryButtonCommand(&self) -> ::windows::core::Result<super::Input::ICommand> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PrimaryButtonCommand)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Input::ICommand>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Input'*"]
    #[cfg(feature = "UI_Xaml_Input")]
    pub fn SetPrimaryButtonCommand<'a, Param0: ::windows::core::IntoParam<'a, super::Input::ICommand>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPrimaryButtonCommand)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Input'*"]
    #[cfg(feature = "UI_Xaml_Input")]
    pub fn SecondaryButtonCommand(&self) -> ::windows::core::Result<super::Input::ICommand> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SecondaryButtonCommand)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Input::ICommand>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Input'*"]
    #[cfg(feature = "UI_Xaml_Input")]
    pub fn SetSecondaryButtonCommand<'a, Param0: ::windows::core::IntoParam<'a, super::Input::ICommand>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSecondaryButtonCommand)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PrimaryButtonCommandParameter(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PrimaryButtonCommandParameter)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPrimaryButtonCommandParameter<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPrimaryButtonCommandParameter)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SecondaryButtonCommandParameter(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SecondaryButtonCommandParameter)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSecondaryButtonCommandParameter<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSecondaryButtonCommandParameter)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsPrimaryButtonEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsPrimaryButtonEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsPrimaryButtonEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsPrimaryButtonEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsSecondaryButtonEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsSecondaryButtonEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsSecondaryButtonEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsSecondaryButtonEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Closing<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<ContentDialog, ContentDialogClosingEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Closing)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveClosing<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveClosing)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Closed<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<ContentDialog, ContentDialogClosedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Closed)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveClosed<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveClosed)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Opened<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<ContentDialog, ContentDialogOpenedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Opened)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveOpened<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveOpened)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn PrimaryButtonClick<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<ContentDialog, ContentDialogButtonClickEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PrimaryButtonClick)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemovePrimaryButtonClick<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemovePrimaryButtonClick)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SecondaryButtonClick<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<ContentDialog, ContentDialogButtonClickEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SecondaryButtonClick)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveSecondaryButtonClick<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveSecondaryButtonClick)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Hide(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Hide)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ShowAsync(&self) -> ::windows::core::Result<super::super::super::Foundation::IAsyncOperation<ContentDialogResult>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ShowAsync)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::IAsyncOperation<ContentDialogResult>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CloseButtonText(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = &::windows::core::Interface::cast::<IContentDialog2>(self)?;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CloseButtonText)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCloseButtonText<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IContentDialog2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetCloseButtonText)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Input'*"]
    #[cfg(feature = "UI_Xaml_Input")]
    pub fn CloseButtonCommand(&self) -> ::windows::core::Result<super::Input::ICommand> {
        let this = &::windows::core::Interface::cast::<IContentDialog2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CloseButtonCommand)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Input::ICommand>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Input'*"]
    #[cfg(feature = "UI_Xaml_Input")]
    pub fn SetCloseButtonCommand<'a, Param0: ::windows::core::IntoParam<'a, super::Input::ICommand>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IContentDialog2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetCloseButtonCommand)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CloseButtonCommandParameter(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = &::windows::core::Interface::cast::<IContentDialog2>(self)?;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CloseButtonCommandParameter)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCloseButtonCommandParameter<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IContentDialog2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetCloseButtonCommandParameter)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PrimaryButtonStyle(&self) -> ::windows::core::Result<super::Style> {
        let this = &::windows::core::Interface::cast::<IContentDialog2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PrimaryButtonStyle)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Style>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPrimaryButtonStyle<'a, Param0: ::windows::core::IntoParam<'a, super::Style>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IContentDialog2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetPrimaryButtonStyle)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SecondaryButtonStyle(&self) -> ::windows::core::Result<super::Style> {
        let this = &::windows::core::Interface::cast::<IContentDialog2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SecondaryButtonStyle)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Style>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSecondaryButtonStyle<'a, Param0: ::windows::core::IntoParam<'a, super::Style>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IContentDialog2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetSecondaryButtonStyle)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CloseButtonStyle(&self) -> ::windows::core::Result<super::Style> {
        let this = &::windows::core::Interface::cast::<IContentDialog2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CloseButtonStyle)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Style>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCloseButtonStyle<'a, Param0: ::windows::core::IntoParam<'a, super::Style>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IContentDialog2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetCloseButtonStyle)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DefaultButton(&self) -> ::windows::core::Result<ContentDialogButton> {
        let this = &::windows::core::Interface::cast::<IContentDialog2>(self)?;
        unsafe {
            let mut result__: ContentDialogButton = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DefaultButton)(::core::mem::transmute_copy(this), &mut result__).from_abi::<ContentDialogButton>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDefaultButton(&self, value: ContentDialogButton) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IContentDialog2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetDefaultButton)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn CloseButtonClick<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<ContentDialog, ContentDialogButtonClickEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IContentDialog2>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CloseButtonClick)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveCloseButtonClick<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IContentDialog2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveCloseButtonClick)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ShowAsyncWithPlacement(&self, placement: ContentDialogPlacement) -> ::windows::core::Result<super::super::super::Foundation::IAsyncOperation<ContentDialogResult>> {
        let this = &::windows::core::Interface::cast::<IContentDialog3>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ShowAsyncWithPlacement)(::core::mem::transmute_copy(this), placement, &mut result__).from_abi::<super::super::super::Foundation::IAsyncOperation<ContentDialogResult>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<ContentDialog> {
        Self::IContentDialogFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<ContentDialog>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<ContentDialog> {
        Self::IContentDialogFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<ContentDialog>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TitleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentDialogStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TitleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TitleTemplateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentDialogStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TitleTemplateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FullSizeDesiredProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentDialogStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FullSizeDesiredProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PrimaryButtonTextProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentDialogStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PrimaryButtonTextProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SecondaryButtonTextProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentDialogStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SecondaryButtonTextProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PrimaryButtonCommandProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentDialogStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PrimaryButtonCommandProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SecondaryButtonCommandProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentDialogStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SecondaryButtonCommandProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PrimaryButtonCommandParameterProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentDialogStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PrimaryButtonCommandParameterProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SecondaryButtonCommandParameterProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentDialogStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SecondaryButtonCommandParameterProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsPrimaryButtonEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentDialogStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsPrimaryButtonEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsSecondaryButtonEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentDialogStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsSecondaryButtonEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CloseButtonTextProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentDialogStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CloseButtonTextProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CloseButtonCommandProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentDialogStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CloseButtonCommandProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CloseButtonCommandParameterProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentDialogStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CloseButtonCommandParameterProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PrimaryButtonStyleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentDialogStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PrimaryButtonStyleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SecondaryButtonStyleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentDialogStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SecondaryButtonStyleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CloseButtonStyleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentDialogStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CloseButtonStyleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DefaultButtonProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentDialogStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DefaultButtonProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IContentDialogFactory<R, F: FnOnce(&IContentDialogFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ContentDialog, IContentDialogFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IContentDialogStatics<R, F: FnOnce(&IContentDialogStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ContentDialog, IContentDialogStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IContentDialogStatics2<R, F: FnOnce(&IContentDialogStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ContentDialog, IContentDialogStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for ContentDialog {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ContentDialog {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ContentDialog {}
impl ::core::fmt::Debug for ContentDialog {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ContentDialog").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ContentDialog {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ContentDialog;{38dc4404-d24e-40d8-9415-349464c1afdc})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ContentDialog {
    type Vtable = IContentDialog_Vtbl;
    const IID: ::windows::core::GUID = <IContentDialog as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ContentDialog {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ContentDialog";
}
impl ::core::convert::From<ContentDialog> for ::windows::core::IUnknown {
    fn from(value: ContentDialog) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ContentDialog> for ::windows::core::IUnknown {
    fn from(value: &ContentDialog) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ContentDialog {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ContentDialog {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ContentDialog> for ::windows::core::IInspectable {
    fn from(value: ContentDialog) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ContentDialog> for ::windows::core::IInspectable {
    fn from(value: &ContentDialog) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ContentDialog {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ContentDialog {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ContentDialog> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: ContentDialog) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ContentDialog> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &ContentDialog) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for ContentDialog {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &ContentDialog {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ContentDialog> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: ContentDialog) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ContentDialog> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &ContentDialog) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for ContentDialog {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &ContentDialog {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<ContentDialog> for ContentControl {
    fn from(value: ContentDialog) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ContentDialog> for ContentControl {
    fn from(value: &ContentDialog) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for ContentDialog {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &ContentDialog {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<ContentDialog> for Control {
    fn from(value: ContentDialog) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ContentDialog> for Control {
    fn from(value: &ContentDialog) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for ContentDialog {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &ContentDialog {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<ContentDialog> for super::FrameworkElement {
    fn from(value: ContentDialog) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ContentDialog> for super::FrameworkElement {
    fn from(value: &ContentDialog) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for ContentDialog {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &ContentDialog {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<ContentDialog> for super::UIElement {
    fn from(value: ContentDialog) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ContentDialog> for super::UIElement {
    fn from(value: &ContentDialog) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for ContentDialog {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &ContentDialog {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<ContentDialog> for super::DependencyObject {
    fn from(value: ContentDialog) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ContentDialog> for super::DependencyObject {
    fn from(value: &ContentDialog) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for ContentDialog {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &ContentDialog {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for ContentDialog {}
unsafe impl ::core::marker::Sync for ContentDialog {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct ContentDialogButton(pub i32);
impl ContentDialogButton {
    pub const None: Self = Self(0i32);
    pub const Primary: Self = Self(1i32);
    pub const Secondary: Self = Self(2i32);
    pub const Close: Self = Self(3i32);
}
impl ::core::marker::Copy for ContentDialogButton {}
impl ::core::clone::Clone for ContentDialogButton {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ContentDialogButton {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ContentDialogButton {
    type Abi = Self;
}
impl ::core::fmt::Debug for ContentDialogButton {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ContentDialogButton").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ContentDialogButton {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.ContentDialogButton;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ContentDialogButtonClickDeferral(::windows::core::IUnknown);
impl ContentDialogButtonClickDeferral {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Complete(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Complete)(::core::mem::transmute_copy(this)).ok() }
    }
}
impl ::core::clone::Clone for ContentDialogButtonClickDeferral {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ContentDialogButtonClickDeferral {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ContentDialogButtonClickDeferral {}
impl ::core::fmt::Debug for ContentDialogButtonClickDeferral {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ContentDialogButtonClickDeferral").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ContentDialogButtonClickDeferral {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ContentDialogButtonClickDeferral;{bd0d3637-19ce-4946-8e77-bd03fe8ebe03})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ContentDialogButtonClickDeferral {
    type Vtable = IContentDialogButtonClickDeferral_Vtbl;
    const IID: ::windows::core::GUID = <IContentDialogButtonClickDeferral as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ContentDialogButtonClickDeferral {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ContentDialogButtonClickDeferral";
}
impl ::core::convert::From<ContentDialogButtonClickDeferral> for ::windows::core::IUnknown {
    fn from(value: ContentDialogButtonClickDeferral) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ContentDialogButtonClickDeferral> for ::windows::core::IUnknown {
    fn from(value: &ContentDialogButtonClickDeferral) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ContentDialogButtonClickDeferral {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ContentDialogButtonClickDeferral {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ContentDialogButtonClickDeferral> for ::windows::core::IInspectable {
    fn from(value: ContentDialogButtonClickDeferral) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ContentDialogButtonClickDeferral> for ::windows::core::IInspectable {
    fn from(value: &ContentDialogButtonClickDeferral) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ContentDialogButtonClickDeferral {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ContentDialogButtonClickDeferral {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for ContentDialogButtonClickDeferral {}
unsafe impl ::core::marker::Sync for ContentDialogButtonClickDeferral {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ContentDialogButtonClickEventArgs(::windows::core::IUnknown);
impl ContentDialogButtonClickEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Cancel(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Cancel)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCancel(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCancel)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetDeferral(&self) -> ::windows::core::Result<ContentDialogButtonClickDeferral> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetDeferral)(::core::mem::transmute_copy(this), &mut result__).from_abi::<ContentDialogButtonClickDeferral>(result__)
        }
    }
}
impl ::core::clone::Clone for ContentDialogButtonClickEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ContentDialogButtonClickEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ContentDialogButtonClickEventArgs {}
impl ::core::fmt::Debug for ContentDialogButtonClickEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ContentDialogButtonClickEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ContentDialogButtonClickEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ContentDialogButtonClickEventArgs;{5f34c205-8afa-4cf2-8ca0-264d73bed63d})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ContentDialogButtonClickEventArgs {
    type Vtable = IContentDialogButtonClickEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IContentDialogButtonClickEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ContentDialogButtonClickEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ContentDialogButtonClickEventArgs";
}
impl ::core::convert::From<ContentDialogButtonClickEventArgs> for ::windows::core::IUnknown {
    fn from(value: ContentDialogButtonClickEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ContentDialogButtonClickEventArgs> for ::windows::core::IUnknown {
    fn from(value: &ContentDialogButtonClickEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ContentDialogButtonClickEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ContentDialogButtonClickEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ContentDialogButtonClickEventArgs> for ::windows::core::IInspectable {
    fn from(value: ContentDialogButtonClickEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ContentDialogButtonClickEventArgs> for ::windows::core::IInspectable {
    fn from(value: &ContentDialogButtonClickEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ContentDialogButtonClickEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ContentDialogButtonClickEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for ContentDialogButtonClickEventArgs {}
unsafe impl ::core::marker::Sync for ContentDialogButtonClickEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ContentDialogClosedEventArgs(::windows::core::IUnknown);
impl ContentDialogClosedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Result(&self) -> ::windows::core::Result<ContentDialogResult> {
        let this = self;
        unsafe {
            let mut result__: ContentDialogResult = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Result)(::core::mem::transmute_copy(this), &mut result__).from_abi::<ContentDialogResult>(result__)
        }
    }
}
impl ::core::clone::Clone for ContentDialogClosedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ContentDialogClosedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ContentDialogClosedEventArgs {}
impl ::core::fmt::Debug for ContentDialogClosedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ContentDialogClosedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ContentDialogClosedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ContentDialogClosedEventArgs;{905522ef-2cba-4af8-b666-cc36c22732fb})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ContentDialogClosedEventArgs {
    type Vtable = IContentDialogClosedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IContentDialogClosedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ContentDialogClosedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ContentDialogClosedEventArgs";
}
impl ::core::convert::From<ContentDialogClosedEventArgs> for ::windows::core::IUnknown {
    fn from(value: ContentDialogClosedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ContentDialogClosedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &ContentDialogClosedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ContentDialogClosedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ContentDialogClosedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ContentDialogClosedEventArgs> for ::windows::core::IInspectable {
    fn from(value: ContentDialogClosedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ContentDialogClosedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &ContentDialogClosedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ContentDialogClosedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ContentDialogClosedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for ContentDialogClosedEventArgs {}
unsafe impl ::core::marker::Sync for ContentDialogClosedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ContentDialogClosingDeferral(::windows::core::IUnknown);
impl ContentDialogClosingDeferral {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Complete(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Complete)(::core::mem::transmute_copy(this)).ok() }
    }
}
impl ::core::clone::Clone for ContentDialogClosingDeferral {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ContentDialogClosingDeferral {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ContentDialogClosingDeferral {}
impl ::core::fmt::Debug for ContentDialogClosingDeferral {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ContentDialogClosingDeferral").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ContentDialogClosingDeferral {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ContentDialogClosingDeferral;{215d4d11-7e30-4cb9-a710-5a4f9cca8b42})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ContentDialogClosingDeferral {
    type Vtable = IContentDialogClosingDeferral_Vtbl;
    const IID: ::windows::core::GUID = <IContentDialogClosingDeferral as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ContentDialogClosingDeferral {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ContentDialogClosingDeferral";
}
impl ::core::convert::From<ContentDialogClosingDeferral> for ::windows::core::IUnknown {
    fn from(value: ContentDialogClosingDeferral) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ContentDialogClosingDeferral> for ::windows::core::IUnknown {
    fn from(value: &ContentDialogClosingDeferral) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ContentDialogClosingDeferral {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ContentDialogClosingDeferral {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ContentDialogClosingDeferral> for ::windows::core::IInspectable {
    fn from(value: ContentDialogClosingDeferral) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ContentDialogClosingDeferral> for ::windows::core::IInspectable {
    fn from(value: &ContentDialogClosingDeferral) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ContentDialogClosingDeferral {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ContentDialogClosingDeferral {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for ContentDialogClosingDeferral {}
unsafe impl ::core::marker::Sync for ContentDialogClosingDeferral {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ContentDialogClosingEventArgs(::windows::core::IUnknown);
impl ContentDialogClosingEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Result(&self) -> ::windows::core::Result<ContentDialogResult> {
        let this = self;
        unsafe {
            let mut result__: ContentDialogResult = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Result)(::core::mem::transmute_copy(this), &mut result__).from_abi::<ContentDialogResult>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Cancel(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Cancel)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCancel(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCancel)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetDeferral(&self) -> ::windows::core::Result<ContentDialogClosingDeferral> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetDeferral)(::core::mem::transmute_copy(this), &mut result__).from_abi::<ContentDialogClosingDeferral>(result__)
        }
    }
}
impl ::core::clone::Clone for ContentDialogClosingEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ContentDialogClosingEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ContentDialogClosingEventArgs {}
impl ::core::fmt::Debug for ContentDialogClosingEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ContentDialogClosingEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ContentDialogClosingEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ContentDialogClosingEventArgs;{db3c1c34-3bbf-47d4-be4f-c9ec115918b9})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ContentDialogClosingEventArgs {
    type Vtable = IContentDialogClosingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IContentDialogClosingEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ContentDialogClosingEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ContentDialogClosingEventArgs";
}
impl ::core::convert::From<ContentDialogClosingEventArgs> for ::windows::core::IUnknown {
    fn from(value: ContentDialogClosingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ContentDialogClosingEventArgs> for ::windows::core::IUnknown {
    fn from(value: &ContentDialogClosingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ContentDialogClosingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ContentDialogClosingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ContentDialogClosingEventArgs> for ::windows::core::IInspectable {
    fn from(value: ContentDialogClosingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ContentDialogClosingEventArgs> for ::windows::core::IInspectable {
    fn from(value: &ContentDialogClosingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ContentDialogClosingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ContentDialogClosingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for ContentDialogClosingEventArgs {}
unsafe impl ::core::marker::Sync for ContentDialogClosingEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ContentDialogOpenedEventArgs(::windows::core::IUnknown);
impl ContentDialogOpenedEventArgs {}
impl ::core::clone::Clone for ContentDialogOpenedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ContentDialogOpenedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ContentDialogOpenedEventArgs {}
impl ::core::fmt::Debug for ContentDialogOpenedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ContentDialogOpenedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ContentDialogOpenedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ContentDialogOpenedEventArgs;{0966b315-5f59-4999-9e3e-374c0f174b04})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ContentDialogOpenedEventArgs {
    type Vtable = IContentDialogOpenedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IContentDialogOpenedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ContentDialogOpenedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ContentDialogOpenedEventArgs";
}
impl ::core::convert::From<ContentDialogOpenedEventArgs> for ::windows::core::IUnknown {
    fn from(value: ContentDialogOpenedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ContentDialogOpenedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &ContentDialogOpenedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ContentDialogOpenedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ContentDialogOpenedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ContentDialogOpenedEventArgs> for ::windows::core::IInspectable {
    fn from(value: ContentDialogOpenedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ContentDialogOpenedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &ContentDialogOpenedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ContentDialogOpenedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ContentDialogOpenedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for ContentDialogOpenedEventArgs {}
unsafe impl ::core::marker::Sync for ContentDialogOpenedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct ContentDialogPlacement(pub i32);
impl ContentDialogPlacement {
    pub const Popup: Self = Self(0i32);
    pub const InPlace: Self = Self(1i32);
}
impl ::core::marker::Copy for ContentDialogPlacement {}
impl ::core::clone::Clone for ContentDialogPlacement {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ContentDialogPlacement {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ContentDialogPlacement {
    type Abi = Self;
}
impl ::core::fmt::Debug for ContentDialogPlacement {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ContentDialogPlacement").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ContentDialogPlacement {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.ContentDialogPlacement;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct ContentDialogResult(pub i32);
impl ContentDialogResult {
    pub const None: Self = Self(0i32);
    pub const Primary: Self = Self(1i32);
    pub const Secondary: Self = Self(2i32);
}
impl ::core::marker::Copy for ContentDialogResult {}
impl ::core::clone::Clone for ContentDialogResult {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ContentDialogResult {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ContentDialogResult {
    type Abi = Self;
}
impl ::core::fmt::Debug for ContentDialogResult {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ContentDialogResult").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ContentDialogResult {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.ContentDialogResult;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct ContentLinkChangeKind(pub i32);
impl ContentLinkChangeKind {
    pub const Inserted: Self = Self(0i32);
    pub const Removed: Self = Self(1i32);
    pub const Edited: Self = Self(2i32);
}
impl ::core::marker::Copy for ContentLinkChangeKind {}
impl ::core::clone::Clone for ContentLinkChangeKind {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ContentLinkChangeKind {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ContentLinkChangeKind {
    type Abi = Self;
}
impl ::core::fmt::Debug for ContentLinkChangeKind {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ContentLinkChangeKind").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ContentLinkChangeKind {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.ContentLinkChangeKind;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ContentLinkChangedEventArgs(::windows::core::IUnknown);
impl ContentLinkChangedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ChangeKind(&self) -> ::windows::core::Result<ContentLinkChangeKind> {
        let this = self;
        unsafe {
            let mut result__: ContentLinkChangeKind = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ChangeKind)(::core::mem::transmute_copy(this), &mut result__).from_abi::<ContentLinkChangeKind>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn ContentLinkInfo(&self) -> ::windows::core::Result<super::super::Text::ContentLinkInfo> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentLinkInfo)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Text::ContentLinkInfo>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Documents'*"]
    #[cfg(feature = "UI_Xaml_Documents")]
    pub fn TextRange(&self) -> ::windows::core::Result<super::Documents::TextRange> {
        let this = self;
        unsafe {
            let mut result__: super::Documents::TextRange = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextRange)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Documents::TextRange>(result__)
        }
    }
}
impl ::core::clone::Clone for ContentLinkChangedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ContentLinkChangedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ContentLinkChangedEventArgs {}
impl ::core::fmt::Debug for ContentLinkChangedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ContentLinkChangedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ContentLinkChangedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ContentLinkChangedEventArgs;{64f3f1de-89fb-4b77-8b9b-191b6d19290a})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ContentLinkChangedEventArgs {
    type Vtable = IContentLinkChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IContentLinkChangedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ContentLinkChangedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ContentLinkChangedEventArgs";
}
impl ::core::convert::From<ContentLinkChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: ContentLinkChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ContentLinkChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &ContentLinkChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ContentLinkChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ContentLinkChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ContentLinkChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: ContentLinkChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ContentLinkChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &ContentLinkChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ContentLinkChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ContentLinkChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for ContentLinkChangedEventArgs {}
unsafe impl ::core::marker::Sync for ContentLinkChangedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ContentPresenter(::windows::core::IUnknown);
impl ContentPresenter {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Content(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Content)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetContent<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetContent)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContentTemplate(&self) -> ::windows::core::Result<super::DataTemplate> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentTemplate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetContentTemplate<'a, Param0: ::windows::core::IntoParam<'a, super::DataTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetContentTemplate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContentTemplateSelector(&self) -> ::windows::core::Result<DataTemplateSelector> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentTemplateSelector)(::core::mem::transmute_copy(this), &mut result__).from_abi::<DataTemplateSelector>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetContentTemplateSelector<'a, Param0: ::windows::core::IntoParam<'a, DataTemplateSelector>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetContentTemplateSelector)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'UI_Xaml_Media_Animation'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub fn ContentTransitions(&self) -> ::windows::core::Result<super::Media::Animation::TransitionCollection> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentTransitions)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Animation::TransitionCollection>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'UI_Xaml_Media_Animation'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub fn SetContentTransitions<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Animation::TransitionCollection>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetContentTransitions)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontSize(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontSize)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetFontSize(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFontSize)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn FontFamily(&self) -> ::windows::core::Result<super::Media::FontFamily> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontFamily)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::FontFamily>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetFontFamily<'a, Param0: ::windows::core::IntoParam<'a, super::Media::FontFamily>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFontFamily)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn FontWeight(&self) -> ::windows::core::Result<super::super::Text::FontWeight> {
        let this = self;
        unsafe {
            let mut result__: super::super::Text::FontWeight = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontWeight)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Text::FontWeight>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn SetFontWeight<'a, Param0: ::windows::core::IntoParam<'a, super::super::Text::FontWeight>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFontWeight)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn FontStyle(&self) -> ::windows::core::Result<super::super::Text::FontStyle> {
        let this = self;
        unsafe {
            let mut result__: super::super::Text::FontStyle = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontStyle)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Text::FontStyle>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn SetFontStyle(&self, value: super::super::Text::FontStyle) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFontStyle)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn FontStretch(&self) -> ::windows::core::Result<super::super::Text::FontStretch> {
        let this = self;
        unsafe {
            let mut result__: super::super::Text::FontStretch = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontStretch)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Text::FontStretch>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn SetFontStretch(&self, value: super::super::Text::FontStretch) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFontStretch)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CharacterSpacing(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CharacterSpacing)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCharacterSpacing(&self, value: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCharacterSpacing)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn Foreground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Foreground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetForeground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetForeground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OpticalMarginAlignment(&self) -> ::windows::core::Result<super::OpticalMarginAlignment> {
        let this = &::windows::core::Interface::cast::<IContentPresenter2>(self)?;
        unsafe {
            let mut result__: super::OpticalMarginAlignment = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OpticalMarginAlignment)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::OpticalMarginAlignment>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetOpticalMarginAlignment(&self, value: super::OpticalMarginAlignment) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IContentPresenter2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetOpticalMarginAlignment)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextLineBounds(&self) -> ::windows::core::Result<super::TextLineBounds> {
        let this = &::windows::core::Interface::cast::<IContentPresenter2>(self)?;
        unsafe {
            let mut result__: super::TextLineBounds = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextLineBounds)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::TextLineBounds>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTextLineBounds(&self, value: super::TextLineBounds) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IContentPresenter2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetTextLineBounds)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTextScaleFactorEnabled(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IContentPresenter3>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTextScaleFactorEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsTextScaleFactorEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IContentPresenter3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsTextScaleFactorEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextWrapping(&self) -> ::windows::core::Result<super::TextWrapping> {
        let this = &::windows::core::Interface::cast::<IContentPresenter4>(self)?;
        unsafe {
            let mut result__: super::TextWrapping = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextWrapping)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::TextWrapping>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTextWrapping(&self, value: super::TextWrapping) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IContentPresenter4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetTextWrapping)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxLines(&self) -> ::windows::core::Result<i32> {
        let this = &::windows::core::Interface::cast::<IContentPresenter4>(self)?;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxLines)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMaxLines(&self, value: i32) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IContentPresenter4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetMaxLines)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LineStackingStrategy(&self) -> ::windows::core::Result<super::LineStackingStrategy> {
        let this = &::windows::core::Interface::cast::<IContentPresenter4>(self)?;
        unsafe {
            let mut result__: super::LineStackingStrategy = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LineStackingStrategy)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::LineStackingStrategy>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetLineStackingStrategy(&self, value: super::LineStackingStrategy) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IContentPresenter4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetLineStackingStrategy)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LineHeight(&self) -> ::windows::core::Result<f64> {
        let this = &::windows::core::Interface::cast::<IContentPresenter4>(self)?;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LineHeight)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetLineHeight(&self, value: f64) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IContentPresenter4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetLineHeight)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn BorderBrush(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = &::windows::core::Interface::cast::<IContentPresenter4>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BorderBrush)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetBorderBrush<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IContentPresenter4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetBorderBrush)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BorderThickness(&self) -> ::windows::core::Result<super::Thickness> {
        let this = &::windows::core::Interface::cast::<IContentPresenter4>(self)?;
        unsafe {
            let mut result__: super::Thickness = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BorderThickness)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Thickness>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetBorderThickness<'a, Param0: ::windows::core::IntoParam<'a, super::Thickness>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IContentPresenter4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetBorderThickness)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CornerRadius(&self) -> ::windows::core::Result<super::CornerRadius> {
        let this = &::windows::core::Interface::cast::<IContentPresenter4>(self)?;
        unsafe {
            let mut result__: super::CornerRadius = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CornerRadius)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::CornerRadius>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCornerRadius<'a, Param0: ::windows::core::IntoParam<'a, super::CornerRadius>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IContentPresenter4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetCornerRadius)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Padding(&self) -> ::windows::core::Result<super::Thickness> {
        let this = &::windows::core::Interface::cast::<IContentPresenter4>(self)?;
        unsafe {
            let mut result__: super::Thickness = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Padding)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Thickness>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPadding<'a, Param0: ::windows::core::IntoParam<'a, super::Thickness>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IContentPresenter4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetPadding)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn Background(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = &::windows::core::Interface::cast::<IContentPresenter4>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Background)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetBackground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IContentPresenter4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetBackground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalContentAlignment(&self) -> ::windows::core::Result<super::HorizontalAlignment> {
        let this = &::windows::core::Interface::cast::<IContentPresenter4>(self)?;
        unsafe {
            let mut result__: super::HorizontalAlignment = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalContentAlignment)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::HorizontalAlignment>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHorizontalContentAlignment(&self, value: super::HorizontalAlignment) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IContentPresenter4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetHorizontalContentAlignment)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalContentAlignment(&self) -> ::windows::core::Result<super::VerticalAlignment> {
        let this = &::windows::core::Interface::cast::<IContentPresenter4>(self)?;
        unsafe {
            let mut result__: super::VerticalAlignment = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalContentAlignment)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::VerticalAlignment>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetVerticalContentAlignment(&self, value: super::VerticalAlignment) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IContentPresenter4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetVerticalContentAlignment)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BackgroundTransition(&self) -> ::windows::core::Result<super::BrushTransition> {
        let this = &::windows::core::Interface::cast::<IContentPresenter5>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BackgroundTransition)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::BrushTransition>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetBackgroundTransition<'a, Param0: ::windows::core::IntoParam<'a, super::BrushTransition>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IContentPresenter5>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetBackgroundTransition)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BackgroundSizing(&self) -> ::windows::core::Result<BackgroundSizing> {
        let this = &::windows::core::Interface::cast::<IContentPresenter5>(self)?;
        unsafe {
            let mut result__: BackgroundSizing = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BackgroundSizing)(::core::mem::transmute_copy(this), &mut result__).from_abi::<BackgroundSizing>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetBackgroundSizing(&self, value: BackgroundSizing) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IContentPresenter5>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetBackgroundSizing)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<ContentPresenter> {
        Self::IContentPresenterFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<ContentPresenter>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<ContentPresenter> {
        Self::IContentPresenterFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<ContentPresenter>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentPresenterStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContentTemplateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentPresenterStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentTemplateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContentTemplateSelectorProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentPresenterStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentTemplateSelectorProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContentTransitionsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentPresenterStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentTransitionsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontSizeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentPresenterStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontSizeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontFamilyProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentPresenterStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontFamilyProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontWeightProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentPresenterStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontWeightProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontStyleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentPresenterStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontStyleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontStretchProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentPresenterStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontStretchProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CharacterSpacingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentPresenterStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CharacterSpacingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ForegroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentPresenterStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ForegroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OpticalMarginAlignmentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentPresenterStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OpticalMarginAlignmentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextLineBoundsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentPresenterStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextLineBoundsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTextScaleFactorEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentPresenterStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTextScaleFactorEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextWrappingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentPresenterStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextWrappingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxLinesProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentPresenterStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxLinesProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LineStackingStrategyProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentPresenterStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LineStackingStrategyProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LineHeightProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentPresenterStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LineHeightProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BorderBrushProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentPresenterStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BorderBrushProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BorderThicknessProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentPresenterStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BorderThicknessProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CornerRadiusProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentPresenterStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CornerRadiusProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PaddingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentPresenterStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaddingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BackgroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentPresenterStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BackgroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalContentAlignmentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentPresenterStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalContentAlignmentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalContentAlignmentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentPresenterStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalContentAlignmentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BackgroundSizingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IContentPresenterStatics5(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BackgroundSizingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IContentPresenterFactory<R, F: FnOnce(&IContentPresenterFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ContentPresenter, IContentPresenterFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IContentPresenterStatics<R, F: FnOnce(&IContentPresenterStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ContentPresenter, IContentPresenterStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IContentPresenterStatics2<R, F: FnOnce(&IContentPresenterStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ContentPresenter, IContentPresenterStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IContentPresenterStatics3<R, F: FnOnce(&IContentPresenterStatics3) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ContentPresenter, IContentPresenterStatics3> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IContentPresenterStatics4<R, F: FnOnce(&IContentPresenterStatics4) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ContentPresenter, IContentPresenterStatics4> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IContentPresenterStatics5<R, F: FnOnce(&IContentPresenterStatics5) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ContentPresenter, IContentPresenterStatics5> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for ContentPresenter {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ContentPresenter {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ContentPresenter {}
impl ::core::fmt::Debug for ContentPresenter {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ContentPresenter").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ContentPresenter {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ContentPresenter;{79fde5b4-cd37-491c-8845-daf472defff6})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ContentPresenter {
    type Vtable = IContentPresenter_Vtbl;
    const IID: ::windows::core::GUID = <IContentPresenter as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ContentPresenter {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ContentPresenter";
}
impl ::core::convert::From<ContentPresenter> for ::windows::core::IUnknown {
    fn from(value: ContentPresenter) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ContentPresenter> for ::windows::core::IUnknown {
    fn from(value: &ContentPresenter) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ContentPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ContentPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ContentPresenter> for ::windows::core::IInspectable {
    fn from(value: ContentPresenter) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ContentPresenter> for ::windows::core::IInspectable {
    fn from(value: &ContentPresenter) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ContentPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ContentPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ContentPresenter> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: ContentPresenter) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ContentPresenter> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &ContentPresenter) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for ContentPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &ContentPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ContentPresenter> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: ContentPresenter) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ContentPresenter> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &ContentPresenter) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for ContentPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &ContentPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<ContentPresenter> for super::FrameworkElement {
    fn from(value: ContentPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ContentPresenter> for super::FrameworkElement {
    fn from(value: &ContentPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for ContentPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &ContentPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<ContentPresenter> for super::UIElement {
    fn from(value: ContentPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ContentPresenter> for super::UIElement {
    fn from(value: &ContentPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for ContentPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &ContentPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<ContentPresenter> for super::DependencyObject {
    fn from(value: ContentPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ContentPresenter> for super::DependencyObject {
    fn from(value: &ContentPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for ContentPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &ContentPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for ContentPresenter {}
unsafe impl ::core::marker::Sync for ContentPresenter {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ContextMenuEventArgs(::windows::core::IUnknown);
impl ContextMenuEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Handled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Handled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHandled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHandled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CursorLeft(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CursorLeft)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CursorTop(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CursorTop)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
}
impl ::core::clone::Clone for ContextMenuEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ContextMenuEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ContextMenuEventArgs {}
impl ::core::fmt::Debug for ContextMenuEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ContextMenuEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ContextMenuEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ContextMenuEventArgs;{1f7df263-c14b-4528-b6f0-637999d83cc6})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ContextMenuEventArgs {
    type Vtable = IContextMenuEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IContextMenuEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ContextMenuEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ContextMenuEventArgs";
}
impl ::core::convert::From<ContextMenuEventArgs> for ::windows::core::IUnknown {
    fn from(value: ContextMenuEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ContextMenuEventArgs> for ::windows::core::IUnknown {
    fn from(value: &ContextMenuEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ContextMenuEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ContextMenuEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ContextMenuEventArgs> for ::windows::core::IInspectable {
    fn from(value: ContextMenuEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ContextMenuEventArgs> for ::windows::core::IInspectable {
    fn from(value: &ContextMenuEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ContextMenuEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ContextMenuEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ContextMenuEventArgs> for super::RoutedEventArgs {
    fn from(value: ContextMenuEventArgs) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ContextMenuEventArgs> for super::RoutedEventArgs {
    fn from(value: &ContextMenuEventArgs) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::RoutedEventArgs> for ContextMenuEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, super::RoutedEventArgs> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::RoutedEventArgs> for &ContextMenuEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, super::RoutedEventArgs> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::RoutedEventArgs>::into(self))
    }
}
unsafe impl ::core::marker::Send for ContextMenuEventArgs {}
unsafe impl ::core::marker::Sync for ContextMenuEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ContextMenuOpeningEventHandler(pub ::windows::core::IUnknown);
impl ContextMenuOpeningEventHandler {
    pub fn new<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<ContextMenuEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static>(invoke: F) -> Self {
        let com = ContextMenuOpeningEventHandlerBox::<F> { vtable: &ContextMenuOpeningEventHandlerBox::<F>::VTABLE, count: ::windows::core::RefCount::new(1), invoke };
        unsafe { ::core::mem::transmute(::windows::core::alloc::boxed::Box::new(com)) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Invoke<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>, Param1: ::windows::core::IntoParam<'a, ContextMenuEventArgs>>(&self, sender: Param0, e: Param1) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Invoke)(::core::mem::transmute_copy(this), sender.into_param().abi(), e.into_param().abi()).ok() }
    }
}
#[repr(C)]
struct ContextMenuOpeningEventHandlerBox<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<ContextMenuEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static> {
    vtable: *const ContextMenuOpeningEventHandler_Vtbl,
    invoke: F,
    count: ::windows::core::RefCount,
}
impl<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<ContextMenuEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static> ContextMenuOpeningEventHandlerBox<F> {
    const VTABLE: ContextMenuOpeningEventHandler_Vtbl = ContextMenuOpeningEventHandler_Vtbl { base: ::windows::core::IUnknownVtbl { QueryInterface: Self::QueryInterface, AddRef: Self::AddRef, Release: Self::Release }, Invoke: Self::Invoke };
    unsafe extern "system" fn QueryInterface(this: ::windows::core::RawPtr, iid: &::windows::core::GUID, interface: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        *interface = if iid == &<ContextMenuOpeningEventHandler as ::windows::core::Interface>::IID || iid == &<::windows::core::IUnknown as ::windows::core::Interface>::IID || iid == &<::windows::core::IAgileObject as ::windows::core::Interface>::IID { &mut (*this).vtable as *mut _ as _ } else { ::core::ptr::null_mut() };
        if (*interface).is_null() {
            ::windows::core::HRESULT(-2147467262)
        } else {
            (*this).count.add_ref();
            ::windows::core::HRESULT(0)
        }
    }
    unsafe extern "system" fn AddRef(this: ::windows::core::RawPtr) -> u32 {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        (*this).count.add_ref()
    }
    unsafe extern "system" fn Release(this: ::windows::core::RawPtr) -> u32 {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        let remaining = (*this).count.release();
        if remaining == 0 {
            ::windows::core::alloc::boxed::Box::from_raw(this);
        }
        remaining
    }
    unsafe extern "system" fn Invoke(this: *mut ::core::ffi::c_void, sender: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        ((*this).invoke)(::core::mem::transmute(&sender), ::core::mem::transmute(&e)).into()
    }
}
impl ::core::clone::Clone for ContextMenuOpeningEventHandler {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ContextMenuOpeningEventHandler {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ContextMenuOpeningEventHandler {}
impl ::core::fmt::Debug for ContextMenuOpeningEventHandler {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ContextMenuOpeningEventHandler").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for ContextMenuOpeningEventHandler {
    type Vtable = ContextMenuOpeningEventHandler_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xdf945151_745c_4446_b2fc_216d765847a0);
}
unsafe impl ::windows::core::RuntimeType for ContextMenuOpeningEventHandler {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"{df945151-745c-4446-b2fc-216d765847a0}");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
#[repr(C)]
#[doc(hidden)]
pub struct ContextMenuOpeningEventHandler_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    pub Invoke: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sender: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct Control(::windows::core::IUnknown);
impl Control {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontSize(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontSize)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetFontSize(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFontSize)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn FontFamily(&self) -> ::windows::core::Result<super::Media::FontFamily> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontFamily)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::FontFamily>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetFontFamily<'a, Param0: ::windows::core::IntoParam<'a, super::Media::FontFamily>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFontFamily)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn FontWeight(&self) -> ::windows::core::Result<super::super::Text::FontWeight> {
        let this = self;
        unsafe {
            let mut result__: super::super::Text::FontWeight = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontWeight)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Text::FontWeight>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn SetFontWeight<'a, Param0: ::windows::core::IntoParam<'a, super::super::Text::FontWeight>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFontWeight)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn FontStyle(&self) -> ::windows::core::Result<super::super::Text::FontStyle> {
        let this = self;
        unsafe {
            let mut result__: super::super::Text::FontStyle = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontStyle)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Text::FontStyle>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn SetFontStyle(&self, value: super::super::Text::FontStyle) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFontStyle)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn FontStretch(&self) -> ::windows::core::Result<super::super::Text::FontStretch> {
        let this = self;
        unsafe {
            let mut result__: super::super::Text::FontStretch = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontStretch)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Text::FontStretch>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn SetFontStretch(&self, value: super::super::Text::FontStretch) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFontStretch)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CharacterSpacing(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CharacterSpacing)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCharacterSpacing(&self, value: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCharacterSpacing)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn Foreground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Foreground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetForeground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetForeground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTabStop(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTabStop)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsTabStop(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsTabStop)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TabIndex(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TabIndex)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTabIndex(&self, value: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTabIndex)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Input'*"]
    #[cfg(feature = "UI_Xaml_Input")]
    pub fn TabNavigation(&self) -> ::windows::core::Result<super::Input::KeyboardNavigationMode> {
        let this = self;
        unsafe {
            let mut result__: super::Input::KeyboardNavigationMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TabNavigation)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Input::KeyboardNavigationMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Input'*"]
    #[cfg(feature = "UI_Xaml_Input")]
    pub fn SetTabNavigation(&self, value: super::Input::KeyboardNavigationMode) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTabNavigation)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Template(&self) -> ::windows::core::Result<ControlTemplate> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Template)(::core::mem::transmute_copy(this), &mut result__).from_abi::<ControlTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTemplate<'a, Param0: ::windows::core::IntoParam<'a, ControlTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTemplate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Padding(&self) -> ::windows::core::Result<super::Thickness> {
        let this = self;
        unsafe {
            let mut result__: super::Thickness = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Padding)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Thickness>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPadding<'a, Param0: ::windows::core::IntoParam<'a, super::Thickness>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPadding)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalContentAlignment(&self) -> ::windows::core::Result<super::HorizontalAlignment> {
        let this = self;
        unsafe {
            let mut result__: super::HorizontalAlignment = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalContentAlignment)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::HorizontalAlignment>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHorizontalContentAlignment(&self, value: super::HorizontalAlignment) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHorizontalContentAlignment)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalContentAlignment(&self) -> ::windows::core::Result<super::VerticalAlignment> {
        let this = self;
        unsafe {
            let mut result__: super::VerticalAlignment = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalContentAlignment)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::VerticalAlignment>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetVerticalContentAlignment(&self, value: super::VerticalAlignment) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetVerticalContentAlignment)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn Background(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Background)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetBackground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetBackground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BorderThickness(&self) -> ::windows::core::Result<super::Thickness> {
        let this = self;
        unsafe {
            let mut result__: super::Thickness = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BorderThickness)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Thickness>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetBorderThickness<'a, Param0: ::windows::core::IntoParam<'a, super::Thickness>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetBorderThickness)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn BorderBrush(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BorderBrush)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetBorderBrush<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetBorderBrush)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FocusState(&self) -> ::windows::core::Result<super::FocusState> {
        let this = self;
        unsafe {
            let mut result__: super::FocusState = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FocusState)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::FocusState>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn IsEnabledChanged<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyPropertyChangedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsEnabledChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveIsEnabledChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveIsEnabledChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ApplyTemplate(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ApplyTemplate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Focus(&self, value: super::FocusState) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Focus)(::core::mem::transmute_copy(this), value, &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTextScaleFactorEnabled(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IControl2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTextScaleFactorEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsTextScaleFactorEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IControl2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsTextScaleFactorEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn UseSystemFocusVisuals(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IControl3>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).UseSystemFocusVisuals)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetUseSystemFocusVisuals(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IControl3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetUseSystemFocusVisuals)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsFocusEngagementEnabled(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IControl4>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsFocusEngagementEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsFocusEngagementEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IControl4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsFocusEngagementEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsFocusEngaged(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IControl4>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsFocusEngaged)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsFocusEngaged(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IControl4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsFocusEngaged)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn RequiresPointer(&self) -> ::windows::core::Result<RequiresPointer> {
        let this = &::windows::core::Interface::cast::<IControl4>(self)?;
        unsafe {
            let mut result__: RequiresPointer = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).RequiresPointer)(::core::mem::transmute_copy(this), &mut result__).from_abi::<RequiresPointer>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetRequiresPointer(&self, value: RequiresPointer) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IControl4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetRequiresPointer)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn XYFocusLeft(&self) -> ::windows::core::Result<super::DependencyObject> {
        let this = &::windows::core::Interface::cast::<IControl4>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).XYFocusLeft)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyObject>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetXYFocusLeft<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IControl4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetXYFocusLeft)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn XYFocusRight(&self) -> ::windows::core::Result<super::DependencyObject> {
        let this = &::windows::core::Interface::cast::<IControl4>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).XYFocusRight)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyObject>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetXYFocusRight<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IControl4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetXYFocusRight)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn XYFocusUp(&self) -> ::windows::core::Result<super::DependencyObject> {
        let this = &::windows::core::Interface::cast::<IControl4>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).XYFocusUp)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyObject>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetXYFocusUp<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IControl4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetXYFocusUp)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn XYFocusDown(&self) -> ::windows::core::Result<super::DependencyObject> {
        let this = &::windows::core::Interface::cast::<IControl4>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).XYFocusDown)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyObject>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetXYFocusDown<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IControl4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetXYFocusDown)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ElementSoundMode(&self) -> ::windows::core::Result<super::ElementSoundMode> {
        let this = &::windows::core::Interface::cast::<IControl4>(self)?;
        unsafe {
            let mut result__: super::ElementSoundMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ElementSoundMode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::ElementSoundMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetElementSoundMode(&self, value: super::ElementSoundMode) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IControl4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetElementSoundMode)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn FocusEngaged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<Control, FocusEngagedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IControl4>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FocusEngaged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveFocusEngaged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IControl4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveFocusEngaged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn FocusDisengaged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<Control, FocusDisengagedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IControl4>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FocusDisengaged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveFocusDisengaged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IControl4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveFocusDisengaged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn RemoveFocusEngagement(&self) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IControl4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveFocusEngagement)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn DefaultStyleResourceUri(&self) -> ::windows::core::Result<super::super::super::Foundation::Uri> {
        let this = &::windows::core::Interface::cast::<IControl5>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DefaultStyleResourceUri)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Uri>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SetDefaultStyleResourceUri<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::Uri>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IControl5>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetDefaultStyleResourceUri)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BackgroundSizing(&self) -> ::windows::core::Result<BackgroundSizing> {
        let this = &::windows::core::Interface::cast::<IControl7>(self)?;
        unsafe {
            let mut result__: BackgroundSizing = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BackgroundSizing)(::core::mem::transmute_copy(this), &mut result__).from_abi::<BackgroundSizing>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetBackgroundSizing(&self, value: BackgroundSizing) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IControl7>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetBackgroundSizing)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CornerRadius(&self) -> ::windows::core::Result<super::CornerRadius> {
        let this = &::windows::core::Interface::cast::<IControl7>(self)?;
        unsafe {
            let mut result__: super::CornerRadius = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CornerRadius)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::CornerRadius>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCornerRadius<'a, Param0: ::windows::core::IntoParam<'a, super::CornerRadius>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IControl7>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetCornerRadius)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DefaultStyleKey(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = &::windows::core::Interface::cast::<IControlProtected>(self)?;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DefaultStyleKey)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDefaultStyleKey<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IControlProtected>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetDefaultStyleKey)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetTemplateChild<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, childname: Param0) -> ::windows::core::Result<super::DependencyObject> {
        let this = &::windows::core::Interface::cast::<IControlProtected>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetTemplateChild)(::core::mem::transmute_copy(this), childname.into_param().abi(), &mut result__).from_abi::<super::DependencyObject>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontSizeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontSizeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontFamilyProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontFamilyProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontWeightProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontWeightProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontStyleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontStyleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontStretchProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontStretchProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CharacterSpacingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CharacterSpacingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ForegroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ForegroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTabStopProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTabStopProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TabIndexProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TabIndexProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TabNavigationProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TabNavigationProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TemplateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TemplateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PaddingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaddingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalContentAlignmentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalContentAlignmentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalContentAlignmentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalContentAlignmentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BackgroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BackgroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BorderThicknessProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BorderThicknessProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BorderBrushProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BorderBrushProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DefaultStyleKeyProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DefaultStyleKeyProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FocusStateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FocusStateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTextScaleFactorEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTextScaleFactorEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn UseSystemFocusVisualsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).UseSystemFocusVisualsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTemplateFocusTargetProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTemplateFocusTargetProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetIsTemplateFocusTarget<'a, Param0: ::windows::core::IntoParam<'a, super::FrameworkElement>>(element: Param0) -> ::windows::core::Result<bool> {
        Self::IControlStatics3(|this| unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetIsTemplateFocusTarget)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<bool>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsTemplateFocusTarget<'a, Param0: ::windows::core::IntoParam<'a, super::FrameworkElement>>(element: Param0, value: bool) -> ::windows::core::Result<()> {
        Self::IControlStatics3(|this| unsafe { (::windows::core::Interface::vtable(this).SetIsTemplateFocusTarget)(::core::mem::transmute_copy(this), element.into_param().abi(), value).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsFocusEngagementEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsFocusEngagementEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsFocusEngagedProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsFocusEngagedProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn RequiresPointerProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).RequiresPointerProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn XYFocusLeftProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).XYFocusLeftProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn XYFocusRightProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).XYFocusRightProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn XYFocusUpProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).XYFocusUpProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn XYFocusDownProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).XYFocusDownProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ElementSoundModeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ElementSoundModeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DefaultStyleResourceUriProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics5(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DefaultStyleResourceUriProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTemplateKeyTipTargetProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics5(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTemplateKeyTipTargetProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetIsTemplateKeyTipTarget<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0) -> ::windows::core::Result<bool> {
        Self::IControlStatics5(|this| unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetIsTemplateKeyTipTarget)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<bool>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsTemplateKeyTipTarget<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0, value: bool) -> ::windows::core::Result<()> {
        Self::IControlStatics5(|this| unsafe { (::windows::core::Interface::vtable(this).SetIsTemplateKeyTipTarget)(::core::mem::transmute_copy(this), element.into_param().abi(), value).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BackgroundSizingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics7(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BackgroundSizingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CornerRadiusProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IControlStatics7(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CornerRadiusProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IControlStatics<R, F: FnOnce(&IControlStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Control, IControlStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IControlStatics2<R, F: FnOnce(&IControlStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Control, IControlStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IControlStatics3<R, F: FnOnce(&IControlStatics3) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Control, IControlStatics3> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IControlStatics4<R, F: FnOnce(&IControlStatics4) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Control, IControlStatics4> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IControlStatics5<R, F: FnOnce(&IControlStatics5) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Control, IControlStatics5> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IControlStatics7<R, F: FnOnce(&IControlStatics7) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Control, IControlStatics7> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for Control {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for Control {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for Control {}
impl ::core::fmt::Debug for Control {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("Control").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for Control {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.Control;{a8912263-2951-4f58-a9c5-5a134eaa7f07})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for Control {
    type Vtable = IControl_Vtbl;
    const IID: ::windows::core::GUID = <IControl as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for Control {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.Control";
}
impl ::core::convert::From<Control> for ::windows::core::IUnknown {
    fn from(value: Control) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&Control> for ::windows::core::IUnknown {
    fn from(value: &Control) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for Control {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a Control {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<Control> for ::windows::core::IInspectable {
    fn from(value: Control) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&Control> for ::windows::core::IInspectable {
    fn from(value: &Control) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for Control {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a Control {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<Control> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: Control) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&Control> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &Control) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for Control {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &Control {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<Control> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: Control) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&Control> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &Control) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for Control {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &Control {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<Control> for super::FrameworkElement {
    fn from(value: Control) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Control> for super::FrameworkElement {
    fn from(value: &Control) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for Control {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &Control {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<Control> for super::UIElement {
    fn from(value: Control) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Control> for super::UIElement {
    fn from(value: &Control) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for Control {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &Control {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<Control> for super::DependencyObject {
    fn from(value: Control) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Control> for super::DependencyObject {
    fn from(value: &Control) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for Control {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &Control {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for Control {}
unsafe impl ::core::marker::Sync for Control {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ControlTemplate(::windows::core::IUnknown);
impl ControlTemplate {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ControlTemplate, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Interop'*"]
    #[cfg(feature = "UI_Xaml_Interop")]
    pub fn TargetType(&self) -> ::windows::core::Result<super::Interop::TypeName> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<super::Interop::TypeName> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TargetType)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Interop::TypeName>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Interop'*"]
    #[cfg(feature = "UI_Xaml_Interop")]
    pub fn SetTargetType<'a, Param0: ::windows::core::IntoParam<'a, super::Interop::TypeName>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTargetType)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
}
impl ::core::clone::Clone for ControlTemplate {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ControlTemplate {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ControlTemplate {}
impl ::core::fmt::Debug for ControlTemplate {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ControlTemplate").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ControlTemplate {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ControlTemplate;{efd2418e-41e0-48bb-8b82-91eda1ba3fe2})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ControlTemplate {
    type Vtable = IControlTemplate_Vtbl;
    const IID: ::windows::core::GUID = <IControlTemplate as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ControlTemplate {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ControlTemplate";
}
impl ::core::convert::From<ControlTemplate> for ::windows::core::IUnknown {
    fn from(value: ControlTemplate) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ControlTemplate> for ::windows::core::IUnknown {
    fn from(value: &ControlTemplate) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ControlTemplate {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ControlTemplate {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ControlTemplate> for ::windows::core::IInspectable {
    fn from(value: ControlTemplate) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ControlTemplate> for ::windows::core::IInspectable {
    fn from(value: &ControlTemplate) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ControlTemplate {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ControlTemplate {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ControlTemplate> for super::FrameworkTemplate {
    fn from(value: ControlTemplate) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ControlTemplate> for super::FrameworkTemplate {
    fn from(value: &ControlTemplate) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkTemplate> for ControlTemplate {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkTemplate> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkTemplate> for &ControlTemplate {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkTemplate> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkTemplate>::into(self))
    }
}
impl ::core::convert::From<ControlTemplate> for super::DependencyObject {
    fn from(value: ControlTemplate) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ControlTemplate> for super::DependencyObject {
    fn from(value: &ControlTemplate) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for ControlTemplate {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &ControlTemplate {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for ControlTemplate {}
unsafe impl ::core::marker::Sync for ControlTemplate {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct DataTemplateSelector(::windows::core::IUnknown);
impl DataTemplateSelector {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectTemplate<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>, Param1: ::windows::core::IntoParam<'a, super::DependencyObject>>(&self, item: Param0, container: Param1) -> ::windows::core::Result<super::DataTemplate> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectTemplate)(::core::mem::transmute_copy(this), item.into_param().abi(), container.into_param().abi(), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectTemplateForItem<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, item: Param0) -> ::windows::core::Result<super::DataTemplate> {
        let this = &::windows::core::Interface::cast::<IDataTemplateSelector2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectTemplateForItem)(::core::mem::transmute_copy(this), item.into_param().abi(), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<DataTemplateSelector> {
        Self::IDataTemplateSelectorFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<DataTemplateSelector>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<DataTemplateSelector> {
        Self::IDataTemplateSelectorFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<DataTemplateSelector>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetElement<'a, Param0: ::windows::core::IntoParam<'a, super::ElementFactoryGetArgs>>(&self, args: Param0) -> ::windows::core::Result<super::UIElement> {
        let this = &::windows::core::Interface::cast::<super::IElementFactory>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetElement)(::core::mem::transmute_copy(this), args.into_param().abi(), &mut result__).from_abi::<super::UIElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn RecycleElement<'a, Param0: ::windows::core::IntoParam<'a, super::ElementFactoryRecycleArgs>>(&self, args: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<super::IElementFactory>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RecycleElement)(::core::mem::transmute_copy(this), args.into_param().abi()).ok() }
    }
    #[doc(hidden)]
    pub fn IDataTemplateSelectorFactory<R, F: FnOnce(&IDataTemplateSelectorFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<DataTemplateSelector, IDataTemplateSelectorFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for DataTemplateSelector {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for DataTemplateSelector {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for DataTemplateSelector {}
impl ::core::fmt::Debug for DataTemplateSelector {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("DataTemplateSelector").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for DataTemplateSelector {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.DataTemplateSelector;{a907d496-46a0-4cd7-8dbe-f9a581df60b1})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for DataTemplateSelector {
    type Vtable = IDataTemplateSelector_Vtbl;
    const IID: ::windows::core::GUID = <IDataTemplateSelector as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for DataTemplateSelector {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.DataTemplateSelector";
}
impl ::core::convert::From<DataTemplateSelector> for ::windows::core::IUnknown {
    fn from(value: DataTemplateSelector) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&DataTemplateSelector> for ::windows::core::IUnknown {
    fn from(value: &DataTemplateSelector) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for DataTemplateSelector {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a DataTemplateSelector {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<DataTemplateSelector> for ::windows::core::IInspectable {
    fn from(value: DataTemplateSelector) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&DataTemplateSelector> for ::windows::core::IInspectable {
    fn from(value: &DataTemplateSelector) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for DataTemplateSelector {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a DataTemplateSelector {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::TryFrom<DataTemplateSelector> for super::IElementFactory {
    type Error = ::windows::core::Error;
    fn try_from(value: DataTemplateSelector) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
impl ::core::convert::TryFrom<&DataTemplateSelector> for super::IElementFactory {
    type Error = ::windows::core::Error;
    fn try_from(value: &DataTemplateSelector) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::IElementFactory> for DataTemplateSelector {
    fn into_param(self) -> ::windows::core::Param<'a, super::IElementFactory> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::IElementFactory> for &DataTemplateSelector {
    fn into_param(self) -> ::windows::core::Param<'a, super::IElementFactory> {
        ::core::convert::TryInto::<super::IElementFactory>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
unsafe impl ::core::marker::Send for DataTemplateSelector {}
unsafe impl ::core::marker::Sync for DataTemplateSelector {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct DatePickedEventArgs(::windows::core::IUnknown);
impl DatePickedEventArgs {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<DatePickedEventArgs, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn OldDate(&self) -> ::windows::core::Result<super::super::super::Foundation::DateTime> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::DateTime = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OldDate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::DateTime>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn NewDate(&self) -> ::windows::core::Result<super::super::super::Foundation::DateTime> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::DateTime = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).NewDate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::DateTime>(result__)
        }
    }
}
impl ::core::clone::Clone for DatePickedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for DatePickedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for DatePickedEventArgs {}
impl ::core::fmt::Debug for DatePickedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("DatePickedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for DatePickedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.DatePickedEventArgs;{a1527b12-59c1-4521-b28c-b176675e7c5a})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for DatePickedEventArgs {
    type Vtable = IDatePickedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IDatePickedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for DatePickedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.DatePickedEventArgs";
}
impl ::core::convert::From<DatePickedEventArgs> for ::windows::core::IUnknown {
    fn from(value: DatePickedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&DatePickedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &DatePickedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for DatePickedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a DatePickedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<DatePickedEventArgs> for ::windows::core::IInspectable {
    fn from(value: DatePickedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&DatePickedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &DatePickedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for DatePickedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a DatePickedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<DatePickedEventArgs> for super::DependencyObject {
    fn from(value: DatePickedEventArgs) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&DatePickedEventArgs> for super::DependencyObject {
    fn from(value: &DatePickedEventArgs) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for DatePickedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &DatePickedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for DatePickedEventArgs {}
unsafe impl ::core::marker::Sync for DatePickedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct DatePicker(::windows::core::IUnknown);
impl DatePicker {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Header(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Header)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeader<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHeader)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTemplate(&self) -> ::windows::core::Result<super::DataTemplate> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTemplate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeaderTemplate<'a, Param0: ::windows::core::IntoParam<'a, super::DataTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHeaderTemplate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CalendarIdentifier(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CalendarIdentifier)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCalendarIdentifier<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCalendarIdentifier)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Date(&self) -> ::windows::core::Result<super::super::super::Foundation::DateTime> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::DateTime = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Date)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::DateTime>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SetDate<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::DateTime>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetDate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DayVisible(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DayVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDayVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetDayVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MonthVisible(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MonthVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMonthVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMonthVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn YearVisible(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).YearVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetYearVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetYearVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DayFormat(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DayFormat)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDayFormat<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetDayFormat)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MonthFormat(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MonthFormat)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMonthFormat<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMonthFormat)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn YearFormat(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).YearFormat)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetYearFormat<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetYearFormat)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn MinYear(&self) -> ::windows::core::Result<super::super::super::Foundation::DateTime> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::DateTime = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MinYear)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::DateTime>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SetMinYear<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::DateTime>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMinYear)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn MaxYear(&self) -> ::windows::core::Result<super::super::super::Foundation::DateTime> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::DateTime = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxYear)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::DateTime>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SetMaxYear<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::DateTime>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMaxYear)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Orientation(&self) -> ::windows::core::Result<Orientation> {
        let this = self;
        unsafe {
            let mut result__: Orientation = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Orientation)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Orientation>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetOrientation(&self, value: Orientation) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetOrientation)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn DateChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventHandler<DatePickerValueChangedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DateChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveDateChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveDateChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LightDismissOverlayMode(&self) -> ::windows::core::Result<LightDismissOverlayMode> {
        let this = &::windows::core::Interface::cast::<IDatePicker2>(self)?;
        unsafe {
            let mut result__: LightDismissOverlayMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LightDismissOverlayMode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<LightDismissOverlayMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetLightDismissOverlayMode(&self, value: LightDismissOverlayMode) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IDatePicker2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetLightDismissOverlayMode)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SelectedDate(&self) -> ::windows::core::Result<super::super::super::Foundation::IReference<super::super::super::Foundation::DateTime>> {
        let this = &::windows::core::Interface::cast::<IDatePicker3>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedDate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::IReference<super::super::super::Foundation::DateTime>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SetSelectedDate<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::IReference<super::super::super::Foundation::DateTime>>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IDatePicker3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectedDate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SelectedDateChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<DatePicker, DatePickerSelectedValueChangedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IDatePicker3>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedDateChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveSelectedDateChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IDatePicker3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveSelectedDateChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<DatePicker> {
        Self::IDatePickerFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<DatePicker>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<DatePicker> {
        Self::IDatePickerFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<DatePicker>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IDatePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTemplateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IDatePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTemplateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CalendarIdentifierProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IDatePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CalendarIdentifierProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IDatePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DayVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IDatePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DayVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MonthVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IDatePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MonthVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn YearVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IDatePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).YearVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DayFormatProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IDatePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DayFormatProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MonthFormatProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IDatePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MonthFormatProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn YearFormatProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IDatePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).YearFormatProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MinYearProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IDatePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MinYearProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxYearProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IDatePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxYearProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OrientationProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IDatePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OrientationProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LightDismissOverlayModeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IDatePickerStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LightDismissOverlayModeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedDateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IDatePickerStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedDateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IDatePickerFactory<R, F: FnOnce(&IDatePickerFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<DatePicker, IDatePickerFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IDatePickerStatics<R, F: FnOnce(&IDatePickerStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<DatePicker, IDatePickerStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IDatePickerStatics2<R, F: FnOnce(&IDatePickerStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<DatePicker, IDatePickerStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IDatePickerStatics3<R, F: FnOnce(&IDatePickerStatics3) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<DatePicker, IDatePickerStatics3> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for DatePicker {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for DatePicker {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for DatePicker {}
impl ::core::fmt::Debug for DatePicker {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("DatePicker").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for DatePicker {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.DatePicker;{06da3946-08b8-4103-8b8a-093efd6a7657})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for DatePicker {
    type Vtable = IDatePicker_Vtbl;
    const IID: ::windows::core::GUID = <IDatePicker as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for DatePicker {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.DatePicker";
}
impl ::core::convert::From<DatePicker> for ::windows::core::IUnknown {
    fn from(value: DatePicker) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&DatePicker> for ::windows::core::IUnknown {
    fn from(value: &DatePicker) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for DatePicker {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a DatePicker {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<DatePicker> for ::windows::core::IInspectable {
    fn from(value: DatePicker) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&DatePicker> for ::windows::core::IInspectable {
    fn from(value: &DatePicker) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for DatePicker {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a DatePicker {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<DatePicker> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: DatePicker) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&DatePicker> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &DatePicker) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for DatePicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &DatePicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<DatePicker> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: DatePicker) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&DatePicker> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &DatePicker) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for DatePicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &DatePicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<DatePicker> for Control {
    fn from(value: DatePicker) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&DatePicker> for Control {
    fn from(value: &DatePicker) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for DatePicker {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &DatePicker {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<DatePicker> for super::FrameworkElement {
    fn from(value: DatePicker) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&DatePicker> for super::FrameworkElement {
    fn from(value: &DatePicker) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for DatePicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &DatePicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<DatePicker> for super::UIElement {
    fn from(value: DatePicker) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&DatePicker> for super::UIElement {
    fn from(value: &DatePicker) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for DatePicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &DatePicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<DatePicker> for super::DependencyObject {
    fn from(value: DatePicker) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&DatePicker> for super::DependencyObject {
    fn from(value: &DatePicker) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for DatePicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &DatePicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for DatePicker {}
unsafe impl ::core::marker::Sync for DatePicker {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct DatePickerFlyout(::windows::core::IUnknown);
impl DatePickerFlyout {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<DatePickerFlyout, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CalendarIdentifier(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CalendarIdentifier)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCalendarIdentifier<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCalendarIdentifier)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Date(&self) -> ::windows::core::Result<super::super::super::Foundation::DateTime> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::DateTime = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Date)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::DateTime>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SetDate<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::DateTime>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetDate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DayVisible(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DayVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDayVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetDayVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MonthVisible(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MonthVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMonthVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMonthVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn YearVisible(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).YearVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetYearVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetYearVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn MinYear(&self) -> ::windows::core::Result<super::super::super::Foundation::DateTime> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::DateTime = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MinYear)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::DateTime>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SetMinYear<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::DateTime>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMinYear)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn MaxYear(&self) -> ::windows::core::Result<super::super::super::Foundation::DateTime> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::DateTime = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxYear)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::DateTime>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SetMaxYear<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::DateTime>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMaxYear)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn DatePicked<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<DatePickerFlyout, DatePickedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DatePicked)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveDatePicked<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveDatePicked)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ShowAtAsync<'a, Param0: ::windows::core::IntoParam<'a, super::FrameworkElement>>(&self, target: Param0) -> ::windows::core::Result<super::super::super::Foundation::IAsyncOperation<super::super::super::Foundation::IReference<super::super::super::Foundation::DateTime>>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ShowAtAsync)(::core::mem::transmute_copy(this), target.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::IAsyncOperation<super::super::super::Foundation::IReference<super::super::super::Foundation::DateTime>>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DayFormat(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = &::windows::core::Interface::cast::<IDatePickerFlyout2>(self)?;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DayFormat)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDayFormat<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IDatePickerFlyout2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetDayFormat)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MonthFormat(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = &::windows::core::Interface::cast::<IDatePickerFlyout2>(self)?;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MonthFormat)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMonthFormat<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IDatePickerFlyout2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetMonthFormat)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn YearFormat(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = &::windows::core::Interface::cast::<IDatePickerFlyout2>(self)?;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).YearFormat)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetYearFormat<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IDatePickerFlyout2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetYearFormat)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CalendarIdentifierProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IDatePickerFlyoutStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CalendarIdentifierProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IDatePickerFlyoutStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DayVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IDatePickerFlyoutStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DayVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MonthVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IDatePickerFlyoutStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MonthVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn YearVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IDatePickerFlyoutStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).YearVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MinYearProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IDatePickerFlyoutStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MinYearProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxYearProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IDatePickerFlyoutStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxYearProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DayFormatProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IDatePickerFlyoutStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DayFormatProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MonthFormatProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IDatePickerFlyoutStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MonthFormatProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn YearFormatProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IDatePickerFlyoutStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).YearFormatProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IDatePickerFlyoutStatics<R, F: FnOnce(&IDatePickerFlyoutStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<DatePickerFlyout, IDatePickerFlyoutStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IDatePickerFlyoutStatics2<R, F: FnOnce(&IDatePickerFlyoutStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<DatePickerFlyout, IDatePickerFlyoutStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for DatePickerFlyout {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for DatePickerFlyout {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for DatePickerFlyout {}
impl ::core::fmt::Debug for DatePickerFlyout {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("DatePickerFlyout").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for DatePickerFlyout {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.DatePickerFlyout;{fbf33b1a-a3a4-4df8-9228-23a5ac27df4e})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for DatePickerFlyout {
    type Vtable = IDatePickerFlyout_Vtbl;
    const IID: ::windows::core::GUID = <IDatePickerFlyout as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for DatePickerFlyout {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.DatePickerFlyout";
}
impl ::core::convert::From<DatePickerFlyout> for ::windows::core::IUnknown {
    fn from(value: DatePickerFlyout) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&DatePickerFlyout> for ::windows::core::IUnknown {
    fn from(value: &DatePickerFlyout) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for DatePickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a DatePickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<DatePickerFlyout> for ::windows::core::IInspectable {
    fn from(value: DatePickerFlyout) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&DatePickerFlyout> for ::windows::core::IInspectable {
    fn from(value: &DatePickerFlyout) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for DatePickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a DatePickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<DatePickerFlyout> for Primitives::PickerFlyoutBase {
    fn from(value: DatePickerFlyout) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&DatePickerFlyout> for Primitives::PickerFlyoutBase {
    fn from(value: &DatePickerFlyout) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::PickerFlyoutBase> for DatePickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::PickerFlyoutBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::PickerFlyoutBase> for &DatePickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::PickerFlyoutBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::PickerFlyoutBase>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<DatePickerFlyout> for Primitives::FlyoutBase {
    fn from(value: DatePickerFlyout) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&DatePickerFlyout> for Primitives::FlyoutBase {
    fn from(value: &DatePickerFlyout) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::FlyoutBase> for DatePickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::FlyoutBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::FlyoutBase> for &DatePickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::FlyoutBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::FlyoutBase>::into(self))
    }
}
impl ::core::convert::From<DatePickerFlyout> for super::DependencyObject {
    fn from(value: DatePickerFlyout) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&DatePickerFlyout> for super::DependencyObject {
    fn from(value: &DatePickerFlyout) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for DatePickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &DatePickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for DatePickerFlyout {}
unsafe impl ::core::marker::Sync for DatePickerFlyout {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct DatePickerFlyoutItem(::windows::core::IUnknown);
impl DatePickerFlyoutItem {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Data'*"]
    #[cfg(feature = "UI_Xaml_Data")]
    pub fn GetCustomProperty<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, name: Param0) -> ::windows::core::Result<super::Data::ICustomProperty> {
        let this = &::windows::core::Interface::cast::<super::Data::ICustomPropertyProvider>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetCustomProperty)(::core::mem::transmute_copy(this), name.into_param().abi(), &mut result__).from_abi::<super::Data::ICustomProperty>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Data', 'UI_Xaml_Interop'*"]
    #[cfg(all(feature = "UI_Xaml_Data", feature = "UI_Xaml_Interop"))]
    pub fn GetIndexedProperty<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>, Param1: ::windows::core::IntoParam<'a, super::Interop::TypeName>>(&self, name: Param0, r#type: Param1) -> ::windows::core::Result<super::Data::ICustomProperty> {
        let this = &::windows::core::Interface::cast::<super::Data::ICustomPropertyProvider>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetIndexedProperty)(::core::mem::transmute_copy(this), name.into_param().abi(), r#type.into_param().abi(), &mut result__).from_abi::<super::Data::ICustomProperty>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Data'*"]
    #[cfg(feature = "UI_Xaml_Data")]
    pub fn GetStringRepresentation(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = &::windows::core::Interface::cast::<super::Data::ICustomPropertyProvider>(self)?;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetStringRepresentation)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Data', 'UI_Xaml_Interop'*"]
    #[cfg(all(feature = "UI_Xaml_Data", feature = "UI_Xaml_Interop"))]
    pub fn Type(&self) -> ::windows::core::Result<super::Interop::TypeName> {
        let this = &::windows::core::Interface::cast::<super::Data::ICustomPropertyProvider>(self)?;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<super::Interop::TypeName> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Type)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Interop::TypeName>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PrimaryText(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PrimaryText)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPrimaryText<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPrimaryText)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SecondaryText(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SecondaryText)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSecondaryText<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSecondaryText)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PrimaryTextProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IDatePickerFlyoutItemStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PrimaryTextProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SecondaryTextProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IDatePickerFlyoutItemStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SecondaryTextProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IDatePickerFlyoutItemStatics<R, F: FnOnce(&IDatePickerFlyoutItemStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<DatePickerFlyoutItem, IDatePickerFlyoutItemStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for DatePickerFlyoutItem {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for DatePickerFlyoutItem {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for DatePickerFlyoutItem {}
impl ::core::fmt::Debug for DatePickerFlyoutItem {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("DatePickerFlyoutItem").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for DatePickerFlyoutItem {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.DatePickerFlyoutItem;{9d9bc289-00d2-4aac-9c85-d74f06367887})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for DatePickerFlyoutItem {
    type Vtable = IDatePickerFlyoutItem_Vtbl;
    const IID: ::windows::core::GUID = <IDatePickerFlyoutItem as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for DatePickerFlyoutItem {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.DatePickerFlyoutItem";
}
impl ::core::convert::From<DatePickerFlyoutItem> for ::windows::core::IUnknown {
    fn from(value: DatePickerFlyoutItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&DatePickerFlyoutItem> for ::windows::core::IUnknown {
    fn from(value: &DatePickerFlyoutItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for DatePickerFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a DatePickerFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<DatePickerFlyoutItem> for ::windows::core::IInspectable {
    fn from(value: DatePickerFlyoutItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&DatePickerFlyoutItem> for ::windows::core::IInspectable {
    fn from(value: &DatePickerFlyoutItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for DatePickerFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a DatePickerFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Xaml_Data")]
impl ::core::convert::TryFrom<DatePickerFlyoutItem> for super::Data::ICustomPropertyProvider {
    type Error = ::windows::core::Error;
    fn try_from(value: DatePickerFlyoutItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Data")]
impl ::core::convert::TryFrom<&DatePickerFlyoutItem> for super::Data::ICustomPropertyProvider {
    type Error = ::windows::core::Error;
    fn try_from(value: &DatePickerFlyoutItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Xaml_Data")]
impl<'a> ::windows::core::IntoParam<'a, super::Data::ICustomPropertyProvider> for DatePickerFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::Data::ICustomPropertyProvider> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Data")]
impl<'a> ::windows::core::IntoParam<'a, super::Data::ICustomPropertyProvider> for &DatePickerFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::Data::ICustomPropertyProvider> {
        ::core::convert::TryInto::<super::Data::ICustomPropertyProvider>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<DatePickerFlyoutItem> for super::DependencyObject {
    fn from(value: DatePickerFlyoutItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&DatePickerFlyoutItem> for super::DependencyObject {
    fn from(value: &DatePickerFlyoutItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for DatePickerFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &DatePickerFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for DatePickerFlyoutItem {}
unsafe impl ::core::marker::Sync for DatePickerFlyoutItem {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct DatePickerFlyoutPresenter(::windows::core::IUnknown);
impl DatePickerFlyoutPresenter {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsDefaultShadowEnabled(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IDatePickerFlyoutPresenter2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsDefaultShadowEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsDefaultShadowEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IDatePickerFlyoutPresenter2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsDefaultShadowEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsDefaultShadowEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IDatePickerFlyoutPresenterStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsDefaultShadowEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IDatePickerFlyoutPresenterStatics2<R, F: FnOnce(&IDatePickerFlyoutPresenterStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<DatePickerFlyoutPresenter, IDatePickerFlyoutPresenterStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for DatePickerFlyoutPresenter {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for DatePickerFlyoutPresenter {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for DatePickerFlyoutPresenter {}
impl ::core::fmt::Debug for DatePickerFlyoutPresenter {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("DatePickerFlyoutPresenter").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for DatePickerFlyoutPresenter {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.DatePickerFlyoutPresenter;{7c62f70e-2ddc-4381-832f-54cbdfaa849a})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for DatePickerFlyoutPresenter {
    type Vtable = IDatePickerFlyoutPresenter_Vtbl;
    const IID: ::windows::core::GUID = <IDatePickerFlyoutPresenter as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for DatePickerFlyoutPresenter {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.DatePickerFlyoutPresenter";
}
impl ::core::convert::From<DatePickerFlyoutPresenter> for ::windows::core::IUnknown {
    fn from(value: DatePickerFlyoutPresenter) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&DatePickerFlyoutPresenter> for ::windows::core::IUnknown {
    fn from(value: &DatePickerFlyoutPresenter) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for DatePickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a DatePickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<DatePickerFlyoutPresenter> for ::windows::core::IInspectable {
    fn from(value: DatePickerFlyoutPresenter) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&DatePickerFlyoutPresenter> for ::windows::core::IInspectable {
    fn from(value: &DatePickerFlyoutPresenter) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for DatePickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a DatePickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<DatePickerFlyoutPresenter> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: DatePickerFlyoutPresenter) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&DatePickerFlyoutPresenter> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &DatePickerFlyoutPresenter) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for DatePickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &DatePickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<DatePickerFlyoutPresenter> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: DatePickerFlyoutPresenter) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&DatePickerFlyoutPresenter> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &DatePickerFlyoutPresenter) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for DatePickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &DatePickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<DatePickerFlyoutPresenter> for Control {
    fn from(value: DatePickerFlyoutPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&DatePickerFlyoutPresenter> for Control {
    fn from(value: &DatePickerFlyoutPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for DatePickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &DatePickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<DatePickerFlyoutPresenter> for super::FrameworkElement {
    fn from(value: DatePickerFlyoutPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&DatePickerFlyoutPresenter> for super::FrameworkElement {
    fn from(value: &DatePickerFlyoutPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for DatePickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &DatePickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<DatePickerFlyoutPresenter> for super::UIElement {
    fn from(value: DatePickerFlyoutPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&DatePickerFlyoutPresenter> for super::UIElement {
    fn from(value: &DatePickerFlyoutPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for DatePickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &DatePickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<DatePickerFlyoutPresenter> for super::DependencyObject {
    fn from(value: DatePickerFlyoutPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&DatePickerFlyoutPresenter> for super::DependencyObject {
    fn from(value: &DatePickerFlyoutPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for DatePickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &DatePickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for DatePickerFlyoutPresenter {}
unsafe impl ::core::marker::Sync for DatePickerFlyoutPresenter {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct DatePickerSelectedValueChangedEventArgs(::windows::core::IUnknown);
impl DatePickerSelectedValueChangedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn OldDate(&self) -> ::windows::core::Result<super::super::super::Foundation::IReference<super::super::super::Foundation::DateTime>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OldDate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::IReference<super::super::super::Foundation::DateTime>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn NewDate(&self) -> ::windows::core::Result<super::super::super::Foundation::IReference<super::super::super::Foundation::DateTime>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).NewDate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::IReference<super::super::super::Foundation::DateTime>>(result__)
        }
    }
}
impl ::core::clone::Clone for DatePickerSelectedValueChangedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for DatePickerSelectedValueChangedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for DatePickerSelectedValueChangedEventArgs {}
impl ::core::fmt::Debug for DatePickerSelectedValueChangedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("DatePickerSelectedValueChangedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for DatePickerSelectedValueChangedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.DatePickerSelectedValueChangedEventArgs;{564dceed-744a-5c3a-9bd2-4dcd9919a7b7})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for DatePickerSelectedValueChangedEventArgs {
    type Vtable = IDatePickerSelectedValueChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IDatePickerSelectedValueChangedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for DatePickerSelectedValueChangedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.DatePickerSelectedValueChangedEventArgs";
}
impl ::core::convert::From<DatePickerSelectedValueChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: DatePickerSelectedValueChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&DatePickerSelectedValueChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &DatePickerSelectedValueChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for DatePickerSelectedValueChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a DatePickerSelectedValueChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<DatePickerSelectedValueChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: DatePickerSelectedValueChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&DatePickerSelectedValueChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &DatePickerSelectedValueChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for DatePickerSelectedValueChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a DatePickerSelectedValueChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for DatePickerSelectedValueChangedEventArgs {}
unsafe impl ::core::marker::Sync for DatePickerSelectedValueChangedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct DatePickerValueChangedEventArgs(::windows::core::IUnknown);
impl DatePickerValueChangedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn OldDate(&self) -> ::windows::core::Result<super::super::super::Foundation::DateTime> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::DateTime = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OldDate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::DateTime>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn NewDate(&self) -> ::windows::core::Result<super::super::super::Foundation::DateTime> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::DateTime = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).NewDate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::DateTime>(result__)
        }
    }
}
impl ::core::clone::Clone for DatePickerValueChangedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for DatePickerValueChangedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for DatePickerValueChangedEventArgs {}
impl ::core::fmt::Debug for DatePickerValueChangedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("DatePickerValueChangedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for DatePickerValueChangedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.DatePickerValueChangedEventArgs;{1ae661b2-b1b4-4273-96e0-19daff187446})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for DatePickerValueChangedEventArgs {
    type Vtable = IDatePickerValueChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IDatePickerValueChangedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for DatePickerValueChangedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.DatePickerValueChangedEventArgs";
}
impl ::core::convert::From<DatePickerValueChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: DatePickerValueChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&DatePickerValueChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &DatePickerValueChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for DatePickerValueChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a DatePickerValueChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<DatePickerValueChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: DatePickerValueChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&DatePickerValueChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &DatePickerValueChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for DatePickerValueChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a DatePickerValueChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for DatePickerValueChangedEventArgs {}
unsafe impl ::core::marker::Sync for DatePickerValueChangedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct DisabledFormattingAccelerators(pub u32);
impl DisabledFormattingAccelerators {
    pub const None: Self = Self(0u32);
    pub const Bold: Self = Self(1u32);
    pub const Italic: Self = Self(2u32);
    pub const Underline: Self = Self(4u32);
    pub const All: Self = Self(4294967295u32);
}
impl ::core::marker::Copy for DisabledFormattingAccelerators {}
impl ::core::clone::Clone for DisabledFormattingAccelerators {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for DisabledFormattingAccelerators {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for DisabledFormattingAccelerators {
    type Abi = Self;
}
impl ::core::fmt::Debug for DisabledFormattingAccelerators {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("DisabledFormattingAccelerators").field(&self.0).finish()
    }
}
impl ::core::ops::BitOr for DisabledFormattingAccelerators {
    type Output = Self;
    fn bitor(self, other: Self) -> Self {
        Self(self.0 | other.0)
    }
}
impl ::core::ops::BitAnd for DisabledFormattingAccelerators {
    type Output = Self;
    fn bitand(self, other: Self) -> Self {
        Self(self.0 & other.0)
    }
}
impl ::core::ops::BitOrAssign for DisabledFormattingAccelerators {
    fn bitor_assign(&mut self, other: Self) {
        self.0.bitor_assign(other.0)
    }
}
impl ::core::ops::BitAndAssign for DisabledFormattingAccelerators {
    fn bitand_assign(&mut self, other: Self) {
        self.0.bitand_assign(other.0)
    }
}
impl ::core::ops::Not for DisabledFormattingAccelerators {
    type Output = Self;
    fn not(self) -> Self {
        Self(self.0.not())
    }
}
unsafe impl ::windows::core::RuntimeType for DisabledFormattingAccelerators {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.DisabledFormattingAccelerators;u4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct DragItemsCompletedEventArgs(::windows::core::IUnknown);
impl DragItemsCompletedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn Items(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVectorView<::windows::core::IInspectable>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Items)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVectorView<::windows::core::IInspectable>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'ApplicationModel_DataTransfer'*"]
    #[cfg(feature = "ApplicationModel_DataTransfer")]
    pub fn DropResult(&self) -> ::windows::core::Result<super::super::super::ApplicationModel::DataTransfer::DataPackageOperation> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::ApplicationModel::DataTransfer::DataPackageOperation = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DropResult)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::ApplicationModel::DataTransfer::DataPackageOperation>(result__)
        }
    }
}
impl ::core::clone::Clone for DragItemsCompletedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for DragItemsCompletedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for DragItemsCompletedEventArgs {}
impl ::core::fmt::Debug for DragItemsCompletedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("DragItemsCompletedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for DragItemsCompletedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.DragItemsCompletedEventArgs;{af05f22f-9e78-4b21-9a8e-41c2d1367a2a})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for DragItemsCompletedEventArgs {
    type Vtable = IDragItemsCompletedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IDragItemsCompletedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for DragItemsCompletedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.DragItemsCompletedEventArgs";
}
impl ::core::convert::From<DragItemsCompletedEventArgs> for ::windows::core::IUnknown {
    fn from(value: DragItemsCompletedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&DragItemsCompletedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &DragItemsCompletedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for DragItemsCompletedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a DragItemsCompletedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<DragItemsCompletedEventArgs> for ::windows::core::IInspectable {
    fn from(value: DragItemsCompletedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&DragItemsCompletedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &DragItemsCompletedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for DragItemsCompletedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a DragItemsCompletedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for DragItemsCompletedEventArgs {}
unsafe impl ::core::marker::Sync for DragItemsCompletedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct DragItemsStartingEventArgs(::windows::core::IUnknown);
impl DragItemsStartingEventArgs {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<DragItemsStartingEventArgs, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Cancel(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Cancel)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCancel(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCancel)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn Items(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Items)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'ApplicationModel_DataTransfer'*"]
    #[cfg(feature = "ApplicationModel_DataTransfer")]
    pub fn Data(&self) -> ::windows::core::Result<super::super::super::ApplicationModel::DataTransfer::DataPackage> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Data)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::ApplicationModel::DataTransfer::DataPackage>(result__)
        }
    }
}
impl ::core::clone::Clone for DragItemsStartingEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for DragItemsStartingEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for DragItemsStartingEventArgs {}
impl ::core::fmt::Debug for DragItemsStartingEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("DragItemsStartingEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for DragItemsStartingEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.DragItemsStartingEventArgs;{71cf215c-daed-4783-aa11-dc574d2713e9})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for DragItemsStartingEventArgs {
    type Vtable = IDragItemsStartingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IDragItemsStartingEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for DragItemsStartingEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.DragItemsStartingEventArgs";
}
impl ::core::convert::From<DragItemsStartingEventArgs> for ::windows::core::IUnknown {
    fn from(value: DragItemsStartingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&DragItemsStartingEventArgs> for ::windows::core::IUnknown {
    fn from(value: &DragItemsStartingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for DragItemsStartingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a DragItemsStartingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<DragItemsStartingEventArgs> for ::windows::core::IInspectable {
    fn from(value: DragItemsStartingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&DragItemsStartingEventArgs> for ::windows::core::IInspectable {
    fn from(value: &DragItemsStartingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for DragItemsStartingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a DragItemsStartingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for DragItemsStartingEventArgs {}
unsafe impl ::core::marker::Sync for DragItemsStartingEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct DragItemsStartingEventHandler(pub ::windows::core::IUnknown);
impl DragItemsStartingEventHandler {
    pub fn new<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<DragItemsStartingEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static>(invoke: F) -> Self {
        let com = DragItemsStartingEventHandlerBox::<F> { vtable: &DragItemsStartingEventHandlerBox::<F>::VTABLE, count: ::windows::core::RefCount::new(1), invoke };
        unsafe { ::core::mem::transmute(::windows::core::alloc::boxed::Box::new(com)) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Invoke<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>, Param1: ::windows::core::IntoParam<'a, DragItemsStartingEventArgs>>(&self, sender: Param0, e: Param1) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Invoke)(::core::mem::transmute_copy(this), sender.into_param().abi(), e.into_param().abi()).ok() }
    }
}
#[repr(C)]
struct DragItemsStartingEventHandlerBox<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<DragItemsStartingEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static> {
    vtable: *const DragItemsStartingEventHandler_Vtbl,
    invoke: F,
    count: ::windows::core::RefCount,
}
impl<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<DragItemsStartingEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static> DragItemsStartingEventHandlerBox<F> {
    const VTABLE: DragItemsStartingEventHandler_Vtbl = DragItemsStartingEventHandler_Vtbl { base: ::windows::core::IUnknownVtbl { QueryInterface: Self::QueryInterface, AddRef: Self::AddRef, Release: Self::Release }, Invoke: Self::Invoke };
    unsafe extern "system" fn QueryInterface(this: ::windows::core::RawPtr, iid: &::windows::core::GUID, interface: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        *interface = if iid == &<DragItemsStartingEventHandler as ::windows::core::Interface>::IID || iid == &<::windows::core::IUnknown as ::windows::core::Interface>::IID || iid == &<::windows::core::IAgileObject as ::windows::core::Interface>::IID { &mut (*this).vtable as *mut _ as _ } else { ::core::ptr::null_mut() };
        if (*interface).is_null() {
            ::windows::core::HRESULT(-2147467262)
        } else {
            (*this).count.add_ref();
            ::windows::core::HRESULT(0)
        }
    }
    unsafe extern "system" fn AddRef(this: ::windows::core::RawPtr) -> u32 {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        (*this).count.add_ref()
    }
    unsafe extern "system" fn Release(this: ::windows::core::RawPtr) -> u32 {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        let remaining = (*this).count.release();
        if remaining == 0 {
            ::windows::core::alloc::boxed::Box::from_raw(this);
        }
        remaining
    }
    unsafe extern "system" fn Invoke(this: *mut ::core::ffi::c_void, sender: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        ((*this).invoke)(::core::mem::transmute(&sender), ::core::mem::transmute(&e)).into()
    }
}
impl ::core::clone::Clone for DragItemsStartingEventHandler {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for DragItemsStartingEventHandler {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for DragItemsStartingEventHandler {}
impl ::core::fmt::Debug for DragItemsStartingEventHandler {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("DragItemsStartingEventHandler").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for DragItemsStartingEventHandler {
    type Vtable = DragItemsStartingEventHandler_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3aaeab4c_14cb_4434_becc_88a8585c2f89);
}
unsafe impl ::windows::core::RuntimeType for DragItemsStartingEventHandler {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"{3aaeab4c-14cb-4434-becc-88a8585c2f89}");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
#[repr(C)]
#[doc(hidden)]
pub struct DragItemsStartingEventHandler_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    pub Invoke: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sender: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct DropDownButton(::windows::core::IUnknown);
impl DropDownButton {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<DropDownButton> {
        Self::IDropDownButtonFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<DropDownButton>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<DropDownButton> {
        Self::IDropDownButtonFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<DropDownButton>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IDropDownButtonFactory<R, F: FnOnce(&IDropDownButtonFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<DropDownButton, IDropDownButtonFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for DropDownButton {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for DropDownButton {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for DropDownButton {}
impl ::core::fmt::Debug for DropDownButton {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("DropDownButton").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for DropDownButton {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.DropDownButton;{671f74e6-2a27-5fa8-b0a2-79b2e71ebd87})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for DropDownButton {
    type Vtable = IDropDownButton_Vtbl;
    const IID: ::windows::core::GUID = <IDropDownButton as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for DropDownButton {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.DropDownButton";
}
impl ::core::convert::From<DropDownButton> for ::windows::core::IUnknown {
    fn from(value: DropDownButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&DropDownButton> for ::windows::core::IUnknown {
    fn from(value: &DropDownButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for DropDownButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a DropDownButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<DropDownButton> for ::windows::core::IInspectable {
    fn from(value: DropDownButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&DropDownButton> for ::windows::core::IInspectable {
    fn from(value: &DropDownButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for DropDownButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a DropDownButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<DropDownButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: DropDownButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&DropDownButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &DropDownButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for DropDownButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &DropDownButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<DropDownButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: DropDownButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&DropDownButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &DropDownButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for DropDownButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &DropDownButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<DropDownButton> for Button {
    fn from(value: DropDownButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&DropDownButton> for Button {
    fn from(value: &DropDownButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Button> for DropDownButton {
    fn into_param(self) -> ::windows::core::Param<'a, Button> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Button> for &DropDownButton {
    fn into_param(self) -> ::windows::core::Param<'a, Button> {
        ::windows::core::Param::Owned(::core::convert::Into::<Button>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<DropDownButton> for Primitives::ButtonBase {
    fn from(value: DropDownButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&DropDownButton> for Primitives::ButtonBase {
    fn from(value: &DropDownButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for DropDownButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for &DropDownButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ButtonBase>::into(self))
    }
}
impl ::core::convert::From<DropDownButton> for ContentControl {
    fn from(value: DropDownButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&DropDownButton> for ContentControl {
    fn from(value: &DropDownButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for DropDownButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &DropDownButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<DropDownButton> for Control {
    fn from(value: DropDownButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&DropDownButton> for Control {
    fn from(value: &DropDownButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for DropDownButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &DropDownButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<DropDownButton> for super::FrameworkElement {
    fn from(value: DropDownButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&DropDownButton> for super::FrameworkElement {
    fn from(value: &DropDownButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for DropDownButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &DropDownButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<DropDownButton> for super::UIElement {
    fn from(value: DropDownButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&DropDownButton> for super::UIElement {
    fn from(value: &DropDownButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for DropDownButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &DropDownButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<DropDownButton> for super::DependencyObject {
    fn from(value: DropDownButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&DropDownButton> for super::DependencyObject {
    fn from(value: &DropDownButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for DropDownButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &DropDownButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for DropDownButton {}
unsafe impl ::core::marker::Sync for DropDownButton {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct DropDownButtonAutomationPeer(::windows::core::IUnknown);
impl DropDownButtonAutomationPeer {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CreateInstance<'a, Param0: ::windows::core::IntoParam<'a, DropDownButton>>(owner: Param0) -> ::windows::core::Result<DropDownButtonAutomationPeer> {
        Self::IDropDownButtonAutomationPeerFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), owner.into_param().abi(), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<DropDownButtonAutomationPeer>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CreateInstance_compose<'a, Param0: ::windows::core::IntoParam<'a, DropDownButton>, T: ::windows::core::Compose>(owner: Param0, compose: T) -> ::windows::core::Result<DropDownButtonAutomationPeer> {
        Self::IDropDownButtonAutomationPeerFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), owner.into_param().abi(), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<DropDownButtonAutomationPeer>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Automation_Provider'*"]
    #[cfg(feature = "UI_Xaml_Automation_Provider")]
    pub fn ExpandCollapseState(&self) -> ::windows::core::Result<super::Automation::ExpandCollapseState> {
        let this = &::windows::core::Interface::cast::<super::Automation::Provider::IExpandCollapseProvider>(self)?;
        unsafe {
            let mut result__: super::Automation::ExpandCollapseState = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ExpandCollapseState)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Automation::ExpandCollapseState>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Automation_Provider'*"]
    #[cfg(feature = "UI_Xaml_Automation_Provider")]
    pub fn Collapse(&self) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<super::Automation::Provider::IExpandCollapseProvider>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).Collapse)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Automation_Provider'*"]
    #[cfg(feature = "UI_Xaml_Automation_Provider")]
    pub fn Expand(&self) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<super::Automation::Provider::IExpandCollapseProvider>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).Expand)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc(hidden)]
    pub fn IDropDownButtonAutomationPeerFactory<R, F: FnOnce(&IDropDownButtonAutomationPeerFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<DropDownButtonAutomationPeer, IDropDownButtonAutomationPeerFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for DropDownButtonAutomationPeer {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for DropDownButtonAutomationPeer {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for DropDownButtonAutomationPeer {}
impl ::core::fmt::Debug for DropDownButtonAutomationPeer {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("DropDownButtonAutomationPeer").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for DropDownButtonAutomationPeer {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.DropDownButtonAutomationPeer;{72f294f1-bff6-5d07-9db4-54134506bc80})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for DropDownButtonAutomationPeer {
    type Vtable = IDropDownButtonAutomationPeer_Vtbl;
    const IID: ::windows::core::GUID = <IDropDownButtonAutomationPeer as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for DropDownButtonAutomationPeer {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.DropDownButtonAutomationPeer";
}
impl ::core::convert::From<DropDownButtonAutomationPeer> for ::windows::core::IUnknown {
    fn from(value: DropDownButtonAutomationPeer) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&DropDownButtonAutomationPeer> for ::windows::core::IUnknown {
    fn from(value: &DropDownButtonAutomationPeer) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for DropDownButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a DropDownButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<DropDownButtonAutomationPeer> for ::windows::core::IInspectable {
    fn from(value: DropDownButtonAutomationPeer) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&DropDownButtonAutomationPeer> for ::windows::core::IInspectable {
    fn from(value: &DropDownButtonAutomationPeer) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for DropDownButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a DropDownButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Xaml_Automation_Provider")]
impl ::core::convert::TryFrom<DropDownButtonAutomationPeer> for super::Automation::Provider::IExpandCollapseProvider {
    type Error = ::windows::core::Error;
    fn try_from(value: DropDownButtonAutomationPeer) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Provider")]
impl ::core::convert::TryFrom<&DropDownButtonAutomationPeer> for super::Automation::Provider::IExpandCollapseProvider {
    type Error = ::windows::core::Error;
    fn try_from(value: &DropDownButtonAutomationPeer) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Provider")]
impl<'a> ::windows::core::IntoParam<'a, super::Automation::Provider::IExpandCollapseProvider> for DropDownButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::Automation::Provider::IExpandCollapseProvider> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Provider")]
impl<'a> ::windows::core::IntoParam<'a, super::Automation::Provider::IExpandCollapseProvider> for &DropDownButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::Automation::Provider::IExpandCollapseProvider> {
        ::core::convert::TryInto::<super::Automation::Provider::IExpandCollapseProvider>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Provider")]
impl ::core::convert::TryFrom<DropDownButtonAutomationPeer> for super::Automation::Provider::IInvokeProvider {
    type Error = ::windows::core::Error;
    fn try_from(value: DropDownButtonAutomationPeer) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Provider")]
impl ::core::convert::TryFrom<&DropDownButtonAutomationPeer> for super::Automation::Provider::IInvokeProvider {
    type Error = ::windows::core::Error;
    fn try_from(value: &DropDownButtonAutomationPeer) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Provider")]
impl<'a> ::windows::core::IntoParam<'a, super::Automation::Provider::IInvokeProvider> for DropDownButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::Automation::Provider::IInvokeProvider> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Provider")]
impl<'a> ::windows::core::IntoParam<'a, super::Automation::Provider::IInvokeProvider> for &DropDownButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::Automation::Provider::IInvokeProvider> {
        ::core::convert::TryInto::<super::Automation::Provider::IInvokeProvider>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Peers")]
impl ::core::convert::From<DropDownButtonAutomationPeer> for super::Automation::Peers::ButtonAutomationPeer {
    fn from(value: DropDownButtonAutomationPeer) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Peers")]
impl ::core::convert::From<&DropDownButtonAutomationPeer> for super::Automation::Peers::ButtonAutomationPeer {
    fn from(value: &DropDownButtonAutomationPeer) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Automation_Peers")]
impl<'a> ::windows::core::IntoParam<'a, super::Automation::Peers::ButtonAutomationPeer> for DropDownButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::Automation::Peers::ButtonAutomationPeer> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Peers")]
impl<'a> ::windows::core::IntoParam<'a, super::Automation::Peers::ButtonAutomationPeer> for &DropDownButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::Automation::Peers::ButtonAutomationPeer> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::Automation::Peers::ButtonAutomationPeer>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Automation_Peers")]
impl ::core::convert::From<DropDownButtonAutomationPeer> for super::Automation::Peers::ButtonBaseAutomationPeer {
    fn from(value: DropDownButtonAutomationPeer) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Peers")]
impl ::core::convert::From<&DropDownButtonAutomationPeer> for super::Automation::Peers::ButtonBaseAutomationPeer {
    fn from(value: &DropDownButtonAutomationPeer) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Automation_Peers")]
impl<'a> ::windows::core::IntoParam<'a, super::Automation::Peers::ButtonBaseAutomationPeer> for DropDownButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::Automation::Peers::ButtonBaseAutomationPeer> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Peers")]
impl<'a> ::windows::core::IntoParam<'a, super::Automation::Peers::ButtonBaseAutomationPeer> for &DropDownButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::Automation::Peers::ButtonBaseAutomationPeer> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::Automation::Peers::ButtonBaseAutomationPeer>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Automation_Peers")]
impl ::core::convert::From<DropDownButtonAutomationPeer> for super::Automation::Peers::FrameworkElementAutomationPeer {
    fn from(value: DropDownButtonAutomationPeer) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Peers")]
impl ::core::convert::From<&DropDownButtonAutomationPeer> for super::Automation::Peers::FrameworkElementAutomationPeer {
    fn from(value: &DropDownButtonAutomationPeer) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Automation_Peers")]
impl<'a> ::windows::core::IntoParam<'a, super::Automation::Peers::FrameworkElementAutomationPeer> for DropDownButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::Automation::Peers::FrameworkElementAutomationPeer> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Peers")]
impl<'a> ::windows::core::IntoParam<'a, super::Automation::Peers::FrameworkElementAutomationPeer> for &DropDownButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::Automation::Peers::FrameworkElementAutomationPeer> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::Automation::Peers::FrameworkElementAutomationPeer>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Automation_Peers")]
impl ::core::convert::From<DropDownButtonAutomationPeer> for super::Automation::Peers::AutomationPeer {
    fn from(value: DropDownButtonAutomationPeer) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Peers")]
impl ::core::convert::From<&DropDownButtonAutomationPeer> for super::Automation::Peers::AutomationPeer {
    fn from(value: &DropDownButtonAutomationPeer) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Automation_Peers")]
impl<'a> ::windows::core::IntoParam<'a, super::Automation::Peers::AutomationPeer> for DropDownButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::Automation::Peers::AutomationPeer> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Peers")]
impl<'a> ::windows::core::IntoParam<'a, super::Automation::Peers::AutomationPeer> for &DropDownButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::Automation::Peers::AutomationPeer> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::Automation::Peers::AutomationPeer>::into(self))
    }
}
impl ::core::convert::From<DropDownButtonAutomationPeer> for super::DependencyObject {
    fn from(value: DropDownButtonAutomationPeer) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&DropDownButtonAutomationPeer> for super::DependencyObject {
    fn from(value: &DropDownButtonAutomationPeer) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for DropDownButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &DropDownButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for DropDownButtonAutomationPeer {}
unsafe impl ::core::marker::Sync for DropDownButtonAutomationPeer {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct DynamicOverflowItemsChangingEventArgs(::windows::core::IUnknown);
impl DynamicOverflowItemsChangingEventArgs {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<DynamicOverflowItemsChangingEventArgs, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Action(&self) -> ::windows::core::Result<CommandBarDynamicOverflowAction> {
        let this = self;
        unsafe {
            let mut result__: CommandBarDynamicOverflowAction = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Action)(::core::mem::transmute_copy(this), &mut result__).from_abi::<CommandBarDynamicOverflowAction>(result__)
        }
    }
}
impl ::core::clone::Clone for DynamicOverflowItemsChangingEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for DynamicOverflowItemsChangingEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for DynamicOverflowItemsChangingEventArgs {}
impl ::core::fmt::Debug for DynamicOverflowItemsChangingEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("DynamicOverflowItemsChangingEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for DynamicOverflowItemsChangingEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.DynamicOverflowItemsChangingEventArgs;{c93c736f-6f6e-4e43-90d9-9b46a0d88b9f})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for DynamicOverflowItemsChangingEventArgs {
    type Vtable = IDynamicOverflowItemsChangingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IDynamicOverflowItemsChangingEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for DynamicOverflowItemsChangingEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.DynamicOverflowItemsChangingEventArgs";
}
impl ::core::convert::From<DynamicOverflowItemsChangingEventArgs> for ::windows::core::IUnknown {
    fn from(value: DynamicOverflowItemsChangingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&DynamicOverflowItemsChangingEventArgs> for ::windows::core::IUnknown {
    fn from(value: &DynamicOverflowItemsChangingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for DynamicOverflowItemsChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a DynamicOverflowItemsChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<DynamicOverflowItemsChangingEventArgs> for ::windows::core::IInspectable {
    fn from(value: DynamicOverflowItemsChangingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&DynamicOverflowItemsChangingEventArgs> for ::windows::core::IInspectable {
    fn from(value: &DynamicOverflowItemsChangingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for DynamicOverflowItemsChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a DynamicOverflowItemsChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for DynamicOverflowItemsChangingEventArgs {}
unsafe impl ::core::marker::Sync for DynamicOverflowItemsChangingEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct FlipView(::windows::core::IUnknown);
impl FlipView {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn UseTouchAnimationsForAllNavigation(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IFlipView2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).UseTouchAnimationsForAllNavigation)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetUseTouchAnimationsForAllNavigation(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IFlipView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetUseTouchAnimationsForAllNavigation)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<FlipView> {
        Self::IFlipViewFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<FlipView>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<FlipView> {
        Self::IFlipViewFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<FlipView>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn UseTouchAnimationsForAllNavigationProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IFlipViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).UseTouchAnimationsForAllNavigationProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IFlipViewFactory<R, F: FnOnce(&IFlipViewFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<FlipView, IFlipViewFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IFlipViewStatics2<R, F: FnOnce(&IFlipViewStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<FlipView, IFlipViewStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for FlipView {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for FlipView {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for FlipView {}
impl ::core::fmt::Debug for FlipView {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("FlipView").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for FlipView {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.FlipView;{a1582f68-3d7d-4d3b-b71d-488eed1e3493})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for FlipView {
    type Vtable = IFlipView_Vtbl;
    const IID: ::windows::core::GUID = <IFlipView as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for FlipView {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.FlipView";
}
impl ::core::convert::From<FlipView> for ::windows::core::IUnknown {
    fn from(value: FlipView) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&FlipView> for ::windows::core::IUnknown {
    fn from(value: &FlipView) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for FlipView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a FlipView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<FlipView> for ::windows::core::IInspectable {
    fn from(value: FlipView) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&FlipView> for ::windows::core::IInspectable {
    fn from(value: &FlipView) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for FlipView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a FlipView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<FlipView> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: FlipView) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&FlipView> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &FlipView) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for FlipView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &FlipView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::TryFrom<FlipView> for IItemContainerMapping {
    type Error = ::windows::core::Error;
    fn try_from(value: FlipView) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
impl ::core::convert::TryFrom<&FlipView> for IItemContainerMapping {
    type Error = ::windows::core::Error;
    fn try_from(value: &FlipView) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IItemContainerMapping> for FlipView {
    fn into_param(self) -> ::windows::core::Param<'a, IItemContainerMapping> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IItemContainerMapping> for &FlipView {
    fn into_param(self) -> ::windows::core::Param<'a, IItemContainerMapping> {
        ::core::convert::TryInto::<IItemContainerMapping>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<FlipView> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: FlipView) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&FlipView> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &FlipView) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for FlipView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &FlipView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<FlipView> for Primitives::Selector {
    fn from(value: FlipView) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&FlipView> for Primitives::Selector {
    fn from(value: &FlipView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::Selector> for FlipView {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::Selector> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::Selector> for &FlipView {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::Selector> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::Selector>::into(self))
    }
}
impl ::core::convert::From<FlipView> for ItemsControl {
    fn from(value: FlipView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&FlipView> for ItemsControl {
    fn from(value: &FlipView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ItemsControl> for FlipView {
    fn into_param(self) -> ::windows::core::Param<'a, ItemsControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ItemsControl> for &FlipView {
    fn into_param(self) -> ::windows::core::Param<'a, ItemsControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ItemsControl>::into(self))
    }
}
impl ::core::convert::From<FlipView> for Control {
    fn from(value: FlipView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&FlipView> for Control {
    fn from(value: &FlipView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for FlipView {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &FlipView {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<FlipView> for super::FrameworkElement {
    fn from(value: FlipView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&FlipView> for super::FrameworkElement {
    fn from(value: &FlipView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for FlipView {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &FlipView {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<FlipView> for super::UIElement {
    fn from(value: FlipView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&FlipView> for super::UIElement {
    fn from(value: &FlipView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for FlipView {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &FlipView {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<FlipView> for super::DependencyObject {
    fn from(value: FlipView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&FlipView> for super::DependencyObject {
    fn from(value: &FlipView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for FlipView {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &FlipView {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for FlipView {}
unsafe impl ::core::marker::Sync for FlipView {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct FlipViewItem(::windows::core::IUnknown);
impl FlipViewItem {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<FlipViewItem> {
        Self::IFlipViewItemFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<FlipViewItem>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<FlipViewItem> {
        Self::IFlipViewItemFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<FlipViewItem>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IFlipViewItemFactory<R, F: FnOnce(&IFlipViewItemFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<FlipViewItem, IFlipViewItemFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for FlipViewItem {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for FlipViewItem {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for FlipViewItem {}
impl ::core::fmt::Debug for FlipViewItem {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("FlipViewItem").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for FlipViewItem {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.FlipViewItem;{56196565-ce2b-4bda-a36b-82a2b8b0d4c0})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for FlipViewItem {
    type Vtable = IFlipViewItem_Vtbl;
    const IID: ::windows::core::GUID = <IFlipViewItem as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for FlipViewItem {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.FlipViewItem";
}
impl ::core::convert::From<FlipViewItem> for ::windows::core::IUnknown {
    fn from(value: FlipViewItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&FlipViewItem> for ::windows::core::IUnknown {
    fn from(value: &FlipViewItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for FlipViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a FlipViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<FlipViewItem> for ::windows::core::IInspectable {
    fn from(value: FlipViewItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&FlipViewItem> for ::windows::core::IInspectable {
    fn from(value: &FlipViewItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for FlipViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a FlipViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<FlipViewItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: FlipViewItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&FlipViewItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &FlipViewItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for FlipViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &FlipViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<FlipViewItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: FlipViewItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&FlipViewItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &FlipViewItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for FlipViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &FlipViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<FlipViewItem> for Primitives::SelectorItem {
    fn from(value: FlipViewItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&FlipViewItem> for Primitives::SelectorItem {
    fn from(value: &FlipViewItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::SelectorItem> for FlipViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::SelectorItem> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::SelectorItem> for &FlipViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::SelectorItem> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::SelectorItem>::into(self))
    }
}
impl ::core::convert::From<FlipViewItem> for ContentControl {
    fn from(value: FlipViewItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&FlipViewItem> for ContentControl {
    fn from(value: &FlipViewItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for FlipViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &FlipViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<FlipViewItem> for Control {
    fn from(value: FlipViewItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&FlipViewItem> for Control {
    fn from(value: &FlipViewItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for FlipViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &FlipViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<FlipViewItem> for super::FrameworkElement {
    fn from(value: FlipViewItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&FlipViewItem> for super::FrameworkElement {
    fn from(value: &FlipViewItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for FlipViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &FlipViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<FlipViewItem> for super::UIElement {
    fn from(value: FlipViewItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&FlipViewItem> for super::UIElement {
    fn from(value: &FlipViewItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for FlipViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &FlipViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<FlipViewItem> for super::DependencyObject {
    fn from(value: FlipViewItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&FlipViewItem> for super::DependencyObject {
    fn from(value: &FlipViewItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for FlipViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &FlipViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for FlipViewItem {}
unsafe impl ::core::marker::Sync for FlipViewItem {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct Flyout(::windows::core::IUnknown);
impl Flyout {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Content(&self) -> ::windows::core::Result<super::UIElement> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Content)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::UIElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetContent<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetContent)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FlyoutPresenterStyle(&self) -> ::windows::core::Result<super::Style> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FlyoutPresenterStyle)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Style>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetFlyoutPresenterStyle<'a, Param0: ::windows::core::IntoParam<'a, super::Style>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFlyoutPresenterStyle)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<Flyout> {
        Self::IFlyoutFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<Flyout>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<Flyout> {
        Self::IFlyoutFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<Flyout>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IFlyoutStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FlyoutPresenterStyleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IFlyoutStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FlyoutPresenterStyleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IFlyoutFactory<R, F: FnOnce(&IFlyoutFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Flyout, IFlyoutFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IFlyoutStatics<R, F: FnOnce(&IFlyoutStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Flyout, IFlyoutStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for Flyout {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for Flyout {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for Flyout {}
impl ::core::fmt::Debug for Flyout {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("Flyout").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for Flyout {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.Flyout;{6584ebdf-cbc7-4e19-843a-a14f24a793ea})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for Flyout {
    type Vtable = IFlyout_Vtbl;
    const IID: ::windows::core::GUID = <IFlyout as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for Flyout {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.Flyout";
}
impl ::core::convert::From<Flyout> for ::windows::core::IUnknown {
    fn from(value: Flyout) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&Flyout> for ::windows::core::IUnknown {
    fn from(value: &Flyout) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for Flyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a Flyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<Flyout> for ::windows::core::IInspectable {
    fn from(value: Flyout) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&Flyout> for ::windows::core::IInspectable {
    fn from(value: &Flyout) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for Flyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a Flyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<Flyout> for Primitives::FlyoutBase {
    fn from(value: Flyout) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&Flyout> for Primitives::FlyoutBase {
    fn from(value: &Flyout) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::FlyoutBase> for Flyout {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::FlyoutBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::FlyoutBase> for &Flyout {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::FlyoutBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::FlyoutBase>::into(self))
    }
}
impl ::core::convert::From<Flyout> for super::DependencyObject {
    fn from(value: Flyout) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Flyout> for super::DependencyObject {
    fn from(value: &Flyout) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for Flyout {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &Flyout {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for Flyout {}
unsafe impl ::core::marker::Sync for Flyout {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct FlyoutPresenter(::windows::core::IUnknown);
impl FlyoutPresenter {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsDefaultShadowEnabled(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IFlyoutPresenter2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsDefaultShadowEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsDefaultShadowEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IFlyoutPresenter2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsDefaultShadowEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<FlyoutPresenter> {
        Self::IFlyoutPresenterFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<FlyoutPresenter>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<FlyoutPresenter> {
        Self::IFlyoutPresenterFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<FlyoutPresenter>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsDefaultShadowEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IFlyoutPresenterStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsDefaultShadowEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IFlyoutPresenterFactory<R, F: FnOnce(&IFlyoutPresenterFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<FlyoutPresenter, IFlyoutPresenterFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IFlyoutPresenterStatics2<R, F: FnOnce(&IFlyoutPresenterStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<FlyoutPresenter, IFlyoutPresenterStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for FlyoutPresenter {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for FlyoutPresenter {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for FlyoutPresenter {}
impl ::core::fmt::Debug for FlyoutPresenter {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("FlyoutPresenter").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for FlyoutPresenter {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.FlyoutPresenter;{827d5b79-e37b-46a5-8d44-63a11a580e83})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for FlyoutPresenter {
    type Vtable = IFlyoutPresenter_Vtbl;
    const IID: ::windows::core::GUID = <IFlyoutPresenter as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for FlyoutPresenter {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.FlyoutPresenter";
}
impl ::core::convert::From<FlyoutPresenter> for ::windows::core::IUnknown {
    fn from(value: FlyoutPresenter) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&FlyoutPresenter> for ::windows::core::IUnknown {
    fn from(value: &FlyoutPresenter) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for FlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a FlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<FlyoutPresenter> for ::windows::core::IInspectable {
    fn from(value: FlyoutPresenter) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&FlyoutPresenter> for ::windows::core::IInspectable {
    fn from(value: &FlyoutPresenter) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for FlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a FlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<FlyoutPresenter> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: FlyoutPresenter) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&FlyoutPresenter> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &FlyoutPresenter) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for FlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &FlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<FlyoutPresenter> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: FlyoutPresenter) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&FlyoutPresenter> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &FlyoutPresenter) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for FlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &FlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<FlyoutPresenter> for ContentControl {
    fn from(value: FlyoutPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&FlyoutPresenter> for ContentControl {
    fn from(value: &FlyoutPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for FlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &FlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<FlyoutPresenter> for Control {
    fn from(value: FlyoutPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&FlyoutPresenter> for Control {
    fn from(value: &FlyoutPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for FlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &FlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<FlyoutPresenter> for super::FrameworkElement {
    fn from(value: FlyoutPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&FlyoutPresenter> for super::FrameworkElement {
    fn from(value: &FlyoutPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for FlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &FlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<FlyoutPresenter> for super::UIElement {
    fn from(value: FlyoutPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&FlyoutPresenter> for super::UIElement {
    fn from(value: &FlyoutPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for FlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &FlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<FlyoutPresenter> for super::DependencyObject {
    fn from(value: FlyoutPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&FlyoutPresenter> for super::DependencyObject {
    fn from(value: &FlyoutPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for FlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &FlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for FlyoutPresenter {}
unsafe impl ::core::marker::Sync for FlyoutPresenter {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct FocusDisengagedEventArgs(::windows::core::IUnknown);
impl FocusDisengagedEventArgs {}
impl ::core::clone::Clone for FocusDisengagedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for FocusDisengagedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for FocusDisengagedEventArgs {}
impl ::core::fmt::Debug for FocusDisengagedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("FocusDisengagedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for FocusDisengagedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.FocusDisengagedEventArgs;{5e14280f-953e-4cf8-b9ea-c530a1ce02ad})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for FocusDisengagedEventArgs {
    type Vtable = IFocusDisengagedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IFocusDisengagedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for FocusDisengagedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.FocusDisengagedEventArgs";
}
impl ::core::convert::From<FocusDisengagedEventArgs> for ::windows::core::IUnknown {
    fn from(value: FocusDisengagedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&FocusDisengagedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &FocusDisengagedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for FocusDisengagedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a FocusDisengagedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<FocusDisengagedEventArgs> for ::windows::core::IInspectable {
    fn from(value: FocusDisengagedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&FocusDisengagedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &FocusDisengagedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for FocusDisengagedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a FocusDisengagedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<FocusDisengagedEventArgs> for super::RoutedEventArgs {
    fn from(value: FocusDisengagedEventArgs) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&FocusDisengagedEventArgs> for super::RoutedEventArgs {
    fn from(value: &FocusDisengagedEventArgs) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::RoutedEventArgs> for FocusDisengagedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, super::RoutedEventArgs> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::RoutedEventArgs> for &FocusDisengagedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, super::RoutedEventArgs> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::RoutedEventArgs>::into(self))
    }
}
unsafe impl ::core::marker::Send for FocusDisengagedEventArgs {}
unsafe impl ::core::marker::Sync for FocusDisengagedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct FocusEngagedEventArgs(::windows::core::IUnknown);
impl FocusEngagedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Handled(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IFocusEngagedEventArgs2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Handled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHandled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IFocusEngagedEventArgs2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetHandled)(::core::mem::transmute_copy(this), value).ok() }
    }
}
impl ::core::clone::Clone for FocusEngagedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for FocusEngagedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for FocusEngagedEventArgs {}
impl ::core::fmt::Debug for FocusEngagedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("FocusEngagedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for FocusEngagedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.FocusEngagedEventArgs;{a69fc352-da66-404c-823f-5358594e70bb})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for FocusEngagedEventArgs {
    type Vtable = IFocusEngagedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IFocusEngagedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for FocusEngagedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.FocusEngagedEventArgs";
}
impl ::core::convert::From<FocusEngagedEventArgs> for ::windows::core::IUnknown {
    fn from(value: FocusEngagedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&FocusEngagedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &FocusEngagedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for FocusEngagedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a FocusEngagedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<FocusEngagedEventArgs> for ::windows::core::IInspectable {
    fn from(value: FocusEngagedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&FocusEngagedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &FocusEngagedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for FocusEngagedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a FocusEngagedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<FocusEngagedEventArgs> for super::RoutedEventArgs {
    fn from(value: FocusEngagedEventArgs) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&FocusEngagedEventArgs> for super::RoutedEventArgs {
    fn from(value: &FocusEngagedEventArgs) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::RoutedEventArgs> for FocusEngagedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, super::RoutedEventArgs> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::RoutedEventArgs> for &FocusEngagedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, super::RoutedEventArgs> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::RoutedEventArgs>::into(self))
    }
}
unsafe impl ::core::marker::Send for FocusEngagedEventArgs {}
unsafe impl ::core::marker::Sync for FocusEngagedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct FontIcon(::windows::core::IUnknown);
impl FontIcon {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Glyph(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Glyph)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetGlyph<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetGlyph)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontSize(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontSize)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetFontSize(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFontSize)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn FontFamily(&self) -> ::windows::core::Result<super::Media::FontFamily> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontFamily)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::FontFamily>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetFontFamily<'a, Param0: ::windows::core::IntoParam<'a, super::Media::FontFamily>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFontFamily)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn FontWeight(&self) -> ::windows::core::Result<super::super::Text::FontWeight> {
        let this = self;
        unsafe {
            let mut result__: super::super::Text::FontWeight = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontWeight)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Text::FontWeight>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn SetFontWeight<'a, Param0: ::windows::core::IntoParam<'a, super::super::Text::FontWeight>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFontWeight)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn FontStyle(&self) -> ::windows::core::Result<super::super::Text::FontStyle> {
        let this = self;
        unsafe {
            let mut result__: super::super::Text::FontStyle = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontStyle)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Text::FontStyle>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn SetFontStyle(&self, value: super::super::Text::FontStyle) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFontStyle)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTextScaleFactorEnabled(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IFontIcon2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTextScaleFactorEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsTextScaleFactorEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IFontIcon2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsTextScaleFactorEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MirroredWhenRightToLeft(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IFontIcon3>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MirroredWhenRightToLeft)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMirroredWhenRightToLeft(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IFontIcon3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetMirroredWhenRightToLeft)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<FontIcon> {
        Self::IFontIconFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<FontIcon>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<FontIcon> {
        Self::IFontIconFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<FontIcon>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GlyphProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IFontIconStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GlyphProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontSizeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IFontIconStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontSizeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontFamilyProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IFontIconStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontFamilyProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontWeightProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IFontIconStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontWeightProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontStyleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IFontIconStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontStyleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTextScaleFactorEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IFontIconStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTextScaleFactorEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MirroredWhenRightToLeftProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IFontIconStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MirroredWhenRightToLeftProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IFontIconFactory<R, F: FnOnce(&IFontIconFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<FontIcon, IFontIconFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IFontIconStatics<R, F: FnOnce(&IFontIconStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<FontIcon, IFontIconStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IFontIconStatics2<R, F: FnOnce(&IFontIconStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<FontIcon, IFontIconStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IFontIconStatics3<R, F: FnOnce(&IFontIconStatics3) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<FontIcon, IFontIconStatics3> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for FontIcon {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for FontIcon {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for FontIcon {}
impl ::core::fmt::Debug for FontIcon {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("FontIcon").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for FontIcon {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.FontIcon;{d4d61391-39ac-4950-9166-3606c264418b})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for FontIcon {
    type Vtable = IFontIcon_Vtbl;
    const IID: ::windows::core::GUID = <IFontIcon as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for FontIcon {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.FontIcon";
}
impl ::core::convert::From<FontIcon> for ::windows::core::IUnknown {
    fn from(value: FontIcon) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&FontIcon> for ::windows::core::IUnknown {
    fn from(value: &FontIcon) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for FontIcon {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a FontIcon {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<FontIcon> for ::windows::core::IInspectable {
    fn from(value: FontIcon) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&FontIcon> for ::windows::core::IInspectable {
    fn from(value: &FontIcon) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for FontIcon {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a FontIcon {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<FontIcon> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: FontIcon) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&FontIcon> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &FontIcon) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for FontIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &FontIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<FontIcon> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: FontIcon) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&FontIcon> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &FontIcon) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for FontIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &FontIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<FontIcon> for IconElement {
    fn from(value: FontIcon) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&FontIcon> for IconElement {
    fn from(value: &FontIcon) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, IconElement> for FontIcon {
    fn into_param(self) -> ::windows::core::Param<'a, IconElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IconElement> for &FontIcon {
    fn into_param(self) -> ::windows::core::Param<'a, IconElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<IconElement>::into(self))
    }
}
impl ::core::convert::From<FontIcon> for super::FrameworkElement {
    fn from(value: FontIcon) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&FontIcon> for super::FrameworkElement {
    fn from(value: &FontIcon) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for FontIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &FontIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<FontIcon> for super::UIElement {
    fn from(value: FontIcon) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&FontIcon> for super::UIElement {
    fn from(value: &FontIcon) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for FontIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &FontIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<FontIcon> for super::DependencyObject {
    fn from(value: FontIcon) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&FontIcon> for super::DependencyObject {
    fn from(value: &FontIcon) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for FontIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &FontIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for FontIcon {}
unsafe impl ::core::marker::Sync for FontIcon {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct FontIconSource(::windows::core::IUnknown);
impl FontIconSource {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Glyph(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Glyph)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetGlyph<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetGlyph)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontSize(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontSize)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetFontSize(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFontSize)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn FontFamily(&self) -> ::windows::core::Result<super::Media::FontFamily> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontFamily)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::FontFamily>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetFontFamily<'a, Param0: ::windows::core::IntoParam<'a, super::Media::FontFamily>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFontFamily)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn FontWeight(&self) -> ::windows::core::Result<super::super::Text::FontWeight> {
        let this = self;
        unsafe {
            let mut result__: super::super::Text::FontWeight = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontWeight)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Text::FontWeight>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn SetFontWeight<'a, Param0: ::windows::core::IntoParam<'a, super::super::Text::FontWeight>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFontWeight)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn FontStyle(&self) -> ::windows::core::Result<super::super::Text::FontStyle> {
        let this = self;
        unsafe {
            let mut result__: super::super::Text::FontStyle = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontStyle)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Text::FontStyle>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn SetFontStyle(&self, value: super::super::Text::FontStyle) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFontStyle)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTextScaleFactorEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTextScaleFactorEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsTextScaleFactorEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsTextScaleFactorEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MirroredWhenRightToLeft(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MirroredWhenRightToLeft)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMirroredWhenRightToLeft(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMirroredWhenRightToLeft)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<FontIconSource> {
        Self::IFontIconSourceFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<FontIconSource>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<FontIconSource> {
        Self::IFontIconSourceFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<FontIconSource>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GlyphProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IFontIconSourceStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GlyphProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontSizeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IFontIconSourceStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontSizeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontFamilyProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IFontIconSourceStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontFamilyProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontWeightProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IFontIconSourceStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontWeightProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontStyleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IFontIconSourceStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontStyleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTextScaleFactorEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IFontIconSourceStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTextScaleFactorEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MirroredWhenRightToLeftProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IFontIconSourceStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MirroredWhenRightToLeftProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IFontIconSourceFactory<R, F: FnOnce(&IFontIconSourceFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<FontIconSource, IFontIconSourceFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IFontIconSourceStatics<R, F: FnOnce(&IFontIconSourceStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<FontIconSource, IFontIconSourceStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for FontIconSource {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for FontIconSource {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for FontIconSource {}
impl ::core::fmt::Debug for FontIconSource {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("FontIconSource").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for FontIconSource {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.FontIconSource;{2211ac9a-74e3-43ed-b61c-21afc7df4d10})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for FontIconSource {
    type Vtable = IFontIconSource_Vtbl;
    const IID: ::windows::core::GUID = <IFontIconSource as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for FontIconSource {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.FontIconSource";
}
impl ::core::convert::From<FontIconSource> for ::windows::core::IUnknown {
    fn from(value: FontIconSource) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&FontIconSource> for ::windows::core::IUnknown {
    fn from(value: &FontIconSource) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for FontIconSource {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a FontIconSource {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<FontIconSource> for ::windows::core::IInspectable {
    fn from(value: FontIconSource) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&FontIconSource> for ::windows::core::IInspectable {
    fn from(value: &FontIconSource) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for FontIconSource {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a FontIconSource {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<FontIconSource> for IconSource {
    fn from(value: FontIconSource) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&FontIconSource> for IconSource {
    fn from(value: &FontIconSource) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, IconSource> for FontIconSource {
    fn into_param(self) -> ::windows::core::Param<'a, IconSource> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IconSource> for &FontIconSource {
    fn into_param(self) -> ::windows::core::Param<'a, IconSource> {
        ::windows::core::Param::Owned(::core::convert::Into::<IconSource>::into(self))
    }
}
impl ::core::convert::From<FontIconSource> for super::DependencyObject {
    fn from(value: FontIconSource) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&FontIconSource> for super::DependencyObject {
    fn from(value: &FontIconSource) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for FontIconSource {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &FontIconSource {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for FontIconSource {}
unsafe impl ::core::marker::Sync for FontIconSource {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct Frame(::windows::core::IUnknown);
impl Frame {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CacheSize(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CacheSize)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCacheSize(&self, value: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCacheSize)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanGoBack(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanGoBack)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanGoForward(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanGoForward)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Interop'*"]
    #[cfg(feature = "UI_Xaml_Interop")]
    pub fn CurrentSourcePageType(&self) -> ::windows::core::Result<super::Interop::TypeName> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<super::Interop::TypeName> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CurrentSourcePageType)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Interop::TypeName>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Interop'*"]
    #[cfg(feature = "UI_Xaml_Interop")]
    pub fn SourcePageType(&self) -> ::windows::core::Result<super::Interop::TypeName> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<super::Interop::TypeName> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SourcePageType)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Interop::TypeName>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Interop'*"]
    #[cfg(feature = "UI_Xaml_Interop")]
    pub fn SetSourcePageType<'a, Param0: ::windows::core::IntoParam<'a, super::Interop::TypeName>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSourcePageType)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BackStackDepth(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BackStackDepth)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'UI_Xaml_Navigation'*"]
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Navigation"))]
    pub fn Navigated<'a, Param0: ::windows::core::IntoParam<'a, super::Navigation::NavigatedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Navigated)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveNavigated<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveNavigated)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'UI_Xaml_Navigation'*"]
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Navigation"))]
    pub fn Navigating<'a, Param0: ::windows::core::IntoParam<'a, super::Navigation::NavigatingCancelEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Navigating)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveNavigating<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveNavigating)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'UI_Xaml_Navigation'*"]
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Navigation"))]
    pub fn NavigationFailed<'a, Param0: ::windows::core::IntoParam<'a, super::Navigation::NavigationFailedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).NavigationFailed)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveNavigationFailed<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveNavigationFailed)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'UI_Xaml_Navigation'*"]
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Navigation"))]
    pub fn NavigationStopped<'a, Param0: ::windows::core::IntoParam<'a, super::Navigation::NavigationStoppedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).NavigationStopped)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveNavigationStopped<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveNavigationStopped)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GoBack(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).GoBack)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GoForward(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).GoForward)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Interop'*"]
    #[cfg(feature = "UI_Xaml_Interop")]
    pub fn Navigate<'a, Param0: ::windows::core::IntoParam<'a, super::Interop::TypeName>, Param1: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, sourcepagetype: Param0, parameter: Param1) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Navigate)(::core::mem::transmute_copy(this), sourcepagetype.into_param().abi(), parameter.into_param().abi(), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetNavigationState(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetNavigationState)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetNavigationState<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, navigationstate: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetNavigationState)(::core::mem::transmute_copy(this), navigationstate.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'UI_Xaml_Navigation'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Navigation"))]
    pub fn BackStack(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVector<super::Navigation::PageStackEntry>> {
        let this = &::windows::core::Interface::cast::<IFrame2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BackStack)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<super::Navigation::PageStackEntry>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'UI_Xaml_Navigation'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Navigation"))]
    pub fn ForwardStack(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVector<super::Navigation::PageStackEntry>> {
        let this = &::windows::core::Interface::cast::<IFrame2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ForwardStack)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<super::Navigation::PageStackEntry>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Interop', 'UI_Xaml_Media_Animation'*"]
    #[cfg(all(feature = "UI_Xaml_Interop", feature = "UI_Xaml_Media_Animation"))]
    pub fn Navigate2<'a, Param0: ::windows::core::IntoParam<'a, super::Interop::TypeName>, Param1: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>, Param2: ::windows::core::IntoParam<'a, super::Media::Animation::NavigationTransitionInfo>>(&self, sourcepagetype: Param0, parameter: Param1, infooverride: Param2) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IFrame2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Navigate)(::core::mem::transmute_copy(this), sourcepagetype.into_param().abi(), parameter.into_param().abi(), infooverride.into_param().abi(), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media_Animation'*"]
    #[cfg(feature = "UI_Xaml_Media_Animation")]
    pub fn GoBack2<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Animation::NavigationTransitionInfo>>(&self, transitioninfooverride: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IFrame3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).GoBack)(::core::mem::transmute_copy(this), transitioninfooverride.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetNavigationStateWithNavigationControl<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, navigationstate: Param0, suppressnavigate: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IFrame4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetNavigationStateWithNavigationControl)(::core::mem::transmute_copy(this), navigationstate.into_param().abi(), suppressnavigate).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsNavigationStackEnabled(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IFrame5>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsNavigationStackEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsNavigationStackEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IFrame5>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsNavigationStackEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Interop', 'UI_Xaml_Navigation'*"]
    #[cfg(all(feature = "UI_Xaml_Interop", feature = "UI_Xaml_Navigation"))]
    pub fn NavigateToType<'a, Param0: ::windows::core::IntoParam<'a, super::Interop::TypeName>, Param1: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>, Param2: ::windows::core::IntoParam<'a, super::Navigation::FrameNavigationOptions>>(&self, sourcepagetype: Param0, parameter: Param1, navigationoptions: Param2) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IFrame5>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).NavigateToType)(::core::mem::transmute_copy(this), sourcepagetype.into_param().abi(), parameter.into_param().abi(), navigationoptions.into_param().abi(), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<Frame> {
        Self::IFrameFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<Frame>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<Frame> {
        Self::IFrameFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<Frame>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CacheSizeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IFrameStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CacheSizeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanGoBackProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IFrameStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanGoBackProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanGoForwardProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IFrameStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanGoForwardProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CurrentSourcePageTypeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IFrameStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CurrentSourcePageTypeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SourcePageTypeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IFrameStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SourcePageTypeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BackStackDepthProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IFrameStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BackStackDepthProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BackStackProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IFrameStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BackStackProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ForwardStackProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IFrameStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ForwardStackProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsNavigationStackEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IFrameStatics5(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsNavigationStackEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Interop'*"]
    #[cfg(feature = "UI_Xaml_Interop")]
    pub fn Navigate3<'a, Param0: ::windows::core::IntoParam<'a, super::Interop::TypeName>>(&self, sourcepagetype: Param0) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<INavigate>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Navigate)(::core::mem::transmute_copy(this), sourcepagetype.into_param().abi(), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc(hidden)]
    pub fn IFrameFactory<R, F: FnOnce(&IFrameFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Frame, IFrameFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IFrameStatics<R, F: FnOnce(&IFrameStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Frame, IFrameStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IFrameStatics2<R, F: FnOnce(&IFrameStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Frame, IFrameStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IFrameStatics5<R, F: FnOnce(&IFrameStatics5) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Frame, IFrameStatics5> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for Frame {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for Frame {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for Frame {}
impl ::core::fmt::Debug for Frame {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("Frame").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for Frame {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.Frame;{68ea500b-3fe9-4735-b6a0-e7601933b089})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for Frame {
    type Vtable = IFrame_Vtbl;
    const IID: ::windows::core::GUID = <IFrame as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for Frame {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.Frame";
}
impl ::core::convert::From<Frame> for ::windows::core::IUnknown {
    fn from(value: Frame) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&Frame> for ::windows::core::IUnknown {
    fn from(value: &Frame) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for Frame {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a Frame {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<Frame> for ::windows::core::IInspectable {
    fn from(value: Frame) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&Frame> for ::windows::core::IInspectable {
    fn from(value: &Frame) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for Frame {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a Frame {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<Frame> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: Frame) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&Frame> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &Frame) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for Frame {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &Frame {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::TryFrom<Frame> for INavigate {
    type Error = ::windows::core::Error;
    fn try_from(value: Frame) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
impl ::core::convert::TryFrom<&Frame> for INavigate {
    type Error = ::windows::core::Error;
    fn try_from(value: &Frame) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
impl<'a> ::windows::core::IntoParam<'a, INavigate> for Frame {
    fn into_param(self) -> ::windows::core::Param<'a, INavigate> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, INavigate> for &Frame {
    fn into_param(self) -> ::windows::core::Param<'a, INavigate> {
        ::core::convert::TryInto::<INavigate>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<Frame> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: Frame) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&Frame> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &Frame) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for Frame {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &Frame {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<Frame> for ContentControl {
    fn from(value: Frame) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Frame> for ContentControl {
    fn from(value: &Frame) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for Frame {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &Frame {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<Frame> for Control {
    fn from(value: Frame) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Frame> for Control {
    fn from(value: &Frame) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for Frame {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &Frame {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<Frame> for super::FrameworkElement {
    fn from(value: Frame) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Frame> for super::FrameworkElement {
    fn from(value: &Frame) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for Frame {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &Frame {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<Frame> for super::UIElement {
    fn from(value: Frame) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Frame> for super::UIElement {
    fn from(value: &Frame) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for Frame {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &Frame {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<Frame> for super::DependencyObject {
    fn from(value: Frame) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Frame> for super::DependencyObject {
    fn from(value: &Frame) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for Frame {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &Frame {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for Frame {}
unsafe impl ::core::marker::Sync for Frame {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct Grid(::windows::core::IUnknown);
impl Grid {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn RowDefinitions(&self) -> ::windows::core::Result<RowDefinitionCollection> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).RowDefinitions)(::core::mem::transmute_copy(this), &mut result__).from_abi::<RowDefinitionCollection>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn ColumnDefinitions(&self) -> ::windows::core::Result<ColumnDefinitionCollection> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ColumnDefinitions)(::core::mem::transmute_copy(this), &mut result__).from_abi::<ColumnDefinitionCollection>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn BorderBrush(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = &::windows::core::Interface::cast::<IGrid2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BorderBrush)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetBorderBrush<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IGrid2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetBorderBrush)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BorderThickness(&self) -> ::windows::core::Result<super::Thickness> {
        let this = &::windows::core::Interface::cast::<IGrid2>(self)?;
        unsafe {
            let mut result__: super::Thickness = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BorderThickness)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Thickness>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetBorderThickness<'a, Param0: ::windows::core::IntoParam<'a, super::Thickness>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IGrid2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetBorderThickness)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CornerRadius(&self) -> ::windows::core::Result<super::CornerRadius> {
        let this = &::windows::core::Interface::cast::<IGrid2>(self)?;
        unsafe {
            let mut result__: super::CornerRadius = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CornerRadius)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::CornerRadius>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCornerRadius<'a, Param0: ::windows::core::IntoParam<'a, super::CornerRadius>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IGrid2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetCornerRadius)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Padding(&self) -> ::windows::core::Result<super::Thickness> {
        let this = &::windows::core::Interface::cast::<IGrid2>(self)?;
        unsafe {
            let mut result__: super::Thickness = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Padding)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Thickness>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPadding<'a, Param0: ::windows::core::IntoParam<'a, super::Thickness>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IGrid2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetPadding)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn RowSpacing(&self) -> ::windows::core::Result<f64> {
        let this = &::windows::core::Interface::cast::<IGrid3>(self)?;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).RowSpacing)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetRowSpacing(&self, value: f64) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IGrid3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetRowSpacing)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ColumnSpacing(&self) -> ::windows::core::Result<f64> {
        let this = &::windows::core::Interface::cast::<IGrid3>(self)?;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ColumnSpacing)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetColumnSpacing(&self, value: f64) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IGrid3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetColumnSpacing)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BackgroundSizing(&self) -> ::windows::core::Result<BackgroundSizing> {
        let this = &::windows::core::Interface::cast::<IGrid4>(self)?;
        unsafe {
            let mut result__: BackgroundSizing = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BackgroundSizing)(::core::mem::transmute_copy(this), &mut result__).from_abi::<BackgroundSizing>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetBackgroundSizing(&self, value: BackgroundSizing) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IGrid4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetBackgroundSizing)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<Grid> {
        Self::IGridFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<Grid>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<Grid> {
        Self::IGridFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<Grid>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn RowProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IGridStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).RowProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetRow<'a, Param0: ::windows::core::IntoParam<'a, super::FrameworkElement>>(element: Param0) -> ::windows::core::Result<i32> {
        Self::IGridStatics(|this| unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetRow)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<i32>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetRow<'a, Param0: ::windows::core::IntoParam<'a, super::FrameworkElement>>(element: Param0, value: i32) -> ::windows::core::Result<()> {
        Self::IGridStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetRow)(::core::mem::transmute_copy(this), element.into_param().abi(), value).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ColumnProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IGridStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ColumnProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetColumn<'a, Param0: ::windows::core::IntoParam<'a, super::FrameworkElement>>(element: Param0) -> ::windows::core::Result<i32> {
        Self::IGridStatics(|this| unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetColumn)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<i32>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetColumn<'a, Param0: ::windows::core::IntoParam<'a, super::FrameworkElement>>(element: Param0, value: i32) -> ::windows::core::Result<()> {
        Self::IGridStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetColumn)(::core::mem::transmute_copy(this), element.into_param().abi(), value).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn RowSpanProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IGridStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).RowSpanProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetRowSpan<'a, Param0: ::windows::core::IntoParam<'a, super::FrameworkElement>>(element: Param0) -> ::windows::core::Result<i32> {
        Self::IGridStatics(|this| unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetRowSpan)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<i32>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetRowSpan<'a, Param0: ::windows::core::IntoParam<'a, super::FrameworkElement>>(element: Param0, value: i32) -> ::windows::core::Result<()> {
        Self::IGridStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetRowSpan)(::core::mem::transmute_copy(this), element.into_param().abi(), value).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ColumnSpanProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IGridStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ColumnSpanProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetColumnSpan<'a, Param0: ::windows::core::IntoParam<'a, super::FrameworkElement>>(element: Param0) -> ::windows::core::Result<i32> {
        Self::IGridStatics(|this| unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetColumnSpan)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<i32>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetColumnSpan<'a, Param0: ::windows::core::IntoParam<'a, super::FrameworkElement>>(element: Param0, value: i32) -> ::windows::core::Result<()> {
        Self::IGridStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetColumnSpan)(::core::mem::transmute_copy(this), element.into_param().abi(), value).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BorderBrushProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IGridStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BorderBrushProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BorderThicknessProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IGridStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BorderThicknessProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CornerRadiusProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IGridStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CornerRadiusProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PaddingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IGridStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaddingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn RowSpacingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IGridStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).RowSpacingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ColumnSpacingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IGridStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ColumnSpacingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BackgroundSizingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IGridStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BackgroundSizingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IGridFactory<R, F: FnOnce(&IGridFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Grid, IGridFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IGridStatics<R, F: FnOnce(&IGridStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Grid, IGridStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IGridStatics2<R, F: FnOnce(&IGridStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Grid, IGridStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IGridStatics3<R, F: FnOnce(&IGridStatics3) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Grid, IGridStatics3> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IGridStatics4<R, F: FnOnce(&IGridStatics4) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Grid, IGridStatics4> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for Grid {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for Grid {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for Grid {}
impl ::core::fmt::Debug for Grid {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("Grid").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for Grid {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.Grid;{fd104460-2e15-4ba3-8b8f-fa693a4161e9})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for Grid {
    type Vtable = IGrid_Vtbl;
    const IID: ::windows::core::GUID = <IGrid as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for Grid {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.Grid";
}
impl ::core::convert::From<Grid> for ::windows::core::IUnknown {
    fn from(value: Grid) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&Grid> for ::windows::core::IUnknown {
    fn from(value: &Grid) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for Grid {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a Grid {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<Grid> for ::windows::core::IInspectable {
    fn from(value: Grid) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&Grid> for ::windows::core::IInspectable {
    fn from(value: &Grid) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for Grid {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a Grid {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<Grid> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: Grid) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&Grid> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &Grid) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for Grid {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &Grid {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<Grid> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: Grid) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&Grid> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &Grid) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for Grid {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &Grid {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<Grid> for Panel {
    fn from(value: Grid) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Grid> for Panel {
    fn from(value: &Grid) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Panel> for Grid {
    fn into_param(self) -> ::windows::core::Param<'a, Panel> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Panel> for &Grid {
    fn into_param(self) -> ::windows::core::Param<'a, Panel> {
        ::windows::core::Param::Owned(::core::convert::Into::<Panel>::into(self))
    }
}
impl ::core::convert::From<Grid> for super::FrameworkElement {
    fn from(value: Grid) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Grid> for super::FrameworkElement {
    fn from(value: &Grid) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for Grid {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &Grid {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<Grid> for super::UIElement {
    fn from(value: Grid) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Grid> for super::UIElement {
    fn from(value: &Grid) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for Grid {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &Grid {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<Grid> for super::DependencyObject {
    fn from(value: Grid) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Grid> for super::DependencyObject {
    fn from(value: &Grid) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for Grid {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &Grid {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for Grid {}
unsafe impl ::core::marker::Sync for Grid {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct GridView(::windows::core::IUnknown);
impl GridView {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<GridView> {
        Self::IGridViewFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<GridView>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<GridView> {
        Self::IGridViewFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<GridView>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IGridViewFactory<R, F: FnOnce(&IGridViewFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<GridView, IGridViewFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for GridView {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for GridView {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for GridView {}
impl ::core::fmt::Debug for GridView {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("GridView").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for GridView {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.GridView;{026ae934-b67e-4d80-8f72-8aa64b4d827b})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for GridView {
    type Vtable = IGridView_Vtbl;
    const IID: ::windows::core::GUID = <IGridView as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for GridView {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.GridView";
}
impl ::core::convert::From<GridView> for ::windows::core::IUnknown {
    fn from(value: GridView) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&GridView> for ::windows::core::IUnknown {
    fn from(value: &GridView) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for GridView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a GridView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<GridView> for ::windows::core::IInspectable {
    fn from(value: GridView) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&GridView> for ::windows::core::IInspectable {
    fn from(value: &GridView) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for GridView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a GridView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<GridView> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: GridView) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&GridView> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &GridView) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for GridView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &GridView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::TryFrom<GridView> for IItemContainerMapping {
    type Error = ::windows::core::Error;
    fn try_from(value: GridView) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
impl ::core::convert::TryFrom<&GridView> for IItemContainerMapping {
    type Error = ::windows::core::Error;
    fn try_from(value: &GridView) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IItemContainerMapping> for GridView {
    fn into_param(self) -> ::windows::core::Param<'a, IItemContainerMapping> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IItemContainerMapping> for &GridView {
    fn into_param(self) -> ::windows::core::Param<'a, IItemContainerMapping> {
        ::core::convert::TryInto::<IItemContainerMapping>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::TryFrom<GridView> for ISemanticZoomInformation {
    type Error = ::windows::core::Error;
    fn try_from(value: GridView) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
impl ::core::convert::TryFrom<&GridView> for ISemanticZoomInformation {
    type Error = ::windows::core::Error;
    fn try_from(value: &GridView) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ISemanticZoomInformation> for GridView {
    fn into_param(self) -> ::windows::core::Param<'a, ISemanticZoomInformation> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ISemanticZoomInformation> for &GridView {
    fn into_param(self) -> ::windows::core::Param<'a, ISemanticZoomInformation> {
        ::core::convert::TryInto::<ISemanticZoomInformation>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<GridView> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: GridView) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&GridView> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &GridView) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for GridView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &GridView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<GridView> for ListViewBase {
    fn from(value: GridView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&GridView> for ListViewBase {
    fn from(value: &GridView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ListViewBase> for GridView {
    fn into_param(self) -> ::windows::core::Param<'a, ListViewBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ListViewBase> for &GridView {
    fn into_param(self) -> ::windows::core::Param<'a, ListViewBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<ListViewBase>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<GridView> for Primitives::Selector {
    fn from(value: GridView) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&GridView> for Primitives::Selector {
    fn from(value: &GridView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::Selector> for GridView {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::Selector> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::Selector> for &GridView {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::Selector> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::Selector>::into(self))
    }
}
impl ::core::convert::From<GridView> for ItemsControl {
    fn from(value: GridView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&GridView> for ItemsControl {
    fn from(value: &GridView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ItemsControl> for GridView {
    fn into_param(self) -> ::windows::core::Param<'a, ItemsControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ItemsControl> for &GridView {
    fn into_param(self) -> ::windows::core::Param<'a, ItemsControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ItemsControl>::into(self))
    }
}
impl ::core::convert::From<GridView> for Control {
    fn from(value: GridView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&GridView> for Control {
    fn from(value: &GridView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for GridView {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &GridView {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<GridView> for super::FrameworkElement {
    fn from(value: GridView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&GridView> for super::FrameworkElement {
    fn from(value: &GridView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for GridView {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &GridView {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<GridView> for super::UIElement {
    fn from(value: GridView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&GridView> for super::UIElement {
    fn from(value: &GridView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for GridView {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &GridView {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<GridView> for super::DependencyObject {
    fn from(value: GridView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&GridView> for super::DependencyObject {
    fn from(value: &GridView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for GridView {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &GridView {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for GridView {}
unsafe impl ::core::marker::Sync for GridView {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct GridViewHeaderItem(::windows::core::IUnknown);
impl GridViewHeaderItem {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<GridViewHeaderItem> {
        Self::IGridViewHeaderItemFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<GridViewHeaderItem>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<GridViewHeaderItem> {
        Self::IGridViewHeaderItemFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<GridViewHeaderItem>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IGridViewHeaderItemFactory<R, F: FnOnce(&IGridViewHeaderItemFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<GridViewHeaderItem, IGridViewHeaderItemFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for GridViewHeaderItem {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for GridViewHeaderItem {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for GridViewHeaderItem {}
impl ::core::fmt::Debug for GridViewHeaderItem {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("GridViewHeaderItem").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for GridViewHeaderItem {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.GridViewHeaderItem;{72d75d7e-5dc3-4ffc-9b1c-939b5c37161c})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for GridViewHeaderItem {
    type Vtable = IGridViewHeaderItem_Vtbl;
    const IID: ::windows::core::GUID = <IGridViewHeaderItem as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for GridViewHeaderItem {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.GridViewHeaderItem";
}
impl ::core::convert::From<GridViewHeaderItem> for ::windows::core::IUnknown {
    fn from(value: GridViewHeaderItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&GridViewHeaderItem> for ::windows::core::IUnknown {
    fn from(value: &GridViewHeaderItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for GridViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a GridViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<GridViewHeaderItem> for ::windows::core::IInspectable {
    fn from(value: GridViewHeaderItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&GridViewHeaderItem> for ::windows::core::IInspectable {
    fn from(value: &GridViewHeaderItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for GridViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a GridViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<GridViewHeaderItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: GridViewHeaderItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&GridViewHeaderItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &GridViewHeaderItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for GridViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &GridViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<GridViewHeaderItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: GridViewHeaderItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&GridViewHeaderItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &GridViewHeaderItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for GridViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &GridViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<GridViewHeaderItem> for ListViewBaseHeaderItem {
    fn from(value: GridViewHeaderItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&GridViewHeaderItem> for ListViewBaseHeaderItem {
    fn from(value: &GridViewHeaderItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ListViewBaseHeaderItem> for GridViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, ListViewBaseHeaderItem> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ListViewBaseHeaderItem> for &GridViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, ListViewBaseHeaderItem> {
        ::windows::core::Param::Owned(::core::convert::Into::<ListViewBaseHeaderItem>::into(self))
    }
}
impl ::core::convert::From<GridViewHeaderItem> for ContentControl {
    fn from(value: GridViewHeaderItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&GridViewHeaderItem> for ContentControl {
    fn from(value: &GridViewHeaderItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for GridViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &GridViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<GridViewHeaderItem> for Control {
    fn from(value: GridViewHeaderItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&GridViewHeaderItem> for Control {
    fn from(value: &GridViewHeaderItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for GridViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &GridViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<GridViewHeaderItem> for super::FrameworkElement {
    fn from(value: GridViewHeaderItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&GridViewHeaderItem> for super::FrameworkElement {
    fn from(value: &GridViewHeaderItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for GridViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &GridViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<GridViewHeaderItem> for super::UIElement {
    fn from(value: GridViewHeaderItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&GridViewHeaderItem> for super::UIElement {
    fn from(value: &GridViewHeaderItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for GridViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &GridViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<GridViewHeaderItem> for super::DependencyObject {
    fn from(value: GridViewHeaderItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&GridViewHeaderItem> for super::DependencyObject {
    fn from(value: &GridViewHeaderItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for GridViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &GridViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for GridViewHeaderItem {}
unsafe impl ::core::marker::Sync for GridViewHeaderItem {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct GridViewItem(::windows::core::IUnknown);
impl GridViewItem {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn TemplateSettings(&self) -> ::windows::core::Result<Primitives::GridViewItemTemplateSettings> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TemplateSettings)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::GridViewItemTemplateSettings>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<GridViewItem> {
        Self::IGridViewItemFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<GridViewItem>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<GridViewItem> {
        Self::IGridViewItemFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<GridViewItem>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IGridViewItemFactory<R, F: FnOnce(&IGridViewItemFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<GridViewItem, IGridViewItemFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for GridViewItem {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for GridViewItem {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for GridViewItem {}
impl ::core::fmt::Debug for GridViewItem {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("GridViewItem").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for GridViewItem {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.GridViewItem;{7d9901f1-e7c1-4e83-b470-c9d6d7bda9f5})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for GridViewItem {
    type Vtable = IGridViewItem_Vtbl;
    const IID: ::windows::core::GUID = <IGridViewItem as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for GridViewItem {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.GridViewItem";
}
impl ::core::convert::From<GridViewItem> for ::windows::core::IUnknown {
    fn from(value: GridViewItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&GridViewItem> for ::windows::core::IUnknown {
    fn from(value: &GridViewItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for GridViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a GridViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<GridViewItem> for ::windows::core::IInspectable {
    fn from(value: GridViewItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&GridViewItem> for ::windows::core::IInspectable {
    fn from(value: &GridViewItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for GridViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a GridViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<GridViewItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: GridViewItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&GridViewItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &GridViewItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for GridViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &GridViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<GridViewItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: GridViewItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&GridViewItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &GridViewItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for GridViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &GridViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<GridViewItem> for Primitives::SelectorItem {
    fn from(value: GridViewItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&GridViewItem> for Primitives::SelectorItem {
    fn from(value: &GridViewItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::SelectorItem> for GridViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::SelectorItem> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::SelectorItem> for &GridViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::SelectorItem> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::SelectorItem>::into(self))
    }
}
impl ::core::convert::From<GridViewItem> for ContentControl {
    fn from(value: GridViewItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&GridViewItem> for ContentControl {
    fn from(value: &GridViewItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for GridViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &GridViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<GridViewItem> for Control {
    fn from(value: GridViewItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&GridViewItem> for Control {
    fn from(value: &GridViewItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for GridViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &GridViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<GridViewItem> for super::FrameworkElement {
    fn from(value: GridViewItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&GridViewItem> for super::FrameworkElement {
    fn from(value: &GridViewItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for GridViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &GridViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<GridViewItem> for super::UIElement {
    fn from(value: GridViewItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&GridViewItem> for super::UIElement {
    fn from(value: &GridViewItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for GridViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &GridViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<GridViewItem> for super::DependencyObject {
    fn from(value: GridViewItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&GridViewItem> for super::DependencyObject {
    fn from(value: &GridViewItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for GridViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &GridViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for GridViewItem {}
unsafe impl ::core::marker::Sync for GridViewItem {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct GroupItem(::windows::core::IUnknown);
impl GroupItem {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<GroupItem> {
        Self::IGroupItemFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<GroupItem>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<GroupItem> {
        Self::IGroupItemFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<GroupItem>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IGroupItemFactory<R, F: FnOnce(&IGroupItemFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<GroupItem, IGroupItemFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for GroupItem {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for GroupItem {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for GroupItem {}
impl ::core::fmt::Debug for GroupItem {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("GroupItem").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for GroupItem {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.GroupItem;{4ae8d5d1-7228-4a16-a61f-88c0e8f45c76})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for GroupItem {
    type Vtable = IGroupItem_Vtbl;
    const IID: ::windows::core::GUID = <IGroupItem as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for GroupItem {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.GroupItem";
}
impl ::core::convert::From<GroupItem> for ::windows::core::IUnknown {
    fn from(value: GroupItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&GroupItem> for ::windows::core::IUnknown {
    fn from(value: &GroupItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for GroupItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a GroupItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<GroupItem> for ::windows::core::IInspectable {
    fn from(value: GroupItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&GroupItem> for ::windows::core::IInspectable {
    fn from(value: &GroupItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for GroupItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a GroupItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<GroupItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: GroupItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&GroupItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &GroupItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for GroupItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &GroupItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<GroupItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: GroupItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&GroupItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &GroupItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for GroupItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &GroupItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<GroupItem> for ContentControl {
    fn from(value: GroupItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&GroupItem> for ContentControl {
    fn from(value: &GroupItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for GroupItem {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &GroupItem {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<GroupItem> for Control {
    fn from(value: GroupItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&GroupItem> for Control {
    fn from(value: &GroupItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for GroupItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &GroupItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<GroupItem> for super::FrameworkElement {
    fn from(value: GroupItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&GroupItem> for super::FrameworkElement {
    fn from(value: &GroupItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for GroupItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &GroupItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<GroupItem> for super::UIElement {
    fn from(value: GroupItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&GroupItem> for super::UIElement {
    fn from(value: &GroupItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for GroupItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &GroupItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<GroupItem> for super::DependencyObject {
    fn from(value: GroupItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&GroupItem> for super::DependencyObject {
    fn from(value: &GroupItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for GroupItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &GroupItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for GroupItem {}
unsafe impl ::core::marker::Sync for GroupItem {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct GroupStyle(::windows::core::IUnknown);
impl GroupStyle {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Panel(&self) -> ::windows::core::Result<ItemsPanelTemplate> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Panel)(::core::mem::transmute_copy(this), &mut result__).from_abi::<ItemsPanelTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPanel<'a, Param0: ::windows::core::IntoParam<'a, ItemsPanelTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPanel)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'deprecated'*"]
    #[cfg(feature = "deprecated")]
    pub fn ContainerStyle(&self) -> ::windows::core::Result<super::Style> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContainerStyle)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Style>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'deprecated'*"]
    #[cfg(feature = "deprecated")]
    pub fn SetContainerStyle<'a, Param0: ::windows::core::IntoParam<'a, super::Style>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetContainerStyle)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'deprecated'*"]
    #[cfg(feature = "deprecated")]
    pub fn ContainerStyleSelector(&self) -> ::windows::core::Result<StyleSelector> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContainerStyleSelector)(::core::mem::transmute_copy(this), &mut result__).from_abi::<StyleSelector>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'deprecated'*"]
    #[cfg(feature = "deprecated")]
    pub fn SetContainerStyleSelector<'a, Param0: ::windows::core::IntoParam<'a, StyleSelector>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetContainerStyleSelector)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTemplate(&self) -> ::windows::core::Result<super::DataTemplate> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTemplate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeaderTemplate<'a, Param0: ::windows::core::IntoParam<'a, super::DataTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHeaderTemplate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTemplateSelector(&self) -> ::windows::core::Result<DataTemplateSelector> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTemplateSelector)(::core::mem::transmute_copy(this), &mut result__).from_abi::<DataTemplateSelector>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeaderTemplateSelector<'a, Param0: ::windows::core::IntoParam<'a, DataTemplateSelector>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHeaderTemplateSelector)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HidesIfEmpty(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HidesIfEmpty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHidesIfEmpty(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHidesIfEmpty)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderContainerStyle(&self) -> ::windows::core::Result<super::Style> {
        let this = &::windows::core::Interface::cast::<IGroupStyle2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderContainerStyle)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Style>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeaderContainerStyle<'a, Param0: ::windows::core::IntoParam<'a, super::Style>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IGroupStyle2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetHeaderContainerStyle)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<GroupStyle> {
        Self::IGroupStyleFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<GroupStyle>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<GroupStyle> {
        Self::IGroupStyleFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<GroupStyle>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'UI_Xaml_Data'*"]
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Data"))]
    pub fn PropertyChanged<'a, Param0: ::windows::core::IntoParam<'a, super::Data::PropertyChangedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<super::Data::INotifyPropertyChanged>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PropertyChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'UI_Xaml_Data'*"]
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Data"))]
    pub fn RemovePropertyChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<super::Data::INotifyPropertyChanged>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemovePropertyChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc(hidden)]
    pub fn IGroupStyleFactory<R, F: FnOnce(&IGroupStyleFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<GroupStyle, IGroupStyleFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for GroupStyle {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for GroupStyle {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for GroupStyle {}
impl ::core::fmt::Debug for GroupStyle {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("GroupStyle").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for GroupStyle {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.GroupStyle;{71ca300b-b89e-4184-b0df-a9e95447de8d})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for GroupStyle {
    type Vtable = IGroupStyle_Vtbl;
    const IID: ::windows::core::GUID = <IGroupStyle as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for GroupStyle {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.GroupStyle";
}
impl ::core::convert::From<GroupStyle> for ::windows::core::IUnknown {
    fn from(value: GroupStyle) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&GroupStyle> for ::windows::core::IUnknown {
    fn from(value: &GroupStyle) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for GroupStyle {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a GroupStyle {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<GroupStyle> for ::windows::core::IInspectable {
    fn from(value: GroupStyle) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&GroupStyle> for ::windows::core::IInspectable {
    fn from(value: &GroupStyle) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for GroupStyle {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a GroupStyle {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Xaml_Data")]
impl ::core::convert::TryFrom<GroupStyle> for super::Data::INotifyPropertyChanged {
    type Error = ::windows::core::Error;
    fn try_from(value: GroupStyle) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Data")]
impl ::core::convert::TryFrom<&GroupStyle> for super::Data::INotifyPropertyChanged {
    type Error = ::windows::core::Error;
    fn try_from(value: &GroupStyle) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Xaml_Data")]
impl<'a> ::windows::core::IntoParam<'a, super::Data::INotifyPropertyChanged> for GroupStyle {
    fn into_param(self) -> ::windows::core::Param<'a, super::Data::INotifyPropertyChanged> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Data")]
impl<'a> ::windows::core::IntoParam<'a, super::Data::INotifyPropertyChanged> for &GroupStyle {
    fn into_param(self) -> ::windows::core::Param<'a, super::Data::INotifyPropertyChanged> {
        ::core::convert::TryInto::<super::Data::INotifyPropertyChanged>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
unsafe impl ::core::marker::Send for GroupStyle {}
unsafe impl ::core::marker::Sync for GroupStyle {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct GroupStyleSelector(::windows::core::IUnknown);
impl GroupStyleSelector {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectGroupStyle<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, group: Param0, level: u32) -> ::windows::core::Result<GroupStyle> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectGroupStyle)(::core::mem::transmute_copy(this), group.into_param().abi(), level, &mut result__).from_abi::<GroupStyle>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<GroupStyleSelector> {
        Self::IGroupStyleSelectorFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<GroupStyleSelector>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<GroupStyleSelector> {
        Self::IGroupStyleSelectorFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<GroupStyleSelector>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IGroupStyleSelectorFactory<R, F: FnOnce(&IGroupStyleSelectorFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<GroupStyleSelector, IGroupStyleSelectorFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for GroupStyleSelector {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for GroupStyleSelector {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for GroupStyleSelector {}
impl ::core::fmt::Debug for GroupStyleSelector {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("GroupStyleSelector").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for GroupStyleSelector {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.GroupStyleSelector;{6dda119e-9a74-478f-a339-5bb52de6c51e})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for GroupStyleSelector {
    type Vtable = IGroupStyleSelector_Vtbl;
    const IID: ::windows::core::GUID = <IGroupStyleSelector as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for GroupStyleSelector {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.GroupStyleSelector";
}
impl ::core::convert::From<GroupStyleSelector> for ::windows::core::IUnknown {
    fn from(value: GroupStyleSelector) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&GroupStyleSelector> for ::windows::core::IUnknown {
    fn from(value: &GroupStyleSelector) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for GroupStyleSelector {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a GroupStyleSelector {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<GroupStyleSelector> for ::windows::core::IInspectable {
    fn from(value: GroupStyleSelector) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&GroupStyleSelector> for ::windows::core::IInspectable {
    fn from(value: &GroupStyleSelector) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for GroupStyleSelector {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a GroupStyleSelector {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for GroupStyleSelector {}
unsafe impl ::core::marker::Sync for GroupStyleSelector {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct HandwritingPanelClosedEventArgs(::windows::core::IUnknown);
impl HandwritingPanelClosedEventArgs {}
impl ::core::clone::Clone for HandwritingPanelClosedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for HandwritingPanelClosedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for HandwritingPanelClosedEventArgs {}
impl ::core::fmt::Debug for HandwritingPanelClosedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("HandwritingPanelClosedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for HandwritingPanelClosedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.HandwritingPanelClosedEventArgs;{4fb91c73-192d-4dd2-a1a2-80ed01125876})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for HandwritingPanelClosedEventArgs {
    type Vtable = IHandwritingPanelClosedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IHandwritingPanelClosedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for HandwritingPanelClosedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.HandwritingPanelClosedEventArgs";
}
impl ::core::convert::From<HandwritingPanelClosedEventArgs> for ::windows::core::IUnknown {
    fn from(value: HandwritingPanelClosedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&HandwritingPanelClosedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &HandwritingPanelClosedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for HandwritingPanelClosedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a HandwritingPanelClosedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<HandwritingPanelClosedEventArgs> for ::windows::core::IInspectable {
    fn from(value: HandwritingPanelClosedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&HandwritingPanelClosedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &HandwritingPanelClosedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for HandwritingPanelClosedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a HandwritingPanelClosedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for HandwritingPanelClosedEventArgs {}
unsafe impl ::core::marker::Sync for HandwritingPanelClosedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct HandwritingPanelOpenedEventArgs(::windows::core::IUnknown);
impl HandwritingPanelOpenedEventArgs {}
impl ::core::clone::Clone for HandwritingPanelOpenedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for HandwritingPanelOpenedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for HandwritingPanelOpenedEventArgs {}
impl ::core::fmt::Debug for HandwritingPanelOpenedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("HandwritingPanelOpenedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for HandwritingPanelOpenedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.HandwritingPanelOpenedEventArgs;{fc15b16d-9f15-47b0-b97a-94a68cc61345})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for HandwritingPanelOpenedEventArgs {
    type Vtable = IHandwritingPanelOpenedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IHandwritingPanelOpenedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for HandwritingPanelOpenedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.HandwritingPanelOpenedEventArgs";
}
impl ::core::convert::From<HandwritingPanelOpenedEventArgs> for ::windows::core::IUnknown {
    fn from(value: HandwritingPanelOpenedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&HandwritingPanelOpenedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &HandwritingPanelOpenedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for HandwritingPanelOpenedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a HandwritingPanelOpenedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<HandwritingPanelOpenedEventArgs> for ::windows::core::IInspectable {
    fn from(value: HandwritingPanelOpenedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&HandwritingPanelOpenedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &HandwritingPanelOpenedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for HandwritingPanelOpenedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a HandwritingPanelOpenedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for HandwritingPanelOpenedEventArgs {}
unsafe impl ::core::marker::Sync for HandwritingPanelOpenedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct HandwritingPanelPlacementAlignment(pub i32);
impl HandwritingPanelPlacementAlignment {
    pub const Auto: Self = Self(0i32);
    pub const TopLeft: Self = Self(1i32);
    pub const TopRight: Self = Self(2i32);
    pub const BottomLeft: Self = Self(3i32);
    pub const BottomRight: Self = Self(4i32);
}
impl ::core::marker::Copy for HandwritingPanelPlacementAlignment {}
impl ::core::clone::Clone for HandwritingPanelPlacementAlignment {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for HandwritingPanelPlacementAlignment {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for HandwritingPanelPlacementAlignment {
    type Abi = Self;
}
impl ::core::fmt::Debug for HandwritingPanelPlacementAlignment {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("HandwritingPanelPlacementAlignment").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for HandwritingPanelPlacementAlignment {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.HandwritingPanelPlacementAlignment;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct HandwritingView(::windows::core::IUnknown);
impl HandwritingView {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PlacementTarget(&self) -> ::windows::core::Result<super::UIElement> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlacementTarget)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::UIElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPlacementTarget<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPlacementTarget)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PlacementAlignment(&self) -> ::windows::core::Result<HandwritingPanelPlacementAlignment> {
        let this = self;
        unsafe {
            let mut result__: HandwritingPanelPlacementAlignment = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlacementAlignment)(::core::mem::transmute_copy(this), &mut result__).from_abi::<HandwritingPanelPlacementAlignment>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPlacementAlignment(&self, value: HandwritingPanelPlacementAlignment) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPlacementAlignment)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsOpen(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsOpen)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AreCandidatesEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AreCandidatesEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetAreCandidatesEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetAreCandidatesEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Opened<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<HandwritingView, HandwritingPanelOpenedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Opened)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveOpened<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveOpened)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Closed<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<HandwritingView, HandwritingPanelClosedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Closed)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveClosed<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveClosed)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TryClose(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TryClose)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TryOpen(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TryOpen)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsSwitchToKeyboardEnabled(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IHandwritingView2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsSwitchToKeyboardEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsSwitchToKeyboardEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IHandwritingView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsSwitchToKeyboardEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsCommandBarOpen(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IHandwritingView2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsCommandBarOpen)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsCommandBarOpen(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IHandwritingView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsCommandBarOpen)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Core'*"]
    #[cfg(feature = "UI_Core")]
    pub fn InputDeviceTypes(&self) -> ::windows::core::Result<super::super::Core::CoreInputDeviceTypes> {
        let this = &::windows::core::Interface::cast::<IHandwritingView2>(self)?;
        unsafe {
            let mut result__: super::super::Core::CoreInputDeviceTypes = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).InputDeviceTypes)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Core::CoreInputDeviceTypes>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Core'*"]
    #[cfg(feature = "UI_Core")]
    pub fn SetInputDeviceTypes(&self, value: super::super::Core::CoreInputDeviceTypes) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IHandwritingView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetInputDeviceTypes)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn CandidatesChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<HandwritingView, HandwritingViewCandidatesChangedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IHandwritingView2>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CandidatesChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveCandidatesChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IHandwritingView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveCandidatesChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn TextSubmitted<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<HandwritingView, HandwritingViewTextSubmittedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IHandwritingView2>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextSubmitted)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveTextSubmitted<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IHandwritingView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveTextSubmitted)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn GetCandidates(&self, candidatessessionid: u32) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVectorView<::windows::core::HSTRING>> {
        let this = &::windows::core::Interface::cast::<IHandwritingView2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetCandidates)(::core::mem::transmute_copy(this), candidatessessionid, &mut result__).from_abi::<super::super::super::Foundation::Collections::IVectorView<::windows::core::HSTRING>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectCandidate(&self, candidatessessionid: u32, selectedcandidateindex: u32) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IHandwritingView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SelectCandidate)(::core::mem::transmute_copy(this), candidatessessionid, selectedcandidateindex).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<HandwritingView> {
        Self::IHandwritingViewFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<HandwritingView>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<HandwritingView> {
        Self::IHandwritingViewFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<HandwritingView>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PlacementTargetProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IHandwritingViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlacementTargetProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PlacementAlignmentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IHandwritingViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlacementAlignmentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsOpenProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IHandwritingViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsOpenProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AreCandidatesEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IHandwritingViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AreCandidatesEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsSwitchToKeyboardEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IHandwritingViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsSwitchToKeyboardEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsCommandBarOpenProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IHandwritingViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsCommandBarOpenProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IHandwritingViewFactory<R, F: FnOnce(&IHandwritingViewFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<HandwritingView, IHandwritingViewFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IHandwritingViewStatics<R, F: FnOnce(&IHandwritingViewStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<HandwritingView, IHandwritingViewStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IHandwritingViewStatics2<R, F: FnOnce(&IHandwritingViewStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<HandwritingView, IHandwritingViewStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for HandwritingView {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for HandwritingView {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for HandwritingView {}
impl ::core::fmt::Debug for HandwritingView {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("HandwritingView").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for HandwritingView {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.HandwritingView;{c44204a7-31e0-44bc-a38b-4bee64ecd99f})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for HandwritingView {
    type Vtable = IHandwritingView_Vtbl;
    const IID: ::windows::core::GUID = <IHandwritingView as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for HandwritingView {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.HandwritingView";
}
impl ::core::convert::From<HandwritingView> for ::windows::core::IUnknown {
    fn from(value: HandwritingView) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&HandwritingView> for ::windows::core::IUnknown {
    fn from(value: &HandwritingView) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for HandwritingView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a HandwritingView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<HandwritingView> for ::windows::core::IInspectable {
    fn from(value: HandwritingView) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&HandwritingView> for ::windows::core::IInspectable {
    fn from(value: &HandwritingView) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for HandwritingView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a HandwritingView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<HandwritingView> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: HandwritingView) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&HandwritingView> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &HandwritingView) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for HandwritingView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &HandwritingView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<HandwritingView> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: HandwritingView) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&HandwritingView> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &HandwritingView) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for HandwritingView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &HandwritingView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<HandwritingView> for Control {
    fn from(value: HandwritingView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&HandwritingView> for Control {
    fn from(value: &HandwritingView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for HandwritingView {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &HandwritingView {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<HandwritingView> for super::FrameworkElement {
    fn from(value: HandwritingView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&HandwritingView> for super::FrameworkElement {
    fn from(value: &HandwritingView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for HandwritingView {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &HandwritingView {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<HandwritingView> for super::UIElement {
    fn from(value: HandwritingView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&HandwritingView> for super::UIElement {
    fn from(value: &HandwritingView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for HandwritingView {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &HandwritingView {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<HandwritingView> for super::DependencyObject {
    fn from(value: HandwritingView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&HandwritingView> for super::DependencyObject {
    fn from(value: &HandwritingView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for HandwritingView {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &HandwritingView {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for HandwritingView {}
unsafe impl ::core::marker::Sync for HandwritingView {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct HandwritingViewCandidatesChangedEventArgs(::windows::core::IUnknown);
impl HandwritingViewCandidatesChangedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CandidatesSessionId(&self) -> ::windows::core::Result<u32> {
        let this = self;
        unsafe {
            let mut result__: u32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CandidatesSessionId)(::core::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
        }
    }
}
impl ::core::clone::Clone for HandwritingViewCandidatesChangedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for HandwritingViewCandidatesChangedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for HandwritingViewCandidatesChangedEventArgs {}
impl ::core::fmt::Debug for HandwritingViewCandidatesChangedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("HandwritingViewCandidatesChangedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for HandwritingViewCandidatesChangedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.HandwritingViewCandidatesChangedEventArgs;{6f5f63d8-56b1-56c5-a416-c19c16bf7884})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for HandwritingViewCandidatesChangedEventArgs {
    type Vtable = IHandwritingViewCandidatesChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IHandwritingViewCandidatesChangedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for HandwritingViewCandidatesChangedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.HandwritingViewCandidatesChangedEventArgs";
}
impl ::core::convert::From<HandwritingViewCandidatesChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: HandwritingViewCandidatesChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&HandwritingViewCandidatesChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &HandwritingViewCandidatesChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for HandwritingViewCandidatesChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a HandwritingViewCandidatesChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<HandwritingViewCandidatesChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: HandwritingViewCandidatesChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&HandwritingViewCandidatesChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &HandwritingViewCandidatesChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for HandwritingViewCandidatesChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a HandwritingViewCandidatesChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for HandwritingViewCandidatesChangedEventArgs {}
unsafe impl ::core::marker::Sync for HandwritingViewCandidatesChangedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct HandwritingViewTextSubmittedEventArgs(::windows::core::IUnknown);
impl HandwritingViewTextSubmittedEventArgs {}
impl ::core::clone::Clone for HandwritingViewTextSubmittedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for HandwritingViewTextSubmittedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for HandwritingViewTextSubmittedEventArgs {}
impl ::core::fmt::Debug for HandwritingViewTextSubmittedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("HandwritingViewTextSubmittedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for HandwritingViewTextSubmittedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.HandwritingViewTextSubmittedEventArgs;{55ac0f47-f5e4-55da-b8a3-d418b7564291})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for HandwritingViewTextSubmittedEventArgs {
    type Vtable = IHandwritingViewTextSubmittedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IHandwritingViewTextSubmittedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for HandwritingViewTextSubmittedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.HandwritingViewTextSubmittedEventArgs";
}
impl ::core::convert::From<HandwritingViewTextSubmittedEventArgs> for ::windows::core::IUnknown {
    fn from(value: HandwritingViewTextSubmittedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&HandwritingViewTextSubmittedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &HandwritingViewTextSubmittedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for HandwritingViewTextSubmittedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a HandwritingViewTextSubmittedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<HandwritingViewTextSubmittedEventArgs> for ::windows::core::IInspectable {
    fn from(value: HandwritingViewTextSubmittedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&HandwritingViewTextSubmittedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &HandwritingViewTextSubmittedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for HandwritingViewTextSubmittedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a HandwritingViewTextSubmittedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for HandwritingViewTextSubmittedEventArgs {}
unsafe impl ::core::marker::Sync for HandwritingViewTextSubmittedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct Hub(::windows::core::IUnknown);
impl Hub {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Header(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Header)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeader<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHeader)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTemplate(&self) -> ::windows::core::Result<super::DataTemplate> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTemplate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeaderTemplate<'a, Param0: ::windows::core::IntoParam<'a, super::DataTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHeaderTemplate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Orientation(&self) -> ::windows::core::Result<Orientation> {
        let this = self;
        unsafe {
            let mut result__: Orientation = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Orientation)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Orientation>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetOrientation(&self, value: Orientation) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetOrientation)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DefaultSectionIndex(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DefaultSectionIndex)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDefaultSectionIndex(&self, value: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetDefaultSectionIndex)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn Sections(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVector<HubSection>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Sections)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<HubSection>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn SectionsInView(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVector<HubSection>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SectionsInView)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<HubSection>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn SectionHeaders(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IObservableVector<::windows::core::IInspectable>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SectionHeaders)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IObservableVector<::windows::core::IInspectable>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SectionHeaderClick<'a, Param0: ::windows::core::IntoParam<'a, HubSectionHeaderClickEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SectionHeaderClick)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveSectionHeaderClick<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveSectionHeaderClick)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SectionsInViewChanged<'a, Param0: ::windows::core::IntoParam<'a, SectionsInViewChangedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SectionsInViewChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveSectionsInViewChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveSectionsInViewChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ScrollToSection<'a, Param0: ::windows::core::IntoParam<'a, HubSection>>(&self, section: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).ScrollToSection)(::core::mem::transmute_copy(this), section.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<Hub> {
        Self::IHubFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<Hub>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<Hub> {
        Self::IHubFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<Hub>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IHubStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTemplateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IHubStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTemplateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OrientationProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IHubStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OrientationProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DefaultSectionIndexProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IHubStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DefaultSectionIndexProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SemanticZoomOwnerProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IHubStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SemanticZoomOwnerProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsActiveViewProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IHubStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsActiveViewProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsZoomedInViewProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IHubStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsZoomedInViewProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SemanticZoomOwner(&self) -> ::windows::core::Result<SemanticZoom> {
        let this = &::windows::core::Interface::cast::<ISemanticZoomInformation>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SemanticZoomOwner)(::core::mem::transmute_copy(this), &mut result__).from_abi::<SemanticZoom>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSemanticZoomOwner<'a, Param0: ::windows::core::IntoParam<'a, SemanticZoom>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ISemanticZoomInformation>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetSemanticZoomOwner)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsActiveView(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<ISemanticZoomInformation>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsActiveView)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsActiveView(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ISemanticZoomInformation>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsActiveView)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsZoomedInView(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<ISemanticZoomInformation>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsZoomedInView)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsZoomedInView(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ISemanticZoomInformation>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsZoomedInView)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn InitializeViewChange(&self) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ISemanticZoomInformation>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).InitializeViewChange)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CompleteViewChange(&self) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ISemanticZoomInformation>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).CompleteViewChange)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MakeVisible<'a, Param0: ::windows::core::IntoParam<'a, SemanticZoomLocation>>(&self, item: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ISemanticZoomInformation>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).MakeVisible)(::core::mem::transmute_copy(this), item.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn StartViewChangeFrom<'a, Param0: ::windows::core::IntoParam<'a, SemanticZoomLocation>, Param1: ::windows::core::IntoParam<'a, SemanticZoomLocation>>(&self, source: Param0, destination: Param1) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ISemanticZoomInformation>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).StartViewChangeFrom)(::core::mem::transmute_copy(this), source.into_param().abi(), destination.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn StartViewChangeTo<'a, Param0: ::windows::core::IntoParam<'a, SemanticZoomLocation>, Param1: ::windows::core::IntoParam<'a, SemanticZoomLocation>>(&self, source: Param0, destination: Param1) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ISemanticZoomInformation>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).StartViewChangeTo)(::core::mem::transmute_copy(this), source.into_param().abi(), destination.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CompleteViewChangeFrom<'a, Param0: ::windows::core::IntoParam<'a, SemanticZoomLocation>, Param1: ::windows::core::IntoParam<'a, SemanticZoomLocation>>(&self, source: Param0, destination: Param1) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ISemanticZoomInformation>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).CompleteViewChangeFrom)(::core::mem::transmute_copy(this), source.into_param().abi(), destination.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CompleteViewChangeTo<'a, Param0: ::windows::core::IntoParam<'a, SemanticZoomLocation>, Param1: ::windows::core::IntoParam<'a, SemanticZoomLocation>>(&self, source: Param0, destination: Param1) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ISemanticZoomInformation>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).CompleteViewChangeTo)(::core::mem::transmute_copy(this), source.into_param().abi(), destination.into_param().abi()).ok() }
    }
    #[doc(hidden)]
    pub fn IHubFactory<R, F: FnOnce(&IHubFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Hub, IHubFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IHubStatics<R, F: FnOnce(&IHubStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Hub, IHubStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for Hub {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for Hub {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for Hub {}
impl ::core::fmt::Debug for Hub {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("Hub").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for Hub {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.Hub;{ae692e82-7314-4f51-ab11-2af1ed4a19f8})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for Hub {
    type Vtable = IHub_Vtbl;
    const IID: ::windows::core::GUID = <IHub as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for Hub {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.Hub";
}
impl ::core::convert::From<Hub> for ::windows::core::IUnknown {
    fn from(value: Hub) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&Hub> for ::windows::core::IUnknown {
    fn from(value: &Hub) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for Hub {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a Hub {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<Hub> for ::windows::core::IInspectable {
    fn from(value: Hub) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&Hub> for ::windows::core::IInspectable {
    fn from(value: &Hub) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for Hub {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a Hub {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<Hub> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: Hub) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&Hub> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &Hub) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for Hub {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &Hub {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::TryFrom<Hub> for ISemanticZoomInformation {
    type Error = ::windows::core::Error;
    fn try_from(value: Hub) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
impl ::core::convert::TryFrom<&Hub> for ISemanticZoomInformation {
    type Error = ::windows::core::Error;
    fn try_from(value: &Hub) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ISemanticZoomInformation> for Hub {
    fn into_param(self) -> ::windows::core::Param<'a, ISemanticZoomInformation> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ISemanticZoomInformation> for &Hub {
    fn into_param(self) -> ::windows::core::Param<'a, ISemanticZoomInformation> {
        ::core::convert::TryInto::<ISemanticZoomInformation>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<Hub> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: Hub) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&Hub> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &Hub) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for Hub {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &Hub {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<Hub> for Control {
    fn from(value: Hub) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Hub> for Control {
    fn from(value: &Hub) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for Hub {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &Hub {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<Hub> for super::FrameworkElement {
    fn from(value: Hub) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Hub> for super::FrameworkElement {
    fn from(value: &Hub) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for Hub {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &Hub {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<Hub> for super::UIElement {
    fn from(value: Hub) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Hub> for super::UIElement {
    fn from(value: &Hub) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for Hub {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &Hub {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<Hub> for super::DependencyObject {
    fn from(value: Hub) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Hub> for super::DependencyObject {
    fn from(value: &Hub) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for Hub {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &Hub {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for Hub {}
unsafe impl ::core::marker::Sync for Hub {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct HubSection(::windows::core::IUnknown);
impl HubSection {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Header(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Header)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeader<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHeader)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTemplate(&self) -> ::windows::core::Result<super::DataTemplate> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTemplate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeaderTemplate<'a, Param0: ::windows::core::IntoParam<'a, super::DataTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHeaderTemplate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContentTemplate(&self) -> ::windows::core::Result<super::DataTemplate> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentTemplate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetContentTemplate<'a, Param0: ::windows::core::IntoParam<'a, super::DataTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetContentTemplate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsHeaderInteractive(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsHeaderInteractive)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsHeaderInteractive(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsHeaderInteractive)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<HubSection> {
        Self::IHubSectionFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<HubSection>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<HubSection> {
        Self::IHubSectionFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<HubSection>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IHubSectionStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTemplateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IHubSectionStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTemplateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContentTemplateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IHubSectionStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentTemplateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsHeaderInteractiveProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IHubSectionStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsHeaderInteractiveProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IHubSectionFactory<R, F: FnOnce(&IHubSectionFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<HubSection, IHubSectionFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IHubSectionStatics<R, F: FnOnce(&IHubSectionStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<HubSection, IHubSectionStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for HubSection {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for HubSection {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for HubSection {}
impl ::core::fmt::Debug for HubSection {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("HubSection").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for HubSection {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.HubSection;{a4e66cb7-7fdd-4fe0-ab49-c246639dccf9})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for HubSection {
    type Vtable = IHubSection_Vtbl;
    const IID: ::windows::core::GUID = <IHubSection as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for HubSection {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.HubSection";
}
impl ::core::convert::From<HubSection> for ::windows::core::IUnknown {
    fn from(value: HubSection) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&HubSection> for ::windows::core::IUnknown {
    fn from(value: &HubSection) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for HubSection {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a HubSection {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<HubSection> for ::windows::core::IInspectable {
    fn from(value: HubSection) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&HubSection> for ::windows::core::IInspectable {
    fn from(value: &HubSection) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for HubSection {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a HubSection {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<HubSection> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: HubSection) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&HubSection> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &HubSection) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for HubSection {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &HubSection {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<HubSection> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: HubSection) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&HubSection> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &HubSection) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for HubSection {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &HubSection {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<HubSection> for Control {
    fn from(value: HubSection) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&HubSection> for Control {
    fn from(value: &HubSection) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for HubSection {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &HubSection {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<HubSection> for super::FrameworkElement {
    fn from(value: HubSection) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&HubSection> for super::FrameworkElement {
    fn from(value: &HubSection) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for HubSection {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &HubSection {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<HubSection> for super::UIElement {
    fn from(value: HubSection) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&HubSection> for super::UIElement {
    fn from(value: &HubSection) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for HubSection {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &HubSection {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<HubSection> for super::DependencyObject {
    fn from(value: HubSection) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&HubSection> for super::DependencyObject {
    fn from(value: &HubSection) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for HubSection {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &HubSection {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for HubSection {}
unsafe impl ::core::marker::Sync for HubSection {}
#[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
#[cfg(feature = "Foundation_Collections")]
#[repr(transparent)]
pub struct HubSectionCollection(::windows::core::IUnknown);
#[cfg(feature = "Foundation_Collections")]
impl HubSectionCollection {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn First(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IIterator<HubSection>> {
        let this = &::windows::core::Interface::cast::<super::super::super::Foundation::Collections::IIterable<HubSection>>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).First)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IIterator<HubSection>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn GetAt(&self, index: u32) -> ::windows::core::Result<HubSection> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetAt)(::core::mem::transmute_copy(this), index, &mut result__).from_abi::<HubSection>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn Size(&self) -> ::windows::core::Result<u32> {
        let this = self;
        unsafe {
            let mut result__: u32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Size)(::core::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn GetView(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVectorView<HubSection>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetView)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVectorView<HubSection>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn IndexOf<'a, Param0: ::windows::core::IntoParam<'a, HubSection>>(&self, value: Param0, index: &mut u32) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IndexOf)(::core::mem::transmute_copy(this), value.into_param().abi(), index, &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn SetAt<'a, Param1: ::windows::core::IntoParam<'a, HubSection>>(&self, index: u32, value: Param1) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetAt)(::core::mem::transmute_copy(this), index, value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn InsertAt<'a, Param1: ::windows::core::IntoParam<'a, HubSection>>(&self, index: u32, value: Param1) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).InsertAt)(::core::mem::transmute_copy(this), index, value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn RemoveAt(&self, index: u32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveAt)(::core::mem::transmute_copy(this), index).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn Append<'a, Param0: ::windows::core::IntoParam<'a, HubSection>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Append)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn RemoveAtEnd(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveAtEnd)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn Clear(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Clear)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn GetMany(&self, startindex: u32, items: &mut [::core::option::Option<HubSection>]) -> ::windows::core::Result<u32> {
        let this = self;
        unsafe {
            let mut result__: u32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetMany)(::core::mem::transmute_copy(this), startindex, items.len() as u32, ::core::mem::transmute_copy(&items), &mut result__).from_abi::<u32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn ReplaceAll(&self, items: &[::core::option::Option<HubSection>]) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).ReplaceAll)(::core::mem::transmute_copy(this), items.len() as u32, ::core::mem::transmute(items.as_ptr())).ok() }
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::clone::Clone for HubSectionCollection {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::cmp::PartialEq for HubSectionCollection {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::cmp::Eq for HubSectionCollection {}
#[cfg(feature = "Foundation_Collections")]
impl ::core::fmt::Debug for HubSectionCollection {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("HubSectionCollection").field(&self.0).finish()
    }
}
#[cfg(feature = "Foundation_Collections")]
unsafe impl ::windows::core::RuntimeType for HubSectionCollection {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.HubSectionCollection;pinterface({913337e9-11a1-4345-a3a2-4e7f956e222d};rc(Windows.UI.Xaml.Controls.HubSection;{a4e66cb7-7fdd-4fe0-ab49-c246639dccf9})))");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
#[cfg(feature = "Foundation_Collections")]
unsafe impl ::windows::core::Interface for HubSectionCollection {
    type Vtable = super::super::super::Foundation::Collections::IVector_Vtbl<HubSection>;
    const IID: ::windows::core::GUID = <super::super::super::Foundation::Collections::IVector<HubSection> as ::windows::core::Interface>::IID;
}
#[cfg(feature = "Foundation_Collections")]
impl ::windows::core::RuntimeName for HubSectionCollection {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.HubSectionCollection";
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::iter::IntoIterator for HubSectionCollection {
    type Item = HubSection;
    type IntoIter = super::super::super::Foundation::Collections::VectorIterator<Self::Item>;
    fn into_iter(self) -> Self::IntoIter {
        ::core::iter::IntoIterator::into_iter(&self)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::iter::IntoIterator for &HubSectionCollection {
    type Item = HubSection;
    type IntoIter = super::super::super::Foundation::Collections::VectorIterator<Self::Item>;
    fn into_iter(self) -> Self::IntoIter {
        super::super::super::Foundation::Collections::VectorIterator::new(::core::convert::TryInto::try_into(self).ok())
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::From<HubSectionCollection> for ::windows::core::IUnknown {
    fn from(value: HubSectionCollection) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::From<&HubSectionCollection> for ::windows::core::IUnknown {
    fn from(value: &HubSectionCollection) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for HubSectionCollection {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a HubSectionCollection {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::From<HubSectionCollection> for ::windows::core::IInspectable {
    fn from(value: HubSectionCollection) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::From<&HubSectionCollection> for ::windows::core::IInspectable {
    fn from(value: &HubSectionCollection) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for HubSectionCollection {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a HubSectionCollection {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::TryFrom<HubSectionCollection> for super::super::super::Foundation::Collections::IIterable<HubSection> {
    type Error = ::windows::core::Error;
    fn try_from(value: HubSectionCollection) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::TryFrom<&HubSectionCollection> for super::super::super::Foundation::Collections::IIterable<HubSection> {
    type Error = ::windows::core::Error;
    fn try_from(value: &HubSectionCollection) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IIterable<HubSection>> for HubSectionCollection {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::super::Foundation::Collections::IIterable<HubSection>> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IIterable<HubSection>> for &HubSectionCollection {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::super::Foundation::Collections::IIterable<HubSection>> {
        ::core::convert::TryInto::<super::super::super::Foundation::Collections::IIterable<HubSection>>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::TryFrom<HubSectionCollection> for super::super::super::Foundation::Collections::IVector<HubSection> {
    type Error = ::windows::core::Error;
    fn try_from(value: HubSectionCollection) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::TryFrom<&HubSectionCollection> for super::super::super::Foundation::Collections::IVector<HubSection> {
    type Error = ::windows::core::Error;
    fn try_from(value: &HubSectionCollection) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IVector<HubSection>> for HubSectionCollection {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::super::Foundation::Collections::IVector<HubSection>> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IVector<HubSection>> for &HubSectionCollection {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::super::Foundation::Collections::IVector<HubSection>> {
        ::core::convert::TryInto::<super::super::super::Foundation::Collections::IVector<HubSection>>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "Foundation_Collections")]
unsafe impl ::core::marker::Send for HubSectionCollection {}
#[cfg(feature = "Foundation_Collections")]
unsafe impl ::core::marker::Sync for HubSectionCollection {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct HubSectionHeaderClickEventArgs(::windows::core::IUnknown);
impl HubSectionHeaderClickEventArgs {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<HubSectionHeaderClickEventArgs, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Section(&self) -> ::windows::core::Result<HubSection> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Section)(::core::mem::transmute_copy(this), &mut result__).from_abi::<HubSection>(result__)
        }
    }
}
impl ::core::clone::Clone for HubSectionHeaderClickEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for HubSectionHeaderClickEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for HubSectionHeaderClickEventArgs {}
impl ::core::fmt::Debug for HubSectionHeaderClickEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("HubSectionHeaderClickEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for HubSectionHeaderClickEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.HubSectionHeaderClickEventArgs;{e1c5ef04-1edd-4112-aeeb-996c96400698})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for HubSectionHeaderClickEventArgs {
    type Vtable = IHubSectionHeaderClickEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IHubSectionHeaderClickEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for HubSectionHeaderClickEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.HubSectionHeaderClickEventArgs";
}
impl ::core::convert::From<HubSectionHeaderClickEventArgs> for ::windows::core::IUnknown {
    fn from(value: HubSectionHeaderClickEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&HubSectionHeaderClickEventArgs> for ::windows::core::IUnknown {
    fn from(value: &HubSectionHeaderClickEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for HubSectionHeaderClickEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a HubSectionHeaderClickEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<HubSectionHeaderClickEventArgs> for ::windows::core::IInspectable {
    fn from(value: HubSectionHeaderClickEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&HubSectionHeaderClickEventArgs> for ::windows::core::IInspectable {
    fn from(value: &HubSectionHeaderClickEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for HubSectionHeaderClickEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a HubSectionHeaderClickEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for HubSectionHeaderClickEventArgs {}
unsafe impl ::core::marker::Sync for HubSectionHeaderClickEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct HubSectionHeaderClickEventHandler(pub ::windows::core::IUnknown);
impl HubSectionHeaderClickEventHandler {
    pub fn new<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<HubSectionHeaderClickEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static>(invoke: F) -> Self {
        let com = HubSectionHeaderClickEventHandlerBox::<F> { vtable: &HubSectionHeaderClickEventHandlerBox::<F>::VTABLE, count: ::windows::core::RefCount::new(1), invoke };
        unsafe { ::core::mem::transmute(::windows::core::alloc::boxed::Box::new(com)) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Invoke<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>, Param1: ::windows::core::IntoParam<'a, HubSectionHeaderClickEventArgs>>(&self, sender: Param0, e: Param1) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Invoke)(::core::mem::transmute_copy(this), sender.into_param().abi(), e.into_param().abi()).ok() }
    }
}
#[repr(C)]
struct HubSectionHeaderClickEventHandlerBox<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<HubSectionHeaderClickEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static> {
    vtable: *const HubSectionHeaderClickEventHandler_Vtbl,
    invoke: F,
    count: ::windows::core::RefCount,
}
impl<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<HubSectionHeaderClickEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static> HubSectionHeaderClickEventHandlerBox<F> {
    const VTABLE: HubSectionHeaderClickEventHandler_Vtbl = HubSectionHeaderClickEventHandler_Vtbl { base: ::windows::core::IUnknownVtbl { QueryInterface: Self::QueryInterface, AddRef: Self::AddRef, Release: Self::Release }, Invoke: Self::Invoke };
    unsafe extern "system" fn QueryInterface(this: ::windows::core::RawPtr, iid: &::windows::core::GUID, interface: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        *interface = if iid == &<HubSectionHeaderClickEventHandler as ::windows::core::Interface>::IID || iid == &<::windows::core::IUnknown as ::windows::core::Interface>::IID || iid == &<::windows::core::IAgileObject as ::windows::core::Interface>::IID { &mut (*this).vtable as *mut _ as _ } else { ::core::ptr::null_mut() };
        if (*interface).is_null() {
            ::windows::core::HRESULT(-2147467262)
        } else {
            (*this).count.add_ref();
            ::windows::core::HRESULT(0)
        }
    }
    unsafe extern "system" fn AddRef(this: ::windows::core::RawPtr) -> u32 {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        (*this).count.add_ref()
    }
    unsafe extern "system" fn Release(this: ::windows::core::RawPtr) -> u32 {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        let remaining = (*this).count.release();
        if remaining == 0 {
            ::windows::core::alloc::boxed::Box::from_raw(this);
        }
        remaining
    }
    unsafe extern "system" fn Invoke(this: *mut ::core::ffi::c_void, sender: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        ((*this).invoke)(::core::mem::transmute(&sender), ::core::mem::transmute(&e)).into()
    }
}
impl ::core::clone::Clone for HubSectionHeaderClickEventHandler {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for HubSectionHeaderClickEventHandler {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for HubSectionHeaderClickEventHandler {}
impl ::core::fmt::Debug for HubSectionHeaderClickEventHandler {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("HubSectionHeaderClickEventHandler").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for HubSectionHeaderClickEventHandler {
    type Vtable = HubSectionHeaderClickEventHandler_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xafe17b9b_9c63_4583_88e4_c59019b7f49d);
}
unsafe impl ::windows::core::RuntimeType for HubSectionHeaderClickEventHandler {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"{afe17b9b-9c63-4583-88e4-c59019b7f49d}");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
#[repr(C)]
#[doc(hidden)]
pub struct HubSectionHeaderClickEventHandler_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    pub Invoke: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sender: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct HyperlinkButton(::windows::core::IUnknown);
impl HyperlinkButton {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn NavigateUri(&self) -> ::windows::core::Result<super::super::super::Foundation::Uri> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).NavigateUri)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Uri>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SetNavigateUri<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::Uri>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetNavigateUri)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<HyperlinkButton> {
        Self::IHyperlinkButtonFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<HyperlinkButton>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<HyperlinkButton> {
        Self::IHyperlinkButtonFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<HyperlinkButton>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn NavigateUriProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IHyperlinkButtonStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).NavigateUriProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IHyperlinkButtonFactory<R, F: FnOnce(&IHyperlinkButtonFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<HyperlinkButton, IHyperlinkButtonFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IHyperlinkButtonStatics<R, F: FnOnce(&IHyperlinkButtonStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<HyperlinkButton, IHyperlinkButtonStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for HyperlinkButton {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for HyperlinkButton {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for HyperlinkButton {}
impl ::core::fmt::Debug for HyperlinkButton {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("HyperlinkButton").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for HyperlinkButton {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.HyperlinkButton;{ccebaca3-3b5c-4f4c-9bfd-86887bc79772})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for HyperlinkButton {
    type Vtable = IHyperlinkButton_Vtbl;
    const IID: ::windows::core::GUID = <IHyperlinkButton as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for HyperlinkButton {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.HyperlinkButton";
}
impl ::core::convert::From<HyperlinkButton> for ::windows::core::IUnknown {
    fn from(value: HyperlinkButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&HyperlinkButton> for ::windows::core::IUnknown {
    fn from(value: &HyperlinkButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for HyperlinkButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a HyperlinkButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<HyperlinkButton> for ::windows::core::IInspectable {
    fn from(value: HyperlinkButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&HyperlinkButton> for ::windows::core::IInspectable {
    fn from(value: &HyperlinkButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for HyperlinkButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a HyperlinkButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<HyperlinkButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: HyperlinkButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&HyperlinkButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &HyperlinkButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for HyperlinkButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &HyperlinkButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<HyperlinkButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: HyperlinkButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&HyperlinkButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &HyperlinkButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for HyperlinkButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &HyperlinkButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<HyperlinkButton> for Primitives::ButtonBase {
    fn from(value: HyperlinkButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&HyperlinkButton> for Primitives::ButtonBase {
    fn from(value: &HyperlinkButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for HyperlinkButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for &HyperlinkButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ButtonBase>::into(self))
    }
}
impl ::core::convert::From<HyperlinkButton> for ContentControl {
    fn from(value: HyperlinkButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&HyperlinkButton> for ContentControl {
    fn from(value: &HyperlinkButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for HyperlinkButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &HyperlinkButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<HyperlinkButton> for Control {
    fn from(value: HyperlinkButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&HyperlinkButton> for Control {
    fn from(value: &HyperlinkButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for HyperlinkButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &HyperlinkButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<HyperlinkButton> for super::FrameworkElement {
    fn from(value: HyperlinkButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&HyperlinkButton> for super::FrameworkElement {
    fn from(value: &HyperlinkButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for HyperlinkButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &HyperlinkButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<HyperlinkButton> for super::UIElement {
    fn from(value: HyperlinkButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&HyperlinkButton> for super::UIElement {
    fn from(value: &HyperlinkButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for HyperlinkButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &HyperlinkButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<HyperlinkButton> for super::DependencyObject {
    fn from(value: HyperlinkButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&HyperlinkButton> for super::DependencyObject {
    fn from(value: &HyperlinkButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for HyperlinkButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &HyperlinkButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for HyperlinkButton {}
unsafe impl ::core::marker::Sync for HyperlinkButton {}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAnchorRequestedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAnchorRequestedEventArgs {
    type Vtable = IAnchorRequestedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5175f55d_4785_5a72_b462_eb11e9bdf897);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAnchorRequestedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Anchor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetAnchor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation_Collections")]
    pub AnchorCandidates: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    AnchorCandidates: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAppBar(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAppBar {
    type Vtable = IAppBar_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x7b0fc253_86a5_4b43_9872_0b8a6234b74b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAppBar_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsOpen: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsOpen: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsSticky: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsSticky: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub Opened: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Opened: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveOpened: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveOpened: usize,
    #[cfg(feature = "Foundation")]
    pub Closed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Closed: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveClosed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveClosed: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAppBar2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAppBar2 {
    type Vtable = IAppBar2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc3ab17b3_7ad7_4676_9910_7fe3f0e8e993);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAppBar2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ClosedDisplayMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut AppBarClosedDisplayMode) -> ::windows::core::HRESULT,
    pub SetClosedDisplayMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: AppBarClosedDisplayMode) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAppBar3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAppBar3 {
    type Vtable = IAppBar3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x982b001f_752e_4e7a_b055_54802c9ea749);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAppBar3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub TemplateSettings: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    TemplateSettings: usize,
    #[cfg(feature = "Foundation")]
    pub Opening: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Opening: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveOpening: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveOpening: usize,
    #[cfg(feature = "Foundation")]
    pub Closing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Closing: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveClosing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveClosing: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAppBar4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAppBar4 {
    type Vtable = IAppBar4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x94ebc8cd_0a64_4da3_bf43_f13100a46605);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAppBar4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub LightDismissOverlayMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut LightDismissOverlayMode) -> ::windows::core::HRESULT,
    pub SetLightDismissOverlayMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: LightDismissOverlayMode) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAppBarButton(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAppBarButton {
    type Vtable = IAppBarButton_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4459a451_69e8_440c_9896_4bb4f5f642d1);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAppBarButton_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Label: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetLabel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub Icon: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetIcon: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAppBarButton3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAppBarButton3 {
    type Vtable = IAppBarButton3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0b282150_198b_4e84_8f1c_9f6a8ba267a7);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAppBarButton3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub LabelPosition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut CommandBarLabelPosition) -> ::windows::core::HRESULT,
    pub SetLabelPosition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: CommandBarLabelPosition) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAppBarButton4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAppBarButton4 {
    type Vtable = IAppBarButton4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x958fce6b_fd08_4414_8458_9d40866dc84e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAppBarButton4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub KeyboardAcceleratorTextOverride: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetKeyboardAcceleratorTextOverride: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAppBarButton5(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAppBarButton5 {
    type Vtable = IAppBarButton5_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4096fc7f_1aec_4b0f_a031_ca8c4e06d2ed);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAppBarButton5_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub TemplateSettings: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    TemplateSettings: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAppBarButtonFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAppBarButtonFactory {
    type Vtable = IAppBarButtonFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xbdbb1bb6_cb2e_4276_abd6_7935130510e0);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAppBarButtonFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAppBarButtonStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAppBarButtonStatics {
    type Vtable = IAppBarButtonStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x7ccd13e6_5301_407f_874e_dc9160aa07af);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAppBarButtonStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub LabelProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IconProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsCompactProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAppBarButtonStatics3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAppBarButtonStatics3 {
    type Vtable = IAppBarButtonStatics3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4d7bf314_2ede_4328_8906_752a1f27cdfa);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAppBarButtonStatics3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub LabelPositionProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsInOverflowProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DynamicOverflowOrderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAppBarButtonStatics4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAppBarButtonStatics4 {
    type Vtable = IAppBarButtonStatics4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1c0ae26a_c755_4fe6_a3b6_0e3394e952c0);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAppBarButtonStatics4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub KeyboardAcceleratorTextOverrideProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAppBarElementContainer(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAppBarElementContainer {
    type Vtable = IAppBarElementContainer_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1d5ba067_a990_5dab_a9c3_e6be56642a1a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAppBarElementContainer_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAppBarElementContainerFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAppBarElementContainerFactory {
    type Vtable = IAppBarElementContainerFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb506530e_8897_5d6f_a43e_f0586338d282);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAppBarElementContainerFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAppBarElementContainerStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAppBarElementContainerStatics {
    type Vtable = IAppBarElementContainerStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xebbef840_c745_5a6f_8671_9a41eb2196e7);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAppBarElementContainerStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsCompactProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsInOverflowProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DynamicOverflowOrderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAppBarFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAppBarFactory {
    type Vtable = IAppBarFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x614708d1_8e65_43cb_92d7_8eee17515f8d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAppBarFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAppBarOverrides(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAppBarOverrides {
    type Vtable = IAppBarOverrides_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf003e4e2_7b0f_4f4a_970d_ae8a0eaa9b70);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAppBarOverrides_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub OnClosed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub OnOpened: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAppBarOverrides3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAppBarOverrides3 {
    type Vtable = IAppBarOverrides3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x412bbbc8_51d0_4b49_ab62_a3dd6bdcb298);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAppBarOverrides3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub OnClosing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub OnOpening: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAppBarSeparator(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAppBarSeparator {
    type Vtable = IAppBarSeparator_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1b0795a1_1bc1_4d53_95ea_fb0a2cccc905);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAppBarSeparator_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAppBarSeparatorFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAppBarSeparatorFactory {
    type Vtable = IAppBarSeparatorFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x05da25cd_f407_48de_8b50_ff87d1e2818f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAppBarSeparatorFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAppBarSeparatorStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAppBarSeparatorStatics {
    type Vtable = IAppBarSeparatorStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x37f23484_5b35_4663_a75d_f2d50cb9c619);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAppBarSeparatorStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsCompactProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAppBarSeparatorStatics3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAppBarSeparatorStatics3 {
    type Vtable = IAppBarSeparatorStatics3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x36c753f9_7373_4e5e_9ba4_c3622a003c4e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAppBarSeparatorStatics3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsInOverflowProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DynamicOverflowOrderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAppBarStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAppBarStatics {
    type Vtable = IAppBarStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x79bb7e8d_dca9_4b5f_a448_37b13238ed76);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAppBarStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsOpenProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsStickyProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAppBarStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAppBarStatics2 {
    type Vtable = IAppBarStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x222355e9_0384_49de_8738_dfc9d409ac5d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAppBarStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ClosedDisplayModeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAppBarStatics4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAppBarStatics4 {
    type Vtable = IAppBarStatics4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xba02082e_1165_4451_94b3_eb3ac73e4196);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAppBarStatics4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub LightDismissOverlayModeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAppBarToggleButton(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAppBarToggleButton {
    type Vtable = IAppBarToggleButton_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x2e914438_fd53_4b8d_858b_3644269f8e4d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAppBarToggleButton_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Label: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetLabel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub Icon: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetIcon: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAppBarToggleButton3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAppBarToggleButton3 {
    type Vtable = IAppBarToggleButton3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xef9a85e5_16ff_4d72_b9e8_9b861eaf84a8);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAppBarToggleButton3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub LabelPosition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut CommandBarLabelPosition) -> ::windows::core::HRESULT,
    pub SetLabelPosition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: CommandBarLabelPosition) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAppBarToggleButton4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAppBarToggleButton4 {
    type Vtable = IAppBarToggleButton4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb86b736e_3eaf_4751_a897_00029f1f6aca);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAppBarToggleButton4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub KeyboardAcceleratorTextOverride: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetKeyboardAcceleratorTextOverride: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAppBarToggleButton5(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAppBarToggleButton5 {
    type Vtable = IAppBarToggleButton5_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9dca3357_c130_4fb6_a1e2_d2b348fe43be);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAppBarToggleButton5_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub TemplateSettings: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    TemplateSettings: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAppBarToggleButtonFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAppBarToggleButtonFactory {
    type Vtable = IAppBarToggleButtonFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x028aa7d4_8f54_45a6_9f90_13605656d793);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAppBarToggleButtonFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAppBarToggleButtonStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAppBarToggleButtonStatics {
    type Vtable = IAppBarToggleButtonStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xfe5aaf96_7929_4da1_aa67_cddf73a3e4b5);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAppBarToggleButtonStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub LabelProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IconProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsCompactProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAppBarToggleButtonStatics3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAppBarToggleButtonStatics3 {
    type Vtable = IAppBarToggleButtonStatics3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xbd4c65bf_2edd_44d1_acd5_35c00e2f21bc);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAppBarToggleButtonStatics3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub LabelPositionProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsInOverflowProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DynamicOverflowOrderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAppBarToggleButtonStatics4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAppBarToggleButtonStatics4 {
    type Vtable = IAppBarToggleButtonStatics4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa478b984_e916_4137_bdbd_95bd46ff3ce6);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAppBarToggleButtonStatics4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub KeyboardAcceleratorTextOverrideProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAutoSuggestBox(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAutoSuggestBox {
    type Vtable = IAutoSuggestBox_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x103e9b13_3400_4a16_90b9_6912bf06974f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAutoSuggestBox_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub MaxSuggestionListHeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetMaxSuggestionListHeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub IsSuggestionListOpen: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsSuggestionListOpen: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub TextMemberPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetTextMemberPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub Text: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub UpdateTextOnSelect: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetUpdateTextOnSelect: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub PlaceholderText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetPlaceholderText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub Header: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetHeader: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AutoMaximizeSuggestionArea: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetAutoMaximizeSuggestionArea: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub TextBoxStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetTextBoxStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub SuggestionChosen: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SuggestionChosen: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveSuggestionChosen: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveSuggestionChosen: usize,
    #[cfg(feature = "Foundation")]
    pub TextChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    TextChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveTextChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveTextChanged: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAutoSuggestBox2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAutoSuggestBox2 {
    type Vtable = IAutoSuggestBox2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xaa87ddde_e679_45b2_a7c9_9aedc39db886);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAutoSuggestBox2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub QueryIcon: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetQueryIcon: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub QuerySubmitted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    QuerySubmitted: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveQuerySubmitted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveQuerySubmitted: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAutoSuggestBox3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAutoSuggestBox3 {
    type Vtable = IAutoSuggestBox3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9bbbfcef_f32d_402e_9009_05bdbaf6336e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAutoSuggestBox3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub LightDismissOverlayMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut LightDismissOverlayMode) -> ::windows::core::HRESULT,
    pub SetLightDismissOverlayMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: LightDismissOverlayMode) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAutoSuggestBox4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAutoSuggestBox4 {
    type Vtable = IAutoSuggestBox4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc22df897_a3e8_5051_b3cc_b5f0f5262950);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAutoSuggestBox4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Description: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAutoSuggestBoxQuerySubmittedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAutoSuggestBoxQuerySubmittedEventArgs {
    type Vtable = IAutoSuggestBoxQuerySubmittedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x78dcb116_818a_4cb5_bca7_382ce6ddc90d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAutoSuggestBoxQuerySubmittedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub QueryText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub ChosenSuggestion: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAutoSuggestBoxStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAutoSuggestBoxStatics {
    type Vtable = IAutoSuggestBoxStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xee22c7f4_c15d_4ff3_8a94_f50dfdfbe89a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAutoSuggestBoxStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub MaxSuggestionListHeightProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsSuggestionListOpenProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TextMemberPathProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TextProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub UpdateTextOnSelectProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PlaceholderTextProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HeaderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub AutoMaximizeSuggestionAreaProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TextBoxStyleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAutoSuggestBoxStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAutoSuggestBoxStatics2 {
    type Vtable = IAutoSuggestBoxStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1cd297a8_8e6a_41ef_a95d_7157dc0c7106);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAutoSuggestBoxStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub QueryIconProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAutoSuggestBoxStatics3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAutoSuggestBoxStatics3 {
    type Vtable = IAutoSuggestBoxStatics3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x2cead2dd_c4d5_4ab2_8a13_afddcf067c86);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAutoSuggestBoxStatics3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub LightDismissOverlayModeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAutoSuggestBoxStatics4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAutoSuggestBoxStatics4 {
    type Vtable = IAutoSuggestBoxStatics4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd63efaae_b9df_58d8_a00a_dbfe9ffdedd0);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAutoSuggestBoxStatics4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub DescriptionProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAutoSuggestBoxSuggestionChosenEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAutoSuggestBoxSuggestionChosenEventArgs {
    type Vtable = IAutoSuggestBoxSuggestionChosenEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x396f7254_1ed5_4bc5_a060_655530bca6ba);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAutoSuggestBoxSuggestionChosenEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SelectedItem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAutoSuggestBoxTextChangedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAutoSuggestBoxTextChangedEventArgs {
    type Vtable = IAutoSuggestBoxTextChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3a6f7254_1ed5_4bc5_a060_655530bca6ba);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAutoSuggestBoxTextChangedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Reason: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut AutoSuggestionBoxTextChangeReason) -> ::windows::core::HRESULT,
    pub SetReason: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: AutoSuggestionBoxTextChangeReason) -> ::windows::core::HRESULT,
    pub CheckCurrent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IAutoSuggestBoxTextChangedEventArgsStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IAutoSuggestBoxTextChangedEventArgsStatics {
    type Vtable = IAutoSuggestBoxTextChangedEventArgsStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xfef7772b_9f45_44db_8c27_bda3f933e7b5);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAutoSuggestBoxTextChangedEventArgsStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ReasonProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IBackClickEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IBackClickEventArgs {
    type Vtable = IBackClickEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x2ae6146c_477e_48c9_8830_2c464b7c7104);
}
#[repr(C)]
#[doc(hidden)]
pub struct IBackClickEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Handled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetHandled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IBitmapIcon(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IBitmapIcon {
    type Vtable = IBitmapIcon_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe8fe17cb_35f7_40f3_a185_48b397b73e68);
}
#[repr(C)]
#[doc(hidden)]
pub struct IBitmapIcon_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub UriSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    UriSource: usize,
    #[cfg(feature = "Foundation")]
    pub SetUriSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SetUriSource: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IBitmapIcon2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IBitmapIcon2 {
    type Vtable = IBitmapIcon2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0624a20a_9dd1_4201_bb20_42863da15658);
}
#[repr(C)]
#[doc(hidden)]
pub struct IBitmapIcon2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ShowAsMonochrome: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetShowAsMonochrome: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IBitmapIconFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IBitmapIconFactory {
    type Vtable = IBitmapIconFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x46d64b1d_7a49_4f66_9729_2848c788e402);
}
#[repr(C)]
#[doc(hidden)]
pub struct IBitmapIconFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IBitmapIconSource(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IBitmapIconSource {
    type Vtable = IBitmapIconSource_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc8e33dc7_d4ae_4a87_947f_ac4d0bcf5af4);
}
#[repr(C)]
#[doc(hidden)]
pub struct IBitmapIconSource_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub UriSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    UriSource: usize,
    #[cfg(feature = "Foundation")]
    pub SetUriSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SetUriSource: usize,
    pub ShowAsMonochrome: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetShowAsMonochrome: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IBitmapIconSourceFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IBitmapIconSourceFactory {
    type Vtable = IBitmapIconSourceFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6509e5c6_44b6_4cd1_86cd_c3189b12c43c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IBitmapIconSourceFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IBitmapIconSourceStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IBitmapIconSourceStatics {
    type Vtable = IBitmapIconSourceStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5a105887_e494_4d2b_8528_39472296133f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IBitmapIconSourceStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub UriSourceProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ShowAsMonochromeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IBitmapIconStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IBitmapIconStatics {
    type Vtable = IBitmapIconStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe072d117_e4e7_4e0c_9470_53ff1ce84f67);
}
#[repr(C)]
#[doc(hidden)]
pub struct IBitmapIconStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub UriSourceProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IBitmapIconStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IBitmapIconStatics2 {
    type Vtable = IBitmapIconStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9745026b_b742_4a89_a5d7_a0e5fb809af1);
}
#[repr(C)]
#[doc(hidden)]
pub struct IBitmapIconStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ShowAsMonochromeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IBorder(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IBorder {
    type Vtable = IBorder_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x797c4539_45bd_4633_a044_bfb02ef5170f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IBorder_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Media")]
    pub BorderBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    BorderBrush: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetBorderBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetBorderBrush: usize,
    pub BorderThickness: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Thickness) -> ::windows::core::HRESULT,
    pub SetBorderThickness: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Thickness) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media")]
    pub Background: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    Background: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetBackground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetBackground: usize,
    pub CornerRadius: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::CornerRadius) -> ::windows::core::HRESULT,
    pub SetCornerRadius: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::CornerRadius) -> ::windows::core::HRESULT,
    pub Padding: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Thickness) -> ::windows::core::HRESULT,
    pub SetPadding: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Thickness) -> ::windows::core::HRESULT,
    pub Child: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetChild: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub ChildTransitions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation")))]
    ChildTransitions: usize,
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub SetChildTransitions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation")))]
    SetChildTransitions: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IBorder2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IBorder2 {
    type Vtable = IBorder2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa1efbd9d_cb8b_56b5_878d_3a7f43bc9730);
}
#[repr(C)]
#[doc(hidden)]
pub struct IBorder2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub BackgroundSizing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut BackgroundSizing) -> ::windows::core::HRESULT,
    pub SetBackgroundSizing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: BackgroundSizing) -> ::windows::core::HRESULT,
    pub BackgroundTransition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetBackgroundTransition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IBorderStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IBorderStatics {
    type Vtable = IBorderStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb81d1639_e911_4fd7_a4c4_b9c7f008b7fc);
}
#[repr(C)]
#[doc(hidden)]
pub struct IBorderStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub BorderBrushProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub BorderThicknessProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub BackgroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CornerRadiusProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PaddingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ChildTransitionsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IBorderStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IBorderStatics2 {
    type Vtable = IBorderStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa26d4476_803f_5040_a0f3_e66db3733166);
}
#[repr(C)]
#[doc(hidden)]
pub struct IBorderStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub BackgroundSizingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IButton(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IButton {
    type Vtable = IButton_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x280335ae_5570_46c7_8e0b_602be71229a2);
}
#[repr(C)]
#[doc(hidden)]
pub struct IButton_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IButtonFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IButtonFactory {
    type Vtable = IButtonFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x80a13c19_843a_451c_8cf5_44c701b0e216);
}
#[repr(C)]
#[doc(hidden)]
pub struct IButtonFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IButtonStaticsWithFlyout(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IButtonStaticsWithFlyout {
    type Vtable = IButtonStaticsWithFlyout_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x90143898_a16c_4759_b2f0_a5f7e625169e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IButtonStaticsWithFlyout_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub FlyoutProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IButtonWithFlyout(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IButtonWithFlyout {
    type Vtable = IButtonWithFlyout_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x09108f87_df6c_4180_9b3a_e60845825811);
}
#[repr(C)]
#[doc(hidden)]
pub struct IButtonWithFlyout_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub Flyout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    Flyout: usize,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub SetFlyout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    SetFlyout: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICalendarDatePicker(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICalendarDatePicker {
    type Vtable = ICalendarDatePicker_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x63c9c16f_668c_4491_9444_d45d8bf4fa29);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICalendarDatePicker_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub Date: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Date: usize,
    #[cfg(feature = "Foundation")]
    pub SetDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SetDate: usize,
    pub IsCalendarOpen: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsCalendarOpen: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub DateFormat: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetDateFormat: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub PlaceholderText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetPlaceholderText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub Header: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetHeader: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub HeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetHeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CalendarViewStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetCalendarViewStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub MinDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::super::Foundation::DateTime) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    MinDate: usize,
    #[cfg(feature = "Foundation")]
    pub SetMinDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::super::Foundation::DateTime) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SetMinDate: usize,
    #[cfg(feature = "Foundation")]
    pub MaxDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::super::Foundation::DateTime) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    MaxDate: usize,
    #[cfg(feature = "Foundation")]
    pub SetMaxDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::super::Foundation::DateTime) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SetMaxDate: usize,
    pub IsTodayHighlighted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsTodayHighlighted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub DisplayMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut CalendarViewDisplayMode) -> ::windows::core::HRESULT,
    pub SetDisplayMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: CalendarViewDisplayMode) -> ::windows::core::HRESULT,
    #[cfg(feature = "Globalization")]
    pub FirstDayOfWeek: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::super::Globalization::DayOfWeek) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Globalization"))]
    FirstDayOfWeek: usize,
    #[cfg(feature = "Globalization")]
    pub SetFirstDayOfWeek: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::super::Globalization::DayOfWeek) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Globalization"))]
    SetFirstDayOfWeek: usize,
    pub DayOfWeekFormat: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetDayOfWeekFormat: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub CalendarIdentifier: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetCalendarIdentifier: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub IsOutOfScopeEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsOutOfScopeEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsGroupLabelVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsGroupLabelVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub CalendarViewDayItemChanging: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    CalendarViewDayItemChanging: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveCalendarViewDayItemChanging: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveCalendarViewDayItemChanging: usize,
    #[cfg(feature = "Foundation")]
    pub DateChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    DateChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveDateChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveDateChanged: usize,
    #[cfg(feature = "Foundation")]
    pub Opened: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Opened: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveOpened: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveOpened: usize,
    #[cfg(feature = "Foundation")]
    pub Closed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Closed: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveClosed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveClosed: usize,
    #[cfg(feature = "Foundation")]
    pub SetDisplayDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, date: super::super::super::Foundation::DateTime) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SetDisplayDate: usize,
    pub SetYearDecadeDisplayDimensions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: i32, rows: i32) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICalendarDatePicker2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICalendarDatePicker2 {
    type Vtable = ICalendarDatePicker2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb216c159_2411_4a60_a7aa_27416b49481e);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICalendarDatePicker2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub LightDismissOverlayMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut LightDismissOverlayMode) -> ::windows::core::HRESULT,
    pub SetLightDismissOverlayMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: LightDismissOverlayMode) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICalendarDatePicker3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICalendarDatePicker3 {
    type Vtable = ICalendarDatePicker3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x645856c0_db7b_5e75_85e9_f623e3457ea6);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICalendarDatePicker3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Description: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICalendarDatePickerDateChangedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICalendarDatePickerDateChangedEventArgs {
    type Vtable = ICalendarDatePickerDateChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x60d90db2_5010_46ba_842d_a4152c6504e7);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICalendarDatePickerDateChangedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub NewDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    NewDate: usize,
    #[cfg(feature = "Foundation")]
    pub OldDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    OldDate: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICalendarDatePickerFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICalendarDatePickerFactory {
    type Vtable = ICalendarDatePickerFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x107aad5d_38be_42af_a957_fc86a5cf1e9a);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICalendarDatePickerFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICalendarDatePickerStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICalendarDatePickerStatics {
    type Vtable = ICalendarDatePickerStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x39a3d291_afab_4b94_8395_ba7b874e3c8c);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICalendarDatePickerStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub DateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsCalendarOpenProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DateFormatProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PlaceholderTextProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HeaderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HeaderTemplateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CalendarViewStyleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MinDateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MaxDateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsTodayHighlightedProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DisplayModeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FirstDayOfWeekProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DayOfWeekFormatProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CalendarIdentifierProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsOutOfScopeEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsGroupLabelVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICalendarDatePickerStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICalendarDatePickerStatics2 {
    type Vtable = ICalendarDatePickerStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x30206b58_a2f6_4a00_8d13_33c46b6b8e0d);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICalendarDatePickerStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub LightDismissOverlayModeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICalendarDatePickerStatics3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICalendarDatePickerStatics3 {
    type Vtable = ICalendarDatePickerStatics3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb188741d_cf69_568c_9707_baaaec2b64db);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICalendarDatePickerStatics3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub DescriptionProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICalendarView(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICalendarView {
    type Vtable = ICalendarView_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xcd639203_dfb5_4312_ac07_c0391824607b);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICalendarView_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CalendarIdentifier: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetCalendarIdentifier: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub DayOfWeekFormat: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetDayOfWeekFormat: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub IsGroupLabelVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsGroupLabelVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub DisplayMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut CalendarViewDisplayMode) -> ::windows::core::HRESULT,
    pub SetDisplayMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: CalendarViewDisplayMode) -> ::windows::core::HRESULT,
    #[cfg(feature = "Globalization")]
    pub FirstDayOfWeek: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::super::Globalization::DayOfWeek) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Globalization"))]
    FirstDayOfWeek: usize,
    #[cfg(feature = "Globalization")]
    pub SetFirstDayOfWeek: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::super::Globalization::DayOfWeek) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Globalization"))]
    SetFirstDayOfWeek: usize,
    pub IsOutOfScopeEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsOutOfScopeEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsTodayHighlighted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsTodayHighlighted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub MaxDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::super::Foundation::DateTime) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    MaxDate: usize,
    #[cfg(feature = "Foundation")]
    pub SetMaxDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::super::Foundation::DateTime) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SetMaxDate: usize,
    #[cfg(feature = "Foundation")]
    pub MinDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::super::Foundation::DateTime) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    MinDate: usize,
    #[cfg(feature = "Foundation")]
    pub SetMinDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::super::Foundation::DateTime) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SetMinDate: usize,
    pub NumberOfWeeksInView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetNumberOfWeeksInView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation_Collections")]
    pub SelectedDates: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    SelectedDates: usize,
    pub SelectionMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut CalendarViewSelectionMode) -> ::windows::core::HRESULT,
    pub SetSelectionMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: CalendarViewSelectionMode) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub TemplateSettings: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    TemplateSettings: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub FocusBorderBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    FocusBorderBrush: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetFocusBorderBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetFocusBorderBrush: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SelectedHoverBorderBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SelectedHoverBorderBrush: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetSelectedHoverBorderBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetSelectedHoverBorderBrush: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SelectedPressedBorderBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SelectedPressedBorderBrush: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetSelectedPressedBorderBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetSelectedPressedBorderBrush: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SelectedBorderBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SelectedBorderBrush: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetSelectedBorderBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetSelectedBorderBrush: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub HoverBorderBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    HoverBorderBrush: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetHoverBorderBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetHoverBorderBrush: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub PressedBorderBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    PressedBorderBrush: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetPressedBorderBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetPressedBorderBrush: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub CalendarItemBorderBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    CalendarItemBorderBrush: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetCalendarItemBorderBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetCalendarItemBorderBrush: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub OutOfScopeBackground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    OutOfScopeBackground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetOutOfScopeBackground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetOutOfScopeBackground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub CalendarItemBackground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    CalendarItemBackground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetCalendarItemBackground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetCalendarItemBackground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub PressedForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    PressedForeground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetPressedForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetPressedForeground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub TodayForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    TodayForeground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetTodayForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetTodayForeground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub BlackoutForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    BlackoutForeground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetBlackoutForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetBlackoutForeground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SelectedForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SelectedForeground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetSelectedForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetSelectedForeground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub OutOfScopeForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    OutOfScopeForeground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetOutOfScopeForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetOutOfScopeForeground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub CalendarItemForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    CalendarItemForeground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetCalendarItemForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetCalendarItemForeground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub DayItemFontFamily: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    DayItemFontFamily: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetDayItemFontFamily: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetDayItemFontFamily: usize,
    pub DayItemFontSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetDayItemFontSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Text")]
    pub DayItemFontStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Text::FontStyle) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    DayItemFontStyle: usize,
    #[cfg(feature = "UI_Text")]
    pub SetDayItemFontStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::Text::FontStyle) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    SetDayItemFontStyle: usize,
    #[cfg(feature = "UI_Text")]
    pub DayItemFontWeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Text::FontWeight) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    DayItemFontWeight: usize,
    #[cfg(feature = "UI_Text")]
    pub SetDayItemFontWeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::Text::FontWeight) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    SetDayItemFontWeight: usize,
    #[cfg(feature = "UI_Text")]
    pub TodayFontWeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Text::FontWeight) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    TodayFontWeight: usize,
    #[cfg(feature = "UI_Text")]
    pub SetTodayFontWeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::Text::FontWeight) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    SetTodayFontWeight: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub FirstOfMonthLabelFontFamily: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    FirstOfMonthLabelFontFamily: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetFirstOfMonthLabelFontFamily: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetFirstOfMonthLabelFontFamily: usize,
    pub FirstOfMonthLabelFontSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetFirstOfMonthLabelFontSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Text")]
    pub FirstOfMonthLabelFontStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Text::FontStyle) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    FirstOfMonthLabelFontStyle: usize,
    #[cfg(feature = "UI_Text")]
    pub SetFirstOfMonthLabelFontStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::Text::FontStyle) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    SetFirstOfMonthLabelFontStyle: usize,
    #[cfg(feature = "UI_Text")]
    pub FirstOfMonthLabelFontWeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Text::FontWeight) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    FirstOfMonthLabelFontWeight: usize,
    #[cfg(feature = "UI_Text")]
    pub SetFirstOfMonthLabelFontWeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::Text::FontWeight) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    SetFirstOfMonthLabelFontWeight: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub MonthYearItemFontFamily: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    MonthYearItemFontFamily: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetMonthYearItemFontFamily: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetMonthYearItemFontFamily: usize,
    pub MonthYearItemFontSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetMonthYearItemFontSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Text")]
    pub MonthYearItemFontStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Text::FontStyle) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    MonthYearItemFontStyle: usize,
    #[cfg(feature = "UI_Text")]
    pub SetMonthYearItemFontStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::Text::FontStyle) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    SetMonthYearItemFontStyle: usize,
    #[cfg(feature = "UI_Text")]
    pub MonthYearItemFontWeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Text::FontWeight) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    MonthYearItemFontWeight: usize,
    #[cfg(feature = "UI_Text")]
    pub SetMonthYearItemFontWeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::Text::FontWeight) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    SetMonthYearItemFontWeight: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub FirstOfYearDecadeLabelFontFamily: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    FirstOfYearDecadeLabelFontFamily: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetFirstOfYearDecadeLabelFontFamily: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetFirstOfYearDecadeLabelFontFamily: usize,
    pub FirstOfYearDecadeLabelFontSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetFirstOfYearDecadeLabelFontSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Text")]
    pub FirstOfYearDecadeLabelFontStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Text::FontStyle) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    FirstOfYearDecadeLabelFontStyle: usize,
    #[cfg(feature = "UI_Text")]
    pub SetFirstOfYearDecadeLabelFontStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::Text::FontStyle) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    SetFirstOfYearDecadeLabelFontStyle: usize,
    #[cfg(feature = "UI_Text")]
    pub FirstOfYearDecadeLabelFontWeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Text::FontWeight) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    FirstOfYearDecadeLabelFontWeight: usize,
    #[cfg(feature = "UI_Text")]
    pub SetFirstOfYearDecadeLabelFontWeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::Text::FontWeight) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    SetFirstOfYearDecadeLabelFontWeight: usize,
    pub HorizontalDayItemAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::HorizontalAlignment) -> ::windows::core::HRESULT,
    pub SetHorizontalDayItemAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::HorizontalAlignment) -> ::windows::core::HRESULT,
    pub VerticalDayItemAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::VerticalAlignment) -> ::windows::core::HRESULT,
    pub SetVerticalDayItemAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::VerticalAlignment) -> ::windows::core::HRESULT,
    pub HorizontalFirstOfMonthLabelAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::HorizontalAlignment) -> ::windows::core::HRESULT,
    pub SetHorizontalFirstOfMonthLabelAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::HorizontalAlignment) -> ::windows::core::HRESULT,
    pub VerticalFirstOfMonthLabelAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::VerticalAlignment) -> ::windows::core::HRESULT,
    pub SetVerticalFirstOfMonthLabelAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::VerticalAlignment) -> ::windows::core::HRESULT,
    pub CalendarItemBorderThickness: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Thickness) -> ::windows::core::HRESULT,
    pub SetCalendarItemBorderThickness: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Thickness) -> ::windows::core::HRESULT,
    pub CalendarViewDayItemStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetCalendarViewDayItemStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub CalendarViewDayItemChanging: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    CalendarViewDayItemChanging: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveCalendarViewDayItemChanging: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveCalendarViewDayItemChanging: usize,
    #[cfg(feature = "Foundation")]
    pub SelectedDatesChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SelectedDatesChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveSelectedDatesChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveSelectedDatesChanged: usize,
    #[cfg(feature = "Foundation")]
    pub SetDisplayDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, date: super::super::super::Foundation::DateTime) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SetDisplayDate: usize,
    pub SetYearDecadeDisplayDimensions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: i32, rows: i32) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICalendarView2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICalendarView2 {
    type Vtable = ICalendarView2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf55ab64a_5504_5d9e_9d20_2ffdb88fc56b);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICalendarView2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SelectedDisabledBorderBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SelectedDisabledBorderBrush: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetSelectedDisabledBorderBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetSelectedDisabledBorderBrush: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub TodaySelectedInnerBorderBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    TodaySelectedInnerBorderBrush: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetTodaySelectedInnerBorderBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetTodaySelectedInnerBorderBrush: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub BlackoutStrikethroughBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    BlackoutStrikethroughBrush: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetBlackoutStrikethroughBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetBlackoutStrikethroughBrush: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub BlackoutBackground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    BlackoutBackground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetBlackoutBackground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetBlackoutBackground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub CalendarItemHoverBackground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    CalendarItemHoverBackground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetCalendarItemHoverBackground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetCalendarItemHoverBackground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub CalendarItemPressedBackground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    CalendarItemPressedBackground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetCalendarItemPressedBackground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetCalendarItemPressedBackground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub CalendarItemDisabledBackground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    CalendarItemDisabledBackground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetCalendarItemDisabledBackground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetCalendarItemDisabledBackground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub TodayBackground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    TodayBackground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetTodayBackground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetTodayBackground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub TodayBlackoutBackground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    TodayBlackoutBackground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetTodayBlackoutBackground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetTodayBlackoutBackground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub TodayHoverBackground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    TodayHoverBackground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetTodayHoverBackground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetTodayHoverBackground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub TodayPressedBackground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    TodayPressedBackground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetTodayPressedBackground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetTodayPressedBackground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub TodayDisabledBackground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    TodayDisabledBackground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetTodayDisabledBackground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetTodayDisabledBackground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub TodayBlackoutForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    TodayBlackoutForeground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetTodayBlackoutForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetTodayBlackoutForeground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SelectedHoverForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SelectedHoverForeground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetSelectedHoverForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetSelectedHoverForeground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SelectedPressedForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SelectedPressedForeground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetSelectedPressedForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetSelectedPressedForeground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SelectedDisabledForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SelectedDisabledForeground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetSelectedDisabledForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetSelectedDisabledForeground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub OutOfScopeHoverForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    OutOfScopeHoverForeground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetOutOfScopeHoverForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetOutOfScopeHoverForeground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub OutOfScopePressedForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    OutOfScopePressedForeground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetOutOfScopePressedForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetOutOfScopePressedForeground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub DisabledForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    DisabledForeground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetDisabledForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetDisabledForeground: usize,
    pub DayItemMargin: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Thickness) -> ::windows::core::HRESULT,
    pub SetDayItemMargin: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Thickness) -> ::windows::core::HRESULT,
    pub MonthYearItemMargin: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Thickness) -> ::windows::core::HRESULT,
    pub SetMonthYearItemMargin: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Thickness) -> ::windows::core::HRESULT,
    pub FirstOfMonthLabelMargin: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Thickness) -> ::windows::core::HRESULT,
    pub SetFirstOfMonthLabelMargin: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Thickness) -> ::windows::core::HRESULT,
    pub FirstOfYearDecadeLabelMargin: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Thickness) -> ::windows::core::HRESULT,
    pub SetFirstOfYearDecadeLabelMargin: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Thickness) -> ::windows::core::HRESULT,
    pub CalendarItemCornerRadius: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::CornerRadius) -> ::windows::core::HRESULT,
    pub SetCalendarItemCornerRadius: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::CornerRadius) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICalendarViewDayItem(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICalendarViewDayItem {
    type Vtable = ICalendarViewDayItem_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0fdb2dc5_32c1_4b8f_befc_017b555b32d2);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICalendarViewDayItem_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsBlackout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsBlackout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub Date: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::super::Foundation::DateTime) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Date: usize,
    #[cfg(feature = "Foundation_Collections")]
    pub SetDensityColors: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, colors: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    SetDensityColors: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICalendarViewDayItemChangingEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICalendarViewDayItemChangingEventArgs {
    type Vtable = ICalendarViewDayItemChangingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x73146666_1fb1_44f9_b7ad_4de859ecc565);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICalendarViewDayItemChangingEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub InRecycleQueue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub Item: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub Phase: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub RegisterUpdateCallback: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callback: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RegisterUpdateCallback: usize,
    #[cfg(feature = "Foundation")]
    pub RegisterUpdateCallbackWithPhase: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbackphase: u32, callback: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RegisterUpdateCallbackWithPhase: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICalendarViewDayItemFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICalendarViewDayItemFactory {
    type Vtable = ICalendarViewDayItemFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x62112bdc_1d2f_4e44_9baf_1665749521f2);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICalendarViewDayItemFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICalendarViewDayItemStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICalendarViewDayItemStatics {
    type Vtable = ICalendarViewDayItemStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc3a1dbbf_bd88_488b_b916_d00d69b1735a);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICalendarViewDayItemStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsBlackoutProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICalendarViewFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICalendarViewFactory {
    type Vtable = ICalendarViewFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3d8f82e3_6cc6_423e_8d7c_7014d954ddef);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICalendarViewFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICalendarViewSelectedDatesChangedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICalendarViewSelectedDatesChangedEventArgs {
    type Vtable = ICalendarViewSelectedDatesChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xee6069f6_13ef_4896_8ffc_5302b1b17539);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICalendarViewSelectedDatesChangedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation_Collections")]
    pub AddedDates: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    AddedDates: usize,
    #[cfg(feature = "Foundation_Collections")]
    pub RemovedDates: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    RemovedDates: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICalendarViewStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICalendarViewStatics {
    type Vtable = ICalendarViewStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x7260f1c4_2f5d_41bd_99bb_4571b20b79a8);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICalendarViewStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CalendarIdentifierProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DayOfWeekFormatProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsGroupLabelVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DisplayModeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FirstDayOfWeekProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsOutOfScopeEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsTodayHighlightedProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MaxDateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MinDateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub NumberOfWeeksInViewProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SelectedDatesProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SelectionModeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TemplateSettingsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FocusBorderBrushProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SelectedHoverBorderBrushProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SelectedPressedBorderBrushProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SelectedBorderBrushProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HoverBorderBrushProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PressedBorderBrushProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CalendarItemBorderBrushProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OutOfScopeBackgroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CalendarItemBackgroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PressedForegroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TodayForegroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub BlackoutForegroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SelectedForegroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OutOfScopeForegroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CalendarItemForegroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DayItemFontFamilyProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DayItemFontSizeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DayItemFontStyleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DayItemFontWeightProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TodayFontWeightProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FirstOfMonthLabelFontFamilyProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FirstOfMonthLabelFontSizeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FirstOfMonthLabelFontStyleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FirstOfMonthLabelFontWeightProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MonthYearItemFontFamilyProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MonthYearItemFontSizeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MonthYearItemFontStyleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MonthYearItemFontWeightProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FirstOfYearDecadeLabelFontFamilyProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FirstOfYearDecadeLabelFontSizeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FirstOfYearDecadeLabelFontStyleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FirstOfYearDecadeLabelFontWeightProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HorizontalDayItemAlignmentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub VerticalDayItemAlignmentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HorizontalFirstOfMonthLabelAlignmentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub VerticalFirstOfMonthLabelAlignmentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CalendarItemBorderThicknessProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CalendarViewDayItemStyleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICalendarViewStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICalendarViewStatics2 {
    type Vtable = ICalendarViewStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf29e5024_b8fb_50c8_8a38_d443abb37009);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICalendarViewStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SelectedDisabledBorderBrushProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TodaySelectedInnerBorderBrushProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub BlackoutStrikethroughBrushProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub BlackoutBackgroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CalendarItemHoverBackgroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CalendarItemPressedBackgroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CalendarItemDisabledBackgroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TodayBackgroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TodayBlackoutBackgroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TodayHoverBackgroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TodayPressedBackgroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TodayDisabledBackgroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TodayBlackoutForegroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SelectedHoverForegroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SelectedPressedForegroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SelectedDisabledForegroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OutOfScopeHoverForegroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OutOfScopePressedForegroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DisabledForegroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DayItemMarginProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MonthYearItemMarginProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FirstOfMonthLabelMarginProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FirstOfYearDecadeLabelMarginProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CalendarItemCornerRadiusProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICandidateWindowBoundsChangedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICandidateWindowBoundsChangedEventArgs {
    type Vtable = ICandidateWindowBoundsChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8a946458_83b0_4c32_9450_5169a5838b55);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICandidateWindowBoundsChangedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub Bounds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::super::Foundation::Rect) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Bounds: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICanvas(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICanvas {
    type Vtable = ICanvas_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x79190e19_cd38_4823_aeae_64a77132f519);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICanvas_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICanvasFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICanvasFactory {
    type Vtable = ICanvasFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1b328bd1_b400_4a8e_943b_5ad2c45be0df);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICanvasFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICanvasStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICanvasStatics {
    type Vtable = ICanvasStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x40ce5c46_2962_446f_aafb_4cdc486939c9);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICanvasStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub LeftProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetLeft: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetLeft: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, length: f64) -> ::windows::core::HRESULT,
    pub TopProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetTop: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetTop: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, length: f64) -> ::windows::core::HRESULT,
    pub ZIndexProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetZIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetZIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, value: i32) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICaptureElement(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICaptureElement {
    type Vtable = ICaptureElement_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x31a5c0e7_f307_4d4a_b626_e978863f5b74);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICaptureElement_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Media_Capture")]
    pub Source: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Media_Capture"))]
    Source: usize,
    #[cfg(feature = "Media_Capture")]
    pub SetSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Media_Capture"))]
    SetSource: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub Stretch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Media::Stretch) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    Stretch: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetStretch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Media::Stretch) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetStretch: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICaptureElementStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICaptureElementStatics {
    type Vtable = ICaptureElementStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1e438ded_7da6_409e_806e_305ae4ad9b3f);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICaptureElementStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SourceProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub StretchProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICheckBox(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICheckBox {
    type Vtable = ICheckBox_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x2294c894_7e2a_4b70_b088_8f5d814875ba);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICheckBox_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICheckBoxFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICheckBoxFactory {
    type Vtable = ICheckBoxFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4fa6aabb_3f4b_4301_be07_1172ea61eefb);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICheckBoxFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IChoosingGroupHeaderContainerEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IChoosingGroupHeaderContainerEventArgs {
    type Vtable = IChoosingGroupHeaderContainerEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x67db44d6_d201_4d72_beac_5e8e58afd8c7);
}
#[repr(C)]
#[doc(hidden)]
pub struct IChoosingGroupHeaderContainerEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub GroupHeaderContainer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetGroupHeaderContainer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GroupIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub Group: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IChoosingItemContainerEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IChoosingItemContainerEventArgs {
    type Vtable = IChoosingItemContainerEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9bb43bce_ae67_4a80_8363_e3fe1b244f2c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IChoosingItemContainerEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ItemIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub Item: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub ItemContainer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    ItemContainer: usize,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub SetItemContainer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    SetItemContainer: usize,
    pub IsContainerPrepared: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsContainerPrepared: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICleanUpVirtualizedItemEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICleanUpVirtualizedItemEventArgs {
    type Vtable = ICleanUpVirtualizedItemEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xea05cce9_937c_4120_8406_792185784338);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICleanUpVirtualizedItemEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Value: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub UIElement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub Cancel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetCancel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IColorChangedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IColorChangedEventArgs {
    type Vtable = IColorChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x34f7201f_aad0_4c3a_b97b_2abf36455539);
}
#[repr(C)]
#[doc(hidden)]
pub struct IColorChangedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub OldColor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Color) -> ::windows::core::HRESULT,
    pub NewColor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Color) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IColorPicker(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IColorPicker {
    type Vtable = IColorPicker_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6232e371_5c64_43cb_8b35_7f82dde36740);
}
#[repr(C)]
#[doc(hidden)]
pub struct IColorPicker_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Color: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Color) -> ::windows::core::HRESULT,
    pub SetColor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::Color) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub PreviousColor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    PreviousColor: usize,
    #[cfg(feature = "Foundation")]
    pub SetPreviousColor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SetPreviousColor: usize,
    pub IsAlphaEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsAlphaEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsColorSpectrumVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsColorSpectrumVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsColorPreviewVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsColorPreviewVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsColorSliderVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsColorSliderVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsAlphaSliderVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsAlphaSliderVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsMoreButtonVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsMoreButtonVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsColorChannelTextInputVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsColorChannelTextInputVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsAlphaTextInputVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsAlphaTextInputVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsHexInputVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsHexInputVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub MinHue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetMinHue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
    pub MaxHue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetMaxHue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
    pub MinSaturation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetMinSaturation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
    pub MaxSaturation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetMaxSaturation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
    pub MinValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetMinValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
    pub MaxValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetMaxValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
    pub ColorSpectrumShape: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ColorSpectrumShape) -> ::windows::core::HRESULT,
    pub SetColorSpectrumShape: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ColorSpectrumShape) -> ::windows::core::HRESULT,
    pub ColorSpectrumComponents: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ColorSpectrumComponents) -> ::windows::core::HRESULT,
    pub SetColorSpectrumComponents: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ColorSpectrumComponents) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub ColorChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ColorChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveColorChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveColorChanged: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IColorPickerFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IColorPickerFactory {
    type Vtable = IColorPickerFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xabae07ff_aecf_481d_9204_201c3894cd1b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IColorPickerFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IColorPickerStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IColorPickerStatics {
    type Vtable = IColorPickerStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x67ca9be7_1574_451a_b6df_fe57d9d07b46);
}
#[repr(C)]
#[doc(hidden)]
pub struct IColorPickerStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ColorProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PreviousColorProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsAlphaEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsColorSpectrumVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsColorPreviewVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsColorSliderVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsAlphaSliderVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsMoreButtonVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsColorChannelTextInputVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsAlphaTextInputVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsHexInputVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MinHueProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MaxHueProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MinSaturationProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MaxSaturationProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MinValueProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MaxValueProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ColorSpectrumShapeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ColorSpectrumComponentsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IColumnDefinition(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IColumnDefinition {
    type Vtable = IColumnDefinition_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf7f1b229_f024_467f_970a_7e705615db7b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IColumnDefinition_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Width: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::GridLength) -> ::windows::core::HRESULT,
    pub SetWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::GridLength) -> ::windows::core::HRESULT,
    pub MaxWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetMaxWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub MinWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetMinWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub ActualWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IColumnDefinitionStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IColumnDefinitionStatics {
    type Vtable = IColumnDefinitionStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x06b0d728_d044_40c6_942e_ae60eac74851);
}
#[repr(C)]
#[doc(hidden)]
pub struct IColumnDefinitionStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub WidthProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MaxWidthProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MinWidthProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IComboBox(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IComboBox {
    type Vtable = IComboBox_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb9a8d05c_ac97_47f1_a5f4_3f9f4d4b116c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IComboBox_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsDropDownOpen: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsDropDownOpen: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsEditable: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub IsSelectionBoxHighlighted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub MaxDropDownHeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetMaxDropDownHeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub SelectionBoxItem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SelectionBoxItemTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub TemplateSettings: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    TemplateSettings: usize,
    #[cfg(feature = "Foundation")]
    pub DropDownClosed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    DropDownClosed: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveDropDownClosed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveDropDownClosed: usize,
    #[cfg(feature = "Foundation")]
    pub DropDownOpened: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    DropDownOpened: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveDropDownOpened: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveDropDownOpened: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IComboBox2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IComboBox2 {
    type Vtable = IComboBox2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xea0cbf91_ca36_4fad_972a_2e53a6718b9f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IComboBox2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Header: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetHeader: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub HeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetHeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PlaceholderText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetPlaceholderText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IComboBox3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IComboBox3 {
    type Vtable = IComboBox3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x52400a63_476c_4bb6_b781_019324d3fed9);
}
#[repr(C)]
#[doc(hidden)]
pub struct IComboBox3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub LightDismissOverlayMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut LightDismissOverlayMode) -> ::windows::core::HRESULT,
    pub SetLightDismissOverlayMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: LightDismissOverlayMode) -> ::windows::core::HRESULT,
    pub IsTextSearchEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsTextSearchEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IComboBox4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IComboBox4 {
    type Vtable = IComboBox4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb7974f49_b05c_47f9_9aaf_d6f9187be5fd);
}
#[repr(C)]
#[doc(hidden)]
pub struct IComboBox4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SelectionChangedTrigger: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ComboBoxSelectionChangedTrigger) -> ::windows::core::HRESULT,
    pub SetSelectionChangedTrigger: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ComboBoxSelectionChangedTrigger) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IComboBox5(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IComboBox5 {
    type Vtable = IComboBox5_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xab79d646_800a_4a28_969b_34bb8fb458cf);
}
#[repr(C)]
#[doc(hidden)]
pub struct IComboBox5_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Media")]
    pub PlaceholderForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    PlaceholderForeground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetPlaceholderForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetPlaceholderForeground: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IComboBox6(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IComboBox6 {
    type Vtable = IComboBox6_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x61aad6a5_81fb_5f87_bae3_369fbe2ea1f3);
}
#[repr(C)]
#[doc(hidden)]
pub struct IComboBox6_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SetIsEditable: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub Text: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub TextBoxStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetTextBoxStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub Description: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub TextSubmitted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    TextSubmitted: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveTextSubmitted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveTextSubmitted: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IComboBoxFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IComboBoxFactory {
    type Vtable = IComboBoxFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xac0d0444_a65b_4abd_86df_3016049efedc);
}
#[repr(C)]
#[doc(hidden)]
pub struct IComboBoxFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IComboBoxItem(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IComboBoxItem {
    type Vtable = IComboBoxItem_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x993fd6d2_2aae_4f3b_b44d_5648f4d06114);
}
#[repr(C)]
#[doc(hidden)]
pub struct IComboBoxItem_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IComboBoxItemFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IComboBoxItemFactory {
    type Vtable = IComboBoxItemFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8fffe867_d94c_4e87_8fc4_6ebcd63c5ac2);
}
#[repr(C)]
#[doc(hidden)]
pub struct IComboBoxItemFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IComboBoxOverrides(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IComboBoxOverrides {
    type Vtable = IComboBoxOverrides_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4f016541_bcfe_4a22_8932_c914981c2240);
}
#[repr(C)]
#[doc(hidden)]
pub struct IComboBoxOverrides_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub OnDropDownClosed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub OnDropDownOpened: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IComboBoxStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IComboBoxStatics {
    type Vtable = IComboBoxStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3e14c9b1_d15b_4dc9_8110_cf3a117b96e7);
}
#[repr(C)]
#[doc(hidden)]
pub struct IComboBoxStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsDropDownOpenProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MaxDropDownHeightProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IComboBoxStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IComboBoxStatics2 {
    type Vtable = IComboBoxStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x93988a11_402c_4b13_96d1_7220266b9220);
}
#[repr(C)]
#[doc(hidden)]
pub struct IComboBoxStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub HeaderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HeaderTemplateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PlaceholderTextProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IComboBoxStatics3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IComboBoxStatics3 {
    type Vtable = IComboBoxStatics3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x949e140f_ce7f_4e41_bdc5_d1d3388ad0a6);
}
#[repr(C)]
#[doc(hidden)]
pub struct IComboBoxStatics3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub LightDismissOverlayModeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsTextSearchEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IComboBoxStatics4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IComboBoxStatics4 {
    type Vtable = IComboBoxStatics4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd9f58358_f7b0_46ce_8061_ad83ec2f2dd4);
}
#[repr(C)]
#[doc(hidden)]
pub struct IComboBoxStatics4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SelectionChangedTriggerProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IComboBoxStatics5(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IComboBoxStatics5 {
    type Vtable = IComboBoxStatics5_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb802cef1_a264_444a_9a61_aa8867b7a63c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IComboBoxStatics5_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub PlaceholderForegroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IComboBoxStatics6(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IComboBoxStatics6 {
    type Vtable = IComboBoxStatics6_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x516c88e0_ec6b_54ac_8c57_5ec080ee05c8);
}
#[repr(C)]
#[doc(hidden)]
pub struct IComboBoxStatics6_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsEditableProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TextProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TextBoxStyleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DescriptionProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IComboBoxTextSubmittedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IComboBoxTextSubmittedEventArgs {
    type Vtable = IComboBoxTextSubmittedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xcb698cbb_6879_558e_af82_df1d08f62afa);
}
#[repr(C)]
#[doc(hidden)]
pub struct IComboBoxTextSubmittedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Text: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub Handled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetHandled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICommandBar(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICommandBar {
    type Vtable = ICommandBar_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x98bc4280_4a3d_4cee_bd07_22ce94c5af76);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICommandBar_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation_Collections")]
    pub PrimaryCommands: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    PrimaryCommands: usize,
    #[cfg(feature = "Foundation_Collections")]
    pub SecondaryCommands: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    SecondaryCommands: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICommandBar2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICommandBar2 {
    type Vtable = ICommandBar2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x57662f58_5b32_475d_be64_4ca36e7b97d4);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICommandBar2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CommandBarOverflowPresenterStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetCommandBarOverflowPresenterStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub CommandBarTemplateSettings: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    CommandBarTemplateSettings: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICommandBar3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICommandBar3 {
    type Vtable = ICommandBar3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x40ebbc23_2a79_48b3_9a67_649b852d8589);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICommandBar3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub DefaultLabelPosition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut CommandBarDefaultLabelPosition) -> ::windows::core::HRESULT,
    pub SetDefaultLabelPosition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: CommandBarDefaultLabelPosition) -> ::windows::core::HRESULT,
    pub OverflowButtonVisibility: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut CommandBarOverflowButtonVisibility) -> ::windows::core::HRESULT,
    pub SetOverflowButtonVisibility: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: CommandBarOverflowButtonVisibility) -> ::windows::core::HRESULT,
    pub IsDynamicOverflowEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsDynamicOverflowEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub DynamicOverflowItemsChanging: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    DynamicOverflowItemsChanging: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveDynamicOverflowItemsChanging: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveDynamicOverflowItemsChanging: usize,
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ICommandBarElement(::windows::core::IUnknown);
impl ICommandBarElement {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsCompact(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsCompact)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsCompact(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsCompact)(::core::mem::transmute_copy(this), value).ok() }
    }
}
impl ::core::convert::From<ICommandBarElement> for ::windows::core::IUnknown {
    fn from(value: ICommandBarElement) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ICommandBarElement> for ::windows::core::IUnknown {
    fn from(value: &ICommandBarElement) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ICommandBarElement {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ICommandBarElement {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ICommandBarElement> for ::windows::core::IInspectable {
    fn from(value: ICommandBarElement) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ICommandBarElement> for ::windows::core::IInspectable {
    fn from(value: &ICommandBarElement) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ICommandBarElement {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ICommandBarElement {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for ICommandBarElement {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ICommandBarElement {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ICommandBarElement {}
impl ::core::fmt::Debug for ICommandBarElement {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ICommandBarElement").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ICommandBarElement {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"{67918e1b-f2d5-44d1-8b84-92b87f80a350}");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ICommandBarElement {
    type Vtable = ICommandBarElement_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x67918e1b_f2d5_44d1_8b84_92b87f80a350);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICommandBarElement_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsCompact: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsCompact: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ICommandBarElement2(::windows::core::IUnknown);
impl ICommandBarElement2 {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsInOverflow(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsInOverflow)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DynamicOverflowOrder(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DynamicOverflowOrder)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDynamicOverflowOrder(&self, value: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetDynamicOverflowOrder)(::core::mem::transmute_copy(this), value).ok() }
    }
}
impl ::core::convert::From<ICommandBarElement2> for ::windows::core::IUnknown {
    fn from(value: ICommandBarElement2) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ICommandBarElement2> for ::windows::core::IUnknown {
    fn from(value: &ICommandBarElement2) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ICommandBarElement2 {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ICommandBarElement2 {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ICommandBarElement2> for ::windows::core::IInspectable {
    fn from(value: ICommandBarElement2) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ICommandBarElement2> for ::windows::core::IInspectable {
    fn from(value: &ICommandBarElement2) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ICommandBarElement2 {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ICommandBarElement2 {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for ICommandBarElement2 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ICommandBarElement2 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ICommandBarElement2 {}
impl ::core::fmt::Debug for ICommandBarElement2 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ICommandBarElement2").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ICommandBarElement2 {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"{a9bf1236-4402-4688-b987-9d2b9b7bf2bd}");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ICommandBarElement2 {
    type Vtable = ICommandBarElement2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa9bf1236_4402_4688_b987_9d2b9b7bf2bd);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICommandBarElement2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsInOverflow: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub DynamicOverflowOrder: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetDynamicOverflowOrder: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICommandBarFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICommandBarFactory {
    type Vtable = ICommandBarFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x67bdeb44_20e1_4177_ad44_f617b374e8e8);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICommandBarFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICommandBarFlyout(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICommandBarFlyout {
    type Vtable = ICommandBarFlyout_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xfecd2c4d_f16a_58cd_8aca_db0f046f25c3);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICommandBarFlyout_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation_Collections")]
    pub PrimaryCommands: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    PrimaryCommands: usize,
    #[cfg(feature = "Foundation_Collections")]
    pub SecondaryCommands: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    SecondaryCommands: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICommandBarFlyoutFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICommandBarFlyoutFactory {
    type Vtable = ICommandBarFlyoutFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xdd6441b3_6df1_593d_b80c_daf5c1daee41);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICommandBarFlyoutFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICommandBarOverflowPresenter(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICommandBarOverflowPresenter {
    type Vtable = ICommandBarOverflowPresenter_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6e7a9427_58ef_4366_a017_18c193d56b14);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICommandBarOverflowPresenter_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICommandBarOverflowPresenterFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICommandBarOverflowPresenterFactory {
    type Vtable = ICommandBarOverflowPresenterFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8323f774_5aaa_4049_b78f_218c6a19c37e);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICommandBarOverflowPresenterFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICommandBarStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICommandBarStatics {
    type Vtable = ICommandBarStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5bd981ea_e278_409c_b522_f946ca253b44);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICommandBarStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub PrimaryCommandsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SecondaryCommandsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICommandBarStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICommandBarStatics2 {
    type Vtable = ICommandBarStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3d9ec8e3_51a9_4e34_956c_7081d06f26f8);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICommandBarStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CommandBarOverflowPresenterStyleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ICommandBarStatics3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ICommandBarStatics3 {
    type Vtable = ICommandBarStatics3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb45a24a4_8af1_4843_b319_e03fc45ab726);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICommandBarStatics3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub DefaultLabelPositionProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OverflowButtonVisibilityProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsDynamicOverflowEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IContainerContentChangingEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IContainerContentChangingEventArgs {
    type Vtable = IContainerContentChangingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x07deeaa7_018f_4dda_b399_fd4e13a31bea);
}
#[repr(C)]
#[doc(hidden)]
pub struct IContainerContentChangingEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub ItemContainer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    ItemContainer: usize,
    pub InRecycleQueue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub ItemIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub Item: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Phase: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut u32) -> ::windows::core::HRESULT,
    pub Handled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetHandled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub RegisterUpdateCallback: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callback: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RegisterUpdateCallback: usize,
    #[cfg(feature = "Foundation")]
    pub RegisterUpdateCallbackWithPhase: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbackphase: u32, callback: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RegisterUpdateCallbackWithPhase: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IContentControl(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IContentControl {
    type Vtable = IContentControl_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa26dd1dc_cd44_435c_be94_01d6241c231c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IContentControl_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Content: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetContent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub ContentTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetContentTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ContentTemplateSelector: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetContentTemplateSelector: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub ContentTransitions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation")))]
    ContentTransitions: usize,
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub SetContentTransitions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation")))]
    SetContentTransitions: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IContentControl2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IContentControl2 {
    type Vtable = IContentControl2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x652c208c_8ccf_4399_bd3e_5a015aa1bc03);
}
#[repr(C)]
#[doc(hidden)]
pub struct IContentControl2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ContentTemplateRoot: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IContentControlFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IContentControlFactory {
    type Vtable = IContentControlFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xab017b19_196e_4ed5_a27f_55c58fb1673f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IContentControlFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IContentControlOverrides(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IContentControlOverrides {
    type Vtable = IContentControlOverrides_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5f4c0b10_e38e_4b5d_be1a_5ed04246a635);
}
#[repr(C)]
#[doc(hidden)]
pub struct IContentControlOverrides_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub OnContentChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, oldcontent: *mut ::core::ffi::c_void, newcontent: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub OnContentTemplateChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, oldcontenttemplate: ::windows::core::RawPtr, newcontenttemplate: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OnContentTemplateSelectorChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, oldcontenttemplateselector: ::windows::core::RawPtr, newcontenttemplateselector: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IContentControlStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IContentControlStatics {
    type Vtable = IContentControlStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x116982a4_5cf5_4c05_a53f_15e4876c85ec);
}
#[repr(C)]
#[doc(hidden)]
pub struct IContentControlStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ContentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ContentTemplateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ContentTemplateSelectorProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ContentTransitionsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IContentDialog(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IContentDialog {
    type Vtable = IContentDialog_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x38dc4404_d24e_40d8_9415_349464c1afdc);
}
#[repr(C)]
#[doc(hidden)]
pub struct IContentDialog_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Title: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetTitle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub TitleTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetTitleTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FullSizeDesired: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetFullSizeDesired: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub PrimaryButtonText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetPrimaryButtonText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SecondaryButtonText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetSecondaryButtonText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Input")]
    pub PrimaryButtonCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    PrimaryButtonCommand: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub SetPrimaryButtonCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    SetPrimaryButtonCommand: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub SecondaryButtonCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    SecondaryButtonCommand: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub SetSecondaryButtonCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    SetSecondaryButtonCommand: usize,
    pub PrimaryButtonCommandParameter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetPrimaryButtonCommandParameter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SecondaryButtonCommandParameter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetSecondaryButtonCommandParameter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub IsPrimaryButtonEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsPrimaryButtonEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsSecondaryButtonEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsSecondaryButtonEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub Closing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Closing: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveClosing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveClosing: usize,
    #[cfg(feature = "Foundation")]
    pub Closed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Closed: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveClosed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveClosed: usize,
    #[cfg(feature = "Foundation")]
    pub Opened: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Opened: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveOpened: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveOpened: usize,
    #[cfg(feature = "Foundation")]
    pub PrimaryButtonClick: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    PrimaryButtonClick: usize,
    #[cfg(feature = "Foundation")]
    pub RemovePrimaryButtonClick: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemovePrimaryButtonClick: usize,
    #[cfg(feature = "Foundation")]
    pub SecondaryButtonClick: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SecondaryButtonClick: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveSecondaryButtonClick: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveSecondaryButtonClick: usize,
    pub Hide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub ShowAsync: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ShowAsync: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IContentDialog2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IContentDialog2 {
    type Vtable = IContentDialog2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x2f93eb45_ee43_4303_9b38_3fe1a111ecbf);
}
#[repr(C)]
#[doc(hidden)]
pub struct IContentDialog2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CloseButtonText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetCloseButtonText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Input")]
    pub CloseButtonCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    CloseButtonCommand: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub SetCloseButtonCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    SetCloseButtonCommand: usize,
    pub CloseButtonCommandParameter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetCloseButtonCommandParameter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub PrimaryButtonStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetPrimaryButtonStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SecondaryButtonStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetSecondaryButtonStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CloseButtonStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetCloseButtonStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DefaultButton: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ContentDialogButton) -> ::windows::core::HRESULT,
    pub SetDefaultButton: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ContentDialogButton) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub CloseButtonClick: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    CloseButtonClick: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveCloseButtonClick: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveCloseButtonClick: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IContentDialog3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IContentDialog3 {
    type Vtable = IContentDialog3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9d9a089e_f954_4ede_b07f_6b069a9c0180);
}
#[repr(C)]
#[doc(hidden)]
pub struct IContentDialog3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub ShowAsyncWithPlacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, placement: ContentDialogPlacement, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ShowAsyncWithPlacement: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IContentDialogButtonClickDeferral(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IContentDialogButtonClickDeferral {
    type Vtable = IContentDialogButtonClickDeferral_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xbd0d3637_19ce_4946_8e77_bd03fe8ebe03);
}
#[repr(C)]
#[doc(hidden)]
pub struct IContentDialogButtonClickDeferral_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Complete: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IContentDialogButtonClickEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IContentDialogButtonClickEventArgs {
    type Vtable = IContentDialogButtonClickEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5f34c205_8afa_4cf2_8ca0_264d73bed63d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IContentDialogButtonClickEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Cancel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetCancel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub GetDeferral: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IContentDialogClosedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IContentDialogClosedEventArgs {
    type Vtable = IContentDialogClosedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x905522ef_2cba_4af8_b666_cc36c22732fb);
}
#[repr(C)]
#[doc(hidden)]
pub struct IContentDialogClosedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Result: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ContentDialogResult) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IContentDialogClosingDeferral(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IContentDialogClosingDeferral {
    type Vtable = IContentDialogClosingDeferral_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x215d4d11_7e30_4cb9_a710_5a4f9cca8b42);
}
#[repr(C)]
#[doc(hidden)]
pub struct IContentDialogClosingDeferral_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Complete: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IContentDialogClosingEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IContentDialogClosingEventArgs {
    type Vtable = IContentDialogClosingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xdb3c1c34_3bbf_47d4_be4f_c9ec115918b9);
}
#[repr(C)]
#[doc(hidden)]
pub struct IContentDialogClosingEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Result: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ContentDialogResult) -> ::windows::core::HRESULT,
    pub Cancel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetCancel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub GetDeferral: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IContentDialogFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IContentDialogFactory {
    type Vtable = IContentDialogFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x05557178_9d8e_4315_b37d_680c14012c35);
}
#[repr(C)]
#[doc(hidden)]
pub struct IContentDialogFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IContentDialogOpenedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IContentDialogOpenedEventArgs {
    type Vtable = IContentDialogOpenedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0966b315_5f59_4999_9e3e_374c0f174b04);
}
#[repr(C)]
#[doc(hidden)]
pub struct IContentDialogOpenedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IContentDialogStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IContentDialogStatics {
    type Vtable = IContentDialogStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x23ab47a6_508a_4f33_b786_f2fa96d869af);
}
#[repr(C)]
#[doc(hidden)]
pub struct IContentDialogStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub TitleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TitleTemplateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FullSizeDesiredProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PrimaryButtonTextProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SecondaryButtonTextProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PrimaryButtonCommandProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SecondaryButtonCommandProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PrimaryButtonCommandParameterProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SecondaryButtonCommandParameterProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsPrimaryButtonEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsSecondaryButtonEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IContentDialogStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IContentDialogStatics2 {
    type Vtable = IContentDialogStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x329825b2_8fb0_4125_bb07_e79a5a03819f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IContentDialogStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CloseButtonTextProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CloseButtonCommandProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CloseButtonCommandParameterProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PrimaryButtonStyleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SecondaryButtonStyleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CloseButtonStyleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DefaultButtonProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IContentLinkChangedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IContentLinkChangedEventArgs {
    type Vtable = IContentLinkChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x64f3f1de_89fb_4b77_8b9b_191b6d19290a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IContentLinkChangedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ChangeKind: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ContentLinkChangeKind) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Text")]
    pub ContentLinkInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    ContentLinkInfo: usize,
    #[cfg(feature = "UI_Xaml_Documents")]
    pub TextRange: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Documents::TextRange) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Documents"))]
    TextRange: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IContentPresenter(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IContentPresenter {
    type Vtable = IContentPresenter_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x79fde5b4_cd37_491c_8845_daf472defff6);
}
#[repr(C)]
#[doc(hidden)]
pub struct IContentPresenter_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Content: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetContent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub ContentTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetContentTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ContentTemplateSelector: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetContentTemplateSelector: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub ContentTransitions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation")))]
    ContentTransitions: usize,
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub SetContentTransitions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation")))]
    SetContentTransitions: usize,
    pub FontSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetFontSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media")]
    pub FontFamily: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    FontFamily: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetFontFamily: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetFontFamily: usize,
    #[cfg(feature = "UI_Text")]
    pub FontWeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Text::FontWeight) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    FontWeight: usize,
    #[cfg(feature = "UI_Text")]
    pub SetFontWeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::Text::FontWeight) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    SetFontWeight: usize,
    #[cfg(feature = "UI_Text")]
    pub FontStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Text::FontStyle) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    FontStyle: usize,
    #[cfg(feature = "UI_Text")]
    pub SetFontStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::Text::FontStyle) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    SetFontStyle: usize,
    #[cfg(feature = "UI_Text")]
    pub FontStretch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Text::FontStretch) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    FontStretch: usize,
    #[cfg(feature = "UI_Text")]
    pub SetFontStretch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::Text::FontStretch) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    SetFontStretch: usize,
    pub CharacterSpacing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetCharacterSpacing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media")]
    pub Foreground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    Foreground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetForeground: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IContentPresenter2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IContentPresenter2 {
    type Vtable = IContentPresenter2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5138e958_335d_4210_8bbb_0aa2b4b5c29e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IContentPresenter2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub OpticalMarginAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::OpticalMarginAlignment) -> ::windows::core::HRESULT,
    pub SetOpticalMarginAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::OpticalMarginAlignment) -> ::windows::core::HRESULT,
    pub TextLineBounds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::TextLineBounds) -> ::windows::core::HRESULT,
    pub SetTextLineBounds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::TextLineBounds) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IContentPresenter3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IContentPresenter3 {
    type Vtable = IContentPresenter3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb038876a_9c4d_4402_ac56_a223487dc6c8);
}
#[repr(C)]
#[doc(hidden)]
pub struct IContentPresenter3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsTextScaleFactorEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsTextScaleFactorEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IContentPresenter4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IContentPresenter4 {
    type Vtable = IContentPresenter4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x997b1b17_3bf8_432b_8fd9_68c7bab21f9d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IContentPresenter4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub TextWrapping: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::TextWrapping) -> ::windows::core::HRESULT,
    pub SetTextWrapping: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::TextWrapping) -> ::windows::core::HRESULT,
    pub MaxLines: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetMaxLines: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
    pub LineStackingStrategy: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::LineStackingStrategy) -> ::windows::core::HRESULT,
    pub SetLineStackingStrategy: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::LineStackingStrategy) -> ::windows::core::HRESULT,
    pub LineHeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetLineHeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media")]
    pub BorderBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    BorderBrush: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetBorderBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetBorderBrush: usize,
    pub BorderThickness: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Thickness) -> ::windows::core::HRESULT,
    pub SetBorderThickness: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Thickness) -> ::windows::core::HRESULT,
    pub CornerRadius: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::CornerRadius) -> ::windows::core::HRESULT,
    pub SetCornerRadius: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::CornerRadius) -> ::windows::core::HRESULT,
    pub Padding: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Thickness) -> ::windows::core::HRESULT,
    pub SetPadding: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Thickness) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media")]
    pub Background: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    Background: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetBackground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetBackground: usize,
    pub HorizontalContentAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::HorizontalAlignment) -> ::windows::core::HRESULT,
    pub SetHorizontalContentAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::HorizontalAlignment) -> ::windows::core::HRESULT,
    pub VerticalContentAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::VerticalAlignment) -> ::windows::core::HRESULT,
    pub SetVerticalContentAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::VerticalAlignment) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IContentPresenter5(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IContentPresenter5 {
    type Vtable = IContentPresenter5_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd248970c_b785_5e7f_9c11_8a6cd3d5929b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IContentPresenter5_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub BackgroundTransition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetBackgroundTransition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub BackgroundSizing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut BackgroundSizing) -> ::windows::core::HRESULT,
    pub SetBackgroundSizing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: BackgroundSizing) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IContentPresenterFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IContentPresenterFactory {
    type Vtable = IContentPresenterFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3339d4f7_4815_44c4_9f76_68c83880ef10);
}
#[repr(C)]
#[doc(hidden)]
pub struct IContentPresenterFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IContentPresenterOverrides(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IContentPresenterOverrides {
    type Vtable = IContentPresenterOverrides_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa76339ed_32ff_438b_aad5_1d68fae93426);
}
#[repr(C)]
#[doc(hidden)]
pub struct IContentPresenterOverrides_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub OnContentTemplateChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, oldcontenttemplate: ::windows::core::RawPtr, newcontenttemplate: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OnContentTemplateSelectorChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, oldcontenttemplateselector: ::windows::core::RawPtr, newcontenttemplateselector: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IContentPresenterStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IContentPresenterStatics {
    type Vtable = IContentPresenterStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x18c2893b_da2e_4426_b85a_2c7e2171bedf);
}
#[repr(C)]
#[doc(hidden)]
pub struct IContentPresenterStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ContentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ContentTemplateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ContentTemplateSelectorProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ContentTransitionsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FontSizeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FontFamilyProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FontWeightProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FontStyleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FontStretchProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CharacterSpacingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ForegroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IContentPresenterStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IContentPresenterStatics2 {
    type Vtable = IContentPresenterStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc7d89dd9_06e6_46be_a8a0_9c117d3024a3);
}
#[repr(C)]
#[doc(hidden)]
pub struct IContentPresenterStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub OpticalMarginAlignmentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TextLineBoundsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IContentPresenterStatics3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IContentPresenterStatics3 {
    type Vtable = IContentPresenterStatics3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xcbe6cf5b_38b1_4d5d_b098_bc94b35c8ddf);
}
#[repr(C)]
#[doc(hidden)]
pub struct IContentPresenterStatics3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsTextScaleFactorEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IContentPresenterStatics4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IContentPresenterStatics4 {
    type Vtable = IContentPresenterStatics4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xff8be292_af28_47eb_a5c3_dc44ced40fd2);
}
#[repr(C)]
#[doc(hidden)]
pub struct IContentPresenterStatics4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub TextWrappingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MaxLinesProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub LineStackingStrategyProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub LineHeightProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub BorderBrushProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub BorderThicknessProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CornerRadiusProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PaddingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub BackgroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HorizontalContentAlignmentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub VerticalContentAlignmentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IContentPresenterStatics5(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IContentPresenterStatics5 {
    type Vtable = IContentPresenterStatics5_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x169e700f_e8e6_5f6a_b97e_7ef8f7006f49);
}
#[repr(C)]
#[doc(hidden)]
pub struct IContentPresenterStatics5_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub BackgroundSizingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IContextMenuEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IContextMenuEventArgs {
    type Vtable = IContextMenuEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1f7df263_c14b_4528_b6f0_637999d83cc6);
}
#[repr(C)]
#[doc(hidden)]
pub struct IContextMenuEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Handled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetHandled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub CursorLeft: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub CursorTop: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IControl(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IControl {
    type Vtable = IControl_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa8912263_2951_4f58_a9c5_5a134eaa7f07);
}
#[repr(C)]
#[doc(hidden)]
pub struct IControl_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub FontSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetFontSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media")]
    pub FontFamily: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    FontFamily: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetFontFamily: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetFontFamily: usize,
    #[cfg(feature = "UI_Text")]
    pub FontWeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Text::FontWeight) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    FontWeight: usize,
    #[cfg(feature = "UI_Text")]
    pub SetFontWeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::Text::FontWeight) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    SetFontWeight: usize,
    #[cfg(feature = "UI_Text")]
    pub FontStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Text::FontStyle) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    FontStyle: usize,
    #[cfg(feature = "UI_Text")]
    pub SetFontStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::Text::FontStyle) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    SetFontStyle: usize,
    #[cfg(feature = "UI_Text")]
    pub FontStretch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Text::FontStretch) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    FontStretch: usize,
    #[cfg(feature = "UI_Text")]
    pub SetFontStretch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::Text::FontStretch) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    SetFontStretch: usize,
    pub CharacterSpacing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetCharacterSpacing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media")]
    pub Foreground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    Foreground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetForeground: usize,
    pub IsTabStop: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsTabStop: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub TabIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetTabIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Input")]
    pub TabNavigation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Input::KeyboardNavigationMode) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    TabNavigation: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub SetTabNavigation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Input::KeyboardNavigationMode) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    SetTabNavigation: usize,
    pub Template: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub Padding: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Thickness) -> ::windows::core::HRESULT,
    pub SetPadding: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Thickness) -> ::windows::core::HRESULT,
    pub HorizontalContentAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::HorizontalAlignment) -> ::windows::core::HRESULT,
    pub SetHorizontalContentAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::HorizontalAlignment) -> ::windows::core::HRESULT,
    pub VerticalContentAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::VerticalAlignment) -> ::windows::core::HRESULT,
    pub SetVerticalContentAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::VerticalAlignment) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media")]
    pub Background: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    Background: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetBackground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetBackground: usize,
    pub BorderThickness: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Thickness) -> ::windows::core::HRESULT,
    pub SetBorderThickness: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Thickness) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media")]
    pub BorderBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    BorderBrush: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetBorderBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetBorderBrush: usize,
    pub FocusState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::FocusState) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub IsEnabledChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    IsEnabledChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveIsEnabledChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveIsEnabledChanged: usize,
    pub ApplyTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub Focus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::FocusState, result__: *mut bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IControl2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IControl2 {
    type Vtable = IControl2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x43e0fe10_14ec_427e_8c57_dee60df60aa8);
}
#[repr(C)]
#[doc(hidden)]
pub struct IControl2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsTextScaleFactorEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsTextScaleFactorEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IControl3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IControl3 {
    type Vtable = IControl3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x077b29e4_dade_4f55_9b96_09e21b28eb1c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IControl3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub UseSystemFocusVisuals: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetUseSystemFocusVisuals: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IControl4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IControl4 {
    type Vtable = IControl4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0e18aeee_5f2e_44ea_8513_d3875c0a7513);
}
#[repr(C)]
#[doc(hidden)]
pub struct IControl4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsFocusEngagementEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsFocusEngagementEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsFocusEngaged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsFocusEngaged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub RequiresPointer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut RequiresPointer) -> ::windows::core::HRESULT,
    pub SetRequiresPointer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: RequiresPointer) -> ::windows::core::HRESULT,
    pub XYFocusLeft: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetXYFocusLeft: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub XYFocusRight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetXYFocusRight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub XYFocusUp: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetXYFocusUp: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub XYFocusDown: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetXYFocusDown: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ElementSoundMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::ElementSoundMode) -> ::windows::core::HRESULT,
    pub SetElementSoundMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::ElementSoundMode) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub FocusEngaged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    FocusEngaged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveFocusEngaged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveFocusEngaged: usize,
    #[cfg(feature = "Foundation")]
    pub FocusDisengaged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    FocusDisengaged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveFocusDisengaged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveFocusDisengaged: usize,
    pub RemoveFocusEngagement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IControl5(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IControl5 {
    type Vtable = IControl5_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5ebb51d5_9e58_49b7_bc2d_0155ff118664);
}
#[repr(C)]
#[doc(hidden)]
pub struct IControl5_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub DefaultStyleResourceUri: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    DefaultStyleResourceUri: usize,
    #[cfg(feature = "Foundation")]
    pub SetDefaultStyleResourceUri: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SetDefaultStyleResourceUri: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IControl7(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IControl7 {
    type Vtable = IControl7_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3550dbe1_e561_5934_a3ef_7db8bf6e3b45);
}
#[repr(C)]
#[doc(hidden)]
pub struct IControl7_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub BackgroundSizing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut BackgroundSizing) -> ::windows::core::HRESULT,
    pub SetBackgroundSizing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: BackgroundSizing) -> ::windows::core::HRESULT,
    pub CornerRadius: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::CornerRadius) -> ::windows::core::HRESULT,
    pub SetCornerRadius: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::CornerRadius) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IControlFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IControlFactory {
    type Vtable = IControlFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb12b1d5a_6419_4e16_b212_a45336b75778);
}
#[repr(C)]
#[doc(hidden)]
pub struct IControlFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IControlOverrides(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IControlOverrides {
    type Vtable = IControlOverrides_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa09691df_9824_41fe_b530_b0d8990e64c1);
}
#[repr(C)]
#[doc(hidden)]
pub struct IControlOverrides_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Input")]
    pub OnPointerEntered: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    OnPointerEntered: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub OnPointerPressed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    OnPointerPressed: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub OnPointerMoved: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    OnPointerMoved: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub OnPointerReleased: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    OnPointerReleased: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub OnPointerExited: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    OnPointerExited: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub OnPointerCaptureLost: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    OnPointerCaptureLost: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub OnPointerCanceled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    OnPointerCanceled: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub OnPointerWheelChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    OnPointerWheelChanged: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub OnTapped: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    OnTapped: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub OnDoubleTapped: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    OnDoubleTapped: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub OnHolding: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    OnHolding: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub OnRightTapped: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    OnRightTapped: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub OnManipulationStarting: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    OnManipulationStarting: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub OnManipulationInertiaStarting: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    OnManipulationInertiaStarting: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub OnManipulationStarted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    OnManipulationStarted: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub OnManipulationDelta: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    OnManipulationDelta: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub OnManipulationCompleted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    OnManipulationCompleted: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub OnKeyUp: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    OnKeyUp: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub OnKeyDown: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    OnKeyDown: usize,
    pub OnGotFocus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OnLostFocus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OnDragEnter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OnDragLeave: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OnDragOver: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OnDrop: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IControlOverrides6(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IControlOverrides6 {
    type Vtable = IControlOverrides6_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe194c96a_d8cc_4339_a0e1_2e9c420879ec);
}
#[repr(C)]
#[doc(hidden)]
pub struct IControlOverrides6_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Input")]
    pub OnPreviewKeyDown: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    OnPreviewKeyDown: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub OnPreviewKeyUp: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    OnPreviewKeyUp: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub OnCharacterReceived: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    OnCharacterReceived: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IControlProtected(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IControlProtected {
    type Vtable = IControlProtected_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1791587a_2a7c_4981_a2d8_ab99fffc65b9);
}
#[repr(C)]
#[doc(hidden)]
pub struct IControlProtected_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub DefaultStyleKey: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetDefaultStyleKey: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetTemplateChild: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, childname: ::core::mem::ManuallyDrop<::windows::core::HSTRING>, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IControlStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IControlStatics {
    type Vtable = IControlStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x473b305b_877d_4c35_8fca_46a05f96607a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IControlStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub FontSizeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FontFamilyProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FontWeightProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FontStyleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FontStretchProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CharacterSpacingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ForegroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsTabStopProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TabIndexProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TabNavigationProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TemplateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PaddingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HorizontalContentAlignmentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub VerticalContentAlignmentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub BackgroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub BorderThicknessProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub BorderBrushProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DefaultStyleKeyProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FocusStateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IControlStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IControlStatics2 {
    type Vtable = IControlStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x32233e36_ab74_4a25_a556_45293135b2c5);
}
#[repr(C)]
#[doc(hidden)]
pub struct IControlStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsTextScaleFactorEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IControlStatics3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IControlStatics3 {
    type Vtable = IControlStatics3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xaad15e61_e4b9_4d72_b653_934149aa5003);
}
#[repr(C)]
#[doc(hidden)]
pub struct IControlStatics3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub UseSystemFocusVisualsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsTemplateFocusTargetProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetIsTemplateFocusTarget: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsTemplateFocusTarget: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IControlStatics4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IControlStatics4 {
    type Vtable = IControlStatics4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x59fda728_c05a_4ec2_8a4b_06ad69b66e15);
}
#[repr(C)]
#[doc(hidden)]
pub struct IControlStatics4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsFocusEngagementEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsFocusEngagedProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub RequiresPointerProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub XYFocusLeftProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub XYFocusRightProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub XYFocusUpProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub XYFocusDownProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ElementSoundModeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IControlStatics5(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IControlStatics5 {
    type Vtable = IControlStatics5_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf635b5a3_ef8e_404f_877b_5580473710a6);
}
#[repr(C)]
#[doc(hidden)]
pub struct IControlStatics5_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub DefaultStyleResourceUriProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsTemplateKeyTipTargetProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetIsTemplateKeyTipTarget: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsTemplateKeyTipTarget: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IControlStatics7(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IControlStatics7 {
    type Vtable = IControlStatics7_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xaee1ca45_c910_5dab_a266_fdf50c0bedd2);
}
#[repr(C)]
#[doc(hidden)]
pub struct IControlStatics7_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub BackgroundSizingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CornerRadiusProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IControlTemplate(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IControlTemplate {
    type Vtable = IControlTemplate_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xefd2418e_41e0_48bb_8b82_91eda1ba3fe2);
}
#[repr(C)]
#[doc(hidden)]
pub struct IControlTemplate_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Interop")]
    pub TargetType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<super::Interop::TypeName>) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Interop"))]
    TargetType: usize,
    #[cfg(feature = "UI_Xaml_Interop")]
    pub SetTargetType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<super::Interop::TypeName>) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Interop"))]
    SetTargetType: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IDataTemplateSelector(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IDataTemplateSelector {
    type Vtable = IDataTemplateSelector_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa907d496_46a0_4cd7_8dbe_f9a581df60b1);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataTemplateSelector_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SelectTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, item: *mut ::core::ffi::c_void, container: ::windows::core::RawPtr, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IDataTemplateSelector2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IDataTemplateSelector2 {
    type Vtable = IDataTemplateSelector2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3792bc47_8c4b_4257_a5ae_cc3f8ed786eb);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataTemplateSelector2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SelectTemplateForItem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, item: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IDataTemplateSelectorFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IDataTemplateSelectorFactory {
    type Vtable = IDataTemplateSelectorFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x511baad0_210a_457d_9521_433d2b11b7d2);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataTemplateSelectorFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IDataTemplateSelectorOverrides(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IDataTemplateSelectorOverrides {
    type Vtable = IDataTemplateSelectorOverrides_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x2d162925_5966_4bfa_8638_4d345689f6cf);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataTemplateSelectorOverrides_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SelectTemplateCore: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, item: *mut ::core::ffi::c_void, container: ::windows::core::RawPtr, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IDataTemplateSelectorOverrides2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IDataTemplateSelectorOverrides2 {
    type Vtable = IDataTemplateSelectorOverrides2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6c3fb5fc_8e84_4c91_ac15_04a1d885500f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataTemplateSelectorOverrides2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SelectTemplateForItemCore: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, item: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IDatePickedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IDatePickedEventArgs {
    type Vtable = IDatePickedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa1527b12_59c1_4521_b28c_b176675e7c5a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDatePickedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub OldDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::super::Foundation::DateTime) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    OldDate: usize,
    #[cfg(feature = "Foundation")]
    pub NewDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::super::Foundation::DateTime) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    NewDate: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IDatePicker(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IDatePicker {
    type Vtable = IDatePicker_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x06da3946_08b8_4103_8b8a_093efd6a7657);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDatePicker_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Header: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetHeader: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub HeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetHeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CalendarIdentifier: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetCalendarIdentifier: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub Date: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::super::Foundation::DateTime) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Date: usize,
    #[cfg(feature = "Foundation")]
    pub SetDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::super::Foundation::DateTime) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SetDate: usize,
    pub DayVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetDayVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub MonthVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetMonthVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub YearVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetYearVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub DayFormat: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetDayFormat: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub MonthFormat: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetMonthFormat: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub YearFormat: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetYearFormat: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub MinYear: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::super::Foundation::DateTime) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    MinYear: usize,
    #[cfg(feature = "Foundation")]
    pub SetMinYear: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::super::Foundation::DateTime) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SetMinYear: usize,
    #[cfg(feature = "Foundation")]
    pub MaxYear: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::super::Foundation::DateTime) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    MaxYear: usize,
    #[cfg(feature = "Foundation")]
    pub SetMaxYear: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::super::Foundation::DateTime) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SetMaxYear: usize,
    pub Orientation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut Orientation) -> ::windows::core::HRESULT,
    pub SetOrientation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: Orientation) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub DateChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    DateChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveDateChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveDateChanged: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IDatePicker2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IDatePicker2 {
    type Vtable = IDatePicker2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xbb28b475_2c1f_4340_9e30_948f99c9e57a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDatePicker2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub LightDismissOverlayMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut LightDismissOverlayMode) -> ::windows::core::HRESULT,
    pub SetLightDismissOverlayMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: LightDismissOverlayMode) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IDatePicker3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IDatePicker3 {
    type Vtable = IDatePicker3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x7da12a3b_a764_5ae1_abae_6affc1428e1e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDatePicker3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub SelectedDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SelectedDate: usize,
    #[cfg(feature = "Foundation")]
    pub SetSelectedDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SetSelectedDate: usize,
    #[cfg(feature = "Foundation")]
    pub SelectedDateChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SelectedDateChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveSelectedDateChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveSelectedDateChanged: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IDatePickerFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IDatePickerFactory {
    type Vtable = IDatePickerFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xeec3ca84_9896_4a7d_bb35_6fb21eaeca11);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDatePickerFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IDatePickerFlyout(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IDatePickerFlyout {
    type Vtable = IDatePickerFlyout_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xfbf33b1a_a3a4_4df8_9228_23a5ac27df4e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDatePickerFlyout_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CalendarIdentifier: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetCalendarIdentifier: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub Date: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::super::Foundation::DateTime) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Date: usize,
    #[cfg(feature = "Foundation")]
    pub SetDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::super::Foundation::DateTime) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SetDate: usize,
    pub DayVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetDayVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub MonthVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetMonthVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub YearVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetYearVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub MinYear: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::super::Foundation::DateTime) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    MinYear: usize,
    #[cfg(feature = "Foundation")]
    pub SetMinYear: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::super::Foundation::DateTime) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SetMinYear: usize,
    #[cfg(feature = "Foundation")]
    pub MaxYear: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::super::Foundation::DateTime) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    MaxYear: usize,
    #[cfg(feature = "Foundation")]
    pub SetMaxYear: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::super::Foundation::DateTime) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SetMaxYear: usize,
    #[cfg(feature = "Foundation")]
    pub DatePicked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    DatePicked: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveDatePicked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveDatePicked: usize,
    #[cfg(feature = "Foundation")]
    pub ShowAtAsync: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, target: ::windows::core::RawPtr, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ShowAtAsync: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IDatePickerFlyout2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IDatePickerFlyout2 {
    type Vtable = IDatePickerFlyout2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xcfb18dbb_9931_4119_8bda_54a86fdfac84);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDatePickerFlyout2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub DayFormat: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetDayFormat: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub MonthFormat: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetMonthFormat: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub YearFormat: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetYearFormat: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IDatePickerFlyoutItem(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IDatePickerFlyoutItem {
    type Vtable = IDatePickerFlyoutItem_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9d9bc289_00d2_4aac_9c85_d74f06367887);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDatePickerFlyoutItem_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub PrimaryText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetPrimaryText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SecondaryText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetSecondaryText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IDatePickerFlyoutItemStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IDatePickerFlyoutItemStatics {
    type Vtable = IDatePickerFlyoutItemStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xaa9c91da_07f6_4cdf_89b4_dda3bdb0ea6b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDatePickerFlyoutItemStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub PrimaryTextProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SecondaryTextProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IDatePickerFlyoutPresenter(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IDatePickerFlyoutPresenter {
    type Vtable = IDatePickerFlyoutPresenter_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x7c62f70e_2ddc_4381_832f_54cbdfaa849a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDatePickerFlyoutPresenter_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IDatePickerFlyoutPresenter2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IDatePickerFlyoutPresenter2 {
    type Vtable = IDatePickerFlyoutPresenter2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc5b2578f_96d8_55cc_97ee_3f88fc85e479);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDatePickerFlyoutPresenter2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsDefaultShadowEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsDefaultShadowEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IDatePickerFlyoutPresenterStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IDatePickerFlyoutPresenterStatics2 {
    type Vtable = IDatePickerFlyoutPresenterStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4dc0c49e_1f8e_5966_bbdb_215750c73aba);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDatePickerFlyoutPresenterStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsDefaultShadowEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IDatePickerFlyoutStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IDatePickerFlyoutStatics {
    type Vtable = IDatePickerFlyoutStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xcd570377_5845_4c12_8c10_592d9fcc7cd9);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDatePickerFlyoutStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CalendarIdentifierProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DayVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MonthVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub YearVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MinYearProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MaxYearProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IDatePickerFlyoutStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IDatePickerFlyoutStatics2 {
    type Vtable = IDatePickerFlyoutStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xafd3e569_81e6_4b54_84a9_68079b73e34e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDatePickerFlyoutStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub DayFormatProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MonthFormatProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub YearFormatProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IDatePickerSelectedValueChangedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IDatePickerSelectedValueChangedEventArgs {
    type Vtable = IDatePickerSelectedValueChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x564dceed_744a_5c3a_9bd2_4dcd9919a7b7);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDatePickerSelectedValueChangedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub OldDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    OldDate: usize,
    #[cfg(feature = "Foundation")]
    pub NewDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    NewDate: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IDatePickerStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IDatePickerStatics {
    type Vtable = IDatePickerStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x182e7c69_2116_4c67_b513_713364831d79);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDatePickerStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub HeaderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HeaderTemplateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CalendarIdentifierProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DayVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MonthVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub YearVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DayFormatProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MonthFormatProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub YearFormatProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MinYearProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MaxYearProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OrientationProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IDatePickerStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IDatePickerStatics2 {
    type Vtable = IDatePickerStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf1076df6_fba6_4550_8b88_a6420847f60d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDatePickerStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub LightDismissOverlayModeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IDatePickerStatics3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IDatePickerStatics3 {
    type Vtable = IDatePickerStatics3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa9f80afe_a30a_5f26_a446_fec2075d4a0e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDatePickerStatics3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SelectedDateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IDatePickerValueChangedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IDatePickerValueChangedEventArgs {
    type Vtable = IDatePickerValueChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1ae661b2_b1b4_4273_96e0_19daff187446);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDatePickerValueChangedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub OldDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::super::Foundation::DateTime) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    OldDate: usize,
    #[cfg(feature = "Foundation")]
    pub NewDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::super::Foundation::DateTime) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    NewDate: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IDragItemsCompletedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IDragItemsCompletedEventArgs {
    type Vtable = IDragItemsCompletedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xaf05f22f_9e78_4b21_9a8e_41c2d1367a2a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDragItemsCompletedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation_Collections")]
    pub Items: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    Items: usize,
    #[cfg(feature = "ApplicationModel_DataTransfer")]
    pub DropResult: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::super::ApplicationModel::DataTransfer::DataPackageOperation) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "ApplicationModel_DataTransfer"))]
    DropResult: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IDragItemsStartingEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IDragItemsStartingEventArgs {
    type Vtable = IDragItemsStartingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x71cf215c_daed_4783_aa11_dc574d2713e9);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDragItemsStartingEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Cancel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetCancel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation_Collections")]
    pub Items: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    Items: usize,
    #[cfg(feature = "ApplicationModel_DataTransfer")]
    pub Data: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "ApplicationModel_DataTransfer"))]
    Data: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IDropDownButton(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IDropDownButton {
    type Vtable = IDropDownButton_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x671f74e6_2a27_5fa8_b0a2_79b2e71ebd87);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDropDownButton_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IDropDownButtonAutomationPeer(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IDropDownButtonAutomationPeer {
    type Vtable = IDropDownButtonAutomationPeer_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x72f294f1_bff6_5d07_9db4_54134506bc80);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDropDownButtonAutomationPeer_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IDropDownButtonAutomationPeerFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IDropDownButtonAutomationPeerFactory {
    type Vtable = IDropDownButtonAutomationPeerFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb8c449b2_6354_5c0c_9e95_e0c99a293a44);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDropDownButtonAutomationPeerFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, owner: ::windows::core::RawPtr, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IDropDownButtonFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IDropDownButtonFactory {
    type Vtable = IDropDownButtonFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0d9f8ab5_e70d_52bd_9ca0_36ceecaa642a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDropDownButtonFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IDynamicOverflowItemsChangingEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IDynamicOverflowItemsChangingEventArgs {
    type Vtable = IDynamicOverflowItemsChangingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc93c736f_6f6e_4e43_90d9_9b46a0d88b9f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDynamicOverflowItemsChangingEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Action: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut CommandBarDynamicOverflowAction) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFlipView(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFlipView {
    type Vtable = IFlipView_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa1582f68_3d7d_4d3b_b71d_488eed1e3493);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFlipView_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFlipView2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFlipView2 {
    type Vtable = IFlipView2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc4fea4fd_7af3_4952_9fd9_9e0987fc4f29);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFlipView2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub UseTouchAnimationsForAllNavigation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetUseTouchAnimationsForAllNavigation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFlipViewFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFlipViewFactory {
    type Vtable = IFlipViewFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf1dea9be_9ae8_4d4b_ab43_16d31e05f4f3);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFlipViewFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFlipViewItem(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFlipViewItem {
    type Vtable = IFlipViewItem_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x56196565_ce2b_4bda_a36b_82a2b8b0d4c0);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFlipViewItem_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFlipViewItemFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFlipViewItemFactory {
    type Vtable = IFlipViewItemFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf21d91fe_22a0_4412_a853_9d6a6e8f2aaf);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFlipViewItemFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFlipViewStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFlipViewStatics2 {
    type Vtable = IFlipViewStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x70e3d93f_4308_4ba2_bbce_e2cb0ed34476);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFlipViewStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub UseTouchAnimationsForAllNavigationProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFlyout(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFlyout {
    type Vtable = IFlyout_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6584ebdf_cbc7_4e19_843a_a14f24a793ea);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFlyout_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Content: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetContent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FlyoutPresenterStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetFlyoutPresenterStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFlyoutFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFlyoutFactory {
    type Vtable = IFlyoutFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4bed4933_008e_4b03_a385_79fe5266ddba);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFlyoutFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFlyoutPresenter(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFlyoutPresenter {
    type Vtable = IFlyoutPresenter_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x827d5b79_e37b_46a5_8d44_63a11a580e83);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFlyoutPresenter_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFlyoutPresenter2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFlyoutPresenter2 {
    type Vtable = IFlyoutPresenter2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4f857e92_36b4_5048_9051_a992b43e8a1d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFlyoutPresenter2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsDefaultShadowEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsDefaultShadowEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFlyoutPresenterFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFlyoutPresenterFactory {
    type Vtable = IFlyoutPresenterFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xee4d668f_da76_469a_acd7_3060e613ade7);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFlyoutPresenterFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFlyoutPresenterStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFlyoutPresenterStatics2 {
    type Vtable = IFlyoutPresenterStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1492ae4b_2727_5e8e_9105_6d7a2b1185b2);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFlyoutPresenterStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsDefaultShadowEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFlyoutStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFlyoutStatics {
    type Vtable = IFlyoutStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x61364e0b_db75_47e1_b2c3_5b901c3d74b6);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFlyoutStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ContentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FlyoutPresenterStyleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFocusDisengagedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFocusDisengagedEventArgs {
    type Vtable = IFocusDisengagedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5e14280f_953e_4cf8_b9ea_c530a1ce02ad);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFocusDisengagedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFocusEngagedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFocusEngagedEventArgs {
    type Vtable = IFocusEngagedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa69fc352_da66_404c_823f_5358594e70bb);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFocusEngagedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFocusEngagedEventArgs2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFocusEngagedEventArgs2 {
    type Vtable = IFocusEngagedEventArgs2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4a59e0f4_87c0_4ccd_93c4_a3a01ce39265);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFocusEngagedEventArgs2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Handled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetHandled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFontIcon(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFontIcon {
    type Vtable = IFontIcon_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd4d61391_39ac_4950_9166_3606c264418b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFontIcon_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Glyph: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetGlyph: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub FontSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetFontSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media")]
    pub FontFamily: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    FontFamily: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetFontFamily: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetFontFamily: usize,
    #[cfg(feature = "UI_Text")]
    pub FontWeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Text::FontWeight) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    FontWeight: usize,
    #[cfg(feature = "UI_Text")]
    pub SetFontWeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::Text::FontWeight) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    SetFontWeight: usize,
    #[cfg(feature = "UI_Text")]
    pub FontStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Text::FontStyle) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    FontStyle: usize,
    #[cfg(feature = "UI_Text")]
    pub SetFontStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::Text::FontStyle) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    SetFontStyle: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFontIcon2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFontIcon2 {
    type Vtable = IFontIcon2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf6ebd84d_37e8_46ee_a574_41ad550482e0);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFontIcon2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsTextScaleFactorEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsTextScaleFactorEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFontIcon3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFontIcon3 {
    type Vtable = IFontIcon3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6155d919_1c6c_4950_8794_231ef0914d94);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFontIcon3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub MirroredWhenRightToLeft: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetMirroredWhenRightToLeft: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFontIconFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFontIconFactory {
    type Vtable = IFontIconFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1c781b6b_37bf_4ddc_a1a8_1b77db3cf0ea);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFontIconFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFontIconSource(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFontIconSource {
    type Vtable = IFontIconSource_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x2211ac9a_74e3_43ed_b61c_21afc7df4d10);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFontIconSource_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Glyph: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetGlyph: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub FontSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetFontSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media")]
    pub FontFamily: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    FontFamily: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetFontFamily: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetFontFamily: usize,
    #[cfg(feature = "UI_Text")]
    pub FontWeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Text::FontWeight) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    FontWeight: usize,
    #[cfg(feature = "UI_Text")]
    pub SetFontWeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::Text::FontWeight) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    SetFontWeight: usize,
    #[cfg(feature = "UI_Text")]
    pub FontStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Text::FontStyle) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    FontStyle: usize,
    #[cfg(feature = "UI_Text")]
    pub SetFontStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::Text::FontStyle) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    SetFontStyle: usize,
    pub IsTextScaleFactorEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsTextScaleFactorEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub MirroredWhenRightToLeft: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetMirroredWhenRightToLeft: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFontIconSourceFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFontIconSourceFactory {
    type Vtable = IFontIconSourceFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8bdcf6bd_fc06_42b8_b30b_7505082ac38f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFontIconSourceFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFontIconSourceStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFontIconSourceStatics {
    type Vtable = IFontIconSourceStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8c0e422f_8269_43b1_b95a_ef070e86770d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFontIconSourceStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub GlyphProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FontSizeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FontFamilyProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FontWeightProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FontStyleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsTextScaleFactorEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MirroredWhenRightToLeftProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFontIconStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFontIconStatics {
    type Vtable = IFontIconStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb3be7bf6_1467_4086_bbcb_4e21d97a7b4d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFontIconStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub GlyphProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FontSizeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FontFamilyProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FontWeightProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FontStyleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFontIconStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFontIconStatics2 {
    type Vtable = IFontIconStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe6080672_08f8_43d3_8790_4604290cbebd);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFontIconStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsTextScaleFactorEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFontIconStatics3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFontIconStatics3 {
    type Vtable = IFontIconStatics3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa4528b17_b084_4bd5_aab4_feae9d3b5d26);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFontIconStatics3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub MirroredWhenRightToLeftProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFrame(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFrame {
    type Vtable = IFrame_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x68ea500b_3fe9_4735_b6a0_e7601933b089);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFrame_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CacheSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetCacheSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
    pub CanGoBack: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub CanGoForward: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Interop")]
    pub CurrentSourcePageType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<super::Interop::TypeName>) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Interop"))]
    CurrentSourcePageType: usize,
    #[cfg(feature = "UI_Xaml_Interop")]
    pub SourcePageType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<super::Interop::TypeName>) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Interop"))]
    SourcePageType: usize,
    #[cfg(feature = "UI_Xaml_Interop")]
    pub SetSourcePageType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<super::Interop::TypeName>) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Interop"))]
    SetSourcePageType: usize,
    pub BackStackDepth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Navigation"))]
    pub Navigated: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation", feature = "UI_Xaml_Navigation")))]
    Navigated: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveNavigated: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveNavigated: usize,
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Navigation"))]
    pub Navigating: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation", feature = "UI_Xaml_Navigation")))]
    Navigating: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveNavigating: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveNavigating: usize,
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Navigation"))]
    pub NavigationFailed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation", feature = "UI_Xaml_Navigation")))]
    NavigationFailed: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveNavigationFailed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveNavigationFailed: usize,
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Navigation"))]
    pub NavigationStopped: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation", feature = "UI_Xaml_Navigation")))]
    NavigationStopped: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveNavigationStopped: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveNavigationStopped: usize,
    pub GoBack: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GoForward: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Interop")]
    pub Navigate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sourcepagetype: ::core::mem::ManuallyDrop<super::Interop::TypeName>, parameter: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Interop"))]
    Navigate: usize,
    pub GetNavigationState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetNavigationState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, navigationstate: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFrame2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFrame2 {
    type Vtable = IFrame2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3f367f87_9f5a_4b04_b818_b554c069597a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFrame2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Navigation"))]
    pub BackStack: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation_Collections", feature = "UI_Xaml_Navigation")))]
    BackStack: usize,
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Navigation"))]
    pub ForwardStack: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation_Collections", feature = "UI_Xaml_Navigation")))]
    ForwardStack: usize,
    #[cfg(all(feature = "UI_Xaml_Interop", feature = "UI_Xaml_Media_Animation"))]
    pub Navigate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sourcepagetype: ::core::mem::ManuallyDrop<super::Interop::TypeName>, parameter: *mut ::core::ffi::c_void, infooverride: ::windows::core::RawPtr, result__: *mut bool) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "UI_Xaml_Interop", feature = "UI_Xaml_Media_Animation")))]
    Navigate: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFrame3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFrame3 {
    type Vtable = IFrame3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x648a2b4d_53ca_4b5a_aa8e_3cc7440f4a67);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFrame3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Media_Animation")]
    pub GoBack: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, transitioninfooverride: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media_Animation"))]
    GoBack: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFrame4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFrame4 {
    type Vtable = IFrame4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9b17c21a_bd2b_4a00_99eb_946be9618084);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFrame4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SetNavigationStateWithNavigationControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, navigationstate: ::core::mem::ManuallyDrop<::windows::core::HSTRING>, suppressnavigate: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFrame5(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFrame5 {
    type Vtable = IFrame5_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x453fb92e_82b5_5f93_92ab_15341806c9da);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFrame5_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsNavigationStackEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsNavigationStackEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(all(feature = "UI_Xaml_Interop", feature = "UI_Xaml_Navigation"))]
    pub NavigateToType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sourcepagetype: ::core::mem::ManuallyDrop<super::Interop::TypeName>, parameter: *mut ::core::ffi::c_void, navigationoptions: ::windows::core::RawPtr, result__: *mut bool) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "UI_Xaml_Interop", feature = "UI_Xaml_Navigation")))]
    NavigateToType: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFrameFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFrameFactory {
    type Vtable = IFrameFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x02ee93d4_448e_469e_9799_0a8a1f70f171);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFrameFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFrameStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFrameStatics {
    type Vtable = IFrameStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd5acf0e9_d967_471b_8459_c8af4341511b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFrameStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CacheSizeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CanGoBackProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CanGoForwardProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CurrentSourcePageTypeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SourcePageTypeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub BackStackDepthProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFrameStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFrameStatics2 {
    type Vtable = IFrameStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe4b5cdfe_42f0_4462_a1c1_5d259dd82a03);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFrameStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub BackStackProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ForwardStackProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IFrameStatics5(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IFrameStatics5 {
    type Vtable = IFrameStatics5_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x53c89b25_f0e0_58f1_a06d_441075914ff8);
}
#[repr(C)]
#[doc(hidden)]
pub struct IFrameStatics5_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsNavigationStackEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IGrid(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IGrid {
    type Vtable = IGrid_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xfd104460_2e15_4ba3_8b8f_fa693a4161e9);
}
#[repr(C)]
#[doc(hidden)]
pub struct IGrid_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation_Collections")]
    pub RowDefinitions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    RowDefinitions: usize,
    #[cfg(feature = "Foundation_Collections")]
    pub ColumnDefinitions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    ColumnDefinitions: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IGrid2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IGrid2 {
    type Vtable = IGrid2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf76efa41_380e_45db_be87_9e1326ba4b57);
}
#[repr(C)]
#[doc(hidden)]
pub struct IGrid2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Media")]
    pub BorderBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    BorderBrush: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetBorderBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetBorderBrush: usize,
    pub BorderThickness: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Thickness) -> ::windows::core::HRESULT,
    pub SetBorderThickness: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Thickness) -> ::windows::core::HRESULT,
    pub CornerRadius: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::CornerRadius) -> ::windows::core::HRESULT,
    pub SetCornerRadius: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::CornerRadius) -> ::windows::core::HRESULT,
    pub Padding: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Thickness) -> ::windows::core::HRESULT,
    pub SetPadding: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Thickness) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IGrid3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IGrid3 {
    type Vtable = IGrid3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x12dfc5fc_2342_4dd2_9e7d_2090a171d1ef);
}
#[repr(C)]
#[doc(hidden)]
pub struct IGrid3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub RowSpacing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetRowSpacing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub ColumnSpacing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetColumnSpacing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IGrid4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IGrid4 {
    type Vtable = IGrid4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xed02d274_81f1_5ac2_a0c3_bbdaf5a3ffee);
}
#[repr(C)]
#[doc(hidden)]
pub struct IGrid4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub BackgroundSizing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut BackgroundSizing) -> ::windows::core::HRESULT,
    pub SetBackgroundSizing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: BackgroundSizing) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IGridFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IGridFactory {
    type Vtable = IGridFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xae814041_c531_43b4_bf99_12f506f7b01c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IGridFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IGridStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IGridStatics {
    type Vtable = IGridStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x64fe2e9f_f951_42b6_a9ce_bb179af11595);
}
#[repr(C)]
#[doc(hidden)]
pub struct IGridStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub RowProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetRow: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetRow: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, value: i32) -> ::windows::core::HRESULT,
    pub ColumnProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetColumn: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetColumn: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, value: i32) -> ::windows::core::HRESULT,
    pub RowSpanProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetRowSpan: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetRowSpan: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, value: i32) -> ::windows::core::HRESULT,
    pub ColumnSpanProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetColumnSpan: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetColumnSpan: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, value: i32) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IGridStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IGridStatics2 {
    type Vtable = IGridStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x2d666658_58b6_4a1b_841b_875ba93b5d6a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IGridStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub BorderBrushProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub BorderThicknessProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CornerRadiusProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PaddingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IGridStatics3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IGridStatics3 {
    type Vtable = IGridStatics3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc3fba437_5a0c_407a_9621_79545386d811);
}
#[repr(C)]
#[doc(hidden)]
pub struct IGridStatics3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub RowSpacingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ColumnSpacingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IGridStatics4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IGridStatics4 {
    type Vtable = IGridStatics4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x691af349_1f63_57aa_8726_9cdcc1b14c02);
}
#[repr(C)]
#[doc(hidden)]
pub struct IGridStatics4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub BackgroundSizingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IGridView(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IGridView {
    type Vtable = IGridView_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x026ae934_b67e_4d80_8f72_8aa64b4d827b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IGridView_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IGridViewFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IGridViewFactory {
    type Vtable = IGridViewFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd9bcca89_09f9_4c6e_a83e_f199146f0e7d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IGridViewFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IGridViewHeaderItem(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IGridViewHeaderItem {
    type Vtable = IGridViewHeaderItem_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x72d75d7e_5dc3_4ffc_9b1c_939b5c37161c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IGridViewHeaderItem_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IGridViewHeaderItemFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IGridViewHeaderItemFactory {
    type Vtable = IGridViewHeaderItemFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x36e0c96e_b56a_4b3b_8bac_7aef5e6f9945);
}
#[repr(C)]
#[doc(hidden)]
pub struct IGridViewHeaderItemFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IGridViewItem(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IGridViewItem {
    type Vtable = IGridViewItem_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x7d9901f1_e7c1_4e83_b470_c9d6d7bda9f5);
}
#[repr(C)]
#[doc(hidden)]
pub struct IGridViewItem_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub TemplateSettings: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    TemplateSettings: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IGridViewItemFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IGridViewItemFactory {
    type Vtable = IGridViewItemFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x229b00af_3fa6_43e9_979d_07ea0d6280dc);
}
#[repr(C)]
#[doc(hidden)]
pub struct IGridViewItemFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IGroupItem(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IGroupItem {
    type Vtable = IGroupItem_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4ae8d5d1_7228_4a16_a61f_88c0e8f45c76);
}
#[repr(C)]
#[doc(hidden)]
pub struct IGroupItem_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IGroupItemFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IGroupItemFactory {
    type Vtable = IGroupItemFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd9a1d53e_b1e0_4319_9808_7a9e887e13b0);
}
#[repr(C)]
#[doc(hidden)]
pub struct IGroupItemFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IGroupStyle(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IGroupStyle {
    type Vtable = IGroupStyle_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x71ca300b_b89e_4184_b0df_a9e95447de8d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IGroupStyle_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Panel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetPanel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "deprecated")]
    pub ContainerStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "deprecated"))]
    ContainerStyle: usize,
    #[cfg(feature = "deprecated")]
    pub SetContainerStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "deprecated"))]
    SetContainerStyle: usize,
    #[cfg(feature = "deprecated")]
    pub ContainerStyleSelector: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "deprecated"))]
    ContainerStyleSelector: usize,
    #[cfg(feature = "deprecated")]
    pub SetContainerStyleSelector: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "deprecated"))]
    SetContainerStyleSelector: usize,
    pub HeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetHeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HeaderTemplateSelector: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetHeaderTemplateSelector: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HidesIfEmpty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetHidesIfEmpty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IGroupStyle2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IGroupStyle2 {
    type Vtable = IGroupStyle2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x69f90679_3a11_4fe7_b4df_2a0139d4018b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IGroupStyle2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub HeaderContainerStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetHeaderContainerStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IGroupStyleFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IGroupStyleFactory {
    type Vtable = IGroupStyleFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x56ff664f_e2d7_4f49_803d_c727cdf9372d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IGroupStyleFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IGroupStyleSelector(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IGroupStyleSelector {
    type Vtable = IGroupStyleSelector_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6dda119e_9a74_478f_a339_5bb52de6c51e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IGroupStyleSelector_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SelectGroupStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, group: *mut ::core::ffi::c_void, level: u32, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IGroupStyleSelectorFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IGroupStyleSelectorFactory {
    type Vtable = IGroupStyleSelectorFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xbf570d33_b2f6_481f_a450_c80c291fb22d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IGroupStyleSelectorFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IGroupStyleSelectorOverrides(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IGroupStyleSelectorOverrides {
    type Vtable = IGroupStyleSelectorOverrides_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf691cab2_77ad_4d3d_a51c_8ef9c3836456);
}
#[repr(C)]
#[doc(hidden)]
pub struct IGroupStyleSelectorOverrides_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SelectGroupStyleCore: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, group: *mut ::core::ffi::c_void, level: u32, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IHandwritingPanelClosedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IHandwritingPanelClosedEventArgs {
    type Vtable = IHandwritingPanelClosedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4fb91c73_192d_4dd2_a1a2_80ed01125876);
}
#[repr(C)]
#[doc(hidden)]
pub struct IHandwritingPanelClosedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IHandwritingPanelOpenedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IHandwritingPanelOpenedEventArgs {
    type Vtable = IHandwritingPanelOpenedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xfc15b16d_9f15_47b0_b97a_94a68cc61345);
}
#[repr(C)]
#[doc(hidden)]
pub struct IHandwritingPanelOpenedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IHandwritingView(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IHandwritingView {
    type Vtable = IHandwritingView_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc44204a7_31e0_44bc_a38b_4bee64ecd99f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IHandwritingView_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub PlacementTarget: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetPlacementTarget: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PlacementAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut HandwritingPanelPlacementAlignment) -> ::windows::core::HRESULT,
    pub SetPlacementAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: HandwritingPanelPlacementAlignment) -> ::windows::core::HRESULT,
    pub IsOpen: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub AreCandidatesEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetAreCandidatesEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub Opened: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Opened: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveOpened: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveOpened: usize,
    #[cfg(feature = "Foundation")]
    pub Closed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Closed: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveClosed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveClosed: usize,
    pub TryClose: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub TryOpen: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IHandwritingView2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IHandwritingView2 {
    type Vtable = IHandwritingView2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4bcf991b_0de1_5c9e_8970_37b9878fe171);
}
#[repr(C)]
#[doc(hidden)]
pub struct IHandwritingView2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsSwitchToKeyboardEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsSwitchToKeyboardEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsCommandBarOpen: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsCommandBarOpen: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Core")]
    pub InputDeviceTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Core::CoreInputDeviceTypes) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Core"))]
    InputDeviceTypes: usize,
    #[cfg(feature = "UI_Core")]
    pub SetInputDeviceTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::Core::CoreInputDeviceTypes) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Core"))]
    SetInputDeviceTypes: usize,
    #[cfg(feature = "Foundation")]
    pub CandidatesChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    CandidatesChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveCandidatesChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveCandidatesChanged: usize,
    #[cfg(feature = "Foundation")]
    pub TextSubmitted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    TextSubmitted: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveTextSubmitted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveTextSubmitted: usize,
    #[cfg(feature = "Foundation_Collections")]
    pub GetCandidates: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, candidatessessionid: u32, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    GetCandidates: usize,
    pub SelectCandidate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, candidatessessionid: u32, selectedcandidateindex: u32) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IHandwritingViewCandidatesChangedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IHandwritingViewCandidatesChangedEventArgs {
    type Vtable = IHandwritingViewCandidatesChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6f5f63d8_56b1_56c5_a416_c19c16bf7884);
}
#[repr(C)]
#[doc(hidden)]
pub struct IHandwritingViewCandidatesChangedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CandidatesSessionId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut u32) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IHandwritingViewFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IHandwritingViewFactory {
    type Vtable = IHandwritingViewFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe00c873f_0012_475c_890c_97ae308642de);
}
#[repr(C)]
#[doc(hidden)]
pub struct IHandwritingViewFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IHandwritingViewStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IHandwritingViewStatics {
    type Vtable = IHandwritingViewStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xbb7ceed0_cc5f_4004_b8c8_142e195f0618);
}
#[repr(C)]
#[doc(hidden)]
pub struct IHandwritingViewStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub PlacementTargetProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PlacementAlignmentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsOpenProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub AreCandidatesEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IHandwritingViewStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IHandwritingViewStatics2 {
    type Vtable = IHandwritingViewStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x2cd052e4_d703_5183_a1be_7e285df978d9);
}
#[repr(C)]
#[doc(hidden)]
pub struct IHandwritingViewStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsSwitchToKeyboardEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsCommandBarOpenProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IHandwritingViewTextSubmittedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IHandwritingViewTextSubmittedEventArgs {
    type Vtable = IHandwritingViewTextSubmittedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x55ac0f47_f5e4_55da_b8a3_d418b7564291);
}
#[repr(C)]
#[doc(hidden)]
pub struct IHandwritingViewTextSubmittedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IHub(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IHub {
    type Vtable = IHub_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xae692e82_7314_4f51_ab11_2af1ed4a19f8);
}
#[repr(C)]
#[doc(hidden)]
pub struct IHub_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Header: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetHeader: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub HeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetHeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub Orientation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut Orientation) -> ::windows::core::HRESULT,
    pub SetOrientation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: Orientation) -> ::windows::core::HRESULT,
    pub DefaultSectionIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetDefaultSectionIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation_Collections")]
    pub Sections: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    Sections: usize,
    #[cfg(feature = "Foundation_Collections")]
    pub SectionsInView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    SectionsInView: usize,
    #[cfg(feature = "Foundation_Collections")]
    pub SectionHeaders: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    SectionHeaders: usize,
    #[cfg(feature = "Foundation")]
    pub SectionHeaderClick: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SectionHeaderClick: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveSectionHeaderClick: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveSectionHeaderClick: usize,
    #[cfg(feature = "Foundation")]
    pub SectionsInViewChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SectionsInViewChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveSectionsInViewChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveSectionsInViewChanged: usize,
    pub ScrollToSection: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, section: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IHubFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IHubFactory {
    type Vtable = IHubFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xdca6b2ba_c6f5_4961_9953_c51873db5424);
}
#[repr(C)]
#[doc(hidden)]
pub struct IHubFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IHubSection(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IHubSection {
    type Vtable = IHubSection_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa4e66cb7_7fdd_4fe0_ab49_c246639dccf9);
}
#[repr(C)]
#[doc(hidden)]
pub struct IHubSection_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Header: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetHeader: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub HeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetHeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ContentTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetContentTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsHeaderInteractive: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsHeaderInteractive: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IHubSectionFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IHubSectionFactory {
    type Vtable = IHubSectionFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xfff55fa2_ece4_4bba_aa3b_9804aef47883);
}
#[repr(C)]
#[doc(hidden)]
pub struct IHubSectionFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IHubSectionHeaderClickEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IHubSectionHeaderClickEventArgs {
    type Vtable = IHubSectionHeaderClickEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe1c5ef04_1edd_4112_aeeb_996c96400698);
}
#[repr(C)]
#[doc(hidden)]
pub struct IHubSectionHeaderClickEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Section: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IHubSectionStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IHubSectionStatics {
    type Vtable = IHubSectionStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x12d2d85a_ea27_42d1_998b_61e52aed842b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IHubSectionStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub HeaderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HeaderTemplateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ContentTemplateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsHeaderInteractiveProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IHubStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IHubStatics {
    type Vtable = IHubStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0e6fa034_ad3c_4f32_b701_e24fab562028);
}
#[repr(C)]
#[doc(hidden)]
pub struct IHubStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub HeaderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HeaderTemplateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OrientationProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DefaultSectionIndexProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SemanticZoomOwnerProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsActiveViewProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsZoomedInViewProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IHyperlinkButton(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IHyperlinkButton {
    type Vtable = IHyperlinkButton_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xccebaca3_3b5c_4f4c_9bfd_86887bc79772);
}
#[repr(C)]
#[doc(hidden)]
pub struct IHyperlinkButton_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub NavigateUri: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    NavigateUri: usize,
    #[cfg(feature = "Foundation")]
    pub SetNavigateUri: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SetNavigateUri: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IHyperlinkButtonFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IHyperlinkButtonFactory {
    type Vtable = IHyperlinkButtonFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x43521bad_4e97_4da9_a64d_935dfd8cedf2);
}
#[repr(C)]
#[doc(hidden)]
pub struct IHyperlinkButtonFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IHyperlinkButtonStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IHyperlinkButtonStatics {
    type Vtable = IHyperlinkButtonStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xfbaeb5c7_cdb7_4263_b7d6_3c0d2904ed98);
}
#[repr(C)]
#[doc(hidden)]
pub struct IHyperlinkButtonStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub NavigateUriProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IIconElement(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IIconElement {
    type Vtable = IIconElement_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9af0803b_d04c_467a_bbd5_9b81f02d9a56);
}
#[repr(C)]
#[doc(hidden)]
pub struct IIconElement_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Media")]
    pub Foreground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    Foreground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetForeground: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IIconElementFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IIconElementFactory {
    type Vtable = IIconElementFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xcf37a562_0424_43c7_8bea_720fba973ef1);
}
#[repr(C)]
#[doc(hidden)]
pub struct IIconElementFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IIconElementStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IIconElementStatics {
    type Vtable = IIconElementStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xbe19a623_77cf_472f_82ea_047801d12012);
}
#[repr(C)]
#[doc(hidden)]
pub struct IIconElementStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ForegroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IIconSource(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IIconSource {
    type Vtable = IIconSource_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x92ec8d55_45eb_47a4_863c_91b224044f9b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IIconSource_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Media")]
    pub Foreground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    Foreground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetForeground: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IIconSourceElement(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IIconSourceElement {
    type Vtable = IIconSourceElement_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd7a64502_ddda_55cd_b4c9_e79abc8b0ea4);
}
#[repr(C)]
#[doc(hidden)]
pub struct IIconSourceElement_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IconSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetIconSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IIconSourceElementFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IIconSourceElementFactory {
    type Vtable = IIconSourceElementFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x26b59fab_2092_5b95_b59e_f27f210689e7);
}
#[repr(C)]
#[doc(hidden)]
pub struct IIconSourceElementFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IIconSourceElementStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IIconSourceElementStatics {
    type Vtable = IIconSourceElementStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf37cfd45_f3d8_50ff_a1b8_0fba4ae61d79);
}
#[repr(C)]
#[doc(hidden)]
pub struct IIconSourceElementStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IconSourceProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IIconSourceFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IIconSourceFactory {
    type Vtable = IIconSourceFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4d117cf1_1fd6_49d7_b483_02ec3de997d6);
}
#[repr(C)]
#[doc(hidden)]
pub struct IIconSourceFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IIconSourceStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IIconSourceStatics {
    type Vtable = IIconSourceStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1d389dbe_1cd3_4f4f_83b0_55dc6387685b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IIconSourceStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ForegroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IImage(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IImage {
    type Vtable = IImage_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x495b7402_9af3_4e50_aa90_03388f3086d2);
}
#[repr(C)]
#[doc(hidden)]
pub struct IImage_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Media")]
    pub Source: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    Source: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetSource: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub Stretch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Media::Stretch) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    Stretch: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetStretch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Media::Stretch) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetStretch: usize,
    pub NineGrid: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Thickness) -> ::windows::core::HRESULT,
    pub SetNineGrid: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Thickness) -> ::windows::core::HRESULT,
    #[cfg(all(feature = "Media_PlayTo", feature = "deprecated"))]
    pub PlayToSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Media_PlayTo", feature = "deprecated")))]
    PlayToSource: usize,
    #[cfg(feature = "Foundation")]
    pub ImageFailed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ImageFailed: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveImageFailed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveImageFailed: usize,
    #[cfg(feature = "Foundation")]
    pub ImageOpened: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ImageOpened: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveImageOpened: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveImageOpened: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IImage2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IImage2 {
    type Vtable = IImage2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf445119e_881f_48bb_873a_64417ca4f002);
}
#[repr(C)]
#[doc(hidden)]
pub struct IImage2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Media_Casting")]
    pub GetAsCastingSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Media_Casting"))]
    GetAsCastingSource: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IImage3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IImage3 {
    type Vtable = IImage3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x06ebe792_47c2_4d92_a488_8cd685d06aca);
}
#[repr(C)]
#[doc(hidden)]
pub struct IImage3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Composition")]
    pub GetAlphaMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Composition"))]
    GetAlphaMask: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IImageStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IImageStatics {
    type Vtable = IImageStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x89903772_c336_43d1_9d51_c3bbd5d5d691);
}
#[repr(C)]
#[doc(hidden)]
pub struct IImageStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SourceProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub StretchProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub NineGridProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "deprecated")]
    pub PlayToSourceProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "deprecated"))]
    PlayToSourceProperty: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkCanvas(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkCanvas {
    type Vtable = IInkCanvas_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x29443c28_8e48_4fc8_a473_35b0ba12acea);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkCanvas_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Input_Inking")]
    pub InkPresenter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Input_Inking"))]
    InkPresenter: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkCanvasFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkCanvasFactory {
    type Vtable = IInkCanvasFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x924ac2de_ab04_48f0_9653_e0f2da4dbf1a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkCanvasFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbar(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbar {
    type Vtable = IInkToolbar_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3ddd0cca_51f0_486f_a03e_4ee13dc12bcb);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbar_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub InitialControls: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut InkToolbarInitialControls) -> ::windows::core::HRESULT,
    pub SetInitialControls: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: InkToolbarInitialControls) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation_Collections")]
    pub Children: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    Children: usize,
    pub ActiveTool: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetActiveTool: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Input_Inking")]
    pub InkDrawingAttributes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Input_Inking"))]
    InkDrawingAttributes: usize,
    pub IsRulerButtonChecked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsRulerButtonChecked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub TargetInkCanvas: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetTargetInkCanvas: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub ActiveToolChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ActiveToolChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveActiveToolChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveActiveToolChanged: usize,
    #[cfg(feature = "Foundation")]
    pub InkDrawingAttributesChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    InkDrawingAttributesChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveInkDrawingAttributesChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveInkDrawingAttributesChanged: usize,
    #[cfg(feature = "Foundation")]
    pub EraseAllClicked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    EraseAllClicked: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveEraseAllClicked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveEraseAllClicked: usize,
    #[cfg(all(feature = "Foundation", feature = "deprecated"))]
    pub IsRulerButtonCheckedChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation", feature = "deprecated")))]
    IsRulerButtonCheckedChanged: usize,
    #[cfg(all(feature = "Foundation", feature = "deprecated"))]
    pub RemoveIsRulerButtonCheckedChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation", feature = "deprecated")))]
    RemoveIsRulerButtonCheckedChanged: usize,
    pub GetToolButton: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tool: InkToolbarTool, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetToggleButton: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tool: InkToolbarToggle, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbar2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbar2 {
    type Vtable = IInkToolbar2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x86f0c111_b484_454a_ae78_1d25a33d1c67);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbar2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsStencilButtonChecked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsStencilButtonChecked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub ButtonFlyoutPlacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut InkToolbarButtonFlyoutPlacement) -> ::windows::core::HRESULT,
    pub SetButtonFlyoutPlacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: InkToolbarButtonFlyoutPlacement) -> ::windows::core::HRESULT,
    pub Orientation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut Orientation) -> ::windows::core::HRESULT,
    pub SetOrientation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: Orientation) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub IsStencilButtonCheckedChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    IsStencilButtonCheckedChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveIsStencilButtonCheckedChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveIsStencilButtonCheckedChanged: usize,
    pub GetMenuButton: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, menu: InkToolbarMenuKind, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbar3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbar3 {
    type Vtable = IInkToolbar3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa8a6def0_7aa8_5326_b7c4_88ae25013362);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbar3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Input_Inking")]
    pub TargetInkPresenter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Input_Inking"))]
    TargetInkPresenter: usize,
    #[cfg(feature = "UI_Input_Inking")]
    pub SetTargetInkPresenter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Input_Inking"))]
    SetTargetInkPresenter: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarBallpointPenButton(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarBallpointPenButton {
    type Vtable = IInkToolbarBallpointPenButton_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x158329f8_1e99_3acc_910f_9da2d872ae12);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarBallpointPenButton_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarBallpointPenButtonFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarBallpointPenButtonFactory {
    type Vtable = IInkToolbarBallpointPenButtonFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x2f0bd3e4_d754_4255_8ec4_00cd101296ab);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarBallpointPenButtonFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarCustomPen(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarCustomPen {
    type Vtable = IInkToolbarCustomPen_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4082207b_2f3d_4e6a_8c27_fe61ef7e70eb);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarCustomPen_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(all(feature = "UI_Input_Inking", feature = "UI_Xaml_Media"))]
    pub CreateInkDrawingAttributes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, brush: ::windows::core::RawPtr, strokewidth: f64, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "UI_Input_Inking", feature = "UI_Xaml_Media")))]
    CreateInkDrawingAttributes: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarCustomPenButton(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarCustomPenButton {
    type Vtable = IInkToolbarCustomPenButton_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x46024401_2b2a_4f3c_a53c_1a045a408efa);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarCustomPenButton_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CustomPen: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetCustomPen: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ConfigurationContent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetConfigurationContent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarCustomPenButtonFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarCustomPenButtonFactory {
    type Vtable = IInkToolbarCustomPenButtonFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0f2ef0ba_c8b9_4c36_8987_94d3dafede18);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarCustomPenButtonFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarCustomPenButtonStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarCustomPenButtonStatics {
    type Vtable = IInkToolbarCustomPenButtonStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x373c25f4_e555_4e85_a80d_da6b8433dbde);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarCustomPenButtonStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CustomPenProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ConfigurationContentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarCustomPenFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarCustomPenFactory {
    type Vtable = IInkToolbarCustomPenFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd214d636_f1aa_4f48_bf2c_a926caae4c60);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarCustomPenFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarCustomPenOverrides(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarCustomPenOverrides {
    type Vtable = IInkToolbarCustomPenOverrides_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9d22eb6c_1255_4256_b6bd_82c2fd273488);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarCustomPenOverrides_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(all(feature = "UI_Input_Inking", feature = "UI_Xaml_Media"))]
    pub CreateInkDrawingAttributesCore: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, brush: ::windows::core::RawPtr, strokewidth: f64, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "UI_Input_Inking", feature = "UI_Xaml_Media")))]
    CreateInkDrawingAttributesCore: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarCustomToggleButton(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarCustomToggleButton {
    type Vtable = IInkToolbarCustomToggleButton_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x550c4d84_4f54_4fbe_b12b_e0a50aab0d05);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarCustomToggleButton_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarCustomToggleButtonFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarCustomToggleButtonFactory {
    type Vtable = IInkToolbarCustomToggleButtonFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4a00374d_4cd2_4ed9_863e_83b8cf3fd2af);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarCustomToggleButtonFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarCustomToolButton(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarCustomToolButton {
    type Vtable = IInkToolbarCustomToolButton_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9f98acd7_c605_4105_be10_3943a7c0da3c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarCustomToolButton_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ConfigurationContent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetConfigurationContent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarCustomToolButtonFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarCustomToolButtonFactory {
    type Vtable = IInkToolbarCustomToolButtonFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc295fe4e_30eb_4130_a6b6_8c85d8e26e89);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarCustomToolButtonFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarCustomToolButtonStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarCustomToolButtonStatics {
    type Vtable = IInkToolbarCustomToolButtonStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x11fe4cb9_bbac_4314_9344_92c6693ddeaf);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarCustomToolButtonStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ConfigurationContentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarEraserButton(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarEraserButton {
    type Vtable = IInkToolbarEraserButton_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4cbdb92e_5f5e_4b35_a41c_16ffb0283bc0);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarEraserButton_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarEraserButton2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarEraserButton2 {
    type Vtable = IInkToolbarEraserButton2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe7a59257_5ae8_436d_b2e2_93c200900ca0);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarEraserButton2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsClearAllVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsClearAllVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarEraserButtonFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarEraserButtonFactory {
    type Vtable = IInkToolbarEraserButtonFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xfd40611d_d1ba_4d67_af00_148036ad492c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarEraserButtonFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarEraserButtonStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarEraserButtonStatics2 {
    type Vtable = IInkToolbarEraserButtonStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x038a1736_c5cd_4311_83f4_38cbf07c2066);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarEraserButtonStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsClearAllVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarFactory {
    type Vtable = IInkToolbarFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3947aa99_36b1_4374_ab5c_98bf07a4320b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarFlyoutItem(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarFlyoutItem {
    type Vtable = IInkToolbarFlyoutItem_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x92b68786_37ee_4915_9e89_e187564a889a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarFlyoutItem_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Kind: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut InkToolbarFlyoutItemKind) -> ::windows::core::HRESULT,
    pub SetKind: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: InkToolbarFlyoutItemKind) -> ::windows::core::HRESULT,
    pub IsChecked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsChecked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub Checked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Checked: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveChecked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveChecked: usize,
    #[cfg(feature = "Foundation")]
    pub Unchecked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Unchecked: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveUnchecked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveUnchecked: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarFlyoutItemFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarFlyoutItemFactory {
    type Vtable = IInkToolbarFlyoutItemFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x352e7b93_803b_4f0e_8c72_9dfc0329329f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarFlyoutItemFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarFlyoutItemStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarFlyoutItemStatics {
    type Vtable = IInkToolbarFlyoutItemStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1fe54b64_4063_4a5f_b89c_9f58935ee379);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarFlyoutItemStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub KindProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsCheckedProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarHighlighterButton(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarHighlighterButton {
    type Vtable = IInkToolbarHighlighterButton_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0b3cc15b_7abf_487e_acc1_5b5048fee6d2);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarHighlighterButton_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarHighlighterButtonFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarHighlighterButtonFactory {
    type Vtable = IInkToolbarHighlighterButtonFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x7c334add_42ca_4943_94a4_23b5a6e55cf1);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarHighlighterButtonFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarIsStencilButtonCheckedChangedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarIsStencilButtonCheckedChangedEventArgs {
    type Vtable = IInkToolbarIsStencilButtonCheckedChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x026edd26_d32b_4e28_a033_d5097662b292);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarIsStencilButtonCheckedChangedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub StencilButton: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub StencilKind: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut InkToolbarStencilKind) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarMenuButton(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarMenuButton {
    type Vtable = IInkToolbarMenuButton_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x860ecae5_7633_4ea1_a209_50392d1aebd1);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarMenuButton_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub MenuKind: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut InkToolbarMenuKind) -> ::windows::core::HRESULT,
    pub IsExtensionGlyphShown: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsExtensionGlyphShown: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarMenuButtonFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarMenuButtonFactory {
    type Vtable = IInkToolbarMenuButtonFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x7a463a9d_5dc7_44a7_afd0_2b685cb9a96c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarMenuButtonFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarMenuButtonStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarMenuButtonStatics {
    type Vtable = IInkToolbarMenuButtonStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf03b17a6_b8b0_4a87_a961_37cd05d83137);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarMenuButtonStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsExtensionGlyphShownProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarPenButton(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarPenButton {
    type Vtable = IInkToolbarPenButton_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe0b80c21_b032_40ee_a2b9_507f6ccb827b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarPenButton_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media"))]
    pub Palette: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media")))]
    Palette: usize,
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media"))]
    pub SetPalette: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media")))]
    SetPalette: usize,
    pub MinStrokeWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetMinStrokeWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub MaxStrokeWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetMaxStrokeWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SelectedBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SelectedBrush: usize,
    pub SelectedBrushIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetSelectedBrushIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
    pub SelectedStrokeWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetSelectedStrokeWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarPenButtonFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarPenButtonFactory {
    type Vtable = IInkToolbarPenButtonFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb1463d21_59cb_4a83_92e1_692842797b2e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarPenButtonFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarPenButtonStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarPenButtonStatics {
    type Vtable = IInkToolbarPenButtonStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb922ce42_09f0_453d_8026_44daf2753f65);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarPenButtonStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub PaletteProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MinStrokeWidthProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MaxStrokeWidthProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SelectedBrushProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SelectedBrushIndexProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SelectedStrokeWidthProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarPenConfigurationControl(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarPenConfigurationControl {
    type Vtable = IInkToolbarPenConfigurationControl_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x601ae5f6_28a5_44cc_89a6_380e91a572dd);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarPenConfigurationControl_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub PenButton: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarPenConfigurationControlFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarPenConfigurationControlFactory {
    type Vtable = IInkToolbarPenConfigurationControlFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x67f065ee_f5e7_46eb_9187_8d3ca3af891b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarPenConfigurationControlFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarPenConfigurationControlStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarPenConfigurationControlStatics {
    type Vtable = IInkToolbarPenConfigurationControlStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x48a61bef_19ce_41bb_abe0_7c8726fae75e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarPenConfigurationControlStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub PenButtonProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarPencilButton(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarPencilButton {
    type Vtable = IInkToolbarPencilButton_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5b112832_1984_4148_9f25_382b35db087f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarPencilButton_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarPencilButtonFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarPencilButtonFactory {
    type Vtable = IInkToolbarPencilButtonFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xdb66d85f_cfd6_495f_93ab_b8566af9f8af);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarPencilButtonFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[cfg(feature = "deprecated")]
#[repr(transparent)]
pub struct IInkToolbarRulerButton(::windows::core::IUnknown);
#[cfg(feature = "deprecated")]
unsafe impl ::windows::core::Interface for IInkToolbarRulerButton {
    type Vtable = IInkToolbarRulerButton_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4a992832_1984_4148_9f25_382b35db087f);
}
#[cfg(feature = "deprecated")]
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarRulerButton_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(all(feature = "UI_Input_Inking", feature = "deprecated"))]
    pub Ruler: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "UI_Input_Inking", feature = "deprecated")))]
    Ruler: usize,
}
#[doc(hidden)]
#[cfg(feature = "deprecated")]
#[repr(transparent)]
pub struct IInkToolbarRulerButtonFactory(::windows::core::IUnknown);
#[cfg(feature = "deprecated")]
unsafe impl ::windows::core::Interface for IInkToolbarRulerButtonFactory {
    type Vtable = IInkToolbarRulerButtonFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xbb26d85f_cfd6_495f_93ab_b8566af9f8af);
}
#[cfg(feature = "deprecated")]
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarRulerButtonFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "deprecated")]
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "deprecated"))]
    CreateInstance: usize,
}
#[doc(hidden)]
#[cfg(feature = "deprecated")]
#[repr(transparent)]
pub struct IInkToolbarRulerButtonStatics(::windows::core::IUnknown);
#[cfg(feature = "deprecated")]
unsafe impl ::windows::core::Interface for IInkToolbarRulerButtonStatics {
    type Vtable = IInkToolbarRulerButtonStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xbae75f65_be30_4bee_964b_ff9e498fee37);
}
#[cfg(feature = "deprecated")]
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarRulerButtonStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "deprecated")]
    pub RulerProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "deprecated"))]
    RulerProperty: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarStatics {
    type Vtable = IInkToolbarStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa3b493bb_cb4f_4e6b_a33d_f11e7a295efa);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub InitialControlsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ChildrenProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ActiveToolProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub InkDrawingAttributesProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsRulerButtonCheckedProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TargetInkCanvasProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarStatics2 {
    type Vtable = IInkToolbarStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xaac1f8f2_2c1f_4e9c_b3f3_31ff22b51c7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsStencilButtonCheckedProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ButtonFlyoutPlacementProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OrientationProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarStatics3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarStatics3 {
    type Vtable = IInkToolbarStatics3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa0ee663d_b63f_516e_a0a4_0704c4544d62);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarStatics3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub TargetInkPresenterProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarStencilButton(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarStencilButton {
    type Vtable = IInkToolbarStencilButton_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x306a2616_5b40_4bf3_92b7_f1df936aeff5);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarStencilButton_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Input_Inking")]
    pub Ruler: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Input_Inking"))]
    Ruler: usize,
    #[cfg(feature = "UI_Input_Inking")]
    pub Protractor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Input_Inking"))]
    Protractor: usize,
    pub SelectedStencil: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut InkToolbarStencilKind) -> ::windows::core::HRESULT,
    pub SetSelectedStencil: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: InkToolbarStencilKind) -> ::windows::core::HRESULT,
    pub IsRulerItemVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsRulerItemVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsProtractorItemVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsProtractorItemVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarStencilButtonFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarStencilButtonFactory {
    type Vtable = IInkToolbarStencilButtonFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa20701d1_8a70_4d77_89d4_1730a3a58edf);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarStencilButtonFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarStencilButtonStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarStencilButtonStatics {
    type Vtable = IInkToolbarStencilButtonStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4748c07f_63e4_420d_939a_6b7243e9d124);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarStencilButtonStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub RulerProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ProtractorProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SelectedStencilProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsRulerItemVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsProtractorItemVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarToggleButton(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarToggleButton {
    type Vtable = IInkToolbarToggleButton_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb4a278fa_f5f0_4b1f_beb0_0b8a29905a4a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarToggleButton_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ToggleKind: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut InkToolbarToggle) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarToggleButtonFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarToggleButtonFactory {
    type Vtable = IInkToolbarToggleButtonFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb2f90710_e5a1_4365_9d1a_e5b7ad8b9668);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarToggleButtonFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarToolButton(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarToolButton {
    type Vtable = IInkToolbarToolButton_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5c5af41e_ccb7_4458_8064_a9849d31561b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarToolButton_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ToolKind: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut InkToolbarTool) -> ::windows::core::HRESULT,
    pub IsExtensionGlyphShown: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsExtensionGlyphShown: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarToolButtonFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarToolButtonFactory {
    type Vtable = IInkToolbarToolButtonFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6293bf4b_89fe_4ed0_a1a6_88d3eba917b2);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarToolButtonFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IInkToolbarToolButtonStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IInkToolbarToolButtonStatics {
    type Vtable = IInkToolbarToolButtonStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9e097d18_d136_4ef6_b0fd_1a78c2884a01);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInkToolbarToolButtonStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsExtensionGlyphShownProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct IInsertionPanel(::windows::core::IUnknown);
impl IInsertionPanel {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn GetInsertionIndexes<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::Point>>(&self, position: Param0, first: &mut i32, second: &mut i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).GetInsertionIndexes)(::core::mem::transmute_copy(this), position.into_param().abi(), first, second).ok() }
    }
}
impl ::core::convert::From<IInsertionPanel> for ::windows::core::IUnknown {
    fn from(value: IInsertionPanel) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IInsertionPanel> for ::windows::core::IUnknown {
    fn from(value: &IInsertionPanel) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for IInsertionPanel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a IInsertionPanel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<IInsertionPanel> for ::windows::core::IInspectable {
    fn from(value: IInsertionPanel) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IInsertionPanel> for ::windows::core::IInspectable {
    fn from(value: &IInsertionPanel) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for IInsertionPanel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a IInsertionPanel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for IInsertionPanel {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IInsertionPanel {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IInsertionPanel {}
impl ::core::fmt::Debug for IInsertionPanel {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IInsertionPanel").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for IInsertionPanel {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"{6b8de08f-6527-4d39-bcbf-58b01da923d7}");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for IInsertionPanel {
    type Vtable = IInsertionPanel_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6b8de08f_6527_4d39_bcbf_58b01da923d7);
}
#[repr(C)]
#[doc(hidden)]
pub struct IInsertionPanel_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub GetInsertionIndexes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, position: super::super::super::Foundation::Point, first: *mut i32, second: *mut i32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    GetInsertionIndexes: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IIsTextTrimmedChangedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IIsTextTrimmedChangedEventArgs {
    type Vtable = IIsTextTrimmedChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x16f597cd_ebff_4fb4_8714_26147418b945);
}
#[repr(C)]
#[doc(hidden)]
pub struct IIsTextTrimmedChangedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IItemClickEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IItemClickEventArgs {
    type Vtable = IItemClickEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9c314242_f29a_494d_a3a5_d4c7b2a46852);
}
#[repr(C)]
#[doc(hidden)]
pub struct IItemClickEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ClickedItem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IItemContainerGenerator(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IItemContainerGenerator {
    type Vtable = IItemContainerGenerator_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x40765f00_83f0_4d7f_b1b8_f19de4f1d5da);
}
#[repr(C)]
#[doc(hidden)]
pub struct IItemContainerGenerator_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Controls_Primitives"))]
    pub ItemsChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation", feature = "UI_Xaml_Controls_Primitives")))]
    ItemsChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveItemsChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveItemsChanged: usize,
    #[cfg(feature = "deprecated")]
    pub ItemFromContainer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, container: ::windows::core::RawPtr, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "deprecated"))]
    ItemFromContainer: usize,
    #[cfg(feature = "deprecated")]
    pub ContainerFromItem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, item: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "deprecated"))]
    ContainerFromItem: usize,
    #[cfg(feature = "deprecated")]
    pub IndexFromContainer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, container: ::windows::core::RawPtr, result__: *mut i32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "deprecated"))]
    IndexFromContainer: usize,
    #[cfg(feature = "deprecated")]
    pub ContainerFromIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: i32, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "deprecated"))]
    ContainerFromIndex: usize,
    pub GetItemContainerGeneratorForPanel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, panel: ::windows::core::RawPtr, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub StartAt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, position: Primitives::GeneratorPosition, direction: Primitives::GeneratorDirection, allowstartatrealizeditem: bool) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    StartAt: usize,
    pub Stop: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GenerateNext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, isnewlyrealized: *mut bool, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PrepareItemContainer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, container: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub RemoveAll: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub Remove: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, position: Primitives::GeneratorPosition, count: i32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    Remove: usize,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub GeneratorPositionFromIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, itemindex: i32, result__: *mut Primitives::GeneratorPosition) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    GeneratorPositionFromIndex: usize,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub IndexFromGeneratorPosition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, position: Primitives::GeneratorPosition, result__: *mut i32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    IndexFromGeneratorPosition: usize,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub Recycle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, position: Primitives::GeneratorPosition, count: i32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    Recycle: usize,
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct IItemContainerMapping(::windows::core::IUnknown);
impl IItemContainerMapping {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemFromContainer<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(&self, container: Param0) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemFromContainer)(::core::mem::transmute_copy(this), container.into_param().abi(), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContainerFromItem<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, item: Param0) -> ::windows::core::Result<super::DependencyObject> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContainerFromItem)(::core::mem::transmute_copy(this), item.into_param().abi(), &mut result__).from_abi::<super::DependencyObject>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IndexFromContainer<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(&self, container: Param0) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IndexFromContainer)(::core::mem::transmute_copy(this), container.into_param().abi(), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContainerFromIndex(&self, index: i32) -> ::windows::core::Result<super::DependencyObject> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContainerFromIndex)(::core::mem::transmute_copy(this), index, &mut result__).from_abi::<super::DependencyObject>(result__)
        }
    }
}
impl ::core::convert::From<IItemContainerMapping> for ::windows::core::IUnknown {
    fn from(value: IItemContainerMapping) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IItemContainerMapping> for ::windows::core::IUnknown {
    fn from(value: &IItemContainerMapping) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for IItemContainerMapping {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a IItemContainerMapping {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<IItemContainerMapping> for ::windows::core::IInspectable {
    fn from(value: IItemContainerMapping) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IItemContainerMapping> for ::windows::core::IInspectable {
    fn from(value: &IItemContainerMapping) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for IItemContainerMapping {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a IItemContainerMapping {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for IItemContainerMapping {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IItemContainerMapping {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IItemContainerMapping {}
impl ::core::fmt::Debug for IItemContainerMapping {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IItemContainerMapping").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for IItemContainerMapping {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"{53c9f23a-f25d-446a-99b8-c7aeb839050f}");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for IItemContainerMapping {
    type Vtable = IItemContainerMapping_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x53c9f23a_f25d_446a_99b8_c7aeb839050f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IItemContainerMapping_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ItemFromContainer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, container: ::windows::core::RawPtr, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub ContainerFromItem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, item: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IndexFromContainer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, container: ::windows::core::RawPtr, result__: *mut i32) -> ::windows::core::HRESULT,
    pub ContainerFromIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: i32, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IItemsControl(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IItemsControl {
    type Vtable = IItemsControl_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf4a91dd8_d979_4381_8652_bda0342a765e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IItemsControl_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ItemsSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetItemsSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation_Collections")]
    pub Items: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    Items: usize,
    pub ItemTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetItemTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ItemTemplateSelector: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetItemTemplateSelector: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ItemsPanel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetItemsPanel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DisplayMemberPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetDisplayMemberPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub ItemContainerStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetItemContainerStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ItemContainerStyleSelector: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetItemContainerStyleSelector: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ItemContainerGenerator: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub ItemContainerTransitions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation")))]
    ItemContainerTransitions: usize,
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub SetItemContainerTransitions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation")))]
    SetItemContainerTransitions: usize,
    #[cfg(feature = "Foundation_Collections")]
    pub GroupStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    GroupStyle: usize,
    pub GroupStyleSelector: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetGroupStyleSelector: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsGrouping: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IItemsControl2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IItemsControl2 {
    type Vtable = IItemsControl2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x754c3266_0529_45e3_8748_bf747d158357);
}
#[repr(C)]
#[doc(hidden)]
pub struct IItemsControl2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ItemsPanelRoot: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IItemsControl3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IItemsControl3 {
    type Vtable = IItemsControl3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x502b7489_aee4_4de3_a2ab_195ac20c4212);
}
#[repr(C)]
#[doc(hidden)]
pub struct IItemsControl3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub GroupHeaderContainerFromItemContainer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, itemcontainer: ::windows::core::RawPtr, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IItemsControlFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IItemsControlFactory {
    type Vtable = IItemsControlFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf7bbc359_f8fd_471c_bcb2_2c74be8ebf8c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IItemsControlFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IItemsControlOverrides(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IItemsControlOverrides {
    type Vtable = IItemsControlOverrides_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc79bb41b_a084_4301_a496_72971f364ed1);
}
#[repr(C)]
#[doc(hidden)]
pub struct IItemsControlOverrides_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsItemItsOwnContainerOverride: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, item: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub GetContainerForItemOverride: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ClearContainerForItemOverride: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, item: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub PrepareContainerForItemOverride: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, item: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub OnItemsChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub OnItemContainerStyleChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, olditemcontainerstyle: ::windows::core::RawPtr, newitemcontainerstyle: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OnItemContainerStyleSelectorChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, olditemcontainerstyleselector: ::windows::core::RawPtr, newitemcontainerstyleselector: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OnItemTemplateChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, olditemtemplate: ::windows::core::RawPtr, newitemtemplate: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OnItemTemplateSelectorChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, olditemtemplateselector: ::windows::core::RawPtr, newitemtemplateselector: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OnGroupStyleSelectorChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, oldgroupstyleselector: ::windows::core::RawPtr, newgroupstyleselector: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IItemsControlStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IItemsControlStatics {
    type Vtable = IItemsControlStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x37dabd89_dcfb_45b8_9afe_874df097905e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IItemsControlStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ItemsSourceProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ItemTemplateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ItemTemplateSelectorProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ItemsPanelProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DisplayMemberPathProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ItemContainerStyleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ItemContainerStyleSelectorProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ItemContainerTransitionsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GroupStyleSelectorProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsGroupingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetItemsOwner: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ItemsControlFromItemContainer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, container: ::windows::core::RawPtr, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IItemsPanelTemplate(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IItemsPanelTemplate {
    type Vtable = IItemsPanelTemplate_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x14ead768_34b2_4b97_bf3c_e8d73230a2aa);
}
#[repr(C)]
#[doc(hidden)]
pub struct IItemsPanelTemplate_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IItemsPickedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IItemsPickedEventArgs {
    type Vtable = IItemsPickedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf95b9aac_a621_488e_9156_8ee31165be04);
}
#[repr(C)]
#[doc(hidden)]
pub struct IItemsPickedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation_Collections")]
    pub AddedItems: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    AddedItems: usize,
    #[cfg(feature = "Foundation_Collections")]
    pub RemovedItems: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    RemovedItems: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IItemsPresenter(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IItemsPresenter {
    type Vtable = IItemsPresenter_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc271569b_6dca_4e2b_8e14_c55136b02a71);
}
#[repr(C)]
#[doc(hidden)]
pub struct IItemsPresenter_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Header: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetHeader: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub HeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetHeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub HeaderTransitions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation")))]
    HeaderTransitions: usize,
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub SetHeaderTransitions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation")))]
    SetHeaderTransitions: usize,
    pub Padding: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Thickness) -> ::windows::core::HRESULT,
    pub SetPadding: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Thickness) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IItemsPresenter2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IItemsPresenter2 {
    type Vtable = IItemsPresenter2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5c04aa33_1df3_4731_a4c9_da818378d63d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IItemsPresenter2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Footer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetFooter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub FooterTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetFooterTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub FooterTransitions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation")))]
    FooterTransitions: usize,
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub SetFooterTransitions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation")))]
    SetFooterTransitions: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IItemsPresenterStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IItemsPresenterStatics {
    type Vtable = IItemsPresenterStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x18de66cd_4a6c_4b2e_aa86_cb126c9a2920);
}
#[repr(C)]
#[doc(hidden)]
pub struct IItemsPresenterStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub HeaderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HeaderTemplateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HeaderTransitionsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PaddingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IItemsPresenterStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IItemsPresenterStatics2 {
    type Vtable = IItemsPresenterStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8971632e_7867_4d66_9630_29f1c5f7403f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IItemsPresenterStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub FooterProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FooterTemplateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FooterTransitionsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IItemsStackPanel(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IItemsStackPanel {
    type Vtable = IItemsStackPanel_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xdf7ab79d_7ad5_4b58_9363_919af90226e6);
}
#[repr(C)]
#[doc(hidden)]
pub struct IItemsStackPanel_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub GroupPadding: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Thickness) -> ::windows::core::HRESULT,
    pub SetGroupPadding: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Thickness) -> ::windows::core::HRESULT,
    pub Orientation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut Orientation) -> ::windows::core::HRESULT,
    pub SetOrientation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: Orientation) -> ::windows::core::HRESULT,
    pub FirstCacheIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub FirstVisibleIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub LastVisibleIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub LastCacheIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub ScrollingDirection: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut PanelScrollingDirection) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub GroupHeaderPlacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut Primitives::GroupHeaderPlacement) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    GroupHeaderPlacement: usize,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub SetGroupHeaderPlacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: Primitives::GroupHeaderPlacement) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    SetGroupHeaderPlacement: usize,
    pub ItemsUpdatingScrollMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ItemsUpdatingScrollMode) -> ::windows::core::HRESULT,
    pub SetItemsUpdatingScrollMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ItemsUpdatingScrollMode) -> ::windows::core::HRESULT,
    pub CacheLength: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetCacheLength: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IItemsStackPanel2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IItemsStackPanel2 {
    type Vtable = IItemsStackPanel2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xeeeecdb0_00b4_4534_937b_56318b293e92);
}
#[repr(C)]
#[doc(hidden)]
pub struct IItemsStackPanel2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub AreStickyGroupHeadersEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetAreStickyGroupHeadersEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IItemsStackPanelStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IItemsStackPanelStatics {
    type Vtable = IItemsStackPanelStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xca25d63f_044f_4b6b_b315_0b60e0b4f87d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IItemsStackPanelStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub GroupPaddingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OrientationProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GroupHeaderPlacementProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CacheLengthProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IItemsStackPanelStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IItemsStackPanelStatics2 {
    type Vtable = IItemsStackPanelStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3972eb2c_384a_48bf_adfd_772e2572c504);
}
#[repr(C)]
#[doc(hidden)]
pub struct IItemsStackPanelStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub AreStickyGroupHeadersEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IItemsWrapGrid(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IItemsWrapGrid {
    type Vtable = IItemsWrapGrid_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xddfe6b5f_ba88_4a7d_8a5b_e58caf0f4e2d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IItemsWrapGrid_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub GroupPadding: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Thickness) -> ::windows::core::HRESULT,
    pub SetGroupPadding: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Thickness) -> ::windows::core::HRESULT,
    pub Orientation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut Orientation) -> ::windows::core::HRESULT,
    pub SetOrientation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: Orientation) -> ::windows::core::HRESULT,
    pub MaximumRowsOrColumns: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetMaximumRowsOrColumns: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
    pub ItemWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetItemWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub ItemHeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetItemHeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub FirstCacheIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub FirstVisibleIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub LastVisibleIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub LastCacheIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub ScrollingDirection: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut PanelScrollingDirection) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub GroupHeaderPlacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut Primitives::GroupHeaderPlacement) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    GroupHeaderPlacement: usize,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub SetGroupHeaderPlacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: Primitives::GroupHeaderPlacement) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    SetGroupHeaderPlacement: usize,
    pub CacheLength: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetCacheLength: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IItemsWrapGrid2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IItemsWrapGrid2 {
    type Vtable = IItemsWrapGrid2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x80c21c0f_63ec_4258_bd61_d4a6956c864a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IItemsWrapGrid2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub AreStickyGroupHeadersEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetAreStickyGroupHeadersEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IItemsWrapGridStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IItemsWrapGridStatics {
    type Vtable = IItemsWrapGridStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4ec5427d_24a0_449a_b763_3077ba0f2dd5);
}
#[repr(C)]
#[doc(hidden)]
pub struct IItemsWrapGridStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub GroupPaddingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OrientationProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MaximumRowsOrColumnsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ItemWidthProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ItemHeightProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GroupHeaderPlacementProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CacheLengthProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IItemsWrapGridStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IItemsWrapGridStatics2 {
    type Vtable = IItemsWrapGridStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x2e27d3f7_feaa_478d_bfd1_29338adc5a03);
}
#[repr(C)]
#[doc(hidden)]
pub struct IItemsWrapGridStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub AreStickyGroupHeadersEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IListBox(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IListBox {
    type Vtable = IListBox_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe9f3b9ff_8e91_4ecf_a707_c927f694f881);
}
#[repr(C)]
#[doc(hidden)]
pub struct IListBox_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation_Collections")]
    pub SelectedItems: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    SelectedItems: usize,
    pub SelectionMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut SelectionMode) -> ::windows::core::HRESULT,
    pub SetSelectionMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: SelectionMode) -> ::windows::core::HRESULT,
    pub ScrollIntoView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, item: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SelectAll: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IListBox2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IListBox2 {
    type Vtable = IListBox2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x70572aba_8ad1_4085_9350_deee359294e3);
}
#[repr(C)]
#[doc(hidden)]
pub struct IListBox2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SingleSelectionFollowsFocus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetSingleSelectionFollowsFocus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IListBoxFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IListBoxFactory {
    type Vtable = IListBoxFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x60cdfda2_2f44_444b_9c94_b8c9fda46f59);
}
#[repr(C)]
#[doc(hidden)]
pub struct IListBoxFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IListBoxItem(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IListBoxItem {
    type Vtable = IListBoxItem_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x43c13323_6edf_4e4b_b6b2_3a93eec41d95);
}
#[repr(C)]
#[doc(hidden)]
pub struct IListBoxItem_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IListBoxItemFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IListBoxItemFactory {
    type Vtable = IListBoxItemFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4398b8d4_a3de_402c_b23d_190384b27ca8);
}
#[repr(C)]
#[doc(hidden)]
pub struct IListBoxItemFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IListBoxStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IListBoxStatics {
    type Vtable = IListBoxStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6d3f7f73_706a_4e53_a9aa_c9a53c9cdd70);
}
#[repr(C)]
#[doc(hidden)]
pub struct IListBoxStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SelectionModeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IListBoxStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IListBoxStatics2 {
    type Vtable = IListBoxStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0089adeb_b709_4c8d_b1ed_4a7d97ee7716);
}
#[repr(C)]
#[doc(hidden)]
pub struct IListBoxStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SingleSelectionFollowsFocusProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IListPickerFlyout(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IListPickerFlyout {
    type Vtable = IListPickerFlyout_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0f0cb9d7_e5f3_45e6_9063_ff7bbb193c47);
}
#[repr(C)]
#[doc(hidden)]
pub struct IListPickerFlyout_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ItemsSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetItemsSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub ItemTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetItemTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DisplayMemberPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetDisplayMemberPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SelectionMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ListPickerFlyoutSelectionMode) -> ::windows::core::HRESULT,
    pub SetSelectionMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ListPickerFlyoutSelectionMode) -> ::windows::core::HRESULT,
    pub SelectedIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetSelectedIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
    pub SelectedItem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetSelectedItem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SelectedValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetSelectedValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SelectedValuePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetSelectedValuePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation_Collections")]
    pub SelectedItems: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    SelectedItems: usize,
    #[cfg(feature = "Foundation")]
    pub ItemsPicked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ItemsPicked: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveItemsPicked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveItemsPicked: usize,
    #[cfg(feature = "Foundation_Collections")]
    pub ShowAtAsync: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, target: ::windows::core::RawPtr, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    ShowAtAsync: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IListPickerFlyoutPresenter(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IListPickerFlyoutPresenter {
    type Vtable = IListPickerFlyoutPresenter_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x68155fb3_883e_417a_80d0_e2fd88410084);
}
#[repr(C)]
#[doc(hidden)]
pub struct IListPickerFlyoutPresenter_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IListPickerFlyoutStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IListPickerFlyoutStatics {
    type Vtable = IListPickerFlyoutStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xfee25b97_8b96_4602_81d2_82fd8e0f7ea8);
}
#[repr(C)]
#[doc(hidden)]
pub struct IListPickerFlyoutStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ItemsSourceProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ItemTemplateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DisplayMemberPathProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SelectionModeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SelectedIndexProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SelectedItemProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SelectedValueProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SelectedValuePathProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IListView(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IListView {
    type Vtable = IListView_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf6ce8c6d_fe96_41ad_a64a_c2b81c4af7f8);
}
#[repr(C)]
#[doc(hidden)]
pub struct IListView_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IListViewBase(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IListViewBase {
    type Vtable = IListViewBase_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3d0813ba_6890_4537_bfe5_796d9458edd6);
}
#[repr(C)]
#[doc(hidden)]
pub struct IListViewBase_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation_Collections")]
    pub SelectedItems: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    SelectedItems: usize,
    pub SelectionMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ListViewSelectionMode) -> ::windows::core::HRESULT,
    pub SetSelectionMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ListViewSelectionMode) -> ::windows::core::HRESULT,
    pub IsSwipeEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsSwipeEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub CanDragItems: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetCanDragItems: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub CanReorderItems: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetCanReorderItems: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsItemClickEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsItemClickEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub DataFetchSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetDataFetchSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub IncrementalLoadingThreshold: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetIncrementalLoadingThreshold: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub IncrementalLoadingTrigger: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut IncrementalLoadingTrigger) -> ::windows::core::HRESULT,
    pub SetIncrementalLoadingTrigger: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: IncrementalLoadingTrigger) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub ItemClick: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ItemClick: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveItemClick: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveItemClick: usize,
    #[cfg(feature = "Foundation")]
    pub DragItemsStarting: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    DragItemsStarting: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveDragItemsStarting: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveDragItemsStarting: usize,
    pub ScrollIntoView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, item: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SelectAll: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Data"))]
    pub LoadMoreItemsAsync: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation", feature = "UI_Xaml_Data")))]
    LoadMoreItemsAsync: usize,
    pub ScrollIntoViewWithAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, item: *mut ::core::ffi::c_void, alignment: ScrollIntoViewAlignment) -> ::windows::core::HRESULT,
    pub Header: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetHeader: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub HeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetHeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub HeaderTransitions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation")))]
    HeaderTransitions: usize,
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub SetHeaderTransitions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation")))]
    SetHeaderTransitions: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IListViewBase2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IListViewBase2 {
    type Vtable = IListViewBase2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd1c2a4f7_78a3_4491_86e0_2ddebc007ac5);
}
#[repr(C)]
#[doc(hidden)]
pub struct IListViewBase2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ShowsScrollingPlaceholders: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetShowsScrollingPlaceholders: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub ContainerContentChanging: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ContainerContentChanging: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveContainerContentChanging: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveContainerContentChanging: usize,
    #[cfg(feature = "Foundation")]
    pub SetDesiredContainerUpdateDuration: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, duration: super::super::super::Foundation::TimeSpan) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SetDesiredContainerUpdateDuration: usize,
    pub Footer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetFooter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub FooterTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetFooterTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub FooterTransitions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation")))]
    FooterTransitions: usize,
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub SetFooterTransitions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation")))]
    SetFooterTransitions: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IListViewBase3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IListViewBase3 {
    type Vtable = IListViewBase3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb364c035_0a13_406f_a3fb_f30e7ddca94c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IListViewBase3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ReorderMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ListViewReorderMode) -> ::windows::core::HRESULT,
    pub SetReorderMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ListViewReorderMode) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IListViewBase4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IListViewBase4 {
    type Vtable = IListViewBase4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x18b7792b_11dc_4eb6_a7bc_741adb3eeb79);
}
#[repr(C)]
#[doc(hidden)]
pub struct IListViewBase4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Data"))]
    pub SelectedRanges: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation_Collections", feature = "UI_Xaml_Data")))]
    SelectedRanges: usize,
    pub IsMultiSelectCheckBoxEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsMultiSelectCheckBoxEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub DragItemsCompleted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    DragItemsCompleted: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveDragItemsCompleted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveDragItemsCompleted: usize,
    #[cfg(feature = "Foundation")]
    pub ChoosingItemContainer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ChoosingItemContainer: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveChoosingItemContainer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveChoosingItemContainer: usize,
    #[cfg(feature = "Foundation")]
    pub ChoosingGroupHeaderContainer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ChoosingGroupHeaderContainer: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveChoosingGroupHeaderContainer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveChoosingGroupHeaderContainer: usize,
    #[cfg(feature = "UI_Xaml_Data")]
    pub SelectRange: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, itemindexrange: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Data"))]
    SelectRange: usize,
    #[cfg(feature = "UI_Xaml_Data")]
    pub DeselectRange: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, itemindexrange: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Data"))]
    DeselectRange: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IListViewBase5(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IListViewBase5 {
    type Vtable = IListViewBase5_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1a9c6e99_1719_4b80_b335_628331a07019);
}
#[repr(C)]
#[doc(hidden)]
pub struct IListViewBase5_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SingleSelectionFollowsFocus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetSingleSelectionFollowsFocus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsDragSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IListViewBase6(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IListViewBase6 {
    type Vtable = IListViewBase6_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf8a42637_965b_483b_94e5_e5c9fef0e352);
}
#[repr(C)]
#[doc(hidden)]
pub struct IListViewBase6_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Media_Animation"))]
    pub TryStartConnectedAnimationAsync: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, animation: ::windows::core::RawPtr, item: *mut ::core::ffi::c_void, elementname: ::core::mem::ManuallyDrop<::windows::core::HSTRING>, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation", feature = "UI_Xaml_Media_Animation")))]
    TryStartConnectedAnimationAsync: usize,
    #[cfg(feature = "UI_Xaml_Media_Animation")]
    pub PrepareConnectedAnimation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, key: ::core::mem::ManuallyDrop<::windows::core::HSTRING>, item: *mut ::core::ffi::c_void, elementname: ::core::mem::ManuallyDrop<::windows::core::HSTRING>, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media_Animation"))]
    PrepareConnectedAnimation: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IListViewBaseFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IListViewBaseFactory {
    type Vtable = IListViewBaseFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe67e6c7f_150f_46d0_a6ac_c5002bd9ca53);
}
#[repr(C)]
#[doc(hidden)]
pub struct IListViewBaseFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IListViewBaseHeaderItem(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IListViewBaseHeaderItem {
    type Vtable = IListViewBaseHeaderItem_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6d0ded27_0d19_4091_8917_ce7c85c1e630);
}
#[repr(C)]
#[doc(hidden)]
pub struct IListViewBaseHeaderItem_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IListViewBaseHeaderItemFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IListViewBaseHeaderItemFactory {
    type Vtable = IListViewBaseHeaderItemFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3872a6a1_ea19_455f_9df7_147cc41d329c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IListViewBaseHeaderItemFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IListViewBaseStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IListViewBaseStatics {
    type Vtable = IListViewBaseStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8532b8f7_3e16_455b_89a8_c1346223f6d3);
}
#[repr(C)]
#[doc(hidden)]
pub struct IListViewBaseStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SelectionModeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsSwipeEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CanDragItemsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CanReorderItemsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsItemClickEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DataFetchSizeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IncrementalLoadingThresholdProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IncrementalLoadingTriggerProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SemanticZoomOwnerProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsActiveViewProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsZoomedInViewProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HeaderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HeaderTemplateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HeaderTransitionsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IListViewBaseStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IListViewBaseStatics2 {
    type Vtable = IListViewBaseStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x821c00c8_78cc_411f_9f2e_a55758227f3e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IListViewBaseStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ShowsScrollingPlaceholdersProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FooterProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FooterTemplateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FooterTransitionsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IListViewBaseStatics3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IListViewBaseStatics3 {
    type Vtable = IListViewBaseStatics3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3b539091_31c6_4d0c_90af_5dc1d6ae9c05);
}
#[repr(C)]
#[doc(hidden)]
pub struct IListViewBaseStatics3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ReorderModeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IListViewBaseStatics4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IListViewBaseStatics4 {
    type Vtable = IListViewBaseStatics4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xad13258b_fbd0_4f18_8bf8_9b8613951c22);
}
#[repr(C)]
#[doc(hidden)]
pub struct IListViewBaseStatics4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsMultiSelectCheckBoxEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IListViewBaseStatics5(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IListViewBaseStatics5 {
    type Vtable = IListViewBaseStatics5_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x40346fcf_0476_4259_895f_a6569738620f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IListViewBaseStatics5_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SingleSelectionFollowsFocusProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IListViewFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IListViewFactory {
    type Vtable = IListViewFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xbdff696d_3f22_41f9_97a6_883134a76113);
}
#[repr(C)]
#[doc(hidden)]
pub struct IListViewFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IListViewHeaderItem(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IListViewHeaderItem {
    type Vtable = IListViewHeaderItem_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1b61baeb_e196_4b3b_a5f9_1ed636f3f79b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IListViewHeaderItem_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IListViewHeaderItemFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IListViewHeaderItemFactory {
    type Vtable = IListViewHeaderItemFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x68d2c96a_96b0_4f08_a7a5_f1086720a0fa);
}
#[repr(C)]
#[doc(hidden)]
pub struct IListViewHeaderItemFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IListViewItem(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IListViewItem {
    type Vtable = IListViewItem_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb7bb4305_3dd9_43de_a8c0_c472f085bc11);
}
#[repr(C)]
#[doc(hidden)]
pub struct IListViewItem_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub TemplateSettings: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    TemplateSettings: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IListViewItemFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IListViewItemFactory {
    type Vtable = IListViewItemFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf431073d_9cac_42a2_82df_0f4490bc4e2e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IListViewItemFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IListViewPersistenceHelper(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IListViewPersistenceHelper {
    type Vtable = IListViewPersistenceHelper_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x05bde8a6_2191_4b4b_8c22_9b25676e806e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IListViewPersistenceHelper_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IListViewPersistenceHelperStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IListViewPersistenceHelperStatics {
    type Vtable = IListViewPersistenceHelperStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6d0c2b08_bb9b_44f9_8063_5c3f9c21884b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IListViewPersistenceHelperStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub GetRelativeScrollPosition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, listviewbase: ::windows::core::RawPtr, itemtokeyhandler: ::windows::core::RawPtr, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub SetRelativeScrollPositionAsync: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, listviewbase: ::windows::core::RawPtr, relativescrollposition: ::core::mem::ManuallyDrop<::windows::core::HSTRING>, keytoitemhandler: ::windows::core::RawPtr, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SetRelativeScrollPositionAsync: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMediaElement(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMediaElement {
    type Vtable = IMediaElement_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa38ed2cf_13de_4299_ade2_ae18f74ed353);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMediaElement_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Media")]
    pub PosterSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    PosterSource: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetPosterSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetPosterSource: usize,
    #[cfg(feature = "Foundation")]
    pub Source: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Source: usize,
    #[cfg(feature = "Foundation")]
    pub SetSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SetSource: usize,
    pub IsMuted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsMuted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsAudioOnly: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub AutoPlay: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetAutoPlay: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub Volume: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetVolume: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub Balance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetBalance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub NaturalVideoHeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub NaturalVideoWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub NaturalDuration: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Duration) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    NaturalDuration: usize,
    #[cfg(feature = "Foundation")]
    pub Position: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::super::Foundation::TimeSpan) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Position: usize,
    #[cfg(feature = "Foundation")]
    pub SetPosition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::super::Foundation::TimeSpan) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SetPosition: usize,
    pub DownloadProgress: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub BufferingProgress: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub DownloadProgressOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media")]
    pub CurrentState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Media::MediaElementState) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    CurrentState: usize,
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media"))]
    pub Markers: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media")))]
    Markers: usize,
    pub CanSeek: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub CanPause: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub AudioStreamCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub AudioStreamIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    AudioStreamIndex: usize,
    #[cfg(feature = "Foundation")]
    pub SetAudioStreamIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SetAudioStreamIndex: usize,
    pub PlaybackRate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetPlaybackRate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub IsLooping: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsLooping: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(all(feature = "Media_PlayTo", feature = "deprecated"))]
    pub PlayToSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Media_PlayTo", feature = "deprecated")))]
    PlayToSource: usize,
    pub DefaultPlaybackRate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetDefaultPlaybackRate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub AspectRatioWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub AspectRatioHeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub RealTimePlayback: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetRealTimePlayback: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media")]
    pub AudioCategory: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Media::AudioCategory) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    AudioCategory: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetAudioCategory: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Media::AudioCategory) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetAudioCategory: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub AudioDeviceType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Media::AudioDeviceType) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    AudioDeviceType: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetAudioDeviceType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Media::AudioDeviceType) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetAudioDeviceType: usize,
    #[cfg(feature = "Media_Protection")]
    pub ProtectionManager: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Media_Protection"))]
    ProtectionManager: usize,
    #[cfg(feature = "Media_Protection")]
    pub SetProtectionManager: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Media_Protection"))]
    SetProtectionManager: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub Stereo3DVideoPackingMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Media::Stereo3DVideoPackingMode) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    Stereo3DVideoPackingMode: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetStereo3DVideoPackingMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Media::Stereo3DVideoPackingMode) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetStereo3DVideoPackingMode: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub Stereo3DVideoRenderMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Media::Stereo3DVideoRenderMode) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    Stereo3DVideoRenderMode: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetStereo3DVideoRenderMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Media::Stereo3DVideoRenderMode) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetStereo3DVideoRenderMode: usize,
    pub IsStereo3DVideo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub MediaOpened: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    MediaOpened: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveMediaOpened: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveMediaOpened: usize,
    #[cfg(feature = "Foundation")]
    pub MediaEnded: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    MediaEnded: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveMediaEnded: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveMediaEnded: usize,
    #[cfg(feature = "Foundation")]
    pub MediaFailed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    MediaFailed: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveMediaFailed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveMediaFailed: usize,
    #[cfg(feature = "Foundation")]
    pub DownloadProgressChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    DownloadProgressChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveDownloadProgressChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveDownloadProgressChanged: usize,
    #[cfg(feature = "Foundation")]
    pub BufferingProgressChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    BufferingProgressChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveBufferingProgressChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveBufferingProgressChanged: usize,
    #[cfg(feature = "Foundation")]
    pub CurrentStateChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    CurrentStateChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveCurrentStateChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveCurrentStateChanged: usize,
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Media"))]
    pub MarkerReached: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation", feature = "UI_Xaml_Media")))]
    MarkerReached: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveMarkerReached: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveMarkerReached: usize,
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Media"))]
    pub RateChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation", feature = "UI_Xaml_Media")))]
    RateChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveRateChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveRateChanged: usize,
    #[cfg(feature = "Foundation")]
    pub VolumeChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    VolumeChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveVolumeChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveVolumeChanged: usize,
    #[cfg(feature = "Foundation")]
    pub SeekCompleted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SeekCompleted: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveSeekCompleted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveSeekCompleted: usize,
    pub Stop: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Play: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Pause: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media")]
    pub CanPlayType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: ::core::mem::ManuallyDrop<::windows::core::HSTRING>, result__: *mut super::Media::MediaCanPlayResponse) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    CanPlayType: usize,
    #[cfg(feature = "Storage_Streams")]
    pub SetSource2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, stream: ::windows::core::RawPtr, mimetype: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Storage_Streams"))]
    SetSource2: usize,
    #[cfg(feature = "Foundation")]
    pub GetAudioStreamLanguage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: ::windows::core::RawPtr, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    GetAudioStreamLanguage: usize,
    #[cfg(feature = "Foundation_Collections")]
    pub AddAudioEffect: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, effectid: ::core::mem::ManuallyDrop<::windows::core::HSTRING>, effectoptional: bool, effectconfiguration: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    AddAudioEffect: usize,
    #[cfg(feature = "Foundation_Collections")]
    pub AddVideoEffect: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, effectid: ::core::mem::ManuallyDrop<::windows::core::HSTRING>, effectoptional: bool, effectconfiguration: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    AddVideoEffect: usize,
    pub RemoveAllEffects: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media")]
    pub ActualStereo3DVideoPackingMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Media::Stereo3DVideoPackingMode) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    ActualStereo3DVideoPackingMode: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMediaElement2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMediaElement2 {
    type Vtable = IMediaElement2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xfd53da65_b186_4654_bfdb_180ed26cad07);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMediaElement2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub AreTransportControlsEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetAreTransportControlsEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media")]
    pub Stretch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Media::Stretch) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    Stretch: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetStretch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Media::Stretch) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetStretch: usize,
    pub IsFullWindow: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsFullWindow: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "Media_Core")]
    pub SetMediaStreamSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, source: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Media_Core"))]
    SetMediaStreamSource: usize,
    #[cfg(all(feature = "Foundation", feature = "deprecated"))]
    pub PlayToPreferredSourceUri: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation", feature = "deprecated")))]
    PlayToPreferredSourceUri: usize,
    #[cfg(all(feature = "Foundation", feature = "deprecated"))]
    pub SetPlayToPreferredSourceUri: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation", feature = "deprecated")))]
    SetPlayToPreferredSourceUri: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMediaElement3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMediaElement3 {
    type Vtable = IMediaElement3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x479f6f13_0fdb_4ed8_928a_4d39169c3cd2);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMediaElement3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub TransportControls: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetTransportControls: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Media"))]
    pub PartialMediaFailureDetected: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation", feature = "UI_Xaml_Media")))]
    PartialMediaFailureDetected: usize,
    #[cfg(feature = "Foundation")]
    pub RemovePartialMediaFailureDetected: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemovePartialMediaFailureDetected: usize,
    #[cfg(feature = "Media_Playback")]
    pub SetPlaybackSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, source: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Media_Playback"))]
    SetPlaybackSource: usize,
    #[cfg(feature = "Media_Casting")]
    pub GetAsCastingSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Media_Casting"))]
    GetAsCastingSource: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMediaElementStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMediaElementStatics {
    type Vtable = IMediaElementStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xdccd2cb9_7568_4682_a72a_8ddf2a2665ca);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMediaElementStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub PosterSourceProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SourceProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsMutedProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsAudioOnlyProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub AutoPlayProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub VolumeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub BalanceProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub NaturalVideoHeightProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub NaturalVideoWidthProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub NaturalDurationProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PositionProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DownloadProgressProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub BufferingProgressProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DownloadProgressOffsetProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CurrentStateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CanSeekProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CanPauseProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub AudioStreamCountProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub AudioStreamIndexProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PlaybackRateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsLoopingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "deprecated")]
    pub PlayToSourceProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "deprecated"))]
    PlayToSourceProperty: usize,
    pub DefaultPlaybackRateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub AspectRatioWidthProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub AspectRatioHeightProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub RealTimePlaybackProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub AudioCategoryProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub AudioDeviceTypeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ProtectionManagerProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub Stereo3DVideoPackingModeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub Stereo3DVideoRenderModeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsStereo3DVideoProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ActualStereo3DVideoPackingModeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMediaElementStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMediaElementStatics2 {
    type Vtable = IMediaElementStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9ee7f826_f154_4dc6_8014_a6eba987f847);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMediaElementStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub AreTransportControlsEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub StretchProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsFullWindowProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "deprecated")]
    pub PlayToPreferredSourceUriProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "deprecated"))]
    PlayToPreferredSourceUriProperty: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMediaPlayerElement(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMediaPlayerElement {
    type Vtable = IMediaPlayerElement_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3b4ca526_2e25_4598_bc71_d491f8e8de39);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMediaPlayerElement_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Media_Playback")]
    pub Source: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Media_Playback"))]
    Source: usize,
    #[cfg(feature = "Media_Playback")]
    pub SetSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Media_Playback"))]
    SetSource: usize,
    pub TransportControls: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetTransportControls: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub AreTransportControlsEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetAreTransportControlsEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media")]
    pub PosterSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    PosterSource: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetPosterSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetPosterSource: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub Stretch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Media::Stretch) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    Stretch: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetStretch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Media::Stretch) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetStretch: usize,
    pub AutoPlay: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetAutoPlay: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsFullWindow: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsFullWindow: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "Media_Playback")]
    pub MediaPlayer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Media_Playback"))]
    MediaPlayer: usize,
    #[cfg(feature = "Media_Playback")]
    pub SetMediaPlayer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mediaplayer: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Media_Playback"))]
    SetMediaPlayer: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMediaPlayerElementFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMediaPlayerElementFactory {
    type Vtable = IMediaPlayerElementFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x77e525c3_eb17_4b8d_889d_1ea8abdbd4ef);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMediaPlayerElementFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMediaPlayerElementStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMediaPlayerElementStatics {
    type Vtable = IMediaPlayerElementStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1e7c4020_ac57_42dd_ad1c_3ebc2d7f08ba);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMediaPlayerElementStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SourceProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub AreTransportControlsEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PosterSourceProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub StretchProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub AutoPlayProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsFullWindowProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MediaPlayerProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMediaPlayerPresenter(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMediaPlayerPresenter {
    type Vtable = IMediaPlayerPresenter_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x77a92326_0c5b_41fc_bf49_15f6c3524b6b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMediaPlayerPresenter_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Media_Playback")]
    pub MediaPlayer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Media_Playback"))]
    MediaPlayer: usize,
    #[cfg(feature = "Media_Playback")]
    pub SetMediaPlayer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Media_Playback"))]
    SetMediaPlayer: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub Stretch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Media::Stretch) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    Stretch: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetStretch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Media::Stretch) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetStretch: usize,
    pub IsFullWindow: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsFullWindow: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMediaPlayerPresenterFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMediaPlayerPresenterFactory {
    type Vtable = IMediaPlayerPresenterFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe6766fb7_d96f_4b95_b33c_59e81cb1e9ba);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMediaPlayerPresenterFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMediaPlayerPresenterStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMediaPlayerPresenterStatics {
    type Vtable = IMediaPlayerPresenterStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x84d774fe_ead4_4957_b42b_223158ca0de7);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMediaPlayerPresenterStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub MediaPlayerProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub StretchProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsFullWindowProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMediaTransportControls(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMediaTransportControls {
    type Vtable = IMediaTransportControls_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd6f69e7d_0825_49a9_9fce_5586d8694f0c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMediaTransportControls_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsFullWindowButtonVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsFullWindowButtonVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsFullWindowEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsFullWindowEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsZoomButtonVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsZoomButtonVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsZoomEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsZoomEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsFastForwardButtonVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsFastForwardButtonVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsFastForwardEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsFastForwardEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsFastRewindButtonVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsFastRewindButtonVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsFastRewindEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsFastRewindEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsStopButtonVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsStopButtonVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsStopEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsStopEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsVolumeButtonVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsVolumeButtonVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsVolumeEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsVolumeEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsPlaybackRateButtonVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsPlaybackRateButtonVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsPlaybackRateEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsPlaybackRateEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsSeekBarVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsSeekBarVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsSeekEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsSeekEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsCompact: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsCompact: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMediaTransportControls2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMediaTransportControls2 {
    type Vtable = IMediaTransportControls2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x2b89efec_1bea_451e_8bcd_cfe2d9423262);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMediaTransportControls2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsSkipForwardButtonVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsSkipForwardButtonVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsSkipForwardEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsSkipForwardEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsSkipBackwardButtonVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsSkipBackwardButtonVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsSkipBackwardEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsSkipBackwardEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsNextTrackButtonVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsNextTrackButtonVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsPreviousTrackButtonVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsPreviousTrackButtonVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media")]
    pub FastPlayFallbackBehaviour: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Media::FastPlayFallbackBehaviour) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    FastPlayFallbackBehaviour: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetFastPlayFallbackBehaviour: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Media::FastPlayFallbackBehaviour) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetFastPlayFallbackBehaviour: usize,
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Media"))]
    pub ThumbnailRequested: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation", feature = "UI_Xaml_Media")))]
    ThumbnailRequested: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveThumbnailRequested: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveThumbnailRequested: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMediaTransportControls3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMediaTransportControls3 {
    type Vtable = IMediaTransportControls3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5086430e_0940_11e7_93ae_92361f002671);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMediaTransportControls3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ShowAndHideAutomatically: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetShowAndHideAutomatically: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsRepeatEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsRepeatEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsRepeatButtonVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsRepeatButtonVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub Show: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Hide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMediaTransportControls4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMediaTransportControls4 {
    type Vtable = IMediaTransportControls4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0fb17c58_9f23_11e7_abc4_cec278b6b50a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMediaTransportControls4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsCompactOverlayButtonVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsCompactOverlayButtonVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsCompactOverlayEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsCompactOverlayEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMediaTransportControlsFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMediaTransportControlsFactory {
    type Vtable = IMediaTransportControlsFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1da2015a_a8e4_4c1b_88c9_0b183ecc62e3);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMediaTransportControlsFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMediaTransportControlsHelper(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMediaTransportControlsHelper {
    type Vtable = IMediaTransportControlsHelper_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3d41d509_ff44_4420_807e_8f7a2e2c4251);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMediaTransportControlsHelper_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMediaTransportControlsHelperStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMediaTransportControlsHelperStatics {
    type Vtable = IMediaTransportControlsHelperStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5a772047_a9a1_4625_9270_7f49875d4394);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMediaTransportControlsHelperStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub DropoutOrderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub GetDropoutOrder: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    GetDropoutOrder: usize,
    #[cfg(feature = "Foundation")]
    pub SetDropoutOrder: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SetDropoutOrder: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMediaTransportControlsStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMediaTransportControlsStatics {
    type Vtable = IMediaTransportControlsStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x590ea907_d2ef_4c1a_9429_b4b15d64fd56);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMediaTransportControlsStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsFullWindowButtonVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsFullWindowEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsZoomButtonVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsZoomEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsFastForwardButtonVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsFastForwardEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsFastRewindButtonVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsFastRewindEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsStopButtonVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsStopEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsVolumeButtonVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsVolumeEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsPlaybackRateButtonVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsPlaybackRateEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsSeekBarVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsSeekEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsCompactProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMediaTransportControlsStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMediaTransportControlsStatics2 {
    type Vtable = IMediaTransportControlsStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1728cfdc_561f_4386_a7f8_090d95f68d96);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMediaTransportControlsStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsSkipForwardButtonVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsSkipForwardEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsSkipBackwardButtonVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsSkipBackwardEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsNextTrackButtonVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsPreviousTrackButtonVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FastPlayFallbackBehaviourProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMediaTransportControlsStatics3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMediaTransportControlsStatics3 {
    type Vtable = IMediaTransportControlsStatics3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5fe05542_0940_11e7_93ae_92361f002671);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMediaTransportControlsStatics3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ShowAndHideAutomaticallyProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsRepeatEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsRepeatButtonVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMediaTransportControlsStatics4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMediaTransportControlsStatics4 {
    type Vtable = IMediaTransportControlsStatics4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0fb18144_9f23_11e7_abc4_cec278b6b50a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMediaTransportControlsStatics4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsCompactOverlayButtonVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsCompactOverlayEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMenuBar(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMenuBar {
    type Vtable = IMenuBar_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc8f67b0c_0e76_5af2_bade_785049c80a41);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMenuBar_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation_Collections")]
    pub Items: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    Items: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMenuBarFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMenuBarFactory {
    type Vtable = IMenuBarFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xdc619e50_72ba_513f_80aa_ddd093825dde);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMenuBarFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMenuBarItem(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMenuBarItem {
    type Vtable = IMenuBarItem_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xbf643b4c_8125_5b53_a454_06e896a5acee);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMenuBarItem_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Title: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetTitle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation_Collections")]
    pub Items: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    Items: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMenuBarItemFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMenuBarItemFactory {
    type Vtable = IMenuBarItemFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xecf86f62_c394_50e2_a568_17af8cf26874);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMenuBarItemFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMenuBarItemFlyout(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMenuBarItemFlyout {
    type Vtable = IMenuBarItemFlyout_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xed00d2d8_b686_55fe_8dbb_f04a640e42ef);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMenuBarItemFlyout_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMenuBarItemFlyoutFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMenuBarItemFlyoutFactory {
    type Vtable = IMenuBarItemFlyoutFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1d24f9bd_bd19_5d95_b573_711f649fcbe9);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMenuBarItemFlyoutFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMenuBarItemStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMenuBarItemStatics {
    type Vtable = IMenuBarItemStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x60a9e3fb_b405_50d0_bb78_d396a34da267);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMenuBarItemStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub TitleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ItemsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMenuBarStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMenuBarStatics {
    type Vtable = IMenuBarStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xbed31c25_7db8_51cc_9706_1d79327daf93);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMenuBarStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ItemsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMenuFlyout(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMenuFlyout {
    type Vtable = IMenuFlyout_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xad3210f1_985b_4171_bbba_67bcc729649b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMenuFlyout_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation_Collections")]
    pub Items: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    Items: usize,
    pub MenuFlyoutPresenterStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetMenuFlyoutPresenterStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMenuFlyout2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMenuFlyout2 {
    type Vtable = IMenuFlyout2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x507c7bad_d9d1_4c05_9d4b_cda8de9ab242);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMenuFlyout2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub ShowAt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, targetelement: ::windows::core::RawPtr, point: super::super::super::Foundation::Point) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ShowAt: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMenuFlyoutFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMenuFlyoutFactory {
    type Vtable = IMenuFlyoutFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x644533ab_bbb9_499b_9ff3_30d40e2c56d8);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMenuFlyoutFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMenuFlyoutItem(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMenuFlyoutItem {
    type Vtable = IMenuFlyoutItem_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x160775cf_b598_44af_a488_c3ce2af6d3f0);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMenuFlyoutItem_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Text: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Input")]
    pub Command: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    Command: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub SetCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    SetCommand: usize,
    pub CommandParameter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetCommandParameter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub Click: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Click: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveClick: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveClick: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMenuFlyoutItem2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMenuFlyoutItem2 {
    type Vtable = IMenuFlyoutItem2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0ae266eb_028c_4423_a8e3_989fd9dd7126);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMenuFlyoutItem2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Icon: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetIcon: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMenuFlyoutItem3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMenuFlyoutItem3 {
    type Vtable = IMenuFlyoutItem3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9727b2e3_b2b6_49dc_8c22_e0138b941559);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMenuFlyoutItem3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub KeyboardAcceleratorTextOverride: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetKeyboardAcceleratorTextOverride: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub TemplateSettings: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    TemplateSettings: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMenuFlyoutItemBase(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMenuFlyoutItemBase {
    type Vtable = IMenuFlyoutItemBase_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf9b56047_8da6_4730_9208_144125c6b396);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMenuFlyoutItemBase_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMenuFlyoutItemBaseFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMenuFlyoutItemBaseFactory {
    type Vtable = IMenuFlyoutItemBaseFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x83e6dbad_fc67_41d5_8797_60acd1ceb1d9);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMenuFlyoutItemBaseFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMenuFlyoutItemFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMenuFlyoutItemFactory {
    type Vtable = IMenuFlyoutItemFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc5aa39e2_44f3_455e_9c5b_62bb6afce3ad);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMenuFlyoutItemFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMenuFlyoutItemStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMenuFlyoutItemStatics {
    type Vtable = IMenuFlyoutItemStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4950b424_a43a_41f7_aa3a_9ce9619747d5);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMenuFlyoutItemStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub TextProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CommandProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CommandParameterProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMenuFlyoutItemStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMenuFlyoutItemStatics2 {
    type Vtable = IMenuFlyoutItemStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xaca4f564_1790_4601_916e_5ae1f01f4bd6);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMenuFlyoutItemStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IconProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMenuFlyoutItemStatics3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMenuFlyoutItemStatics3 {
    type Vtable = IMenuFlyoutItemStatics3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd83fd7c3_0aeb_4ef3_8270_8b9b95f2b298);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMenuFlyoutItemStatics3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub KeyboardAcceleratorTextOverrideProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMenuFlyoutPresenter(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMenuFlyoutPresenter {
    type Vtable = IMenuFlyoutPresenter_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x906e0304_254e_413f_b219_c7b97f003752);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMenuFlyoutPresenter_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMenuFlyoutPresenter2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMenuFlyoutPresenter2 {
    type Vtable = IMenuFlyoutPresenter2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x895894df_5a9f_4a1f_85ec_6f3c1b6dcb89);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMenuFlyoutPresenter2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub TemplateSettings: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    TemplateSettings: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMenuFlyoutPresenter3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMenuFlyoutPresenter3 {
    type Vtable = IMenuFlyoutPresenter3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6afd4e16_aee0_584a_9849_edaa323a484f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMenuFlyoutPresenter3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsDefaultShadowEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsDefaultShadowEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMenuFlyoutPresenterFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMenuFlyoutPresenterFactory {
    type Vtable = IMenuFlyoutPresenterFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb88b5091_101c_41f8_aac1_1b105c14fb99);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMenuFlyoutPresenterFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMenuFlyoutPresenterStatics3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMenuFlyoutPresenterStatics3 {
    type Vtable = IMenuFlyoutPresenterStatics3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3772a818_825a_520c_80ae_4d39a2d59ab5);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMenuFlyoutPresenterStatics3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsDefaultShadowEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMenuFlyoutSeparator(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMenuFlyoutSeparator {
    type Vtable = IMenuFlyoutSeparator_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x71fa2b7d_0b51_4950_a1a4_bbc42eac4c12);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMenuFlyoutSeparator_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMenuFlyoutSeparatorFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMenuFlyoutSeparatorFactory {
    type Vtable = IMenuFlyoutSeparatorFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc159dcc8_b437_44e0_b24b_5720aea1dbac);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMenuFlyoutSeparatorFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMenuFlyoutStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMenuFlyoutStatics {
    type Vtable = IMenuFlyoutStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3dbefba1_9522_4045_9e58_c99b13aab9b9);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMenuFlyoutStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub MenuFlyoutPresenterStyleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMenuFlyoutSubItem(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMenuFlyoutSubItem {
    type Vtable = IMenuFlyoutSubItem_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe5386550_fe2c_43e2_a73f_62168f619973);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMenuFlyoutSubItem_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation_Collections")]
    pub Items: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    Items: usize,
    pub Text: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMenuFlyoutSubItem2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMenuFlyoutSubItem2 {
    type Vtable = IMenuFlyoutSubItem2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xac935626_190a_4de2_8d71_7cc4747da580);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMenuFlyoutSubItem2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Icon: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetIcon: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMenuFlyoutSubItemStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMenuFlyoutSubItemStatics {
    type Vtable = IMenuFlyoutSubItemStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xddb27a36_1874_4aef_837d_6fec9da4e681);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMenuFlyoutSubItemStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub TextProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IMenuFlyoutSubItemStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IMenuFlyoutSubItemStatics2 {
    type Vtable = IMenuFlyoutSubItemStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xac14d09b_3e93_4785_94ef_fdb23baba965);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMenuFlyoutSubItemStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IconProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct INavigate(::windows::core::IUnknown);
impl INavigate {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Interop'*"]
    #[cfg(feature = "UI_Xaml_Interop")]
    pub fn Navigate<'a, Param0: ::windows::core::IntoParam<'a, super::Interop::TypeName>>(&self, sourcepagetype: Param0) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Navigate)(::core::mem::transmute_copy(this), sourcepagetype.into_param().abi(), &mut result__).from_abi::<bool>(result__)
        }
    }
}
impl ::core::convert::From<INavigate> for ::windows::core::IUnknown {
    fn from(value: INavigate) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&INavigate> for ::windows::core::IUnknown {
    fn from(value: &INavigate) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for INavigate {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a INavigate {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<INavigate> for ::windows::core::IInspectable {
    fn from(value: INavigate) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&INavigate> for ::windows::core::IInspectable {
    fn from(value: &INavigate) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for INavigate {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a INavigate {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for INavigate {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for INavigate {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for INavigate {}
impl ::core::fmt::Debug for INavigate {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("INavigate").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for INavigate {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"{bf2195a9-f4ea-4336-977c-f8fcf78b0d9e}");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for INavigate {
    type Vtable = INavigate_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xbf2195a9_f4ea_4336_977c_f8fcf78b0d9e);
}
#[repr(C)]
#[doc(hidden)]
pub struct INavigate_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Interop")]
    pub Navigate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sourcepagetype: ::core::mem::ManuallyDrop<super::Interop::TypeName>, result__: *mut bool) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Interop"))]
    Navigate: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct INavigationView(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for INavigationView {
    type Vtable = INavigationView_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf209ce15_391a_42ca_9fc6_f79da65aca32);
}
#[repr(C)]
#[doc(hidden)]
pub struct INavigationView_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsPaneOpen: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsPaneOpen: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub CompactModeThresholdWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetCompactModeThresholdWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub ExpandedModeThresholdWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetExpandedModeThresholdWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub PaneFooter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetPaneFooter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub Header: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetHeader: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub HeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetHeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DisplayMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut NavigationViewDisplayMode) -> ::windows::core::HRESULT,
    pub IsSettingsVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsSettingsVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsPaneToggleButtonVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsPaneToggleButtonVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub AlwaysShowHeader: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetAlwaysShowHeader: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub CompactPaneLength: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetCompactPaneLength: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub OpenPaneLength: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetOpenPaneLength: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub PaneToggleButtonStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetPaneToggleButtonStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SelectedItem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetSelectedItem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation_Collections")]
    pub MenuItems: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    MenuItems: usize,
    pub MenuItemsSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetMenuItemsSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SettingsItem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AutoSuggestBox: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetAutoSuggestBox: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MenuItemTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetMenuItemTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MenuItemTemplateSelector: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetMenuItemTemplateSelector: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MenuItemContainerStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetMenuItemContainerStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MenuItemContainerStyleSelector: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetMenuItemContainerStyleSelector: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MenuItemFromContainer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, container: ::windows::core::RawPtr, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub ContainerFromMenuItem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, item: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub SelectionChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SelectionChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveSelectionChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveSelectionChanged: usize,
    #[cfg(feature = "Foundation")]
    pub ItemInvoked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ItemInvoked: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveItemInvoked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveItemInvoked: usize,
    #[cfg(feature = "Foundation")]
    pub DisplayModeChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    DisplayModeChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveDisplayModeChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveDisplayModeChanged: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct INavigationView2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for INavigationView2 {
    type Vtable = INavigationView2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x2be49737_7c13_4c44_86c3_8b25e697a80e);
}
#[repr(C)]
#[doc(hidden)]
pub struct INavigationView2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsBackButtonVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut NavigationViewBackButtonVisible) -> ::windows::core::HRESULT,
    pub SetIsBackButtonVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: NavigationViewBackButtonVisible) -> ::windows::core::HRESULT,
    pub IsBackEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsBackEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub PaneTitle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetPaneTitle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub BackRequested: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    BackRequested: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveBackRequested: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveBackRequested: usize,
    #[cfg(feature = "Foundation")]
    pub PaneClosed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    PaneClosed: usize,
    #[cfg(feature = "Foundation")]
    pub RemovePaneClosed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemovePaneClosed: usize,
    #[cfg(feature = "Foundation")]
    pub PaneClosing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    PaneClosing: usize,
    #[cfg(feature = "Foundation")]
    pub RemovePaneClosing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemovePaneClosing: usize,
    #[cfg(feature = "Foundation")]
    pub PaneOpened: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    PaneOpened: usize,
    #[cfg(feature = "Foundation")]
    pub RemovePaneOpened: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemovePaneOpened: usize,
    #[cfg(feature = "Foundation")]
    pub PaneOpening: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    PaneOpening: usize,
    #[cfg(feature = "Foundation")]
    pub RemovePaneOpening: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemovePaneOpening: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct INavigationView3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for INavigationView3 {
    type Vtable = INavigationView3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8fdfab66_9bbc_5fa3_9043_a02bb4f8ef37);
}
#[repr(C)]
#[doc(hidden)]
pub struct INavigationView3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub PaneDisplayMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut NavigationViewPaneDisplayMode) -> ::windows::core::HRESULT,
    pub SetPaneDisplayMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: NavigationViewPaneDisplayMode) -> ::windows::core::HRESULT,
    pub PaneHeader: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetPaneHeader: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PaneCustomContent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetPaneCustomContent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ContentOverlay: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetContentOverlay: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsPaneVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsPaneVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub SelectionFollowsFocus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut NavigationViewSelectionFollowsFocus) -> ::windows::core::HRESULT,
    pub SetSelectionFollowsFocus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: NavigationViewSelectionFollowsFocus) -> ::windows::core::HRESULT,
    pub TemplateSettings: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ShoulderNavigationEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut NavigationViewShoulderNavigationEnabled) -> ::windows::core::HRESULT,
    pub SetShoulderNavigationEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: NavigationViewShoulderNavigationEnabled) -> ::windows::core::HRESULT,
    pub OverflowLabelMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut NavigationViewOverflowLabelMode) -> ::windows::core::HRESULT,
    pub SetOverflowLabelMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: NavigationViewOverflowLabelMode) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct INavigationViewBackRequestedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for INavigationViewBackRequestedEventArgs {
    type Vtable = INavigationViewBackRequestedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x446700e1_9a9d_4500_a71d_25c15809b879);
}
#[repr(C)]
#[doc(hidden)]
pub struct INavigationViewBackRequestedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct INavigationViewDisplayModeChangedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for INavigationViewDisplayModeChangedEventArgs {
    type Vtable = INavigationViewDisplayModeChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb7c1ad35_5544_40c1_9b33_acfe1d6c8094);
}
#[repr(C)]
#[doc(hidden)]
pub struct INavigationViewDisplayModeChangedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub DisplayMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut NavigationViewDisplayMode) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct INavigationViewFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for INavigationViewFactory {
    type Vtable = INavigationViewFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe50687c1_b7c2_4975_ad7a_5f4fe6a514c9);
}
#[repr(C)]
#[doc(hidden)]
pub struct INavigationViewFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct INavigationViewItem(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for INavigationViewItem {
    type Vtable = INavigationViewItem_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8614be0f_b7b6_4851_960a_f5e3f69f624a);
}
#[repr(C)]
#[doc(hidden)]
pub struct INavigationViewItem_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Icon: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetIcon: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CompactPaneLength: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct INavigationViewItem2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for INavigationViewItem2 {
    type Vtable = INavigationViewItem2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xee488ef9_ea9c_5e04_b26c_83bf9655342f);
}
#[repr(C)]
#[doc(hidden)]
pub struct INavigationViewItem2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SelectsOnInvoked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetSelectsOnInvoked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct INavigationViewItemBase(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for INavigationViewItemBase {
    type Vtable = INavigationViewItemBase_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xedf04eb1_37d1_471f_8570_3829ee5b2bc6);
}
#[repr(C)]
#[doc(hidden)]
pub struct INavigationViewItemBase_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct INavigationViewItemBaseFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for INavigationViewItemBaseFactory {
    type Vtable = INavigationViewItemBaseFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xeb014cef_7890_4ebb_8245_02e8510f321d);
}
#[repr(C)]
#[doc(hidden)]
pub struct INavigationViewItemBaseFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct INavigationViewItemFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for INavigationViewItemFactory {
    type Vtable = INavigationViewItemFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x973bdb4a_7e08_4f76_923c_f12bd685e86e);
}
#[repr(C)]
#[doc(hidden)]
pub struct INavigationViewItemFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct INavigationViewItemHeader(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for INavigationViewItemHeader {
    type Vtable = INavigationViewItemHeader_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe21df22c_da4a_4e74_9ffc_b163bd7adacd);
}
#[repr(C)]
#[doc(hidden)]
pub struct INavigationViewItemHeader_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct INavigationViewItemHeaderFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for INavigationViewItemHeaderFactory {
    type Vtable = INavigationViewItemHeaderFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf3105988_7768_45d3_8bb0_6ded9e43a98b);
}
#[repr(C)]
#[doc(hidden)]
pub struct INavigationViewItemHeaderFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct INavigationViewItemInvokedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for INavigationViewItemInvokedEventArgs {
    type Vtable = INavigationViewItemInvokedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x29496822_55d2_49fa_964b_f1dbafef85c4);
}
#[repr(C)]
#[doc(hidden)]
pub struct INavigationViewItemInvokedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub InvokedItem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub IsSettingsInvoked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct INavigationViewItemInvokedEventArgs2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for INavigationViewItemInvokedEventArgs2 {
    type Vtable = INavigationViewItemInvokedEventArgs2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb568f2dd_515e_5770_a466_bd5f43fb6442);
}
#[repr(C)]
#[doc(hidden)]
pub struct INavigationViewItemInvokedEventArgs2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub InvokedItemContainer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media_Animation")]
    pub RecommendedNavigationTransitionInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media_Animation"))]
    RecommendedNavigationTransitionInfo: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct INavigationViewItemSeparator(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for INavigationViewItemSeparator {
    type Vtable = INavigationViewItemSeparator_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xde62c951_bb9b_471e_83e3_af4791e7096a);
}
#[repr(C)]
#[doc(hidden)]
pub struct INavigationViewItemSeparator_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct INavigationViewItemSeparatorFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for INavigationViewItemSeparatorFactory {
    type Vtable = INavigationViewItemSeparatorFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x71cf3a66_db86_49e0_8154_5fd356aedec0);
}
#[repr(C)]
#[doc(hidden)]
pub struct INavigationViewItemSeparatorFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct INavigationViewItemStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for INavigationViewItemStatics {
    type Vtable = INavigationViewItemStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x803c0081_fda5_4b90_aace_3f2306dbe5c4);
}
#[repr(C)]
#[doc(hidden)]
pub struct INavigationViewItemStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IconProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CompactPaneLengthProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct INavigationViewItemStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for INavigationViewItemStatics2 {
    type Vtable = INavigationViewItemStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf4f2f77c_54b4_541d_b747_3a96e9ff3d55);
}
#[repr(C)]
#[doc(hidden)]
pub struct INavigationViewItemStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SelectsOnInvokedProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct INavigationViewList(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for INavigationViewList {
    type Vtable = INavigationViewList_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4f726f85_5ce0_48cd_8ef2_1a29458a3404);
}
#[repr(C)]
#[doc(hidden)]
pub struct INavigationViewList_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct INavigationViewListFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for INavigationViewListFactory {
    type Vtable = INavigationViewListFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xfaee9541_c3bf_47bf_b904_6155f4df6b4f);
}
#[repr(C)]
#[doc(hidden)]
pub struct INavigationViewListFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct INavigationViewPaneClosingEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for INavigationViewPaneClosingEventArgs {
    type Vtable = INavigationViewPaneClosingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x955575ba_75f5_432d_b49b_60e47552d5ee);
}
#[repr(C)]
#[doc(hidden)]
pub struct INavigationViewPaneClosingEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Cancel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetCancel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct INavigationViewSelectionChangedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for INavigationViewSelectionChangedEventArgs {
    type Vtable = INavigationViewSelectionChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5aa509a0_3a5e_4f54_896c_98b85f819508);
}
#[repr(C)]
#[doc(hidden)]
pub struct INavigationViewSelectionChangedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SelectedItem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub IsSettingsSelected: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct INavigationViewSelectionChangedEventArgs2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for INavigationViewSelectionChangedEventArgs2 {
    type Vtable = INavigationViewSelectionChangedEventArgs2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xfd5af806_d10a_5e8b_973f_3b8fda944625);
}
#[repr(C)]
#[doc(hidden)]
pub struct INavigationViewSelectionChangedEventArgs2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SelectedItemContainer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media_Animation")]
    pub RecommendedNavigationTransitionInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media_Animation"))]
    RecommendedNavigationTransitionInfo: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct INavigationViewStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for INavigationViewStatics {
    type Vtable = INavigationViewStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x363a86c7_72da_4420_b871_15d9d0d45756);
}
#[repr(C)]
#[doc(hidden)]
pub struct INavigationViewStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsPaneOpenProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CompactModeThresholdWidthProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ExpandedModeThresholdWidthProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PaneFooterProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HeaderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HeaderTemplateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DisplayModeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsSettingsVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsPaneToggleButtonVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub AlwaysShowHeaderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CompactPaneLengthProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OpenPaneLengthProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PaneToggleButtonStyleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MenuItemsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MenuItemsSourceProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SelectedItemProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SettingsItemProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub AutoSuggestBoxProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MenuItemTemplateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MenuItemTemplateSelectorProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MenuItemContainerStyleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MenuItemContainerStyleSelectorProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct INavigationViewStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for INavigationViewStatics2 {
    type Vtable = INavigationViewStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8cc50d74_1a42_4852_ab5a_6dc82f28a4ba);
}
#[repr(C)]
#[doc(hidden)]
pub struct INavigationViewStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsBackButtonVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsBackEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PaneTitleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct INavigationViewStatics3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for INavigationViewStatics3 {
    type Vtable = INavigationViewStatics3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9b6b69b7_f746_5550_91e1_ee0c9a85c05e);
}
#[repr(C)]
#[doc(hidden)]
pub struct INavigationViewStatics3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub PaneDisplayModeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PaneHeaderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PaneCustomContentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ContentOverlayProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsPaneVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SelectionFollowsFocusProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TemplateSettingsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ShoulderNavigationEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OverflowLabelModeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct INavigationViewTemplateSettings(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for INavigationViewTemplateSettings {
    type Vtable = INavigationViewTemplateSettings_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x2956cbc4_0528_55d5_b2d1_eae807aea6da);
}
#[repr(C)]
#[doc(hidden)]
pub struct INavigationViewTemplateSettings_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub TopPadding: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub OverflowButtonVisibility: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Visibility) -> ::windows::core::HRESULT,
    pub PaneToggleButtonVisibility: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Visibility) -> ::windows::core::HRESULT,
    pub BackButtonVisibility: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Visibility) -> ::windows::core::HRESULT,
    pub TopPaneVisibility: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Visibility) -> ::windows::core::HRESULT,
    pub LeftPaneVisibility: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Visibility) -> ::windows::core::HRESULT,
    pub SingleSelectionFollowsFocus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct INavigationViewTemplateSettingsFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for INavigationViewTemplateSettingsFactory {
    type Vtable = INavigationViewTemplateSettingsFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x28a6a351_64bc_5b60_8f74_e9ee908a240e);
}
#[repr(C)]
#[doc(hidden)]
pub struct INavigationViewTemplateSettingsFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct INavigationViewTemplateSettingsStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for INavigationViewTemplateSettingsStatics {
    type Vtable = INavigationViewTemplateSettingsStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x2c885e59_f7b9_5078_aeb6_8d7a03c05d02);
}
#[repr(C)]
#[doc(hidden)]
pub struct INavigationViewTemplateSettingsStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub TopPaddingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OverflowButtonVisibilityProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PaneToggleButtonVisibilityProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub BackButtonVisibilityProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TopPaneVisibilityProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub LeftPaneVisibilityProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SingleSelectionFollowsFocusProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct INotifyEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for INotifyEventArgs {
    type Vtable = INotifyEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xaf0e05f7_c4b7_44c5_b09d_5cb7052b3a97);
}
#[repr(C)]
#[doc(hidden)]
pub struct INotifyEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Value: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct INotifyEventArgs2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for INotifyEventArgs2 {
    type Vtable = INotifyEventArgs2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0d140f56_1dce_4fcd_85bc_5a5572273b9c);
}
#[repr(C)]
#[doc(hidden)]
pub struct INotifyEventArgs2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub CallingUri: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    CallingUri: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPage(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPage {
    type Vtable = IPage_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc4b27075_e641_453e_824d_012fc7cf95cf);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPage_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Frame: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Navigation")]
    pub NavigationCacheMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Navigation::NavigationCacheMode) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Navigation"))]
    NavigationCacheMode: usize,
    #[cfg(feature = "UI_Xaml_Navigation")]
    pub SetNavigationCacheMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Navigation::NavigationCacheMode) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Navigation"))]
    SetNavigationCacheMode: usize,
    pub TopAppBar: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetTopAppBar: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub BottomAppBar: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetBottomAppBar: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPageFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPageFactory {
    type Vtable = IPageFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xdfa149ac_1849_445e_937c_40a9590cc076);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPageFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPageOverrides(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPageOverrides {
    type Vtable = IPageOverrides_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x230b9cb8_3419_4306_aabe_4a8e680d3627);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPageOverrides_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Navigation")]
    pub OnNavigatedFrom: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Navigation"))]
    OnNavigatedFrom: usize,
    #[cfg(feature = "UI_Xaml_Navigation")]
    pub OnNavigatedTo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Navigation"))]
    OnNavigatedTo: usize,
    #[cfg(feature = "UI_Xaml_Navigation")]
    pub OnNavigatingFrom: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Navigation"))]
    OnNavigatingFrom: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPageStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPageStatics {
    type Vtable = IPageStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x376dde71_f725_46dd_8d80_eeeaf7da74e5);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPageStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub FrameProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TopAppBarProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub BottomAppBarProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPanel(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPanel {
    type Vtable = IPanel_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa50a4bbd_8361_469c_90da_e9a40c7474df);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPanel_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation_Collections")]
    pub Children: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    Children: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub Background: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    Background: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetBackground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetBackground: usize,
    pub IsItemsHost: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub ChildrenTransitions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation")))]
    ChildrenTransitions: usize,
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub SetChildrenTransitions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation")))]
    SetChildrenTransitions: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPanel2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPanel2 {
    type Vtable = IPanel2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x709133c7_38f3_5083_a4bb_06a548a1d231);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPanel2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub BackgroundTransition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetBackgroundTransition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPanelFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPanelFactory {
    type Vtable = IPanelFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xeee68111_c7cc_433f_95cd_d630c34302dd);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPanelFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPanelStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPanelStatics {
    type Vtable = IPanelStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf23d6b5d_8330_47a6_a046_25f509b25232);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPanelStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub BackgroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsItemsHostProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ChildrenTransitionsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IParallaxView(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IParallaxView {
    type Vtable = IParallaxView_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6b84fcd4_4083_5b4b_bc40_d9204e19b41a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IParallaxView_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Child: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetChild: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HorizontalShift: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetHorizontalShift: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub HorizontalSourceEndOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetHorizontalSourceEndOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub HorizontalSourceOffsetKind: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ParallaxSourceOffsetKind) -> ::windows::core::HRESULT,
    pub SetHorizontalSourceOffsetKind: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ParallaxSourceOffsetKind) -> ::windows::core::HRESULT,
    pub HorizontalSourceStartOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetHorizontalSourceStartOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub IsHorizontalShiftClamped: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsHorizontalShiftClamped: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsVerticalShiftClamped: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsVerticalShiftClamped: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub MaxHorizontalShiftRatio: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetMaxHorizontalShiftRatio: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub MaxVerticalShiftRatio: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetMaxVerticalShiftRatio: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub Source: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub VerticalShift: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetVerticalShift: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub VerticalSourceEndOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetVerticalSourceEndOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub VerticalSourceOffsetKind: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ParallaxSourceOffsetKind) -> ::windows::core::HRESULT,
    pub SetVerticalSourceOffsetKind: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ParallaxSourceOffsetKind) -> ::windows::core::HRESULT,
    pub VerticalSourceStartOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetVerticalSourceStartOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub RefreshAutomaticHorizontalOffsets: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub RefreshAutomaticVerticalOffsets: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IParallaxViewFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IParallaxViewFactory {
    type Vtable = IParallaxViewFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe4eb9642_3e8e_5a26_94f2_9121d121b916);
}
#[repr(C)]
#[doc(hidden)]
pub struct IParallaxViewFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IParallaxViewStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IParallaxViewStatics {
    type Vtable = IParallaxViewStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8836e49c_0e0e_57d8_9395_f0a9a0d1bb28);
}
#[repr(C)]
#[doc(hidden)]
pub struct IParallaxViewStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ChildProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HorizontalSourceEndOffsetProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HorizontalSourceOffsetKindProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HorizontalSourceStartOffsetProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MaxHorizontalShiftRatioProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HorizontalShiftProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsHorizontalShiftClampedProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsVerticalShiftClampedProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SourceProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub VerticalSourceEndOffsetProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub VerticalSourceOffsetKindProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub VerticalSourceStartOffsetProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MaxVerticalShiftRatioProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub VerticalShiftProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPasswordBox(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPasswordBox {
    type Vtable = IPasswordBox_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x02b9aa11_0b47_4e7d_ad91_3a4168ed230d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPasswordBox_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Password: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetPassword: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub PasswordChar: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetPasswordChar: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    #[cfg(feature = "deprecated")]
    pub IsPasswordRevealButtonEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "deprecated"))]
    IsPasswordRevealButtonEnabled: usize,
    #[cfg(feature = "deprecated")]
    pub SetIsPasswordRevealButtonEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "deprecated"))]
    SetIsPasswordRevealButtonEnabled: usize,
    pub MaxLength: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetMaxLength: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub PasswordChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    PasswordChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemovePasswordChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemovePasswordChanged: usize,
    #[cfg(feature = "Foundation")]
    pub ContextMenuOpening: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ContextMenuOpening: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveContextMenuOpening: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveContextMenuOpening: usize,
    pub SelectAll: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPasswordBox2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPasswordBox2 {
    type Vtable = IPasswordBox2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5ed738df_212f_4aeb_b5b8_2c219aec3c0c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPasswordBox2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Header: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetHeader: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub HeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetHeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PlaceholderText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetPlaceholderText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SelectionHighlightColor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SelectionHighlightColor: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetSelectionHighlightColor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetSelectionHighlightColor: usize,
    pub PreventKeyboardDisplayOnProgrammaticFocus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetPreventKeyboardDisplayOnProgrammaticFocus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub Paste: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Paste: usize,
    #[cfg(feature = "Foundation")]
    pub RemovePaste: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemovePaste: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPasswordBox3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPasswordBox3 {
    type Vtable = IPasswordBox3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6024d9d1_56b7_41f0_9558_3934c14244d6);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPasswordBox3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub PasswordRevealMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut PasswordRevealMode) -> ::windows::core::HRESULT,
    pub SetPasswordRevealMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: PasswordRevealMode) -> ::windows::core::HRESULT,
    pub TextReadingOrder: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::TextReadingOrder) -> ::windows::core::HRESULT,
    pub SetTextReadingOrder: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::TextReadingOrder) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Input")]
    pub InputScope: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    InputScope: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub SetInputScope: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    SetInputScope: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPasswordBox4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPasswordBox4 {
    type Vtable = IPasswordBox4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x569f4343_8e6c_44bf_808d_0e03964ed32f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPasswordBox4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub PasswordChanging: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    PasswordChanging: usize,
    #[cfg(feature = "Foundation")]
    pub RemovePasswordChanging: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemovePasswordChanging: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPasswordBox5(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPasswordBox5 {
    type Vtable = IPasswordBox5_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf96c2753_e1d4_5142_86c2_7318bfbbc705);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPasswordBox5_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CanPasteClipboardContent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub SelectionFlyout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    SelectionFlyout: usize,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub SetSelectionFlyout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    SetSelectionFlyout: usize,
    pub Description: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub PasteFromClipboard: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPasswordBoxPasswordChangingEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPasswordBoxPasswordChangingEventArgs {
    type Vtable = IPasswordBoxPasswordChangingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x142eda22_3552_4ab8_81a6_a48620ee9c53);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPasswordBoxPasswordChangingEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsContentChanging: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPasswordBoxStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPasswordBoxStatics {
    type Vtable = IPasswordBoxStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5ee67563_2d74_4ace_bd79_fcab61a7d77b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPasswordBoxStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub PasswordProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PasswordCharProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "deprecated")]
    pub IsPasswordRevealButtonEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "deprecated"))]
    IsPasswordRevealButtonEnabledProperty: usize,
    pub MaxLengthProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPasswordBoxStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPasswordBoxStatics2 {
    type Vtable = IPasswordBoxStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xfc57935f_98fa_4066_b785_fa725ecde232);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPasswordBoxStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub HeaderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HeaderTemplateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PlaceholderTextProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SelectionHighlightColorProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PreventKeyboardDisplayOnProgrammaticFocusProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPasswordBoxStatics3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPasswordBoxStatics3 {
    type Vtable = IPasswordBoxStatics3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa2cdd319_ad6a_4352_b590_f696ffcb8e3f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPasswordBoxStatics3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub PasswordRevealModeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TextReadingOrderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub InputScopeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPasswordBoxStatics5(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPasswordBoxStatics5 {
    type Vtable = IPasswordBoxStatics5_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4bdac1ac_6b42_55f3_bfa4_65c7235078d6);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPasswordBoxStatics5_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CanPasteClipboardContentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SelectionFlyoutProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DescriptionProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPathIcon(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPathIcon {
    type Vtable = IPathIcon_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x214c62db_c366_4a0e_b9ad_dcf168d7ec0c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPathIcon_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Media")]
    pub Data: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    Data: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetData: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPathIconFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPathIconFactory {
    type Vtable = IPathIconFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xaf9d9652_9c5d_4a37_9e1a_044abeef792b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPathIconFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPathIconSource(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPathIconSource {
    type Vtable = IPathIconSource_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1f47010e_b305_4863_8b7a_15d08d633c7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPathIconSource_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Media")]
    pub Data: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    Data: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetData: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPathIconSourceFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPathIconSourceFactory {
    type Vtable = IPathIconSourceFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8f7f85b9_5247_4f3b_833f_e384bf7e9c84);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPathIconSourceFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPathIconSourceStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPathIconSourceStatics {
    type Vtable = IPathIconSourceStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xdf7027d5_3682_43ff_80f0_afa256b2fdc3);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPathIconSourceStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub DataProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPathIconStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPathIconStatics {
    type Vtable = IPathIconStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x77b75db8_fb15_491a_b6e3_7dbba911bafe);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPathIconStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub DataProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPersonPicture(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPersonPicture {
    type Vtable = IPersonPicture_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6c230b6d_0d75_4059_91bc_7b174d1d7315);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPersonPicture_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub BadgeNumber: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetBadgeNumber: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
    pub BadgeGlyph: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetBadgeGlyph: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media")]
    pub BadgeImageSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    BadgeImageSource: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetBadgeImageSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetBadgeImageSource: usize,
    pub BadgeText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetBadgeText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub IsGroup: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsGroup: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "ApplicationModel_Contacts")]
    pub Contact: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "ApplicationModel_Contacts"))]
    Contact: usize,
    #[cfg(feature = "ApplicationModel_Contacts")]
    pub SetContact: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "ApplicationModel_Contacts"))]
    SetContact: usize,
    pub DisplayName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetDisplayName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub Initials: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetInitials: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub PreferSmallImage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetPreferSmallImage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media")]
    pub ProfilePicture: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    ProfilePicture: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetProfilePicture: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetProfilePicture: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPersonPictureFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPersonPictureFactory {
    type Vtable = IPersonPictureFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4f18330d_0416_4b92_bfd3_bf5780b46ab2);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPersonPictureFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPersonPictureStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPersonPictureStatics {
    type Vtable = IPersonPictureStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xdbec0982_3c10_4639_9614_aa5b7cdc32ca);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPersonPictureStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub BadgeNumberProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub BadgeGlyphProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub BadgeImageSourceProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub BadgeTextProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsGroupProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ContactProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DisplayNameProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub InitialsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PreferSmallImageProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ProfilePictureProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPickerConfirmedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPickerConfirmedEventArgs {
    type Vtable = IPickerConfirmedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x447a9b51_1e23_4779_992b_986849713941);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPickerConfirmedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPickerFlyout(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPickerFlyout {
    type Vtable = IPickerFlyout_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa336ffdb_08d9_43e6_944e_f2e5c7cee630);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPickerFlyout_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Content: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetContent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ConfirmationButtonsVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetConfirmationButtonsVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub Confirmed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Confirmed: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveConfirmed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveConfirmed: usize,
    #[cfg(feature = "Foundation")]
    pub ShowAtAsync: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, target: ::windows::core::RawPtr, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ShowAtAsync: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPickerFlyoutPresenter(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPickerFlyoutPresenter {
    type Vtable = IPickerFlyoutPresenter_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5884c978_6b27_4b38_a9ae_677c2994652e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPickerFlyoutPresenter_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPickerFlyoutStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPickerFlyoutStatics {
    type Vtable = IPickerFlyoutStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xaf18a436_f38a_4abd_b933_6286c115b07f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPickerFlyoutStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ContentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ConfirmationButtonsVisibleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPivot(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPivot {
    type Vtable = IPivot_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x103e9b13_3400_4a16_90b9_6912bf06974e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPivot_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Title: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetTitle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub TitleTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetTitleTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetHeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SelectedIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetSelectedIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
    pub SelectedItem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetSelectedItem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub IsLocked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsLocked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub SelectionChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SelectionChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveSelectionChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveSelectionChanged: usize,
    #[cfg(feature = "Foundation")]
    pub PivotItemLoading: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    PivotItemLoading: usize,
    #[cfg(feature = "Foundation")]
    pub RemovePivotItemLoading: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemovePivotItemLoading: usize,
    #[cfg(feature = "Foundation")]
    pub PivotItemLoaded: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    PivotItemLoaded: usize,
    #[cfg(feature = "Foundation")]
    pub RemovePivotItemLoaded: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemovePivotItemLoaded: usize,
    #[cfg(feature = "Foundation")]
    pub PivotItemUnloading: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    PivotItemUnloading: usize,
    #[cfg(feature = "Foundation")]
    pub RemovePivotItemUnloading: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemovePivotItemUnloading: usize,
    #[cfg(feature = "Foundation")]
    pub PivotItemUnloaded: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    PivotItemUnloaded: usize,
    #[cfg(feature = "Foundation")]
    pub RemovePivotItemUnloaded: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemovePivotItemUnloaded: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPivot2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPivot2 {
    type Vtable = IPivot2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8b8a8660_1a55_411c_a82d_18991c3f0d6f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPivot2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub LeftHeader: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetLeftHeader: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub LeftHeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetLeftHeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub RightHeader: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetRightHeader: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub RightHeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetRightHeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPivot3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPivot3 {
    type Vtable = IPivot3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x95bcbf96_f0da_4089_8c65_e8b81354c766);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPivot3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub HeaderFocusVisualPlacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut PivotHeaderFocusVisualPlacement) -> ::windows::core::HRESULT,
    pub SetHeaderFocusVisualPlacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: PivotHeaderFocusVisualPlacement) -> ::windows::core::HRESULT,
    pub IsHeaderItemsCarouselEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsHeaderItemsCarouselEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPivotFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPivotFactory {
    type Vtable = IPivotFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1b0a818e_2529_4762_ba44_9abc68c3ceca);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPivotFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPivotItem(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPivotItem {
    type Vtable = IPivotItem_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa4764371_a502_47a3_915e_4aa096daf87f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPivotItem_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Header: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetHeader: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPivotItemEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPivotItemEventArgs {
    type Vtable = IPivotItemEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1a6f7254_1ed5_4bc5_a060_655530bca6ba);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPivotItemEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Item: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetItem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPivotItemFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPivotItemFactory {
    type Vtable = IPivotItemFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0dced981_636e_4a34_8a3f_8ee018639285);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPivotItemFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPivotItemStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPivotItemStatics {
    type Vtable = IPivotItemStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe147ad0c_488b_4a6e_becd_a5dbd9941754);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPivotItemStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub HeaderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPivotStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPivotStatics {
    type Vtable = IPivotStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xee22c7f4_c15d_4ff3_8a94_f50dfdfbe899);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPivotStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub TitleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TitleTemplateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HeaderTemplateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SelectedIndexProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SelectedItemProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsLockedProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SlideInAnimationGroupProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetSlideInAnimationGroup: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut PivotSlideInAnimationGroup) -> ::windows::core::HRESULT,
    pub SetSlideInAnimationGroup: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, value: PivotSlideInAnimationGroup) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPivotStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPivotStatics2 {
    type Vtable = IPivotStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd7518add_be75_4023_8deb_c6513c3192a3);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPivotStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub LeftHeaderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub LeftHeaderTemplateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub RightHeaderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub RightHeaderTemplateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IPivotStatics3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IPivotStatics3 {
    type Vtable = IPivotStatics3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x78b6274e_6616_4600_a039_922a5d09330b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPivotStatics3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub HeaderFocusVisualPlacementProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsHeaderItemsCarouselEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IProgressBar(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IProgressBar {
    type Vtable = IProgressBar_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xae752c89_0067_4963_bf4c_29db0c4a507e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IProgressBar_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsIndeterminate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsIndeterminate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub ShowError: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetShowError: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub ShowPaused: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetShowPaused: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub TemplateSettings: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    TemplateSettings: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IProgressBarFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IProgressBarFactory {
    type Vtable = IProgressBarFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xda9a8c11_1591_400b_a993_0f1c5cc12f3b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IProgressBarFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IProgressBarStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IProgressBarStatics {
    type Vtable = IProgressBarStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x7a129fda_5837_4e26_b3b4_e1c092cebbec);
}
#[repr(C)]
#[doc(hidden)]
pub struct IProgressBarStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsIndeterminateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ShowErrorProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ShowPausedProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IProgressRing(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IProgressRing {
    type Vtable = IProgressRing_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6da5e49e_6e9d_425c_bd7c_02173e39763f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IProgressRing_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsActive: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsActive: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub TemplateSettings: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    TemplateSettings: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IProgressRingStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IProgressRingStatics {
    type Vtable = IProgressRingStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe8b62507_4e2c_47d5_a54a_c6c48a5e6989);
}
#[repr(C)]
#[doc(hidden)]
pub struct IProgressRingStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsActiveProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRadioButton(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRadioButton {
    type Vtable = IRadioButton_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x325c44e0_9a03_4bf3_abd6_6fbb46c9a486);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRadioButton_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub GroupName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetGroupName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRadioButtonFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRadioButtonFactory {
    type Vtable = IRadioButtonFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf1d04933_34e1_4a5c_b2ae_ca3b1c0b20de);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRadioButtonFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRadioButtonStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRadioButtonStatics {
    type Vtable = IRadioButtonStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6b149293_f50f_4bd8_b0ac_5c162f33a208);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRadioButtonStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub GroupNameProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRatingControl(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRatingControl {
    type Vtable = IRatingControl_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa7d91ca7_e5cf_4963_a24e_9673fe5ffdd5);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRatingControl_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Caption: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetCaption: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub InitialSetValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetInitialSetValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
    pub IsClearEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsClearEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsReadOnly: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsReadOnly: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub MaxRating: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetMaxRating: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
    pub PlaceholderValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetPlaceholderValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub ItemInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetItemInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub Value: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub ValueChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ValueChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveValueChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveValueChanged: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRatingControlFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRatingControlFactory {
    type Vtable = IRatingControlFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x18d81716_c542_4ccb_b347_5e62c5db782e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRatingControlFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRatingControlStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRatingControlStatics {
    type Vtable = IRatingControlStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd062d399_ad85_4c1c_b2c4_35dd4432275e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRatingControlStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CaptionProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub InitialSetValueProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsClearEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsReadOnlyProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MaxRatingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PlaceholderValueProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ItemInfoProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ValueProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRatingItemFontInfo(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRatingItemFontInfo {
    type Vtable = IRatingItemFontInfo_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x054723e9_7989_4d5c_9d01_a7eb876f1071);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRatingItemFontInfo_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub DisabledGlyph: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetDisabledGlyph: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub Glyph: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetGlyph: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub PointerOverGlyph: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetPointerOverGlyph: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub PointerOverPlaceholderGlyph: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetPointerOverPlaceholderGlyph: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub PlaceholderGlyph: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetPlaceholderGlyph: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub UnsetGlyph: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetUnsetGlyph: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRatingItemFontInfoFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRatingItemFontInfoFactory {
    type Vtable = IRatingItemFontInfoFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9603fe56_9e9f_40b5_bae1_4481bb73bcd3);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRatingItemFontInfoFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRatingItemFontInfoStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRatingItemFontInfoStatics {
    type Vtable = IRatingItemFontInfoStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xfb214f01_6434_4eeb_82ff_7ce5d40bf510);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRatingItemFontInfoStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub DisabledGlyphProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GlyphProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PlaceholderGlyphProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PointerOverGlyphProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PointerOverPlaceholderGlyphProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub UnsetGlyphProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRatingItemImageInfo(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRatingItemImageInfo {
    type Vtable = IRatingItemImageInfo_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x25240e8c_e0d2_490e_b8f8_96c8ee0512b9);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRatingItemImageInfo_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Media")]
    pub DisabledImage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    DisabledImage: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetDisabledImage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetDisabledImage: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub Image: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    Image: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetImage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetImage: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub PlaceholderImage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    PlaceholderImage: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetPlaceholderImage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetPlaceholderImage: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub PointerOverImage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    PointerOverImage: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetPointerOverImage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetPointerOverImage: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub PointerOverPlaceholderImage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    PointerOverPlaceholderImage: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetPointerOverPlaceholderImage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetPointerOverPlaceholderImage: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub UnsetImage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    UnsetImage: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetUnsetImage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetUnsetImage: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRatingItemImageInfoFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRatingItemImageInfoFactory {
    type Vtable = IRatingItemImageInfoFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x269e03f2_da79_4787_9f4a_24a6fa56cde2);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRatingItemImageInfoFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRatingItemImageInfoStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRatingItemImageInfoStatics {
    type Vtable = IRatingItemImageInfoStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8438486b_4b1c_4123_ba0b_73484d68c338);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRatingItemImageInfoStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub DisabledImageProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ImageProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PlaceholderImageProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PointerOverImageProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PointerOverPlaceholderImageProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub UnsetImageProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRatingItemInfo(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRatingItemInfo {
    type Vtable = IRatingItemInfo_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9ccbe6a2_591e_47a0_a318_6a1f7947da2d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRatingItemInfo_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRatingItemInfoFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRatingItemInfoFactory {
    type Vtable = IRatingItemInfoFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb0fd43d6_cfec_43c8_9ac5_0b0d5e25d862);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRatingItemInfoFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRefreshContainer(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRefreshContainer {
    type Vtable = IRefreshContainer_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x535dc413_b1d5_43c1_b057_8658ce1e0ba2);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRefreshContainer_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Visualizer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetVisualizer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PullDirection: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut RefreshPullDirection) -> ::windows::core::HRESULT,
    pub SetPullDirection: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: RefreshPullDirection) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub RefreshRequested: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RefreshRequested: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveRefreshRequested: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveRefreshRequested: usize,
    pub RequestRefresh: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRefreshContainerFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRefreshContainerFactory {
    type Vtable = IRefreshContainerFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0a04777f_089e_4239_baeb_c4641484c37e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRefreshContainerFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRefreshContainerStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRefreshContainerStatics {
    type Vtable = IRefreshContainerStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa20af5a5_7015_475d_9de3_81a0479dda38);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRefreshContainerStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub VisualizerProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PullDirectionProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRefreshInteractionRatioChangedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRefreshInteractionRatioChangedEventArgs {
    type Vtable = IRefreshInteractionRatioChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd7e47820_dc47_4b8e_bb27_7f0a83f29a07);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRefreshInteractionRatioChangedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub InteractionRatio: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRefreshRequestedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRefreshRequestedEventArgs {
    type Vtable = IRefreshRequestedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1b089f43_cfcf_4ac6_b31f_8dab6eefdd93);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRefreshRequestedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub GetDeferral: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    GetDeferral: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRefreshStateChangedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRefreshStateChangedEventArgs {
    type Vtable = IRefreshStateChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xbb6c901e_21fe_4109_af80_73ec661b678a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRefreshStateChangedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub OldState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut RefreshVisualizerState) -> ::windows::core::HRESULT,
    pub NewState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut RefreshVisualizerState) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRefreshVisualizer(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRefreshVisualizer {
    type Vtable = IRefreshVisualizer_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc0e30122_f3eb_4baa_a11f_c3f87342cbf4);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRefreshVisualizer_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub RequestRefresh: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Orientation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut RefreshVisualizerOrientation) -> ::windows::core::HRESULT,
    pub SetOrientation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: RefreshVisualizerOrientation) -> ::windows::core::HRESULT,
    pub Content: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetContent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub State: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut RefreshVisualizerState) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub RefreshRequested: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RefreshRequested: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveRefreshRequested: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveRefreshRequested: usize,
    #[cfg(feature = "Foundation")]
    pub RefreshStateChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RefreshStateChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveRefreshStateChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveRefreshStateChanged: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRefreshVisualizerFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRefreshVisualizerFactory {
    type Vtable = IRefreshVisualizerFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6f5c6132_6e09_4c10_824a_127d36672715);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRefreshVisualizerFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRefreshVisualizerStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRefreshVisualizerStatics {
    type Vtable = IRefreshVisualizerStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xafea56af_362a_4015_b155_733a1f869831);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRefreshVisualizerStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub InfoProviderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OrientationProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ContentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub StateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRelativePanel(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRelativePanel {
    type Vtable = IRelativePanel_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x2eabfaeb_b35a_4035_acea_3c4a3730683f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRelativePanel_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Media")]
    pub BorderBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    BorderBrush: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetBorderBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetBorderBrush: usize,
    pub BorderThickness: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Thickness) -> ::windows::core::HRESULT,
    pub SetBorderThickness: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Thickness) -> ::windows::core::HRESULT,
    pub CornerRadius: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::CornerRadius) -> ::windows::core::HRESULT,
    pub SetCornerRadius: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::CornerRadius) -> ::windows::core::HRESULT,
    pub Padding: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Thickness) -> ::windows::core::HRESULT,
    pub SetPadding: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Thickness) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRelativePanel2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRelativePanel2 {
    type Vtable = IRelativePanel2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc09bd88c_1e82_53b3_8c01_7d0432f5f7db);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRelativePanel2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub BackgroundSizing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut BackgroundSizing) -> ::windows::core::HRESULT,
    pub SetBackgroundSizing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: BackgroundSizing) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRelativePanelFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRelativePanelFactory {
    type Vtable = IRelativePanelFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8460193c_361b_44ba_a17e_b84c9dcdc772);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRelativePanelFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRelativePanelStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRelativePanelStatics {
    type Vtable = IRelativePanelStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x15903c27_f18c_4c35_8e19_6a7459d907b6);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRelativePanelStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub LeftOfProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetLeftOf: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetLeftOf: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AboveProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetAbove: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetAbove: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub RightOfProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetRightOf: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetRightOf: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub BelowProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetBelow: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetBelow: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AlignHorizontalCenterWithProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetAlignHorizontalCenterWith: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetAlignHorizontalCenterWith: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AlignVerticalCenterWithProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetAlignVerticalCenterWith: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetAlignVerticalCenterWith: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AlignLeftWithProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetAlignLeftWith: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetAlignLeftWith: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AlignTopWithProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetAlignTopWith: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetAlignTopWith: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AlignRightWithProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetAlignRightWith: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetAlignRightWith: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AlignBottomWithProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetAlignBottomWith: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetAlignBottomWith: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AlignLeftWithPanelProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetAlignLeftWithPanel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetAlignLeftWithPanel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, value: bool) -> ::windows::core::HRESULT,
    pub AlignTopWithPanelProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetAlignTopWithPanel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetAlignTopWithPanel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, value: bool) -> ::windows::core::HRESULT,
    pub AlignRightWithPanelProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetAlignRightWithPanel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetAlignRightWithPanel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, value: bool) -> ::windows::core::HRESULT,
    pub AlignBottomWithPanelProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetAlignBottomWithPanel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetAlignBottomWithPanel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, value: bool) -> ::windows::core::HRESULT,
    pub AlignHorizontalCenterWithPanelProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetAlignHorizontalCenterWithPanel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetAlignHorizontalCenterWithPanel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, value: bool) -> ::windows::core::HRESULT,
    pub AlignVerticalCenterWithPanelProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetAlignVerticalCenterWithPanel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetAlignVerticalCenterWithPanel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, value: bool) -> ::windows::core::HRESULT,
    pub BorderBrushProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub BorderThicknessProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CornerRadiusProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PaddingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRelativePanelStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRelativePanelStatics2 {
    type Vtable = IRelativePanelStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8d6b3444_5fbc_5d8b_8b46_22176f21fa8e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRelativePanelStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub BackgroundSizingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichEditBox(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichEditBox {
    type Vtable = IRichEditBox_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x90a57a40_80b6_4fce_b1ec_e3c616284b6a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichEditBox_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsReadOnly: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsReadOnly: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub AcceptsReturn: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetAcceptsReturn: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub TextAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::TextAlignment) -> ::windows::core::HRESULT,
    pub SetTextAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::TextAlignment) -> ::windows::core::HRESULT,
    pub TextWrapping: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::TextWrapping) -> ::windows::core::HRESULT,
    pub SetTextWrapping: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::TextWrapping) -> ::windows::core::HRESULT,
    pub IsSpellCheckEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsSpellCheckEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsTextPredictionEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsTextPredictionEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Text")]
    pub Document: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    Document: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub InputScope: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    InputScope: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub SetInputScope: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    SetInputScope: usize,
    #[cfg(feature = "Foundation")]
    pub TextChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    TextChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveTextChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveTextChanged: usize,
    #[cfg(feature = "Foundation")]
    pub SelectionChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SelectionChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveSelectionChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveSelectionChanged: usize,
    #[cfg(feature = "Foundation")]
    pub ContextMenuOpening: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ContextMenuOpening: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveContextMenuOpening: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveContextMenuOpening: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichEditBox2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichEditBox2 {
    type Vtable = IRichEditBox2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xbbea6ead_e805_47a4_bbe7_47e59b8f74a7);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichEditBox2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Header: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetHeader: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub HeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetHeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PlaceholderText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetPlaceholderText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SelectionHighlightColor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SelectionHighlightColor: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetSelectionHighlightColor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetSelectionHighlightColor: usize,
    pub PreventKeyboardDisplayOnProgrammaticFocus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetPreventKeyboardDisplayOnProgrammaticFocus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsColorFontEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsColorFontEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub Paste: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Paste: usize,
    #[cfg(feature = "Foundation")]
    pub RemovePaste: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemovePaste: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichEditBox3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichEditBox3 {
    type Vtable = IRichEditBox3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6b17a462_fbb6_4fff_9991_9399cb9c0b90);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichEditBox3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub TextCompositionStarted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    TextCompositionStarted: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveTextCompositionStarted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveTextCompositionStarted: usize,
    #[cfg(feature = "Foundation")]
    pub TextCompositionChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    TextCompositionChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveTextCompositionChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveTextCompositionChanged: usize,
    #[cfg(feature = "Foundation")]
    pub TextCompositionEnded: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    TextCompositionEnded: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveTextCompositionEnded: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveTextCompositionEnded: usize,
    pub TextReadingOrder: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::TextReadingOrder) -> ::windows::core::HRESULT,
    pub SetTextReadingOrder: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::TextReadingOrder) -> ::windows::core::HRESULT,
    pub DesiredCandidateWindowAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut CandidateWindowAlignment) -> ::windows::core::HRESULT,
    pub SetDesiredCandidateWindowAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: CandidateWindowAlignment) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub CandidateWindowBoundsChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    CandidateWindowBoundsChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveCandidateWindowBoundsChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveCandidateWindowBoundsChanged: usize,
    #[cfg(feature = "Foundation")]
    pub TextChanging: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    TextChanging: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveTextChanging: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveTextChanging: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichEditBox4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichEditBox4 {
    type Vtable = IRichEditBox4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5caa8d35_c838_4bad_a07c_204183bb751f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichEditBox4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation_Collections")]
    pub GetLinguisticAlternativesAsync: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    GetLinguisticAlternativesAsync: usize,
    pub ClipboardCopyFormat: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut RichEditClipboardFormat) -> ::windows::core::HRESULT,
    pub SetClipboardCopyFormat: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: RichEditClipboardFormat) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichEditBox5(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichEditBox5 {
    type Vtable = IRichEditBox5_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa66d9cea_6391_4f3b_9fd3_1fd01f49f327);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichEditBox5_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SelectionHighlightColorWhenNotFocused: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SelectionHighlightColorWhenNotFocused: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetSelectionHighlightColorWhenNotFocused: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetSelectionHighlightColorWhenNotFocused: usize,
    pub MaxLength: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetMaxLength: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichEditBox6(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichEditBox6 {
    type Vtable = IRichEditBox6_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0c89d500_e8d8_4eae_8804_33649205d7d2);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichEditBox6_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub HorizontalTextAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::TextAlignment) -> ::windows::core::HRESULT,
    pub SetHorizontalTextAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::TextAlignment) -> ::windows::core::HRESULT,
    pub CharacterCasing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut CharacterCasing) -> ::windows::core::HRESULT,
    pub SetCharacterCasing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: CharacterCasing) -> ::windows::core::HRESULT,
    pub DisabledFormattingAccelerators: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut DisabledFormattingAccelerators) -> ::windows::core::HRESULT,
    pub SetDisabledFormattingAccelerators: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: DisabledFormattingAccelerators) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub CopyingToClipboard: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    CopyingToClipboard: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveCopyingToClipboard: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveCopyingToClipboard: usize,
    #[cfg(feature = "Foundation")]
    pub CuttingToClipboard: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    CuttingToClipboard: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveCuttingToClipboard: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveCuttingToClipboard: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichEditBox7(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichEditBox7 {
    type Vtable = IRichEditBox7_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x980c93ea_241f_4f6a_a539_9d185c8cf18a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichEditBox7_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Media")]
    pub ContentLinkForegroundColor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    ContentLinkForegroundColor: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetContentLinkForegroundColor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetContentLinkForegroundColor: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub ContentLinkBackgroundColor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    ContentLinkBackgroundColor: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetContentLinkBackgroundColor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetContentLinkBackgroundColor: usize,
    #[cfg(feature = "UI_Xaml_Documents")]
    pub ContentLinkProviders: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Documents"))]
    ContentLinkProviders: usize,
    #[cfg(feature = "UI_Xaml_Documents")]
    pub SetContentLinkProviders: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Documents"))]
    SetContentLinkProviders: usize,
    pub HandwritingView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetHandwritingView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsHandwritingViewEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsHandwritingViewEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub ContentLinkChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ContentLinkChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveContentLinkChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveContentLinkChanged: usize,
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Documents"))]
    pub ContentLinkInvoked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation", feature = "UI_Xaml_Documents")))]
    ContentLinkInvoked: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveContentLinkInvoked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveContentLinkInvoked: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichEditBox8(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichEditBox8 {
    type Vtable = IRichEditBox8_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa098e0b8_18e2_513e_9d8d_4e9703410c03);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichEditBox8_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Text")]
    pub TextDocument: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    TextDocument: usize,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub SelectionFlyout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    SelectionFlyout: usize,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub SetSelectionFlyout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    SetSelectionFlyout: usize,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub ProofingMenuFlyout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    ProofingMenuFlyout: usize,
    pub Description: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub SelectionChanging: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SelectionChanging: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveSelectionChanging: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveSelectionChanging: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichEditBoxFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichEditBoxFactory {
    type Vtable = IRichEditBoxFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x61a1df62_2806_41ed_88ed_ae21f47ab422);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichEditBoxFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichEditBoxSelectionChangingEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichEditBoxSelectionChangingEventArgs {
    type Vtable = IRichEditBoxSelectionChangingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x90e0035c_e8b8_5c33_9896_4e989d65829c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichEditBoxSelectionChangingEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SelectionStart: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SelectionLength: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub Cancel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetCancel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichEditBoxStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichEditBoxStatics {
    type Vtable = IRichEditBoxStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf5e03a74_88ea_479b_9a05_37089ff30ede);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichEditBoxStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsReadOnlyProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub AcceptsReturnProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TextAlignmentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TextWrappingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsSpellCheckEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsTextPredictionEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub InputScopeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichEditBoxStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichEditBoxStatics2 {
    type Vtable = IRichEditBoxStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe3eb26de_2748_420b_b1fc_ce95b6e85eec);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichEditBoxStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub HeaderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HeaderTemplateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PlaceholderTextProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SelectionHighlightColorProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PreventKeyboardDisplayOnProgrammaticFocusProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsColorFontEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichEditBoxStatics3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichEditBoxStatics3 {
    type Vtable = IRichEditBoxStatics3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6d17eec5_1fb3_4c8b_aa23_f5e15d6ab64e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichEditBoxStatics3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub DesiredCandidateWindowAlignmentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TextReadingOrderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichEditBoxStatics4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichEditBoxStatics4 {
    type Vtable = IRichEditBoxStatics4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf5d54fd7_7796_42a5_a5e5_2cd211ee8176);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichEditBoxStatics4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ClipboardCopyFormatProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichEditBoxStatics5(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichEditBoxStatics5 {
    type Vtable = IRichEditBoxStatics5_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4b5c4568_43d5_43e6_bbb9_cb4e6250f45a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichEditBoxStatics5_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SelectionHighlightColorWhenNotFocusedProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MaxLengthProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichEditBoxStatics6(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichEditBoxStatics6 {
    type Vtable = IRichEditBoxStatics6_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xfe40e287_82ed_4f7e_92ba_66f67bc1ff44);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichEditBoxStatics6_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub HorizontalTextAlignmentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CharacterCasingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DisabledFormattingAcceleratorsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichEditBoxStatics7(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichEditBoxStatics7 {
    type Vtable = IRichEditBoxStatics7_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x59fa898f_f861_43da_a7ce_4b9c21d835f9);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichEditBoxStatics7_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ContentLinkForegroundColorProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ContentLinkBackgroundColorProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ContentLinkProvidersProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HandwritingViewProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsHandwritingViewEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichEditBoxStatics8(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichEditBoxStatics8 {
    type Vtable = IRichEditBoxStatics8_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x58045172_106b_56a9_a8e4_4b74bf347d4e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichEditBoxStatics8_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SelectionFlyoutProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ProofingMenuFlyoutProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DescriptionProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichEditBoxTextChangingEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichEditBoxTextChangingEventArgs {
    type Vtable = IRichEditBoxTextChangingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x54065018_2813_4922_9f8e_b6bbafd995d8);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichEditBoxTextChangingEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichEditBoxTextChangingEventArgs2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichEditBoxTextChangingEventArgs2 {
    type Vtable = IRichEditBoxTextChangingEventArgs2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x395b0db5_636e_413e_9eb4_fc22ebfa3628);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichEditBoxTextChangingEventArgs2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsContentChanging: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichTextBlock(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichTextBlock {
    type Vtable = IRichTextBlock_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe5fff9e2_b968_49e7_97d4_8cca2ac3ae7c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichTextBlock_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub FontSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetFontSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media")]
    pub FontFamily: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    FontFamily: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetFontFamily: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetFontFamily: usize,
    #[cfg(feature = "UI_Text")]
    pub FontWeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Text::FontWeight) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    FontWeight: usize,
    #[cfg(feature = "UI_Text")]
    pub SetFontWeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::Text::FontWeight) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    SetFontWeight: usize,
    #[cfg(feature = "UI_Text")]
    pub FontStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Text::FontStyle) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    FontStyle: usize,
    #[cfg(feature = "UI_Text")]
    pub SetFontStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::Text::FontStyle) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    SetFontStyle: usize,
    #[cfg(feature = "UI_Text")]
    pub FontStretch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Text::FontStretch) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    FontStretch: usize,
    #[cfg(feature = "UI_Text")]
    pub SetFontStretch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::Text::FontStretch) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    SetFontStretch: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub Foreground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    Foreground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetForeground: usize,
    pub TextWrapping: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::TextWrapping) -> ::windows::core::HRESULT,
    pub SetTextWrapping: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::TextWrapping) -> ::windows::core::HRESULT,
    pub TextTrimming: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::TextTrimming) -> ::windows::core::HRESULT,
    pub SetTextTrimming: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::TextTrimming) -> ::windows::core::HRESULT,
    pub TextAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::TextAlignment) -> ::windows::core::HRESULT,
    pub SetTextAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::TextAlignment) -> ::windows::core::HRESULT,
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Documents"))]
    pub Blocks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation_Collections", feature = "UI_Xaml_Documents")))]
    Blocks: usize,
    pub Padding: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Thickness) -> ::windows::core::HRESULT,
    pub SetPadding: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Thickness) -> ::windows::core::HRESULT,
    pub LineHeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetLineHeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub LineStackingStrategy: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::LineStackingStrategy) -> ::windows::core::HRESULT,
    pub SetLineStackingStrategy: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::LineStackingStrategy) -> ::windows::core::HRESULT,
    pub CharacterSpacing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetCharacterSpacing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
    pub OverflowContentTarget: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetOverflowContentTarget: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsTextSelectionEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsTextSelectionEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub HasOverflowContent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SelectedText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Documents")]
    pub ContentStart: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Documents"))]
    ContentStart: usize,
    #[cfg(feature = "UI_Xaml_Documents")]
    pub ContentEnd: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Documents"))]
    ContentEnd: usize,
    #[cfg(feature = "UI_Xaml_Documents")]
    pub SelectionStart: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Documents"))]
    SelectionStart: usize,
    #[cfg(feature = "UI_Xaml_Documents")]
    pub SelectionEnd: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Documents"))]
    SelectionEnd: usize,
    pub BaselineOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub SelectionChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SelectionChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveSelectionChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveSelectionChanged: usize,
    #[cfg(feature = "Foundation")]
    pub ContextMenuOpening: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ContextMenuOpening: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveContextMenuOpening: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveContextMenuOpening: usize,
    pub SelectAll: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Documents")]
    pub Select: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: ::windows::core::RawPtr, end: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Documents"))]
    Select: usize,
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Documents"))]
    pub GetPositionFromPoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, point: super::super::super::Foundation::Point, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation", feature = "UI_Xaml_Documents")))]
    GetPositionFromPoint: usize,
    pub Focus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::FocusState, result__: *mut bool) -> ::windows::core::HRESULT,
    pub TextIndent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetTextIndent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichTextBlock2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichTextBlock2 {
    type Vtable = IRichTextBlock2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3f209013_03e7_4508_964a_91aedab3d11e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichTextBlock2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub MaxLines: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetMaxLines: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
    pub TextLineBounds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::TextLineBounds) -> ::windows::core::HRESULT,
    pub SetTextLineBounds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::TextLineBounds) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SelectionHighlightColor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SelectionHighlightColor: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetSelectionHighlightColor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetSelectionHighlightColor: usize,
    pub OpticalMarginAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::OpticalMarginAlignment) -> ::windows::core::HRESULT,
    pub SetOpticalMarginAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::OpticalMarginAlignment) -> ::windows::core::HRESULT,
    pub IsColorFontEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsColorFontEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub TextReadingOrder: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::TextReadingOrder) -> ::windows::core::HRESULT,
    pub SetTextReadingOrder: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::TextReadingOrder) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichTextBlock3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichTextBlock3 {
    type Vtable = IRichTextBlock3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x7d39ae83_8918_4613_b007_7c898ba2950e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichTextBlock3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsTextScaleFactorEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsTextScaleFactorEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichTextBlock4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichTextBlock4 {
    type Vtable = IRichTextBlock4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3577c1ea_24fd_4f50_bbe4_3fb654ea58c5);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichTextBlock4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Text")]
    pub TextDecorations: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Text::TextDecorations) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    TextDecorations: usize,
    #[cfg(feature = "UI_Text")]
    pub SetTextDecorations: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::Text::TextDecorations) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    SetTextDecorations: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichTextBlock5(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichTextBlock5 {
    type Vtable = IRichTextBlock5_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9c7dc0c6_7a9f_45b6_8818_822c549ba094);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichTextBlock5_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsTextTrimmed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub HorizontalTextAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::TextAlignment) -> ::windows::core::HRESULT,
    pub SetHorizontalTextAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::TextAlignment) -> ::windows::core::HRESULT,
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Documents"))]
    pub TextHighlighters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation_Collections", feature = "UI_Xaml_Documents")))]
    TextHighlighters: usize,
    #[cfg(feature = "Foundation")]
    pub IsTextTrimmedChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    IsTextTrimmedChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveIsTextTrimmedChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveIsTextTrimmedChanged: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichTextBlock6(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichTextBlock6 {
    type Vtable = IRichTextBlock6_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xae9010cd_e899_526e_927e_88e0eed693c8);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichTextBlock6_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub SelectionFlyout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    SelectionFlyout: usize,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub SetSelectionFlyout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    SetSelectionFlyout: usize,
    pub CopySelectionToClipboard: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichTextBlockOverflow(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichTextBlockOverflow {
    type Vtable = IRichTextBlockOverflow_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4f93749b_dac3_4a42_9cbb_99f0de37c071);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichTextBlockOverflow_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub OverflowContentTarget: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetOverflowContentTarget: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub Padding: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Thickness) -> ::windows::core::HRESULT,
    pub SetPadding: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Thickness) -> ::windows::core::HRESULT,
    pub ContentSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HasOverflowContent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Documents")]
    pub ContentStart: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Documents"))]
    ContentStart: usize,
    #[cfg(feature = "UI_Xaml_Documents")]
    pub ContentEnd: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Documents"))]
    ContentEnd: usize,
    pub BaselineOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Documents"))]
    pub GetPositionFromPoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, point: super::super::super::Foundation::Point, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation", feature = "UI_Xaml_Documents")))]
    GetPositionFromPoint: usize,
    pub Focus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::FocusState, result__: *mut bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichTextBlockOverflow2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichTextBlockOverflow2 {
    type Vtable = IRichTextBlockOverflow2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8742624e_a882_4826_b929_4d5c3905b9a1);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichTextBlockOverflow2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub MaxLines: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetMaxLines: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichTextBlockOverflow3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichTextBlockOverflow3 {
    type Vtable = IRichTextBlockOverflow3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x7f69587b_5c7f_4b5f_bdbc_fb95c90e10de);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichTextBlockOverflow3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsTextTrimmed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub IsTextTrimmedChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    IsTextTrimmedChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveIsTextTrimmedChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveIsTextTrimmedChanged: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichTextBlockOverflowStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichTextBlockOverflowStatics {
    type Vtable = IRichTextBlockOverflowStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x041ac2f7_4f2b_43c3_a122_3fea9ca9dc87);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichTextBlockOverflowStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub OverflowContentTargetProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PaddingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HasOverflowContentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichTextBlockOverflowStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichTextBlockOverflowStatics2 {
    type Vtable = IRichTextBlockOverflowStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb5ebed4c_f8c4_4a3a_907f_e53e78279fa3);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichTextBlockOverflowStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub MaxLinesProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichTextBlockOverflowStatics3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichTextBlockOverflowStatics3 {
    type Vtable = IRichTextBlockOverflowStatics3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd1d4a705_eb0b_4ecb_b9b7_e65d03087c8e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichTextBlockOverflowStatics3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsTextTrimmedProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichTextBlockStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichTextBlockStatics {
    type Vtable = IRichTextBlockStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x492d883c_adea_433c_be1c_208a164262be);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichTextBlockStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub FontSizeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FontFamilyProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FontWeightProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FontStyleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FontStretchProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ForegroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TextWrappingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TextTrimmingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TextAlignmentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PaddingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub LineHeightProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub LineStackingStrategyProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CharacterSpacingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OverflowContentTargetProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsTextSelectionEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HasOverflowContentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SelectedTextProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TextIndentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichTextBlockStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichTextBlockStatics2 {
    type Vtable = IRichTextBlockStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0d6131e1_af29_48ce_8aaf_74ecc28bfbb0);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichTextBlockStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub MaxLinesProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TextLineBoundsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SelectionHighlightColorProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OpticalMarginAlignmentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsColorFontEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TextReadingOrderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichTextBlockStatics3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichTextBlockStatics3 {
    type Vtable = IRichTextBlockStatics3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x073f7ef4_ca2b_4b49_a59a_31d8fa743332);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichTextBlockStatics3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsTextScaleFactorEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichTextBlockStatics4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichTextBlockStatics4 {
    type Vtable = IRichTextBlockStatics4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x80155bc4_6d96_4b08_ad57_13db0f046412);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichTextBlockStatics4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub TextDecorationsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichTextBlockStatics5(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichTextBlockStatics5 {
    type Vtable = IRichTextBlockStatics5_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xac9283a1_4f25_4280_8868_3eeee82821e8);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichTextBlockStatics5_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsTextTrimmedProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HorizontalTextAlignmentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRichTextBlockStatics6(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRichTextBlockStatics6 {
    type Vtable = IRichTextBlockStatics6_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x073057e7_91c5_5857_be7c_e72621239786);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRichTextBlockStatics6_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SelectionFlyoutProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRowDefinition(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRowDefinition {
    type Vtable = IRowDefinition_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4abae829_d80c_4a5e_a48c_f8b3d3b6533d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRowDefinition_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Height: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::GridLength) -> ::windows::core::HRESULT,
    pub SetHeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::GridLength) -> ::windows::core::HRESULT,
    pub MaxHeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetMaxHeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub MinHeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetMinHeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub ActualHeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IRowDefinitionStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IRowDefinitionStatics {
    type Vtable = IRowDefinitionStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5adf3fe5_2056_4724_94d6_e4812b022ec8);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRowDefinitionStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub HeightProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MaxHeightProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MinHeightProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct IScrollAnchorProvider(::windows::core::IUnknown);
impl IScrollAnchorProvider {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CurrentAnchor(&self) -> ::windows::core::Result<super::UIElement> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CurrentAnchor)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::UIElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn RegisterAnchorCandidate<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(&self, element: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RegisterAnchorCandidate)(::core::mem::transmute_copy(this), element.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn UnregisterAnchorCandidate<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(&self, element: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).UnregisterAnchorCandidate)(::core::mem::transmute_copy(this), element.into_param().abi()).ok() }
    }
}
impl ::core::convert::From<IScrollAnchorProvider> for ::windows::core::IUnknown {
    fn from(value: IScrollAnchorProvider) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IScrollAnchorProvider> for ::windows::core::IUnknown {
    fn from(value: &IScrollAnchorProvider) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for IScrollAnchorProvider {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a IScrollAnchorProvider {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<IScrollAnchorProvider> for ::windows::core::IInspectable {
    fn from(value: IScrollAnchorProvider) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IScrollAnchorProvider> for ::windows::core::IInspectable {
    fn from(value: &IScrollAnchorProvider) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for IScrollAnchorProvider {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a IScrollAnchorProvider {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for IScrollAnchorProvider {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IScrollAnchorProvider {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IScrollAnchorProvider {}
impl ::core::fmt::Debug for IScrollAnchorProvider {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IScrollAnchorProvider").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for IScrollAnchorProvider {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"{6ae99a0f-478c-5440-b2c6-ead4378ef8e4}");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for IScrollAnchorProvider {
    type Vtable = IScrollAnchorProvider_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6ae99a0f_478c_5440_b2c6_ead4378ef8e4);
}
#[repr(C)]
#[doc(hidden)]
pub struct IScrollAnchorProvider_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CurrentAnchor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub RegisterAnchorCandidate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub UnregisterAnchorCandidate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IScrollContentPresenter(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IScrollContentPresenter {
    type Vtable = IScrollContentPresenter_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5712ee2b_0eeb_46d3_aa31_5f6801b8de20);
}
#[repr(C)]
#[doc(hidden)]
pub struct IScrollContentPresenter_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CanVerticallyScroll: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetCanVerticallyScroll: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub CanHorizontallyScroll: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetCanHorizontallyScroll: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub ExtentWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub ExtentHeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub ViewportWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub ViewportHeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub HorizontalOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub VerticalOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub ScrollOwner: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetScrollOwner: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub LineUp: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub LineDown: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub LineLeft: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub LineRight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub PageUp: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub PageDown: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub PageLeft: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub PageRight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub MouseWheelUp: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub MouseWheelDown: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub MouseWheelLeft: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub MouseWheelRight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetHorizontalOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: f64) -> ::windows::core::HRESULT,
    pub SetVerticalOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: f64) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub MakeVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, visual: ::windows::core::RawPtr, rectangle: super::super::super::Foundation::Rect, result__: *mut super::super::super::Foundation::Rect) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    MakeVisible: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IScrollContentPresenter2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IScrollContentPresenter2 {
    type Vtable = IScrollContentPresenter2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5f9f2737_2318_5999_8a62_c3ed3c0e98b6);
}
#[repr(C)]
#[doc(hidden)]
pub struct IScrollContentPresenter2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CanContentRenderOutsideBounds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetCanContentRenderOutsideBounds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub SizesContentToTemplatedParent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetSizesContentToTemplatedParent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IScrollContentPresenterStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IScrollContentPresenterStatics2 {
    type Vtable = IScrollContentPresenterStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe172ff1a_c676_524b_8f20_96152149d05e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IScrollContentPresenterStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CanContentRenderOutsideBoundsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SizesContentToTemplatedParentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IScrollViewer(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IScrollViewer {
    type Vtable = IScrollViewer_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x64e9be00_4dc1_493d_abe7_cbd3c577490d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IScrollViewer_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub HorizontalScrollBarVisibility: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ScrollBarVisibility) -> ::windows::core::HRESULT,
    pub SetHorizontalScrollBarVisibility: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ScrollBarVisibility) -> ::windows::core::HRESULT,
    pub VerticalScrollBarVisibility: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ScrollBarVisibility) -> ::windows::core::HRESULT,
    pub SetVerticalScrollBarVisibility: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ScrollBarVisibility) -> ::windows::core::HRESULT,
    pub IsHorizontalRailEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsHorizontalRailEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsVerticalRailEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsVerticalRailEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsHorizontalScrollChainingEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsHorizontalScrollChainingEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsVerticalScrollChainingEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsVerticalScrollChainingEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsZoomChainingEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsZoomChainingEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsScrollInertiaEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsScrollInertiaEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsZoomInertiaEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsZoomInertiaEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub HorizontalScrollMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ScrollMode) -> ::windows::core::HRESULT,
    pub SetHorizontalScrollMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ScrollMode) -> ::windows::core::HRESULT,
    pub VerticalScrollMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ScrollMode) -> ::windows::core::HRESULT,
    pub SetVerticalScrollMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ScrollMode) -> ::windows::core::HRESULT,
    pub ZoomMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ZoomMode) -> ::windows::core::HRESULT,
    pub SetZoomMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ZoomMode) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub HorizontalSnapPointsAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut Primitives::SnapPointsAlignment) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    HorizontalSnapPointsAlignment: usize,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub SetHorizontalSnapPointsAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: Primitives::SnapPointsAlignment) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    SetHorizontalSnapPointsAlignment: usize,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub VerticalSnapPointsAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut Primitives::SnapPointsAlignment) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    VerticalSnapPointsAlignment: usize,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub SetVerticalSnapPointsAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: Primitives::SnapPointsAlignment) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    SetVerticalSnapPointsAlignment: usize,
    pub HorizontalSnapPointsType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut SnapPointsType) -> ::windows::core::HRESULT,
    pub SetHorizontalSnapPointsType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: SnapPointsType) -> ::windows::core::HRESULT,
    pub VerticalSnapPointsType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut SnapPointsType) -> ::windows::core::HRESULT,
    pub SetVerticalSnapPointsType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: SnapPointsType) -> ::windows::core::HRESULT,
    pub ZoomSnapPointsType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut SnapPointsType) -> ::windows::core::HRESULT,
    pub SetZoomSnapPointsType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: SnapPointsType) -> ::windows::core::HRESULT,
    pub HorizontalOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub ViewportWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub ScrollableWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub ComputedHorizontalScrollBarVisibility: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Visibility) -> ::windows::core::HRESULT,
    pub ExtentWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub VerticalOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub ViewportHeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub ScrollableHeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub ComputedVerticalScrollBarVisibility: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Visibility) -> ::windows::core::HRESULT,
    pub ExtentHeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub MinZoomFactor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f32) -> ::windows::core::HRESULT,
    pub SetMinZoomFactor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f32) -> ::windows::core::HRESULT,
    pub MaxZoomFactor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f32) -> ::windows::core::HRESULT,
    pub SetMaxZoomFactor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f32) -> ::windows::core::HRESULT,
    pub ZoomFactor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation_Collections")]
    pub ZoomSnapPoints: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    ZoomSnapPoints: usize,
    #[cfg(feature = "Foundation")]
    pub ViewChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ViewChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveViewChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveViewChanged: usize,
    #[cfg(feature = "deprecated")]
    pub ScrollToHorizontalOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: f64) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "deprecated"))]
    ScrollToHorizontalOffset: usize,
    #[cfg(feature = "deprecated")]
    pub ScrollToVerticalOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: f64) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "deprecated"))]
    ScrollToVerticalOffset: usize,
    #[cfg(feature = "deprecated")]
    pub ZoomToFactor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, factor: f32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "deprecated"))]
    ZoomToFactor: usize,
    pub InvalidateScrollInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub IsDeferredScrollingEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsDeferredScrollingEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub BringIntoViewOnFocusChange: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetBringIntoViewOnFocusChange: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IScrollViewer2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IScrollViewer2 {
    type Vtable = IScrollViewer2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x64e9be10_4dd1_494d_abf7_cbd3c577491d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IScrollViewer2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub TopLeftHeader: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetTopLeftHeader: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub LeftHeader: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetLeftHeader: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TopHeader: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetTopHeader: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub ViewChanging: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ViewChanging: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveViewChanging: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveViewChanging: usize,
    #[cfg(feature = "Foundation")]
    pub ChangeView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, horizontaloffset: ::windows::core::RawPtr, verticaloffset: ::windows::core::RawPtr, zoomfactor: ::windows::core::RawPtr, result__: *mut bool) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ChangeView: usize,
    #[cfg(feature = "Foundation")]
    pub ChangeViewWithOptionalAnimation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, horizontaloffset: ::windows::core::RawPtr, verticaloffset: ::windows::core::RawPtr, zoomfactor: ::windows::core::RawPtr, disableanimation: bool, result__: *mut bool) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ChangeViewWithOptionalAnimation: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IScrollViewer3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IScrollViewer3 {
    type Vtable = IScrollViewer3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x74e9be21_5de2_595e_bc08_dbd3c577492c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IScrollViewer3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub DirectManipulationStarted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    DirectManipulationStarted: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveDirectManipulationStarted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveDirectManipulationStarted: usize,
    #[cfg(feature = "Foundation")]
    pub DirectManipulationCompleted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    DirectManipulationCompleted: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveDirectManipulationCompleted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveDirectManipulationCompleted: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IScrollViewer4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IScrollViewer4 {
    type Vtable = IScrollViewer4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x786fb0c4_50a9_5a45_8a92_7bf372e19098);
}
#[repr(C)]
#[doc(hidden)]
pub struct IScrollViewer4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ReduceViewportForCoreInputViewOcclusions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetReduceViewportForCoreInputViewOcclusions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub HorizontalAnchorRatio: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetHorizontalAnchorRatio: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub VerticalAnchorRatio: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetVerticalAnchorRatio: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub CanContentRenderOutsideBounds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetCanContentRenderOutsideBounds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub AnchorRequested: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    AnchorRequested: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveAnchorRequested: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveAnchorRequested: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IScrollViewerStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IScrollViewerStatics {
    type Vtable = IScrollViewerStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x33d1299d_8d6e_4290_bf22_905cccd04d31);
}
#[repr(C)]
#[doc(hidden)]
pub struct IScrollViewerStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub HorizontalSnapPointsAlignmentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub VerticalSnapPointsAlignmentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HorizontalSnapPointsTypeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub VerticalSnapPointsTypeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ZoomSnapPointsTypeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HorizontalOffsetProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ViewportWidthProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ScrollableWidthProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ComputedHorizontalScrollBarVisibilityProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ExtentWidthProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub VerticalOffsetProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ViewportHeightProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ScrollableHeightProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ComputedVerticalScrollBarVisibilityProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ExtentHeightProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MinZoomFactorProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MaxZoomFactorProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ZoomFactorProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ZoomSnapPointsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HorizontalScrollBarVisibilityProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetHorizontalScrollBarVisibility: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut ScrollBarVisibility) -> ::windows::core::HRESULT,
    pub SetHorizontalScrollBarVisibility: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, horizontalscrollbarvisibility: ScrollBarVisibility) -> ::windows::core::HRESULT,
    pub VerticalScrollBarVisibilityProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetVerticalScrollBarVisibility: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut ScrollBarVisibility) -> ::windows::core::HRESULT,
    pub SetVerticalScrollBarVisibility: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, verticalscrollbarvisibility: ScrollBarVisibility) -> ::windows::core::HRESULT,
    pub IsHorizontalRailEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetIsHorizontalRailEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsHorizontalRailEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, ishorizontalrailenabled: bool) -> ::windows::core::HRESULT,
    pub IsVerticalRailEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetIsVerticalRailEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsVerticalRailEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, isverticalrailenabled: bool) -> ::windows::core::HRESULT,
    pub IsHorizontalScrollChainingEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetIsHorizontalScrollChainingEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsHorizontalScrollChainingEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, ishorizontalscrollchainingenabled: bool) -> ::windows::core::HRESULT,
    pub IsVerticalScrollChainingEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetIsVerticalScrollChainingEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsVerticalScrollChainingEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, isverticalscrollchainingenabled: bool) -> ::windows::core::HRESULT,
    pub IsZoomChainingEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetIsZoomChainingEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsZoomChainingEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, iszoomchainingenabled: bool) -> ::windows::core::HRESULT,
    pub IsScrollInertiaEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetIsScrollInertiaEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsScrollInertiaEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, isscrollinertiaenabled: bool) -> ::windows::core::HRESULT,
    pub IsZoomInertiaEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetIsZoomInertiaEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsZoomInertiaEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, iszoominertiaenabled: bool) -> ::windows::core::HRESULT,
    pub HorizontalScrollModeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetHorizontalScrollMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut ScrollMode) -> ::windows::core::HRESULT,
    pub SetHorizontalScrollMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, horizontalscrollmode: ScrollMode) -> ::windows::core::HRESULT,
    pub VerticalScrollModeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetVerticalScrollMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut ScrollMode) -> ::windows::core::HRESULT,
    pub SetVerticalScrollMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, verticalscrollmode: ScrollMode) -> ::windows::core::HRESULT,
    pub ZoomModeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetZoomMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut ZoomMode) -> ::windows::core::HRESULT,
    pub SetZoomMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, zoommode: ZoomMode) -> ::windows::core::HRESULT,
    pub IsDeferredScrollingEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetIsDeferredScrollingEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsDeferredScrollingEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, isdeferredscrollingenabled: bool) -> ::windows::core::HRESULT,
    pub BringIntoViewOnFocusChangeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetBringIntoViewOnFocusChange: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetBringIntoViewOnFocusChange: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, bringintoviewonfocuschange: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IScrollViewerStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IScrollViewerStatics2 {
    type Vtable = IScrollViewerStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x33d129ad_8d7e_42a0_bf32_905cccd04d41);
}
#[repr(C)]
#[doc(hidden)]
pub struct IScrollViewerStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub TopLeftHeaderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub LeftHeaderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TopHeaderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IScrollViewerStatics4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IScrollViewerStatics4 {
    type Vtable = IScrollViewerStatics4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x220cf7cc_4f46_59f1_af9b_67fa8eb33d01);
}
#[repr(C)]
#[doc(hidden)]
pub struct IScrollViewerStatics4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ReduceViewportForCoreInputViewOcclusionsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HorizontalAnchorRatioProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub VerticalAnchorRatioProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CanContentRenderOutsideBoundsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetCanContentRenderOutsideBounds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetCanContentRenderOutsideBounds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, cancontentrenderoutsidebounds: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IScrollViewerView(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IScrollViewerView {
    type Vtable = IScrollViewerView_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x64e9be01_4dc2_493e_abe8_cbd3c577490e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IScrollViewerView_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub HorizontalOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub VerticalOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub ZoomFactor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f32) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IScrollViewerViewChangedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IScrollViewerViewChangedEventArgs {
    type Vtable = IScrollViewerViewChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4dd04f7e_7a11_4b2e_9933_577df39252b6);
}
#[repr(C)]
#[doc(hidden)]
pub struct IScrollViewerViewChangedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsIntermediate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IScrollViewerViewChangingEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IScrollViewerViewChangingEventArgs {
    type Vtable = IScrollViewerViewChangingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4dd04f7f_7a11_4b2e_9933_577df39252b6);
}
#[repr(C)]
#[doc(hidden)]
pub struct IScrollViewerViewChangingEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub NextView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FinalView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsInertial: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISearchBox(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISearchBox {
    type Vtable = ISearchBox_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf89ecc5a_99ba_4bd4_966c_f11fa443d13c);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISearchBox_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SearchHistoryEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetSearchHistoryEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub SearchHistoryContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetSearchHistoryContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub PlaceholderText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetPlaceholderText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub QueryText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetQueryText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub FocusOnKeyboardInput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetFocusOnKeyboardInput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub ChooseSuggestionOnEnter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetChooseSuggestionOnEnter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub QueryChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    QueryChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveQueryChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveQueryChanged: usize,
    #[cfg(feature = "Foundation")]
    pub SuggestionsRequested: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SuggestionsRequested: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveSuggestionsRequested: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveSuggestionsRequested: usize,
    #[cfg(feature = "Foundation")]
    pub QuerySubmitted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    QuerySubmitted: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveQuerySubmitted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveQuerySubmitted: usize,
    #[cfg(feature = "Foundation")]
    pub ResultSuggestionChosen: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ResultSuggestionChosen: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveResultSuggestionChosen: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveResultSuggestionChosen: usize,
    #[cfg(feature = "Foundation")]
    pub PrepareForFocusOnKeyboardInput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    PrepareForFocusOnKeyboardInput: usize,
    #[cfg(feature = "Foundation")]
    pub RemovePrepareForFocusOnKeyboardInput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemovePrepareForFocusOnKeyboardInput: usize,
    #[cfg(feature = "ApplicationModel_Search")]
    pub SetLocalContentSuggestionSettings: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, settings: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "ApplicationModel_Search"))]
    SetLocalContentSuggestionSettings: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISearchBoxFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISearchBoxFactory {
    type Vtable = ISearchBoxFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xcd743f6d_8685_46b4_9ddd_202f6941b701);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISearchBoxFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISearchBoxQueryChangedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISearchBoxQueryChangedEventArgs {
    type Vtable = ISearchBoxQueryChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa9a70f8f_0cb0_4bd2_9998_2fb57ad5e731);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISearchBoxQueryChangedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub QueryText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub Language: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    #[cfg(feature = "ApplicationModel_Search")]
    pub LinguisticDetails: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "ApplicationModel_Search"))]
    LinguisticDetails: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISearchBoxQuerySubmittedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISearchBoxQuerySubmittedEventArgs {
    type Vtable = ISearchBoxQuerySubmittedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x126e90fd_3c4e_4ccb_9aef_4705d19fe548);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISearchBoxQuerySubmittedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub QueryText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub Language: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    #[cfg(feature = "ApplicationModel_Search")]
    pub LinguisticDetails: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "ApplicationModel_Search"))]
    LinguisticDetails: usize,
    #[cfg(feature = "System")]
    pub KeyModifiers: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::super::System::VirtualKeyModifiers) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "System"))]
    KeyModifiers: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISearchBoxResultSuggestionChosenEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISearchBoxResultSuggestionChosenEventArgs {
    type Vtable = ISearchBoxResultSuggestionChosenEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x18918c23_e4c3_4662_a03b_d054ffd0f905);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISearchBoxResultSuggestionChosenEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Tag: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    #[cfg(feature = "System")]
    pub KeyModifiers: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::super::System::VirtualKeyModifiers) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "System"))]
    KeyModifiers: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISearchBoxStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISearchBoxStatics {
    type Vtable = ISearchBoxStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb123634f_6871_48cd_92df_4cff22459082);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISearchBoxStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SearchHistoryEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SearchHistoryContextProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PlaceholderTextProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub QueryTextProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FocusOnKeyboardInputProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ChooseSuggestionOnEnterProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISearchBoxSuggestionsRequestedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISearchBoxSuggestionsRequestedEventArgs {
    type Vtable = ISearchBoxSuggestionsRequestedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xda15170e_e566_48cb_bd11_fe4b0f30a44d);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISearchBoxSuggestionsRequestedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub QueryText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub Language: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    #[cfg(feature = "ApplicationModel_Search")]
    pub LinguisticDetails: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "ApplicationModel_Search"))]
    LinguisticDetails: usize,
    #[cfg(feature = "ApplicationModel_Search")]
    pub Request: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "ApplicationModel_Search"))]
    Request: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISectionsInViewChangedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISectionsInViewChangedEventArgs {
    type Vtable = ISectionsInViewChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xdd49ee6b_d165_430f_a37d_b807064f85e1);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISectionsInViewChangedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation_Collections")]
    pub AddedSections: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    AddedSections: usize,
    #[cfg(feature = "Foundation_Collections")]
    pub RemovedSections: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    RemovedSections: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISectionsInViewChangedEventArgsFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISectionsInViewChangedEventArgsFactory {
    type Vtable = ISectionsInViewChangedEventArgsFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x557f5244_92f8_4150_b730_e6346e8f50d1);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISectionsInViewChangedEventArgsFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISelectionChangedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISelectionChangedEventArgs {
    type Vtable = ISelectionChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc972d2dc_b609_4758_851e_a799c21de97d);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISelectionChangedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation_Collections")]
    pub AddedItems: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    AddedItems: usize,
    #[cfg(feature = "Foundation_Collections")]
    pub RemovedItems: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    RemovedItems: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISelectionChangedEventArgsFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISelectionChangedEventArgsFactory {
    type Vtable = ISelectionChangedEventArgsFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x11a8b6b5_2830_4517_84cd_5524c8b88b45);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISelectionChangedEventArgsFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation_Collections")]
    pub CreateInstanceWithRemovedItemsAndAddedItems: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, removeditems: ::windows::core::RawPtr, addeditems: ::windows::core::RawPtr, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    CreateInstanceWithRemovedItemsAndAddedItems: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISemanticZoom(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISemanticZoom {
    type Vtable = ISemanticZoom_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x019fff21_ece6_4fbc_bf40_8938d4813e27);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISemanticZoom_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ZoomedInView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetZoomedInView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ZoomedOutView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetZoomedOutView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsZoomedInViewActive: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsZoomedInViewActive: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub CanChangeViews: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetCanChangeViews: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub ViewChangeStarted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ViewChangeStarted: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveViewChangeStarted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveViewChangeStarted: usize,
    #[cfg(feature = "Foundation")]
    pub ViewChangeCompleted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ViewChangeCompleted: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveViewChangeCompleted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveViewChangeCompleted: usize,
    pub ToggleActiveView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub IsZoomOutButtonEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsZoomOutButtonEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ISemanticZoomInformation(::windows::core::IUnknown);
impl ISemanticZoomInformation {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SemanticZoomOwner(&self) -> ::windows::core::Result<SemanticZoom> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SemanticZoomOwner)(::core::mem::transmute_copy(this), &mut result__).from_abi::<SemanticZoom>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSemanticZoomOwner<'a, Param0: ::windows::core::IntoParam<'a, SemanticZoom>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSemanticZoomOwner)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsActiveView(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsActiveView)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsActiveView(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsActiveView)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsZoomedInView(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsZoomedInView)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsZoomedInView(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsZoomedInView)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn InitializeViewChange(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).InitializeViewChange)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CompleteViewChange(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).CompleteViewChange)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MakeVisible<'a, Param0: ::windows::core::IntoParam<'a, SemanticZoomLocation>>(&self, item: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).MakeVisible)(::core::mem::transmute_copy(this), item.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn StartViewChangeFrom<'a, Param0: ::windows::core::IntoParam<'a, SemanticZoomLocation>, Param1: ::windows::core::IntoParam<'a, SemanticZoomLocation>>(&self, source: Param0, destination: Param1) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).StartViewChangeFrom)(::core::mem::transmute_copy(this), source.into_param().abi(), destination.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn StartViewChangeTo<'a, Param0: ::windows::core::IntoParam<'a, SemanticZoomLocation>, Param1: ::windows::core::IntoParam<'a, SemanticZoomLocation>>(&self, source: Param0, destination: Param1) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).StartViewChangeTo)(::core::mem::transmute_copy(this), source.into_param().abi(), destination.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CompleteViewChangeFrom<'a, Param0: ::windows::core::IntoParam<'a, SemanticZoomLocation>, Param1: ::windows::core::IntoParam<'a, SemanticZoomLocation>>(&self, source: Param0, destination: Param1) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).CompleteViewChangeFrom)(::core::mem::transmute_copy(this), source.into_param().abi(), destination.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CompleteViewChangeTo<'a, Param0: ::windows::core::IntoParam<'a, SemanticZoomLocation>, Param1: ::windows::core::IntoParam<'a, SemanticZoomLocation>>(&self, source: Param0, destination: Param1) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).CompleteViewChangeTo)(::core::mem::transmute_copy(this), source.into_param().abi(), destination.into_param().abi()).ok() }
    }
}
impl ::core::convert::From<ISemanticZoomInformation> for ::windows::core::IUnknown {
    fn from(value: ISemanticZoomInformation) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ISemanticZoomInformation> for ::windows::core::IUnknown {
    fn from(value: &ISemanticZoomInformation) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ISemanticZoomInformation {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ISemanticZoomInformation {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ISemanticZoomInformation> for ::windows::core::IInspectable {
    fn from(value: ISemanticZoomInformation) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ISemanticZoomInformation> for ::windows::core::IInspectable {
    fn from(value: &ISemanticZoomInformation) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ISemanticZoomInformation {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ISemanticZoomInformation {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for ISemanticZoomInformation {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ISemanticZoomInformation {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ISemanticZoomInformation {}
impl ::core::fmt::Debug for ISemanticZoomInformation {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ISemanticZoomInformation").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ISemanticZoomInformation {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"{a76a3b63-229b-4dc5-aa11-9d922fbf8a98}");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ISemanticZoomInformation {
    type Vtable = ISemanticZoomInformation_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa76a3b63_229b_4dc5_aa11_9d922fbf8a98);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISemanticZoomInformation_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SemanticZoomOwner: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetSemanticZoomOwner: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsActiveView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsActiveView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsZoomedInView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsZoomedInView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub InitializeViewChange: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CompleteViewChange: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub MakeVisible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, item: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub StartViewChangeFrom: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, source: ::windows::core::RawPtr, destination: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub StartViewChangeTo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, source: ::windows::core::RawPtr, destination: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CompleteViewChangeFrom: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, source: ::windows::core::RawPtr, destination: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CompleteViewChangeTo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, source: ::windows::core::RawPtr, destination: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISemanticZoomLocation(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISemanticZoomLocation {
    type Vtable = ISemanticZoomLocation_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x42011736_e3c2_496b_bc4e_d750d4375b9a);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISemanticZoomLocation_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Item: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetItem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub Bounds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::super::Foundation::Rect) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Bounds: usize,
    #[cfg(feature = "Foundation")]
    pub SetBounds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::super::Foundation::Rect) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SetBounds: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISemanticZoomStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISemanticZoomStatics {
    type Vtable = ISemanticZoomStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8ef17ef2_9898_4666_b285_3ed38a07910e);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISemanticZoomStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ZoomedInViewProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ZoomedOutViewProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsZoomedInViewActiveProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CanChangeViewsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsZoomOutButtonEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISemanticZoomViewChangedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISemanticZoomViewChangedEventArgs {
    type Vtable = ISemanticZoomViewChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x47dfc068_b569_4b19_842d_8e6cf90989af);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISemanticZoomViewChangedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsSourceZoomedInView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsSourceZoomedInView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub SourceItem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetSourceItem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DestinationItem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetDestinationItem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISettingsFlyout(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISettingsFlyout {
    type Vtable = ISettingsFlyout_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x830ba82b_c55b_4e32_a51c_5791e024c8af);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISettingsFlyout_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Title: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetTitle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media")]
    pub HeaderBackground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    HeaderBackground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetHeaderBackground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetHeaderBackground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub HeaderForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    HeaderForeground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetHeaderForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetHeaderForeground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub IconSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    IconSource: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetIconSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetIconSource: usize,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub TemplateSettings: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    TemplateSettings: usize,
    #[cfg(feature = "Foundation")]
    pub BackClick: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    BackClick: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveBackClick: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveBackClick: usize,
    pub Show: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub ShowIndependent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Hide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISettingsFlyoutFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISettingsFlyoutFactory {
    type Vtable = ISettingsFlyoutFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x480c7011_57aa_4db6_b6fd_ec676f6d414e);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISettingsFlyoutFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISettingsFlyoutStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISettingsFlyoutStatics {
    type Vtable = ISettingsFlyoutStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd0e3b535_9157_4be4_a42a_f591698846ac);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISettingsFlyoutStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub TitleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HeaderBackgroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HeaderForegroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IconSourceProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISlider(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISlider {
    type Vtable = ISlider_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x89572027_4c48_4700_8076_497ba73d9c18);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISlider_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IntermediateValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetIntermediateValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub StepFrequency: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetStepFrequency: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub SnapsTo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut Primitives::SliderSnapsTo) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    SnapsTo: usize,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub SetSnapsTo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: Primitives::SliderSnapsTo) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    SetSnapsTo: usize,
    pub TickFrequency: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetTickFrequency: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub TickPlacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut Primitives::TickPlacement) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    TickPlacement: usize,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub SetTickPlacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: Primitives::TickPlacement) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    SetTickPlacement: usize,
    pub Orientation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut Orientation) -> ::windows::core::HRESULT,
    pub SetOrientation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: Orientation) -> ::windows::core::HRESULT,
    pub IsDirectionReversed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsDirectionReversed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsThumbToolTipEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsThumbToolTipEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Data")]
    pub ThumbToolTipValueConverter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Data"))]
    ThumbToolTipValueConverter: usize,
    #[cfg(feature = "UI_Xaml_Data")]
    pub SetThumbToolTipValueConverter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Data"))]
    SetThumbToolTipValueConverter: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISlider2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISlider2 {
    type Vtable = ISlider2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x40a3c50e_87d6_4d2f_b1cf_b279cc996f26);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISlider2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Header: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetHeader: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub HeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetHeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISliderFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISliderFactory {
    type Vtable = ISliderFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x03a67b37_c7bf_437c_848f_8cb5b753eab4);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISliderFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISliderStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISliderStatics {
    type Vtable = ISliderStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8a4363d7_7fdf_4d30_98fe_ce78c05b31cf);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISliderStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IntermediateValueProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub StepFrequencyProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SnapsToProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TickFrequencyProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TickPlacementProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OrientationProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsDirectionReversedProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsThumbToolTipEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ThumbToolTipValueConverterProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISliderStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISliderStatics2 {
    type Vtable = ISliderStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x00e7935d_79a5_4759_96a6_29e0a94add33);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISliderStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub HeaderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HeaderTemplateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISplitButton(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISplitButton {
    type Vtable = ISplitButton_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x58bbb066_c2ea_5499_8150_40faa75f6bb5);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISplitButton_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub Flyout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    Flyout: usize,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub SetFlyout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    SetFlyout: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub Command: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    Command: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub SetCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    SetCommand: usize,
    pub CommandParameter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetCommandParameter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub Click: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Click: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveClick: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveClick: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISplitButtonAutomationPeer(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISplitButtonAutomationPeer {
    type Vtable = ISplitButtonAutomationPeer_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc46a58b8_3828_5c36_aa13_f79f02c12f34);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISplitButtonAutomationPeer_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISplitButtonAutomationPeerFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISplitButtonAutomationPeerFactory {
    type Vtable = ISplitButtonAutomationPeerFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd63a2534_77dc_5361_8422_4ad8750f45f4);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISplitButtonAutomationPeerFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, owner: ::windows::core::RawPtr, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISplitButtonClickEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISplitButtonClickEventArgs {
    type Vtable = ISplitButtonClickEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc227c2ca_26f4_5960_98d5_919149d1b525);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISplitButtonClickEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISplitButtonFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISplitButtonFactory {
    type Vtable = ISplitButtonFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3201c32f_4d55_589d_97dd_617fa3642137);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISplitButtonFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISplitButtonStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISplitButtonStatics {
    type Vtable = ISplitButtonStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8df07a81_0b1f_5ea9_be42_152ab9a4bc5e);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISplitButtonStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub FlyoutProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CommandProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CommandParameterProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISplitView(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISplitView {
    type Vtable = ISplitView_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x97222f31_3844_429e_939c_1673155322a1);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISplitView_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Content: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetContent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub Pane: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetPane: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsPaneOpen: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsPaneOpen: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub OpenPaneLength: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetOpenPaneLength: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub CompactPaneLength: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetCompactPaneLength: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub PanePlacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut SplitViewPanePlacement) -> ::windows::core::HRESULT,
    pub SetPanePlacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: SplitViewPanePlacement) -> ::windows::core::HRESULT,
    pub DisplayMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut SplitViewDisplayMode) -> ::windows::core::HRESULT,
    pub SetDisplayMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: SplitViewDisplayMode) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub TemplateSettings: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    TemplateSettings: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub PaneBackground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    PaneBackground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetPaneBackground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetPaneBackground: usize,
    #[cfg(feature = "Foundation")]
    pub PaneClosing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    PaneClosing: usize,
    #[cfg(feature = "Foundation")]
    pub RemovePaneClosing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemovePaneClosing: usize,
    #[cfg(feature = "Foundation")]
    pub PaneClosed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    PaneClosed: usize,
    #[cfg(feature = "Foundation")]
    pub RemovePaneClosed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemovePaneClosed: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISplitView2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISplitView2 {
    type Vtable = ISplitView2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5ea7dc10_cc83_409a_82f9_3e91d6d7084f);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISplitView2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub LightDismissOverlayMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut LightDismissOverlayMode) -> ::windows::core::HRESULT,
    pub SetLightDismissOverlayMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: LightDismissOverlayMode) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISplitView3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISplitView3 {
    type Vtable = ISplitView3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0ea12d8d_1171_407b_96d3_5e1b470c3ec5);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISplitView3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub PaneOpening: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    PaneOpening: usize,
    #[cfg(feature = "Foundation")]
    pub RemovePaneOpening: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemovePaneOpening: usize,
    #[cfg(feature = "Foundation")]
    pub PaneOpened: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    PaneOpened: usize,
    #[cfg(feature = "Foundation")]
    pub RemovePaneOpened: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemovePaneOpened: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISplitViewFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISplitViewFactory {
    type Vtable = ISplitViewFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf101773a_084e_4fb9_8442_63221b44533f);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISplitViewFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISplitViewPaneClosingEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISplitViewPaneClosingEventArgs {
    type Vtable = ISplitViewPaneClosingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x93cf494e_7a95_44d8_9562_1b348248da9f);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISplitViewPaneClosingEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Cancel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetCancel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISplitViewStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISplitViewStatics {
    type Vtable = ISplitViewStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x859b4f6f_44ab_4e4b_91c1_17b7056d9b5f);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISplitViewStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ContentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PaneProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsPaneOpenProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OpenPaneLengthProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CompactPaneLengthProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PanePlacementProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DisplayModeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TemplateSettingsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PaneBackgroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISplitViewStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISplitViewStatics2 {
    type Vtable = ISplitViewStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x14b7cd7a_dfbc_422c_80a9_585871297113);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISplitViewStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub LightDismissOverlayModeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IStackPanel(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IStackPanel {
    type Vtable = IStackPanel_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb8ae8fe2_d641_4fd7_80b4_7439207d2798);
}
#[repr(C)]
#[doc(hidden)]
pub struct IStackPanel_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub AreScrollSnapPointsRegular: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetAreScrollSnapPointsRegular: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub Orientation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut Orientation) -> ::windows::core::HRESULT,
    pub SetOrientation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: Orientation) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IStackPanel2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IStackPanel2 {
    type Vtable = IStackPanel2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x36f23359_040e_48f7_9a98_f2664591959c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IStackPanel2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Media")]
    pub BorderBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    BorderBrush: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetBorderBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetBorderBrush: usize,
    pub BorderThickness: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Thickness) -> ::windows::core::HRESULT,
    pub SetBorderThickness: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Thickness) -> ::windows::core::HRESULT,
    pub CornerRadius: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::CornerRadius) -> ::windows::core::HRESULT,
    pub SetCornerRadius: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::CornerRadius) -> ::windows::core::HRESULT,
    pub Padding: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Thickness) -> ::windows::core::HRESULT,
    pub SetPadding: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Thickness) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IStackPanel4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IStackPanel4 {
    type Vtable = IStackPanel4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x43ebf7f6_3196_412e_8a95_add002ff43f0);
}
#[repr(C)]
#[doc(hidden)]
pub struct IStackPanel4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Spacing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetSpacing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IStackPanel5(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IStackPanel5 {
    type Vtable = IStackPanel5_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf73e3117_61a8_5a01_865e_88511c04a992);
}
#[repr(C)]
#[doc(hidden)]
pub struct IStackPanel5_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub BackgroundSizing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut BackgroundSizing) -> ::windows::core::HRESULT,
    pub SetBackgroundSizing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: BackgroundSizing) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IStackPanelFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IStackPanelFactory {
    type Vtable = IStackPanelFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x63d8248a_8b34_445a_808f_b6ecd62a27d9);
}
#[repr(C)]
#[doc(hidden)]
pub struct IStackPanelFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IStackPanelStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IStackPanelStatics {
    type Vtable = IStackPanelStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf0d0cd93_4dbc_48a7_9914_954924657771);
}
#[repr(C)]
#[doc(hidden)]
pub struct IStackPanelStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub AreScrollSnapPointsRegularProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OrientationProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IStackPanelStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IStackPanelStatics2 {
    type Vtable = IStackPanelStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd97e6257_080d_412e_a91a_ce6e5d02aad3);
}
#[repr(C)]
#[doc(hidden)]
pub struct IStackPanelStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub BorderBrushProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub BorderThicknessProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CornerRadiusProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PaddingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IStackPanelStatics4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IStackPanelStatics4 {
    type Vtable = IStackPanelStatics4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x279cdd71_067b_459f_815f_ecd85c5e4843);
}
#[repr(C)]
#[doc(hidden)]
pub struct IStackPanelStatics4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SpacingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IStackPanelStatics5(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IStackPanelStatics5 {
    type Vtable = IStackPanelStatics5_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x87287490_bff2_5347_8787_fb5aec942878);
}
#[repr(C)]
#[doc(hidden)]
pub struct IStackPanelStatics5_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub BackgroundSizingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IStyleSelector(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IStyleSelector {
    type Vtable = IStyleSelector_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd1113f67_d8c1_4ae4_98f0_d8504502f08b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IStyleSelector_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SelectStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, item: *mut ::core::ffi::c_void, container: ::windows::core::RawPtr, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IStyleSelectorFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IStyleSelectorFactory {
    type Vtable = IStyleSelectorFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9e942ae7_3761_447f_8f97_29e39d5eb310);
}
#[repr(C)]
#[doc(hidden)]
pub struct IStyleSelectorFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IStyleSelectorOverrides(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IStyleSelectorOverrides {
    type Vtable = IStyleSelectorOverrides_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x08add66d_0e2e_43a0_aeca_8faa94b9d017);
}
#[repr(C)]
#[doc(hidden)]
pub struct IStyleSelectorOverrides_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SelectStyleCore: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, item: *mut ::core::ffi::c_void, container: ::windows::core::RawPtr, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISwapChainBackgroundPanel(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISwapChainBackgroundPanel {
    type Vtable = ISwapChainBackgroundPanel_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1c59db48_8233_4c0c_bcf5_02a5fb35ae00);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISwapChainBackgroundPanel_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISwapChainBackgroundPanel2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISwapChainBackgroundPanel2 {
    type Vtable = ISwapChainBackgroundPanel2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x21e672f2_2592_4c38_870f_28fbcf52c095);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISwapChainBackgroundPanel2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Core")]
    pub CreateCoreIndependentInputSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, devicetypes: super::super::Core::CoreInputDeviceTypes, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Core"))]
    CreateCoreIndependentInputSource: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISwapChainBackgroundPanelFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISwapChainBackgroundPanelFactory {
    type Vtable = ISwapChainBackgroundPanelFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x198289d4_c89b_49b2_896c_5917bf8adcae);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISwapChainBackgroundPanelFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISwapChainPanel(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISwapChainPanel {
    type Vtable = ISwapChainPanel_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc589644f_eba8_427a_b75a_9f1f93a11ae9);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISwapChainPanel_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CompositionScaleX: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f32) -> ::windows::core::HRESULT,
    pub CompositionScaleY: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub CompositionScaleChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    CompositionScaleChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveCompositionScaleChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveCompositionScaleChanged: usize,
    #[cfg(feature = "UI_Core")]
    pub CreateCoreIndependentInputSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, devicetypes: super::super::Core::CoreInputDeviceTypes, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Core"))]
    CreateCoreIndependentInputSource: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISwapChainPanelFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISwapChainPanelFactory {
    type Vtable = ISwapChainPanelFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf38f8d7f_1a48_49cb_86d2_10eaaaf6fd70);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISwapChainPanelFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISwapChainPanelStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISwapChainPanelStatics {
    type Vtable = ISwapChainPanelStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf89c0297_eea8_498c_99c4_257e3660df7e);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISwapChainPanelStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CompositionScaleXProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CompositionScaleYProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISwipeControl(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISwipeControl {
    type Vtable = ISwipeControl_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9ee3d96f_6704_4823_aa15_1c143bc53cf7);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISwipeControl_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub LeftItems: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetLeftItems: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub RightItems: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetRightItems: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TopItems: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetTopItems: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub BottomItems: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetBottomItems: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub Close: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISwipeControlFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISwipeControlFactory {
    type Vtable = ISwipeControlFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc0aaa3ae_d141_4e12_a728_5f95b507e7ab);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISwipeControlFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISwipeControlStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISwipeControlStatics {
    type Vtable = ISwipeControlStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe57ae83c_2216_4717_9ef6_4662334c6501);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISwipeControlStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub LeftItemsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub RightItemsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TopItemsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub BottomItemsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISwipeItem(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISwipeItem {
    type Vtable = ISwipeItem_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x836edadc_45c8_4a00_90a0_7107fa894a1b);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISwipeItem_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Text: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub IconSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetIconSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media")]
    pub Background: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    Background: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetBackground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetBackground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub Foreground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    Foreground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetForeground: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub Command: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    Command: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub SetCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    SetCommand: usize,
    pub CommandParameter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetCommandParameter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub BehaviorOnInvoked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut SwipeBehaviorOnInvoked) -> ::windows::core::HRESULT,
    pub SetBehaviorOnInvoked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: SwipeBehaviorOnInvoked) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub Invoked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Invoked: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveInvoked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveInvoked: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISwipeItemFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISwipeItemFactory {
    type Vtable = ISwipeItemFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x844bd61a_1716_4097_bba2_7526da22de39);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISwipeItemFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISwipeItemInvokedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISwipeItemInvokedEventArgs {
    type Vtable = ISwipeItemInvokedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc5b025f5_cb32_4733_8011_5d0d37f4550a);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISwipeItemInvokedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SwipeControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISwipeItemStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISwipeItemStatics {
    type Vtable = ISwipeItemStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd0b44e96_2766_4d93_b5db_f5e1be832c2d);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISwipeItemStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IconSourceProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TextProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub BackgroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ForegroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CommandProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CommandParameterProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub BehaviorOnInvokedProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISwipeItems(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISwipeItems {
    type Vtable = ISwipeItems_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb01726ff_969a_40d0_9f04_76084ce6d7b7);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISwipeItems_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Mode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut SwipeMode) -> ::windows::core::HRESULT,
    pub SetMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: SwipeMode) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISwipeItemsFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISwipeItemsFactory {
    type Vtable = ISwipeItemsFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x47c460ee_d5aa_445f_b31e_50c076c011b9);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISwipeItemsFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISwipeItemsStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISwipeItemsStatics {
    type Vtable = ISwipeItemsStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x376250df_48db_43e3_b0e9_089e5da9a114);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISwipeItemsStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ModeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISymbolIcon(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISymbolIcon {
    type Vtable = ISymbolIcon_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x7a4774c9_a6a3_4b30_8ff1_9081d70e9a5c);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISymbolIcon_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Symbol: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut Symbol) -> ::windows::core::HRESULT,
    pub SetSymbol: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: Symbol) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISymbolIconFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISymbolIconFactory {
    type Vtable = ISymbolIconFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc7252b88_e76c_4b44_8a05_046b9dc772b8);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISymbolIconFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstanceWithSymbol: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: Symbol, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISymbolIconSource(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISymbolIconSource {
    type Vtable = ISymbolIconSource_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x625d95a2_b6b1_408a_b289_eab2ecba62d8);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISymbolIconSource_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Symbol: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut Symbol) -> ::windows::core::HRESULT,
    pub SetSymbol: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: Symbol) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISymbolIconSourceFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISymbolIconSourceFactory {
    type Vtable = ISymbolIconSourceFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa526aab0_4130_4907_b049_21f9240c7a40);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISymbolIconSourceFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISymbolIconSourceStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISymbolIconSourceStatics {
    type Vtable = ISymbolIconSourceStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8bc49738_d94e_4148_8d64_1adf0f23f25f);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISymbolIconSourceStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SymbolProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ISymbolIconStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ISymbolIconStatics {
    type Vtable = ISymbolIconStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8624fbdf_952c_4f76_b03f_30833be99572);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISymbolIconStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SymbolProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextBlock(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextBlock {
    type Vtable = ITextBlock_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xae2d9271_3b4a_45fc_8468_f7949548f4d5);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextBlock_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub FontSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetFontSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media")]
    pub FontFamily: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    FontFamily: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetFontFamily: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetFontFamily: usize,
    #[cfg(feature = "UI_Text")]
    pub FontWeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Text::FontWeight) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    FontWeight: usize,
    #[cfg(feature = "UI_Text")]
    pub SetFontWeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::Text::FontWeight) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    SetFontWeight: usize,
    #[cfg(feature = "UI_Text")]
    pub FontStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Text::FontStyle) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    FontStyle: usize,
    #[cfg(feature = "UI_Text")]
    pub SetFontStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::Text::FontStyle) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    SetFontStyle: usize,
    #[cfg(feature = "UI_Text")]
    pub FontStretch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Text::FontStretch) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    FontStretch: usize,
    #[cfg(feature = "UI_Text")]
    pub SetFontStretch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::Text::FontStretch) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    SetFontStretch: usize,
    pub CharacterSpacing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetCharacterSpacing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media")]
    pub Foreground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    Foreground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetForeground: usize,
    pub TextWrapping: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::TextWrapping) -> ::windows::core::HRESULT,
    pub SetTextWrapping: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::TextWrapping) -> ::windows::core::HRESULT,
    pub TextTrimming: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::TextTrimming) -> ::windows::core::HRESULT,
    pub SetTextTrimming: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::TextTrimming) -> ::windows::core::HRESULT,
    pub TextAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::TextAlignment) -> ::windows::core::HRESULT,
    pub SetTextAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::TextAlignment) -> ::windows::core::HRESULT,
    pub Text: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Documents"))]
    pub Inlines: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation_Collections", feature = "UI_Xaml_Documents")))]
    Inlines: usize,
    pub Padding: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Thickness) -> ::windows::core::HRESULT,
    pub SetPadding: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Thickness) -> ::windows::core::HRESULT,
    pub LineHeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetLineHeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub LineStackingStrategy: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::LineStackingStrategy) -> ::windows::core::HRESULT,
    pub SetLineStackingStrategy: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::LineStackingStrategy) -> ::windows::core::HRESULT,
    pub IsTextSelectionEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsTextSelectionEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub SelectedText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Documents")]
    pub ContentStart: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Documents"))]
    ContentStart: usize,
    #[cfg(feature = "UI_Xaml_Documents")]
    pub ContentEnd: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Documents"))]
    ContentEnd: usize,
    #[cfg(feature = "UI_Xaml_Documents")]
    pub SelectionStart: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Documents"))]
    SelectionStart: usize,
    #[cfg(feature = "UI_Xaml_Documents")]
    pub SelectionEnd: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Documents"))]
    SelectionEnd: usize,
    pub BaselineOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub SelectionChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SelectionChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveSelectionChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveSelectionChanged: usize,
    #[cfg(feature = "Foundation")]
    pub ContextMenuOpening: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ContextMenuOpening: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveContextMenuOpening: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveContextMenuOpening: usize,
    pub SelectAll: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Documents")]
    pub Select: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: ::windows::core::RawPtr, end: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Documents"))]
    Select: usize,
    pub Focus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::FocusState, result__: *mut bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextBlock2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextBlock2 {
    type Vtable = ITextBlock2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x45206a4c_0a4e_4fbf_aee9_335d5a205f6e);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextBlock2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SelectionHighlightColor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SelectionHighlightColor: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetSelectionHighlightColor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetSelectionHighlightColor: usize,
    pub MaxLines: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetMaxLines: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
    pub TextLineBounds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::TextLineBounds) -> ::windows::core::HRESULT,
    pub SetTextLineBounds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::TextLineBounds) -> ::windows::core::HRESULT,
    pub OpticalMarginAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::OpticalMarginAlignment) -> ::windows::core::HRESULT,
    pub SetOpticalMarginAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::OpticalMarginAlignment) -> ::windows::core::HRESULT,
    pub IsColorFontEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsColorFontEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub TextReadingOrder: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::TextReadingOrder) -> ::windows::core::HRESULT,
    pub SetTextReadingOrder: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::TextReadingOrder) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextBlock3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextBlock3 {
    type Vtable = ITextBlock3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb651dd5a_424b_48c3_9b67_486f4e139899);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextBlock3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsTextScaleFactorEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsTextScaleFactorEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextBlock4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextBlock4 {
    type Vtable = ITextBlock4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb014f270_9808_4adc_b452_60cda54100c1);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextBlock4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Composition")]
    pub GetAlphaMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Composition"))]
    GetAlphaMask: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextBlock5(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextBlock5 {
    type Vtable = ITextBlock5_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x624a2d38_edbd_4a5a_b678_e49f1e07afbd);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextBlock5_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Text")]
    pub TextDecorations: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Text::TextDecorations) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    TextDecorations: usize,
    #[cfg(feature = "UI_Text")]
    pub SetTextDecorations: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::Text::TextDecorations) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Text"))]
    SetTextDecorations: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextBlock6(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextBlock6 {
    type Vtable = ITextBlock6_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x31816cd9_0404_410f_91ec_33b0a0bb92b2);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextBlock6_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsTextTrimmed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub HorizontalTextAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::TextAlignment) -> ::windows::core::HRESULT,
    pub SetHorizontalTextAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::TextAlignment) -> ::windows::core::HRESULT,
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Documents"))]
    pub TextHighlighters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation_Collections", feature = "UI_Xaml_Documents")))]
    TextHighlighters: usize,
    #[cfg(feature = "Foundation")]
    pub IsTextTrimmedChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    IsTextTrimmedChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveIsTextTrimmedChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveIsTextTrimmedChanged: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextBlock7(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextBlock7 {
    type Vtable = ITextBlock7_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xdfe20a4e_8be7_5e33_9f37_72416875b121);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextBlock7_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub SelectionFlyout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    SelectionFlyout: usize,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub SetSelectionFlyout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    SetSelectionFlyout: usize,
    pub CopySelectionToClipboard: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextBlockStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextBlockStatics {
    type Vtable = ITextBlockStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x193ec042_a847_4552_b4e8_db36655b840a);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextBlockStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub FontSizeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FontFamilyProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FontWeightProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FontStyleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub FontStretchProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CharacterSpacingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ForegroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TextWrappingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TextTrimmingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TextAlignmentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TextProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PaddingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub LineHeightProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub LineStackingStrategyProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsTextSelectionEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SelectedTextProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextBlockStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextBlockStatics2 {
    type Vtable = ITextBlockStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x88100b1b_ff24_4b93_a0e6_f029c94871f1);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextBlockStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SelectionHighlightColorProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MaxLinesProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TextLineBoundsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OpticalMarginAlignmentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsColorFontEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TextReadingOrderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextBlockStatics3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextBlockStatics3 {
    type Vtable = ITextBlockStatics3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8d16b9eb_20a1_4eab_bbf2_1d6bdcbcd705);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextBlockStatics3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsTextScaleFactorEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextBlockStatics5(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextBlockStatics5 {
    type Vtable = ITextBlockStatics5_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8e4d9c70_0d4e_48df_ae7f_bb7a9af6852e);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextBlockStatics5_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub TextDecorationsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextBlockStatics6(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextBlockStatics6 {
    type Vtable = ITextBlockStatics6_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3d1013a9_f9a6_43a2_99d3_573b89a83ca3);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextBlockStatics6_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsTextTrimmedProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HorizontalTextAlignmentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextBlockStatics7(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextBlockStatics7 {
    type Vtable = ITextBlockStatics7_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xcfd57e3b_0256_585d_8b3f_feafb69d3320);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextBlockStatics7_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SelectionFlyoutProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextBox(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextBox {
    type Vtable = ITextBox_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe48f5a8b_1dff_4352_a1f4_e516514ec882);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextBox_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Text: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SelectedText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetSelectedText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SelectionLength: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetSelectionLength: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
    pub SelectionStart: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetSelectionStart: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
    pub MaxLength: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetMaxLength: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
    pub IsReadOnly: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsReadOnly: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub AcceptsReturn: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetAcceptsReturn: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub TextAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::TextAlignment) -> ::windows::core::HRESULT,
    pub SetTextAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::TextAlignment) -> ::windows::core::HRESULT,
    pub TextWrapping: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::TextWrapping) -> ::windows::core::HRESULT,
    pub SetTextWrapping: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::TextWrapping) -> ::windows::core::HRESULT,
    pub IsSpellCheckEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsSpellCheckEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsTextPredictionEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsTextPredictionEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Input")]
    pub InputScope: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    InputScope: usize,
    #[cfg(feature = "UI_Xaml_Input")]
    pub SetInputScope: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Input"))]
    SetInputScope: usize,
    #[cfg(feature = "Foundation")]
    pub TextChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    TextChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveTextChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveTextChanged: usize,
    #[cfg(feature = "Foundation")]
    pub SelectionChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SelectionChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveSelectionChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveSelectionChanged: usize,
    #[cfg(feature = "Foundation")]
    pub ContextMenuOpening: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ContextMenuOpening: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveContextMenuOpening: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveContextMenuOpening: usize,
    pub Select: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: i32, length: i32) -> ::windows::core::HRESULT,
    pub SelectAll: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub GetRectFromCharacterIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, charindex: i32, trailingedge: bool, result__: *mut super::super::super::Foundation::Rect) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    GetRectFromCharacterIndex: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextBox2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextBox2 {
    type Vtable = ITextBox2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf7168c00_1432_462a_9405_38f385bfc37c);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextBox2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Header: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetHeader: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub HeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetHeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PlaceholderText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetPlaceholderText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SelectionHighlightColor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SelectionHighlightColor: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetSelectionHighlightColor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetSelectionHighlightColor: usize,
    pub PreventKeyboardDisplayOnProgrammaticFocus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetPreventKeyboardDisplayOnProgrammaticFocus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsColorFontEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsColorFontEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub Paste: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Paste: usize,
    #[cfg(feature = "Foundation")]
    pub RemovePaste: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemovePaste: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextBox3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextBox3 {
    type Vtable = ITextBox3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x7df18c3c_2826_425e_9a94_00b7f73f3756);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextBox3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub TextCompositionStarted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    TextCompositionStarted: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveTextCompositionStarted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveTextCompositionStarted: usize,
    #[cfg(feature = "Foundation")]
    pub TextCompositionChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    TextCompositionChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveTextCompositionChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveTextCompositionChanged: usize,
    #[cfg(feature = "Foundation")]
    pub TextCompositionEnded: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    TextCompositionEnded: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveTextCompositionEnded: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveTextCompositionEnded: usize,
    pub TextReadingOrder: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::TextReadingOrder) -> ::windows::core::HRESULT,
    pub SetTextReadingOrder: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::TextReadingOrder) -> ::windows::core::HRESULT,
    pub DesiredCandidateWindowAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut CandidateWindowAlignment) -> ::windows::core::HRESULT,
    pub SetDesiredCandidateWindowAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: CandidateWindowAlignment) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub CandidateWindowBoundsChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    CandidateWindowBoundsChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveCandidateWindowBoundsChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveCandidateWindowBoundsChanged: usize,
    #[cfg(feature = "Foundation")]
    pub TextChanging: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    TextChanging: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveTextChanging: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveTextChanging: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextBox4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextBox4 {
    type Vtable = ITextBox4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb5f1a675_cce1_45af_aef9_c4787bbb5e30);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextBox4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation_Collections")]
    pub GetLinguisticAlternativesAsync: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    GetLinguisticAlternativesAsync: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextBox5(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextBox5 {
    type Vtable = ITextBox5_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x35f9cfc1_4176_44f4_b756_e9ccc4399805);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextBox5_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SelectionHighlightColorWhenNotFocused: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SelectionHighlightColorWhenNotFocused: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetSelectionHighlightColorWhenNotFocused: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetSelectionHighlightColorWhenNotFocused: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextBox6(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextBox6 {
    type Vtable = ITextBox6_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x41ff2d07_5085_4e52_a51c_f94b06cd558b);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextBox6_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub HorizontalTextAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::TextAlignment) -> ::windows::core::HRESULT,
    pub SetHorizontalTextAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::TextAlignment) -> ::windows::core::HRESULT,
    pub CharacterCasing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut CharacterCasing) -> ::windows::core::HRESULT,
    pub SetCharacterCasing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: CharacterCasing) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media")]
    pub PlaceholderForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    PlaceholderForeground: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetPlaceholderForeground: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetPlaceholderForeground: usize,
    #[cfg(feature = "Foundation")]
    pub CopyingToClipboard: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    CopyingToClipboard: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveCopyingToClipboard: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveCopyingToClipboard: usize,
    #[cfg(feature = "Foundation")]
    pub CuttingToClipboard: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    CuttingToClipboard: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveCuttingToClipboard: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveCuttingToClipboard: usize,
    #[cfg(feature = "Foundation")]
    pub BeforeTextChanging: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    BeforeTextChanging: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveBeforeTextChanging: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveBeforeTextChanging: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextBox7(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextBox7 {
    type Vtable = ITextBox7_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xda4911f9_ffe1_4c6a_ac6d_1b4a174ccf80);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextBox7_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub HandwritingView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetHandwritingView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsHandwritingViewEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsHandwritingViewEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextBox8(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextBox8 {
    type Vtable = ITextBox8_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1eb6d027_0317_5c37_8aea_f747ae7f0463);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextBox8_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CanPasteClipboardContent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub CanUndo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub CanRedo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub SelectionFlyout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    SelectionFlyout: usize,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub SetSelectionFlyout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    SetSelectionFlyout: usize,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub ProofingMenuFlyout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    ProofingMenuFlyout: usize,
    pub Description: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub SelectionChanging: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SelectionChanging: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveSelectionChanging: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveSelectionChanging: usize,
    pub Undo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Redo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub PasteFromClipboard: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CopySelectionToClipboard: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CutSelectionToClipboard: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub ClearUndoRedoHistory: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextBoxBeforeTextChangingEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextBoxBeforeTextChangingEventArgs {
    type Vtable = ITextBoxBeforeTextChangingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa5541db3_7784_4258_aa83_e4bedd727467);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextBoxBeforeTextChangingEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub NewText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub Cancel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetCancel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextBoxFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextBoxFactory {
    type Vtable = ITextBoxFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x710e4278_8529_47d3_8d8e_307e34cff081);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextBoxFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextBoxSelectionChangingEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextBoxSelectionChangingEventArgs {
    type Vtable = ITextBoxSelectionChangingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x847a24dd_9abe_52df_a80a_0cce4b496632);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextBoxSelectionChangingEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SelectionStart: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SelectionLength: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub Cancel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetCancel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextBoxStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextBoxStatics {
    type Vtable = ITextBoxStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x7e37f4fb_a4bc_4625_8838_8eb2a9091283);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextBoxStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub TextProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MaxLengthProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsReadOnlyProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub AcceptsReturnProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TextAlignmentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TextWrappingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsSpellCheckEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsTextPredictionEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub InputScopeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextBoxStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextBoxStatics2 {
    type Vtable = ITextBoxStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x7592f37d_4e76_4ee4_8e0f_7d6e1a23326b);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextBoxStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub HeaderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HeaderTemplateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PlaceholderTextProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SelectionHighlightColorProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PreventKeyboardDisplayOnProgrammaticFocusProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsColorFontEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextBoxStatics3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextBoxStatics3 {
    type Vtable = ITextBoxStatics3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0e1005c0_10b5_40f6_92c2_ce134b0d3457);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextBoxStatics3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub DesiredCandidateWindowAlignmentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TextReadingOrderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextBoxStatics5(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextBoxStatics5 {
    type Vtable = ITextBoxStatics5_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x07d04b45_1b2f_4627_82fd_683f197e5a75);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextBoxStatics5_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SelectionHighlightColorWhenNotFocusedProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextBoxStatics6(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextBoxStatics6 {
    type Vtable = ITextBoxStatics6_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xdc0d97e7_1cb7_433e_aa4f_9c64c98cdee5);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextBoxStatics6_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub HorizontalTextAlignmentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CharacterCasingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PlaceholderForegroundProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextBoxStatics7(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextBoxStatics7 {
    type Vtable = ITextBoxStatics7_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xcd6c6f47_147e_46f8_a4e8_749c49847a3e);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextBoxStatics7_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub HandwritingViewProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsHandwritingViewEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextBoxStatics8(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextBoxStatics8 {
    type Vtable = ITextBoxStatics8_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x7f93d7c4_7d88_5f4d_8955_a5ad3848bcb6);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextBoxStatics8_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CanPasteClipboardContentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CanUndoProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CanRedoProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SelectionFlyoutProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ProofingMenuFlyoutProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DescriptionProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextBoxTextChangingEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextBoxTextChangingEventArgs {
    type Vtable = ITextBoxTextChangingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4e6a4b75_43dd_4e33_acbe_2d8796a17927);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextBoxTextChangingEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextBoxTextChangingEventArgs2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextBoxTextChangingEventArgs2 {
    type Vtable = ITextBoxTextChangingEventArgs2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc0723d44_53a6_415f_a981_50dfaf1becbe);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextBoxTextChangingEventArgs2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsContentChanging: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextChangedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextChangedEventArgs {
    type Vtable = ITextChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4dd04f7d_7a11_4b2e_9933_577df39252b6);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextChangedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextCommandBarFlyout(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextCommandBarFlyout {
    type Vtable = ITextCommandBarFlyout_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x90384f66_cd3d_5325_8f40_59b076463c40);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextCommandBarFlyout_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextCommandBarFlyoutFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextCommandBarFlyoutFactory {
    type Vtable = ITextCommandBarFlyoutFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1b5918d8_b006_5ecd_ab72_6fdb48abc1f4);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextCommandBarFlyoutFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextCompositionChangedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextCompositionChangedEventArgs {
    type Vtable = ITextCompositionChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb9c7e0f2_50b7_441d_990c_68553e2e056b);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextCompositionChangedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub StartIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub Length: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextCompositionEndedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextCompositionEndedEventArgs {
    type Vtable = ITextCompositionEndedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x46e34db2_77c0_4015_8eb4_92eefdfc5914);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextCompositionEndedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub StartIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub Length: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextCompositionStartedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextCompositionStartedEventArgs {
    type Vtable = ITextCompositionStartedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xdf22abb2_10cf_491e_91e8_d3cd72d8a0d3);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextCompositionStartedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub StartIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub Length: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextControlCopyingToClipboardEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextControlCopyingToClipboardEventArgs {
    type Vtable = ITextControlCopyingToClipboardEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe405ef19_d0df_43da_ace6_16f9113868c3);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextControlCopyingToClipboardEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Handled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetHandled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextControlCuttingToClipboardEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextControlCuttingToClipboardEventArgs {
    type Vtable = ITextControlCuttingToClipboardEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5f894995_a58d_4cf3_b589_b5e500e06475);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextControlCuttingToClipboardEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Handled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetHandled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITextControlPasteEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITextControlPasteEventArgs {
    type Vtable = ITextControlPasteEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4bd1d625_221a_477e_bb2c_ad0c1ed125e7);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITextControlPasteEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Handled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetHandled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITimePickedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITimePickedEventArgs {
    type Vtable = ITimePickedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8ad3ff21_5f66_4785_b999_24fef39fb6db);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITimePickedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub OldTime: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::super::Foundation::TimeSpan) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    OldTime: usize,
    #[cfg(feature = "Foundation")]
    pub NewTime: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::super::Foundation::TimeSpan) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    NewTime: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITimePicker(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITimePicker {
    type Vtable = ITimePicker_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe39099f2_3aff_4792_909e_2d9941ec0357);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITimePicker_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Header: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetHeader: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub HeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetHeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ClockIdentifier: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetClockIdentifier: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub MinuteIncrement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetMinuteIncrement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub Time: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::super::Foundation::TimeSpan) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Time: usize,
    #[cfg(feature = "Foundation")]
    pub SetTime: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::super::Foundation::TimeSpan) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SetTime: usize,
    #[cfg(feature = "Foundation")]
    pub TimeChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    TimeChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveTimeChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveTimeChanged: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITimePicker2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITimePicker2 {
    type Vtable = ITimePicker2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0ff0798c_f922_419f_8b3d_23ee7586d48e);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITimePicker2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub LightDismissOverlayMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut LightDismissOverlayMode) -> ::windows::core::HRESULT,
    pub SetLightDismissOverlayMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: LightDismissOverlayMode) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITimePicker3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITimePicker3 {
    type Vtable = ITimePicker3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xfa6e4f91_ac32_59a4_94da_8b3d64289ed6);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITimePicker3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub SelectedTime: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SelectedTime: usize,
    #[cfg(feature = "Foundation")]
    pub SetSelectedTime: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SetSelectedTime: usize,
    #[cfg(feature = "Foundation")]
    pub SelectedTimeChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SelectedTimeChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveSelectedTimeChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveSelectedTimeChanged: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITimePickerFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITimePickerFactory {
    type Vtable = ITimePickerFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x553fe413_6cd7_46a9_a97b_a18bdc4b4ca3);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITimePickerFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITimePickerFlyout(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITimePickerFlyout {
    type Vtable = ITimePickerFlyout_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xbb739d75_e836_439e_86d5_506d2d18e404);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITimePickerFlyout_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ClockIdentifier: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetClockIdentifier: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub Time: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::super::Foundation::TimeSpan) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Time: usize,
    #[cfg(feature = "Foundation")]
    pub SetTime: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::super::Foundation::TimeSpan) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SetTime: usize,
    pub MinuteIncrement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetMinuteIncrement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub TimePicked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    TimePicked: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveTimePicked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveTimePicked: usize,
    #[cfg(feature = "Foundation")]
    pub ShowAtAsync: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, target: ::windows::core::RawPtr, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ShowAtAsync: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITimePickerFlyoutPresenter(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITimePickerFlyoutPresenter {
    type Vtable = ITimePickerFlyoutPresenter_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc5320638_7a18_40ed_9fd0_4c852c09b24e);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITimePickerFlyoutPresenter_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITimePickerFlyoutPresenter2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITimePickerFlyoutPresenter2 {
    type Vtable = ITimePickerFlyoutPresenter2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa13b5b68_7ee9_59f7_aad6_6532a8a8c3bf);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITimePickerFlyoutPresenter2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsDefaultShadowEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsDefaultShadowEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITimePickerFlyoutPresenterStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITimePickerFlyoutPresenterStatics2 {
    type Vtable = ITimePickerFlyoutPresenterStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xaa5f0ddc_f2bb_53f2_a54d_b34acccf51e4);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITimePickerFlyoutPresenterStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsDefaultShadowEnabledProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITimePickerFlyoutStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITimePickerFlyoutStatics {
    type Vtable = ITimePickerFlyoutStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3f6728ce_2169_4003_b4a8_8de7035a0ad6);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITimePickerFlyoutStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ClockIdentifierProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TimeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MinuteIncrementProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITimePickerSelectedValueChangedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITimePickerSelectedValueChangedEventArgs {
    type Vtable = ITimePickerSelectedValueChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6e20fb35_3b9b_5bb6_9888_266524db181e);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITimePickerSelectedValueChangedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub OldTime: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    OldTime: usize,
    #[cfg(feature = "Foundation")]
    pub NewTime: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    NewTime: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITimePickerStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITimePickerStatics {
    type Vtable = ITimePickerStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xfa71dfb1_233e_4f31_b8be_a6ea670c25cd);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITimePickerStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub HeaderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HeaderTemplateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ClockIdentifierProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MinuteIncrementProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TimeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITimePickerStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITimePickerStatics2 {
    type Vtable = ITimePickerStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x36d8abcd_4e10_451a_b93b_1a731ea7ee3f);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITimePickerStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub LightDismissOverlayModeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITimePickerStatics3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITimePickerStatics3 {
    type Vtable = ITimePickerStatics3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xcfef1763_ba87_54d8_82d4_7c6b9734dc9d);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITimePickerStatics3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SelectedTimeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITimePickerValueChangedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITimePickerValueChangedEventArgs {
    type Vtable = ITimePickerValueChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x2f4edb8d_b995_4e31_8ba9_c4dcdeb21ca3);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITimePickerValueChangedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub OldTime: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::super::Foundation::TimeSpan) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    OldTime: usize,
    #[cfg(feature = "Foundation")]
    pub NewTime: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::super::Foundation::TimeSpan) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    NewTime: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IToggleMenuFlyoutItem(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IToggleMenuFlyoutItem {
    type Vtable = IToggleMenuFlyoutItem_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x49841edd_88e9_4663_a701_cd4fd25e398f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IToggleMenuFlyoutItem_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsChecked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsChecked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IToggleMenuFlyoutItemFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IToggleMenuFlyoutItemFactory {
    type Vtable = IToggleMenuFlyoutItemFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa151966f_3bf7_46b6_b61c_9b2c1ba68843);
}
#[repr(C)]
#[doc(hidden)]
pub struct IToggleMenuFlyoutItemFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IToggleMenuFlyoutItemStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IToggleMenuFlyoutItemStatics {
    type Vtable = IToggleMenuFlyoutItemStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x16c724fb_6c1a_4852_9258_08c038367907);
}
#[repr(C)]
#[doc(hidden)]
pub struct IToggleMenuFlyoutItemStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsCheckedProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IToggleSplitButton(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IToggleSplitButton {
    type Vtable = IToggleSplitButton_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x28981b31_8e78_570c_bebb_685814485ae9);
}
#[repr(C)]
#[doc(hidden)]
pub struct IToggleSplitButton_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsChecked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsChecked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub IsCheckedChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    IsCheckedChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveIsCheckedChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveIsCheckedChanged: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IToggleSplitButtonAutomationPeer(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IToggleSplitButtonAutomationPeer {
    type Vtable = IToggleSplitButtonAutomationPeer_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x538e61de_7d46_5da7_94ab_acede6a12b9e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IToggleSplitButtonAutomationPeer_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IToggleSplitButtonAutomationPeerFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IToggleSplitButtonAutomationPeerFactory {
    type Vtable = IToggleSplitButtonAutomationPeerFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9829b0a0_5a30_5eed_a3a3_1472c53b0a66);
}
#[repr(C)]
#[doc(hidden)]
pub struct IToggleSplitButtonAutomationPeerFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, owner: ::windows::core::RawPtr, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IToggleSplitButtonFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IToggleSplitButtonFactory {
    type Vtable = IToggleSplitButtonFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3fcf073b_e57c_573d_af38_d1b2ad387951);
}
#[repr(C)]
#[doc(hidden)]
pub struct IToggleSplitButtonFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IToggleSplitButtonIsCheckedChangedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IToggleSplitButtonIsCheckedChangedEventArgs {
    type Vtable = IToggleSplitButtonIsCheckedChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x2138f0cf_5fcd_5dbb_99ae_359483070f6b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IToggleSplitButtonIsCheckedChangedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IToggleSwitch(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IToggleSwitch {
    type Vtable = IToggleSwitch_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x331d8f00_c5f9_46a5_b6c8_ede539304567);
}
#[repr(C)]
#[doc(hidden)]
pub struct IToggleSwitch_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsOn: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsOn: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub Header: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetHeader: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub HeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetHeaderTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OnContent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetOnContent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub OnContentTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetOnContentTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OffContent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetOffContent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub OffContentTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetOffContentTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub TemplateSettings: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    TemplateSettings: usize,
    #[cfg(feature = "Foundation")]
    pub Toggled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Toggled: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveToggled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveToggled: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IToggleSwitchOverrides(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IToggleSwitchOverrides {
    type Vtable = IToggleSwitchOverrides_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xbfd07f53_f8ca_4e47_949e_9e80429b3d16);
}
#[repr(C)]
#[doc(hidden)]
pub struct IToggleSwitchOverrides_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub OnToggled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub OnOnContentChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, oldcontent: *mut ::core::ffi::c_void, newcontent: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub OnOffContentChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, oldcontent: *mut ::core::ffi::c_void, newcontent: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub OnHeaderChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, oldcontent: *mut ::core::ffi::c_void, newcontent: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IToggleSwitchStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IToggleSwitchStatics {
    type Vtable = IToggleSwitchStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1d37147f_97df_4226_92ca_ddf453d7fd5a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IToggleSwitchStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsOnProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HeaderProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HeaderTemplateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OnContentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OnContentTemplateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OffContentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OffContentTemplateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IToolTip(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IToolTip {
    type Vtable = IToolTip_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x7de5d75f_4415_429f_b523_699bdb8c30db);
}
#[repr(C)]
#[doc(hidden)]
pub struct IToolTip_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub HorizontalOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetHorizontalOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub IsOpen: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsOpen: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub Placement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut Primitives::PlacementMode) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    Placement: usize,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub SetPlacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: Primitives::PlacementMode) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    SetPlacement: usize,
    pub PlacementTarget: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetPlacementTarget: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub VerticalOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetVerticalOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub TemplateSettings: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    TemplateSettings: usize,
    #[cfg(feature = "Foundation")]
    pub Closed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Closed: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveClosed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveClosed: usize,
    #[cfg(feature = "Foundation")]
    pub Opened: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Opened: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveOpened: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveOpened: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IToolTip2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IToolTip2 {
    type Vtable = IToolTip2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x2b1ade26_299a_5d54_800b_3bea123b4c20);
}
#[repr(C)]
#[doc(hidden)]
pub struct IToolTip2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub PlacementRect: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    PlacementRect: usize,
    #[cfg(feature = "Foundation")]
    pub SetPlacementRect: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SetPlacementRect: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IToolTipFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IToolTipFactory {
    type Vtable = IToolTipFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x89839403_b538_49e3_a430_3ac037dc6fe0);
}
#[repr(C)]
#[doc(hidden)]
pub struct IToolTipFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IToolTipService(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IToolTipService {
    type Vtable = IToolTipService_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x03a55f87_bfcc_4a1e_8fea_98f610832cea);
}
#[repr(C)]
#[doc(hidden)]
pub struct IToolTipService_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IToolTipServiceStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IToolTipServiceStatics {
    type Vtable = IToolTipServiceStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x86e649f8_e245_48aa_a8c8_d1073ed76319);
}
#[repr(C)]
#[doc(hidden)]
pub struct IToolTipServiceStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub PlacementProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub GetPlacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut Primitives::PlacementMode) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    GetPlacement: usize,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub SetPlacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, value: Primitives::PlacementMode) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    SetPlacement: usize,
    pub PlacementTargetProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetPlacementTarget: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetPlacementTarget: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ToolTipProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetToolTip: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetToolTip: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IToolTipStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IToolTipStatics {
    type Vtable = IToolTipStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf00285b8_4ba9_4f4f_86a7_86003813ceb3);
}
#[repr(C)]
#[doc(hidden)]
pub struct IToolTipStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub HorizontalOffsetProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsOpenProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PlacementProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PlacementTargetProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub VerticalOffsetProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IToolTipStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IToolTipStatics2 {
    type Vtable = IToolTipStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6845e646_9c7f_5011_8a78_7da9d87eb3b6);
}
#[repr(C)]
#[doc(hidden)]
pub struct IToolTipStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub PlacementRectProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITreeView(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITreeView {
    type Vtable = ITreeView_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9353cc5c_dd6e_453c_aedd_0c3ac993978b);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITreeView_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation_Collections")]
    pub RootNodes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    RootNodes: usize,
    pub SelectionMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut TreeViewSelectionMode) -> ::windows::core::HRESULT,
    pub SetSelectionMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: TreeViewSelectionMode) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation_Collections")]
    pub SelectedNodes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    SelectedNodes: usize,
    pub Expand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub Collapse: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SelectAll: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub ItemInvoked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ItemInvoked: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveItemInvoked: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveItemInvoked: usize,
    #[cfg(feature = "Foundation")]
    pub Expanding: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Expanding: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveExpanding: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveExpanding: usize,
    #[cfg(feature = "Foundation")]
    pub Collapsed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Collapsed: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveCollapsed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveCollapsed: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITreeView2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITreeView2 {
    type Vtable = ITreeView2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4f33a2e6_2f29_55d3_a1ab_1f4a863bf960);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITreeView2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub NodeFromContainer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, container: ::windows::core::RawPtr, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ContainerFromNode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, node: ::windows::core::RawPtr, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ItemFromContainer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, container: ::windows::core::RawPtr, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub ContainerFromItem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, item: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CanDragItems: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetCanDragItems: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub CanReorderItems: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetCanReorderItems: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub ItemTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetItemTemplate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ItemTemplateSelector: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetItemTemplateSelector: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ItemContainerStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetItemContainerStyle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ItemContainerStyleSelector: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetItemContainerStyleSelector: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub ItemContainerTransitions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation")))]
    ItemContainerTransitions: usize,
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub SetItemContainerTransitions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation")))]
    SetItemContainerTransitions: usize,
    pub ItemsSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetItemsSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub DragItemsStarting: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    DragItemsStarting: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveDragItemsStarting: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveDragItemsStarting: usize,
    #[cfg(feature = "Foundation")]
    pub DragItemsCompleted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    DragItemsCompleted: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveDragItemsCompleted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveDragItemsCompleted: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITreeViewCollapsedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITreeViewCollapsedEventArgs {
    type Vtable = ITreeViewCollapsedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x391db3b0_1e58_4539_9e93_387978f46cce);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITreeViewCollapsedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Node: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITreeViewCollapsedEventArgs2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITreeViewCollapsedEventArgs2 {
    type Vtable = ITreeViewCollapsedEventArgs2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x747b2f4f_7b25_56aa_8300_78d83b7ab2db);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITreeViewCollapsedEventArgs2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Item: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITreeViewDragItemsCompletedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITreeViewDragItemsCompletedEventArgs {
    type Vtable = ITreeViewDragItemsCompletedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3ca8632c_4311_574e_8ab4_3b7aa5de7a88);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITreeViewDragItemsCompletedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "ApplicationModel_DataTransfer")]
    pub DropResult: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::super::ApplicationModel::DataTransfer::DataPackageOperation) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "ApplicationModel_DataTransfer"))]
    DropResult: usize,
    #[cfg(feature = "Foundation_Collections")]
    pub Items: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    Items: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITreeViewDragItemsStartingEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITreeViewDragItemsStartingEventArgs {
    type Vtable = ITreeViewDragItemsStartingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x7bdb7ec4_e125_5773_9a3f_6695233d6250);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITreeViewDragItemsStartingEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Cancel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetCancel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "ApplicationModel_DataTransfer")]
    pub Data: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "ApplicationModel_DataTransfer"))]
    Data: usize,
    #[cfg(feature = "Foundation_Collections")]
    pub Items: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    Items: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITreeViewExpandingEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITreeViewExpandingEventArgs {
    type Vtable = ITreeViewExpandingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc5e1fa63_4154_49d2_a21f_c34176605e3a);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITreeViewExpandingEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Node: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITreeViewExpandingEventArgs2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITreeViewExpandingEventArgs2 {
    type Vtable = ITreeViewExpandingEventArgs2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa12f54c3_87b9_5623_9c74_e6dd443cde18);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITreeViewExpandingEventArgs2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Item: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITreeViewFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITreeViewFactory {
    type Vtable = ITreeViewFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xcc5267c3_6c69_49ce_b445_753acee7948b);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITreeViewFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITreeViewItem(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITreeViewItem {
    type Vtable = ITreeViewItem_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4e05d3e6_6167_44e7_9c74_291ddd6df6eb);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITreeViewItem_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub GlyphOpacity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetGlyphOpacity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media")]
    pub GlyphBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    GlyphBrush: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetGlyphBrush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetGlyphBrush: usize,
    pub ExpandedGlyph: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetExpandedGlyph: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub CollapsedGlyph: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetCollapsedGlyph: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub GlyphSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetGlyphSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub IsExpanded: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsExpanded: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub TreeViewItemTemplateSettings: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITreeViewItem2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITreeViewItem2 {
    type Vtable = ITreeViewItem2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x007baf7f_0493_51b4_879c_458024b34149);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITreeViewItem2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub HasUnrealizedChildren: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetHasUnrealizedChildren: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub ItemsSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetItemsSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITreeViewItemFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITreeViewItemFactory {
    type Vtable = ITreeViewItemFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4ea32731_568d_4d0d_adfd_3d8dc5aa5d88);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITreeViewItemFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITreeViewItemInvokedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITreeViewItemInvokedEventArgs {
    type Vtable = ITreeViewItemInvokedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x472ab521_0242_4290_9363_ab4fe704527f);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITreeViewItemInvokedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub InvokedItem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetHandled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub Handled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITreeViewItemStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITreeViewItemStatics {
    type Vtable = ITreeViewItemStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x436795be_7396_46dc_a264_21c56581c5e5);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITreeViewItemStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub GlyphOpacityProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GlyphBrushProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ExpandedGlyphProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CollapsedGlyphProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GlyphSizeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsExpandedProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TreeViewItemTemplateSettingsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITreeViewItemStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITreeViewItemStatics2 {
    type Vtable = ITreeViewItemStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa8af82f3_d803_5c25_b48d_ae0e73b16d8e);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITreeViewItemStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub HasUnrealizedChildrenProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ItemsSourceProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITreeViewItemTemplateSettings(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITreeViewItemTemplateSettings {
    type Vtable = ITreeViewItemTemplateSettings_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xec323744_de31_4936_bfc2_1cb37ba1dc08);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITreeViewItemTemplateSettings_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ExpandedGlyphVisibility: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Visibility) -> ::windows::core::HRESULT,
    pub CollapsedGlyphVisibility: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Visibility) -> ::windows::core::HRESULT,
    pub Indentation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Thickness) -> ::windows::core::HRESULT,
    pub DragItemsCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITreeViewItemTemplateSettingsFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITreeViewItemTemplateSettingsFactory {
    type Vtable = ITreeViewItemTemplateSettingsFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x11a1953b_31b7_4f40_8633_02fc614b518c);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITreeViewItemTemplateSettingsFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITreeViewItemTemplateSettingsStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITreeViewItemTemplateSettingsStatics {
    type Vtable = ITreeViewItemTemplateSettingsStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x55c720a8_70ed_4c21_93f4_2d79c1a4a5f7);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITreeViewItemTemplateSettingsStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ExpandedGlyphVisibilityProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CollapsedGlyphVisibilityProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IndentationProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DragItemsCountProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITreeViewList(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITreeViewList {
    type Vtable = ITreeViewList_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0f00a54e_099a_47a5_a942_94692b01f452);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITreeViewList_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITreeViewListFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITreeViewListFactory {
    type Vtable = ITreeViewListFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x288f6232_41d2_46f7_b1f5_691c625264b7);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITreeViewListFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITreeViewNode(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITreeViewNode {
    type Vtable = ITreeViewNode_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc04c8ed3_9af2_4e75_a329_7497a110e7a8);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITreeViewNode_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Content: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetContent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Parent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsExpanded: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsExpanded: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub HasChildren: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub Depth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub HasUnrealizedChildren: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetHasUnrealizedChildren: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation_Collections")]
    pub Children: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    Children: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITreeViewNodeFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITreeViewNodeFactory {
    type Vtable = ITreeViewNodeFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6ec62d90_aa19_414a_8a45_0a5589a836f7);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITreeViewNodeFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITreeViewNodeStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITreeViewNodeStatics {
    type Vtable = ITreeViewNodeStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5d8276fe_e1d1_4b61_9e81_c7fb189a2980);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITreeViewNodeStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ContentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DepthProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub IsExpandedProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HasChildrenProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITreeViewStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITreeViewStatics {
    type Vtable = ITreeViewStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xef913e08_83f2_4e16_bfb1_1577b98355f5);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITreeViewStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SelectionModeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITreeViewStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITreeViewStatics2 {
    type Vtable = ITreeViewStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x16b1c8f9_7aa1_5e38_8218_7bba3ea417c0);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITreeViewStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CanDragItemsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CanReorderItemsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ItemTemplateProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ItemTemplateSelectorProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ItemContainerStyleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ItemContainerStyleSelectorProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ItemContainerTransitionsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ItemsSourceProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITwoPaneView(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITwoPaneView {
    type Vtable = ITwoPaneView_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1b4d0db5_14ad_5926_bb8a_5b0a5c0085f0);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITwoPaneView_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Pane1: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetPane1: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub Pane2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetPane2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub Pane1Length: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::GridLength) -> ::windows::core::HRESULT,
    pub SetPane1Length: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::GridLength) -> ::windows::core::HRESULT,
    pub Pane2Length: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::GridLength) -> ::windows::core::HRESULT,
    pub SetPane2Length: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::GridLength) -> ::windows::core::HRESULT,
    pub PanePriority: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut TwoPaneViewPriority) -> ::windows::core::HRESULT,
    pub SetPanePriority: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: TwoPaneViewPriority) -> ::windows::core::HRESULT,
    pub Mode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut TwoPaneViewMode) -> ::windows::core::HRESULT,
    pub WideModeConfiguration: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut TwoPaneViewWideModeConfiguration) -> ::windows::core::HRESULT,
    pub SetWideModeConfiguration: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: TwoPaneViewWideModeConfiguration) -> ::windows::core::HRESULT,
    pub TallModeConfiguration: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut TwoPaneViewTallModeConfiguration) -> ::windows::core::HRESULT,
    pub SetTallModeConfiguration: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: TwoPaneViewTallModeConfiguration) -> ::windows::core::HRESULT,
    pub MinWideModeWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetMinWideModeWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub MinTallModeHeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetMinTallModeHeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub ModeChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ModeChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveModeChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveModeChanged: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITwoPaneViewFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITwoPaneViewFactory {
    type Vtable = ITwoPaneViewFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x18ff792d_58b4_59ed_a051_51aceffbcca9);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITwoPaneViewFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct ITwoPaneViewStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for ITwoPaneViewStatics {
    type Vtable = ITwoPaneViewStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5a35c389_85c4_55f4_abb1_97451bc32d71);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITwoPaneViewStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Pane1Property: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub Pane2Property: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub Pane1LengthProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub Pane2LengthProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub PanePriorityProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ModeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub WideModeConfigurationProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub TallModeConfigurationProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MinWideModeWidthProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MinTallModeHeightProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IUIElementCollection(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IUIElementCollection {
    type Vtable = IUIElementCollection_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd6602d54_88f6_43f6_85d8_a9d914a6dd3b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IUIElementCollection_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Move: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, oldindex: u32, newindex: u32) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IUserControl(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IUserControl {
    type Vtable = IUserControl_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa7a69ec9_ea35_4679_bf29_f4f09286d314);
}
#[repr(C)]
#[doc(hidden)]
pub struct IUserControl_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Content: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetContent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IUserControlFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IUserControlFactory {
    type Vtable = IUserControlFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x38b1ed92_a28a_4972_93df_f4f759b8afd2);
}
#[repr(C)]
#[doc(hidden)]
pub struct IUserControlFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstance: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseinterface: *mut ::core::ffi::c_void, innerinterface: *mut *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IUserControlStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IUserControlStatics {
    type Vtable = IUserControlStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe8887976_2c5c_41cf_be6a_9e44befdf655);
}
#[repr(C)]
#[doc(hidden)]
pub struct IUserControlStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ContentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IVariableSizedWrapGrid(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IVariableSizedWrapGrid {
    type Vtable = IVariableSizedWrapGrid_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9ca507c7_23c9_4f01_b80f_be5c21eef474);
}
#[repr(C)]
#[doc(hidden)]
pub struct IVariableSizedWrapGrid_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ItemHeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetItemHeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub ItemWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetItemWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub Orientation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut Orientation) -> ::windows::core::HRESULT,
    pub SetOrientation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: Orientation) -> ::windows::core::HRESULT,
    pub HorizontalChildrenAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::HorizontalAlignment) -> ::windows::core::HRESULT,
    pub SetHorizontalChildrenAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::HorizontalAlignment) -> ::windows::core::HRESULT,
    pub VerticalChildrenAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::VerticalAlignment) -> ::windows::core::HRESULT,
    pub SetVerticalChildrenAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::VerticalAlignment) -> ::windows::core::HRESULT,
    pub MaximumRowsOrColumns: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetMaximumRowsOrColumns: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IVariableSizedWrapGridStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IVariableSizedWrapGridStatics {
    type Vtable = IVariableSizedWrapGridStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xfe9db859_8127_4aef_b7a2_949847486e96);
}
#[repr(C)]
#[doc(hidden)]
pub struct IVariableSizedWrapGridStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ItemHeightProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ItemWidthProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OrientationProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HorizontalChildrenAlignmentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub VerticalChildrenAlignmentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MaximumRowsOrColumnsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub RowSpanProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetRowSpan: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetRowSpan: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, value: i32) -> ::windows::core::HRESULT,
    pub ColumnSpanProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetColumnSpan: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetColumnSpan: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, value: i32) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IViewbox(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IViewbox {
    type Vtable = IViewbox_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x05252c58_ba9d_4809_9ec3_fa0d16710ba1);
}
#[repr(C)]
#[doc(hidden)]
pub struct IViewbox_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub Child: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetChild: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "UI_Xaml_Media")]
    pub Stretch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::Media::Stretch) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    Stretch: usize,
    #[cfg(feature = "UI_Xaml_Media")]
    pub SetStretch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::Media::Stretch) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Media"))]
    SetStretch: usize,
    pub StretchDirection: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut StretchDirection) -> ::windows::core::HRESULT,
    pub SetStretchDirection: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: StretchDirection) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IViewboxStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IViewboxStatics {
    type Vtable = IViewboxStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5cd1e72d_e8d3_4865_8f08_b6b2d689adf1);
}
#[repr(C)]
#[doc(hidden)]
pub struct IViewboxStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub StretchProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub StretchDirectionProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IVirtualizingPanel(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IVirtualizingPanel {
    type Vtable = IVirtualizingPanel_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x38aad50c_12cf_4d1e_a884_c9df85f07cd9);
}
#[repr(C)]
#[doc(hidden)]
pub struct IVirtualizingPanel_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ItemContainerGenerator: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IVirtualizingPanelFactory(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IVirtualizingPanelFactory {
    type Vtable = IVirtualizingPanelFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xbe19f839_cbd0_43e9_a5d0_0bdba0ffbd38);
}
#[repr(C)]
#[doc(hidden)]
pub struct IVirtualizingPanelFactory_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IVirtualizingPanelOverrides(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IVirtualizingPanelOverrides {
    type Vtable = IVirtualizingPanelOverrides_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5ef6bd7d_677f_408d_a96c_b19507750466);
}
#[repr(C)]
#[doc(hidden)]
pub struct IVirtualizingPanelOverrides_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub OnItemsChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sender: *mut ::core::ffi::c_void, args: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "UI_Xaml_Controls_Primitives"))]
    OnItemsChanged: usize,
    pub OnClearChildren: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub BringIndexIntoView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: i32) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IVirtualizingPanelProtected(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IVirtualizingPanelProtected {
    type Vtable = IVirtualizingPanelProtected_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc9c9ab42_c232_479d_a7c9_5e7611196a45);
}
#[repr(C)]
#[doc(hidden)]
pub struct IVirtualizingPanelProtected_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub AddInternalChild: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, child: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub InsertInternalChild: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: i32, child: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub RemoveInternalChildRange: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: i32, range: i32) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IVirtualizingStackPanel(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IVirtualizingStackPanel {
    type Vtable = IVirtualizingStackPanel_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x7567cd9a_a3b4_4dea_bb11_549e2c2f919d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IVirtualizingStackPanel_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub AreScrollSnapPointsRegular: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetAreScrollSnapPointsRegular: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub Orientation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut Orientation) -> ::windows::core::HRESULT,
    pub SetOrientation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: Orientation) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub CleanUpVirtualizedItemEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    CleanUpVirtualizedItemEvent: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveCleanUpVirtualizedItemEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveCleanUpVirtualizedItemEvent: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IVirtualizingStackPanelOverrides(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IVirtualizingStackPanelOverrides {
    type Vtable = IVirtualizingStackPanelOverrides_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xcbe6f72c_2892_46d1_987f_58ca1081f040);
}
#[repr(C)]
#[doc(hidden)]
pub struct IVirtualizingStackPanelOverrides_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub OnCleanUpVirtualizedItem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IVirtualizingStackPanelStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IVirtualizingStackPanelStatics {
    type Vtable = IVirtualizingStackPanelStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8314e778_91d3_4d56_ac09_223adcd2bd3f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IVirtualizingStackPanelStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub AreScrollSnapPointsRegularProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OrientationProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub VirtualizationModeProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetVirtualizationMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, result__: *mut VirtualizationMode) -> ::windows::core::HRESULT,
    pub SetVirtualizationMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, element: ::windows::core::RawPtr, value: VirtualizationMode) -> ::windows::core::HRESULT,
    pub IsVirtualizingProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetIsVirtualizing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, o: ::windows::core::RawPtr, result__: *mut bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IWebView(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IWebView {
    type Vtable = IWebView_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5862cc46_1f7d_479b_92a6_de7858fe8d54);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWebView_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub Source: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Source: usize,
    #[cfg(feature = "Foundation")]
    pub SetSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SetSource: usize,
    #[cfg(all(feature = "Foundation_Collections", feature = "deprecated"))]
    pub AllowedScriptNotifyUris: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation_Collections", feature = "deprecated")))]
    AllowedScriptNotifyUris: usize,
    #[cfg(all(feature = "Foundation_Collections", feature = "deprecated"))]
    pub SetAllowedScriptNotifyUris: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation_Collections", feature = "deprecated")))]
    SetAllowedScriptNotifyUris: usize,
    #[cfg(all(feature = "ApplicationModel_DataTransfer", feature = "deprecated"))]
    pub DataTransferPackage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "ApplicationModel_DataTransfer", feature = "deprecated")))]
    DataTransferPackage: usize,
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Navigation", feature = "deprecated"))]
    pub LoadCompleted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation", feature = "UI_Xaml_Navigation", feature = "deprecated")))]
    LoadCompleted: usize,
    #[cfg(all(feature = "Foundation", feature = "deprecated"))]
    pub RemoveLoadCompleted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation", feature = "deprecated")))]
    RemoveLoadCompleted: usize,
    #[cfg(feature = "Foundation")]
    pub ScriptNotify: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ScriptNotify: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveScriptNotify: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveScriptNotify: usize,
    #[cfg(all(feature = "Foundation", feature = "deprecated"))]
    pub NavigationFailed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation", feature = "deprecated")))]
    NavigationFailed: usize,
    #[cfg(all(feature = "Foundation", feature = "deprecated"))]
    pub RemoveNavigationFailed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation", feature = "deprecated")))]
    RemoveNavigationFailed: usize,
    #[cfg(feature = "deprecated")]
    pub InvokeScript: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, scriptname: ::core::mem::ManuallyDrop<::windows::core::HSTRING>, arguments_array_size: u32, arguments: *const ::core::mem::ManuallyDrop<::windows::core::HSTRING>, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "deprecated"))]
    InvokeScript: usize,
    #[cfg(feature = "Foundation")]
    pub Navigate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, source: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Navigate: usize,
    pub NavigateToString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, text: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IWebView2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IWebView2 {
    type Vtable = IWebView2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd481759e_3eff_4462_823d_fd52f9ba4cc8);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWebView2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CanGoBack: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub CanGoForward: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub DocumentTitle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub NavigationStarting: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    NavigationStarting: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveNavigationStarting: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveNavigationStarting: usize,
    #[cfg(feature = "Foundation")]
    pub ContentLoading: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ContentLoading: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveContentLoading: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveContentLoading: usize,
    #[cfg(feature = "Foundation")]
    pub DOMContentLoaded: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    DOMContentLoaded: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveDOMContentLoaded: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveDOMContentLoaded: usize,
    pub GoForward: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GoBack: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Refresh: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Stop: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(all(feature = "Foundation", feature = "Storage_Streams"))]
    pub CapturePreviewToStreamAsync: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, stream: ::windows::core::RawPtr, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation", feature = "Storage_Streams")))]
    CapturePreviewToStreamAsync: usize,
    #[cfg(feature = "Foundation_Collections")]
    pub InvokeScriptAsync: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, scriptname: ::core::mem::ManuallyDrop<::windows::core::HSTRING>, arguments: ::windows::core::RawPtr, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    InvokeScriptAsync: usize,
    #[cfg(all(feature = "ApplicationModel_DataTransfer", feature = "Foundation"))]
    pub CaptureSelectedContentToDataPackageAsync: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "ApplicationModel_DataTransfer", feature = "Foundation")))]
    CaptureSelectedContentToDataPackageAsync: usize,
    #[cfg(all(feature = "Foundation", feature = "Web"))]
    pub NavigateToLocalStreamUri: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, source: ::windows::core::RawPtr, streamresolver: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation", feature = "Web")))]
    NavigateToLocalStreamUri: usize,
    #[cfg(feature = "Foundation")]
    pub BuildLocalStreamUri: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contentidentifier: ::core::mem::ManuallyDrop<::windows::core::HSTRING>, relativepath: ::core::mem::ManuallyDrop<::windows::core::HSTRING>, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    BuildLocalStreamUri: usize,
    pub DefaultBackgroundColor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Color) -> ::windows::core::HRESULT,
    pub SetDefaultBackgroundColor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::Color) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub NavigationCompleted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    NavigationCompleted: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveNavigationCompleted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveNavigationCompleted: usize,
    #[cfg(feature = "Foundation")]
    pub FrameNavigationStarting: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    FrameNavigationStarting: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveFrameNavigationStarting: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveFrameNavigationStarting: usize,
    #[cfg(feature = "Foundation")]
    pub FrameContentLoading: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    FrameContentLoading: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveFrameContentLoading: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveFrameContentLoading: usize,
    #[cfg(feature = "Foundation")]
    pub FrameDOMContentLoaded: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    FrameDOMContentLoaded: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveFrameDOMContentLoaded: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveFrameDOMContentLoaded: usize,
    #[cfg(feature = "Foundation")]
    pub FrameNavigationCompleted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    FrameNavigationCompleted: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveFrameNavigationCompleted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveFrameNavigationCompleted: usize,
    #[cfg(feature = "Foundation")]
    pub LongRunningScriptDetected: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    LongRunningScriptDetected: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveLongRunningScriptDetected: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveLongRunningScriptDetected: usize,
    #[cfg(feature = "Foundation")]
    pub UnsafeContentWarningDisplaying: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    UnsafeContentWarningDisplaying: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveUnsafeContentWarningDisplaying: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveUnsafeContentWarningDisplaying: usize,
    #[cfg(feature = "Foundation")]
    pub UnviewableContentIdentified: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    UnviewableContentIdentified: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveUnviewableContentIdentified: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveUnviewableContentIdentified: usize,
    #[cfg(feature = "Web_Http")]
    pub NavigateWithHttpRequestMessage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, requestmessage: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Web_Http"))]
    NavigateWithHttpRequestMessage: usize,
    pub Focus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::FocusState, result__: *mut bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IWebView3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IWebView3 {
    type Vtable = IWebView3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc497789b_b499_4d69_b5c2_ae9d5d6d594e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWebView3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ContainsFullScreenElement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub ContainsFullScreenElementChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ContainsFullScreenElementChanged: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveContainsFullScreenElementChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveContainsFullScreenElementChanged: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IWebView4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IWebView4 {
    type Vtable = IWebView4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe28243bc_67f3_462a_b4e0_3bbf6c3dab0b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWebView4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ExecutionMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut WebViewExecutionMode) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation_Collections")]
    pub DeferredPermissionRequests: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation_Collections"))]
    DeferredPermissionRequests: usize,
    pub Settings: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub UnsupportedUriSchemeIdentified: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    UnsupportedUriSchemeIdentified: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveUnsupportedUriSchemeIdentified: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveUnsupportedUriSchemeIdentified: usize,
    #[cfg(feature = "Foundation")]
    pub NewWindowRequested: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    NewWindowRequested: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveNewWindowRequested: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveNewWindowRequested: usize,
    #[cfg(feature = "Foundation")]
    pub PermissionRequested: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    PermissionRequested: usize,
    #[cfg(feature = "Foundation")]
    pub RemovePermissionRequested: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemovePermissionRequested: usize,
    pub AddWebAllowedObject: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::core::mem::ManuallyDrop<::windows::core::HSTRING>, pobject: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub DeferredPermissionRequestById: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IWebView5(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IWebView5 {
    type Vtable = IWebView5_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8c9884a6_2f3b_4a55_a463_8444c2095d00);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWebView5_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub XYFocusLeft: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetXYFocusLeft: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub XYFocusRight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetXYFocusRight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub XYFocusUp: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetXYFocusUp: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub XYFocusDown: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub SetXYFocusDown: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IWebView6(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IWebView6 {
    type Vtable = IWebView6_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x38ccd942_2536_467c_a211_af359c3b4fda);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWebView6_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub SeparateProcessLost: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    SeparateProcessLost: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveSeparateProcessLost: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveSeparateProcessLost: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IWebView7(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IWebView7 {
    type Vtable = IWebView7_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x27707c2b_042f_5353_9021_55cd06585fdf);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWebView7_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub WebResourceRequested: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    WebResourceRequested: usize,
    #[cfg(feature = "Foundation")]
    pub RemoveWebResourceRequested: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    RemoveWebResourceRequested: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IWebViewBrush(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IWebViewBrush {
    type Vtable = IWebViewBrush_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x40e86f75_0cf4_4b72_a4d6_cf5d15780116);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWebViewBrush_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SourceName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub SetSourceName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
    pub Redraw: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, source: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IWebViewBrushStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IWebViewBrushStatics {
    type Vtable = IWebViewBrushStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd74daa24_1d05_463e_b028_6baa4420e762);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWebViewBrushStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub SourceNameProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IWebViewContentLoadingEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IWebViewContentLoadingEventArgs {
    type Vtable = IWebViewContentLoadingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6e2980bb_98b8_413e_8129_971c6f7e4c8a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWebViewContentLoadingEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub Uri: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Uri: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IWebViewDOMContentLoadedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IWebViewDOMContentLoadedEventArgs {
    type Vtable = IWebViewDOMContentLoadedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc47eba15_dc6b_4b36_9d80_82fb8817b988);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWebViewDOMContentLoadedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub Uri: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Uri: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IWebViewDeferredPermissionRequest(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IWebViewDeferredPermissionRequest {
    type Vtable = IWebViewDeferredPermissionRequest_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa3dcc461_7350_4d3a_8fb9_40eeec2746c2);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWebViewDeferredPermissionRequest_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub Uri: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Uri: usize,
    pub PermissionType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut WebViewPermissionType) -> ::windows::core::HRESULT,
    pub Id: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut u32) -> ::windows::core::HRESULT,
    pub Allow: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Deny: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IWebViewFactory4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IWebViewFactory4 {
    type Vtable = IWebViewFactory4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x82edac58_ee6a_4c9b_a3a0_9347a7d0ef4c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWebViewFactory4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CreateInstanceWithExecutionMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, executionmode: WebViewExecutionMode, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IWebViewLongRunningScriptDetectedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IWebViewLongRunningScriptDetectedEventArgs {
    type Vtable = IWebViewLongRunningScriptDetectedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf3f020ab_a46c_42b0_9efe_69764d5cffa6);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWebViewLongRunningScriptDetectedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub ExecutionTime: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::super::Foundation::TimeSpan) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ExecutionTime: usize,
    pub StopPageScriptExecution: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetStopPageScriptExecution: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IWebViewNavigationCompletedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IWebViewNavigationCompletedEventArgs {
    type Vtable = IWebViewNavigationCompletedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x11e6f20b_eba7_44c0_889b_edeb6a064ddd);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWebViewNavigationCompletedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub Uri: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Uri: usize,
    pub IsSuccess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    #[cfg(feature = "Web")]
    pub WebErrorStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::super::Web::WebErrorStatus) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Web"))]
    WebErrorStatus: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IWebViewNavigationFailedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IWebViewNavigationFailedEventArgs {
    type Vtable = IWebViewNavigationFailedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xaf09609a_129c_4170_9e9c_e2cdf025dca4);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWebViewNavigationFailedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub Uri: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Uri: usize,
    #[cfg(feature = "Web")]
    pub WebErrorStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::super::Web::WebErrorStatus) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Web"))]
    WebErrorStatus: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IWebViewNavigationStartingEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IWebViewNavigationStartingEventArgs {
    type Vtable = IWebViewNavigationStartingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x94cb8668_8367_43d5_91bb_96eba37ec784);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWebViewNavigationStartingEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub Uri: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Uri: usize,
    pub Cancel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetCancel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IWebViewNewWindowRequestedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IWebViewNewWindowRequestedEventArgs {
    type Vtable = IWebViewNewWindowRequestedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x470fa818_6862_44d9_b3d1_c0696373de35);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWebViewNewWindowRequestedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub Uri: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Uri: usize,
    #[cfg(feature = "Foundation")]
    pub Referrer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Referrer: usize,
    pub Handled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetHandled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IWebViewPermissionRequest(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IWebViewPermissionRequest {
    type Vtable = IWebViewPermissionRequest_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x17b76332_66c4_4131_999e_df7de20a8c9c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWebViewPermissionRequest_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub Uri: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Uri: usize,
    pub PermissionType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut WebViewPermissionType) -> ::windows::core::HRESULT,
    pub Id: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut u32) -> ::windows::core::HRESULT,
    pub State: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut WebViewPermissionState) -> ::windows::core::HRESULT,
    pub Defer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Allow: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Deny: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IWebViewPermissionRequestedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IWebViewPermissionRequestedEventArgs {
    type Vtable = IWebViewPermissionRequestedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xdadecfd0_6e1e_473f_b0be_b02404d6a86d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWebViewPermissionRequestedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub PermissionRequest: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IWebViewSeparateProcessLostEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IWebViewSeparateProcessLostEventArgs {
    type Vtable = IWebViewSeparateProcessLostEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa405700a_c482_40b5_aaea_e10cfa9f5abe);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWebViewSeparateProcessLostEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IWebViewSettings(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IWebViewSettings {
    type Vtable = IWebViewSettings_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1d50ad4d_abf6_4785_8df3_fdebc1270301);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWebViewSettings_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub IsJavaScriptEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsJavaScriptEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
    pub IsIndexedDBEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetIsIndexedDBEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IWebViewStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IWebViewStatics {
    type Vtable = IWebViewStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa0b561de_5fdb_443b_b9f0_5c30f6b7a1f4);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWebViewStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(all(feature = "Foundation_Collections", feature = "deprecated"))]
    pub AnyScriptNotifyUri: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Foundation_Collections", feature = "deprecated")))]
    AnyScriptNotifyUri: usize,
    pub SourceProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "deprecated")]
    pub AllowedScriptNotifyUrisProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "deprecated"))]
    AllowedScriptNotifyUrisProperty: usize,
    #[cfg(feature = "deprecated")]
    pub DataTransferPackageProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "deprecated"))]
    DataTransferPackageProperty: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IWebViewStatics2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IWebViewStatics2 {
    type Vtable = IWebViewStatics2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x322f8780_e812_466b_9e50_8e9fec24018a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWebViewStatics2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub CanGoBackProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub CanGoForwardProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DocumentTitleProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub DefaultBackgroundColorProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IWebViewStatics3(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IWebViewStatics3 {
    type Vtable = IWebViewStatics3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x129bef8a_4509_4374_b0d1_a7104d0c3a2f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWebViewStatics3_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ContainsFullScreenElementProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IWebViewStatics4(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IWebViewStatics4 {
    type Vtable = IWebViewStatics4_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x44b197b0_b746_40f3_9936_4ebbff6b47b8);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWebViewStatics4_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub DefaultExecutionMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut WebViewExecutionMode) -> ::windows::core::HRESULT,
    #[cfg(feature = "Foundation")]
    pub ClearTemporaryWebDataAsync: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    ClearTemporaryWebDataAsync: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IWebViewStatics5(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IWebViewStatics5 {
    type Vtable = IWebViewStatics5_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x08a0b8d1_508a_4db8_97ef_0fa505e19ec2);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWebViewStatics5_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub XYFocusLeftProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub XYFocusRightProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub XYFocusUpProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub XYFocusDownProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IWebViewUnsupportedUriSchemeIdentifiedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IWebViewUnsupportedUriSchemeIdentifiedEventArgs {
    type Vtable = IWebViewUnsupportedUriSchemeIdentifiedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb9c9e1a7_620f_4895_935d_10fbac6fd29e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWebViewUnsupportedUriSchemeIdentifiedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub Uri: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Uri: usize,
    pub Handled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
    pub SetHandled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IWebViewUnviewableContentIdentifiedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IWebViewUnviewableContentIdentifiedEventArgs {
    type Vtable = IWebViewUnviewableContentIdentifiedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x37bc16e1_6062_4678_b20b_6c36ac9c59ac);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWebViewUnviewableContentIdentifiedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Foundation")]
    pub Uri: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Uri: usize,
    #[cfg(feature = "Foundation")]
    pub Referrer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Referrer: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IWebViewUnviewableContentIdentifiedEventArgs2(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IWebViewUnviewableContentIdentifiedEventArgs2 {
    type Vtable = IWebViewUnviewableContentIdentifiedEventArgs2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9abe1154_36f0_4268_8d88_121eedf45e6a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWebViewUnviewableContentIdentifiedEventArgs2_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub MediaType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IWebViewWebResourceRequestedEventArgs(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IWebViewWebResourceRequestedEventArgs {
    type Vtable = IWebViewWebResourceRequestedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x378d21f6_c77f_5d8b_8f30_93c99df79435);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWebViewWebResourceRequestedEventArgs_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    #[cfg(feature = "Web_Http")]
    pub Request: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Web_Http"))]
    Request: usize,
    #[cfg(feature = "Web_Http")]
    pub Response: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Web_Http"))]
    Response: usize,
    #[cfg(feature = "Web_Http")]
    pub SetResponse: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Web_Http"))]
    SetResponse: usize,
    #[cfg(feature = "Foundation")]
    pub GetDeferral: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    GetDeferral: usize,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IWrapGrid(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IWrapGrid {
    type Vtable = IWrapGrid_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0552178b_7567_47c2_bd5c_ad8394c828ba);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWrapGrid_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ItemWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetItemWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub ItemHeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
    pub SetItemHeight: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: f64) -> ::windows::core::HRESULT,
    pub Orientation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut Orientation) -> ::windows::core::HRESULT,
    pub SetOrientation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: Orientation) -> ::windows::core::HRESULT,
    pub HorizontalChildrenAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::HorizontalAlignment) -> ::windows::core::HRESULT,
    pub SetHorizontalChildrenAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::HorizontalAlignment) -> ::windows::core::HRESULT,
    pub VerticalChildrenAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::VerticalAlignment) -> ::windows::core::HRESULT,
    pub SetVerticalChildrenAlignment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::VerticalAlignment) -> ::windows::core::HRESULT,
    pub MaximumRowsOrColumns: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i32) -> ::windows::core::HRESULT,
    pub SetMaximumRowsOrColumns: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT,
}
#[doc(hidden)]
#[repr(transparent)]
pub struct IWrapGridStatics(::windows::core::IUnknown);
unsafe impl ::windows::core::Interface for IWrapGridStatics {
    type Vtable = IWrapGridStatics_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd04a6b97_13cb_479c_a285_e4e56846c4cb);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWrapGridStatics_Vtbl {
    pub base: ::windows::core::IInspectableVtbl,
    pub ItemWidthProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ItemHeightProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub OrientationProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub HorizontalChildrenAlignmentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub VerticalChildrenAlignmentProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub MaximumRowsOrColumnsProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct IconElement(::windows::core::IUnknown);
impl IconElement {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn Foreground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Foreground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetForeground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetForeground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ForegroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IIconElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ForegroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IIconElementStatics<R, F: FnOnce(&IIconElementStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<IconElement, IIconElementStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for IconElement {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IconElement {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IconElement {}
impl ::core::fmt::Debug for IconElement {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IconElement").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for IconElement {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.IconElement;{9af0803b-d04c-467a-bbd5-9b81f02d9a56})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for IconElement {
    type Vtable = IIconElement_Vtbl;
    const IID: ::windows::core::GUID = <IIconElement as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for IconElement {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.IconElement";
}
impl ::core::convert::From<IconElement> for ::windows::core::IUnknown {
    fn from(value: IconElement) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IconElement> for ::windows::core::IUnknown {
    fn from(value: &IconElement) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for IconElement {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a IconElement {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<IconElement> for ::windows::core::IInspectable {
    fn from(value: IconElement) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IconElement> for ::windows::core::IInspectable {
    fn from(value: &IconElement) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for IconElement {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a IconElement {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<IconElement> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: IconElement) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&IconElement> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &IconElement) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for IconElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &IconElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<IconElement> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: IconElement) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&IconElement> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &IconElement) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for IconElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &IconElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<IconElement> for super::FrameworkElement {
    fn from(value: IconElement) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&IconElement> for super::FrameworkElement {
    fn from(value: &IconElement) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for IconElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &IconElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<IconElement> for super::UIElement {
    fn from(value: IconElement) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&IconElement> for super::UIElement {
    fn from(value: &IconElement) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for IconElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &IconElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<IconElement> for super::DependencyObject {
    fn from(value: IconElement) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&IconElement> for super::DependencyObject {
    fn from(value: &IconElement) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for IconElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &IconElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for IconElement {}
unsafe impl ::core::marker::Sync for IconElement {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct IconSource(::windows::core::IUnknown);
impl IconSource {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn Foreground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Foreground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetForeground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetForeground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ForegroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IIconSourceStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ForegroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IIconSourceStatics<R, F: FnOnce(&IIconSourceStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<IconSource, IIconSourceStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for IconSource {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IconSource {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IconSource {}
impl ::core::fmt::Debug for IconSource {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IconSource").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for IconSource {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.IconSource;{92ec8d55-45eb-47a4-863c-91b224044f9b})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for IconSource {
    type Vtable = IIconSource_Vtbl;
    const IID: ::windows::core::GUID = <IIconSource as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for IconSource {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.IconSource";
}
impl ::core::convert::From<IconSource> for ::windows::core::IUnknown {
    fn from(value: IconSource) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IconSource> for ::windows::core::IUnknown {
    fn from(value: &IconSource) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for IconSource {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a IconSource {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<IconSource> for ::windows::core::IInspectable {
    fn from(value: IconSource) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IconSource> for ::windows::core::IInspectable {
    fn from(value: &IconSource) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for IconSource {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a IconSource {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<IconSource> for super::DependencyObject {
    fn from(value: IconSource) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&IconSource> for super::DependencyObject {
    fn from(value: &IconSource) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for IconSource {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &IconSource {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for IconSource {}
unsafe impl ::core::marker::Sync for IconSource {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct IconSourceElement(::windows::core::IUnknown);
impl IconSourceElement {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IconSource(&self) -> ::windows::core::Result<IconSource> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IconSource)(::core::mem::transmute_copy(this), &mut result__).from_abi::<IconSource>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIconSource<'a, Param0: ::windows::core::IntoParam<'a, IconSource>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIconSource)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<IconSourceElement> {
        Self::IIconSourceElementFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<IconSourceElement>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<IconSourceElement> {
        Self::IIconSourceElementFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<IconSourceElement>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IconSourceProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IIconSourceElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IconSourceProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IIconSourceElementFactory<R, F: FnOnce(&IIconSourceElementFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<IconSourceElement, IIconSourceElementFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IIconSourceElementStatics<R, F: FnOnce(&IIconSourceElementStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<IconSourceElement, IIconSourceElementStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for IconSourceElement {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IconSourceElement {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IconSourceElement {}
impl ::core::fmt::Debug for IconSourceElement {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IconSourceElement").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for IconSourceElement {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.IconSourceElement;{d7a64502-ddda-55cd-b4c9-e79abc8b0ea4})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for IconSourceElement {
    type Vtable = IIconSourceElement_Vtbl;
    const IID: ::windows::core::GUID = <IIconSourceElement as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for IconSourceElement {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.IconSourceElement";
}
impl ::core::convert::From<IconSourceElement> for ::windows::core::IUnknown {
    fn from(value: IconSourceElement) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IconSourceElement> for ::windows::core::IUnknown {
    fn from(value: &IconSourceElement) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for IconSourceElement {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a IconSourceElement {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<IconSourceElement> for ::windows::core::IInspectable {
    fn from(value: IconSourceElement) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IconSourceElement> for ::windows::core::IInspectable {
    fn from(value: &IconSourceElement) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for IconSourceElement {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a IconSourceElement {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<IconSourceElement> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: IconSourceElement) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&IconSourceElement> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &IconSourceElement) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for IconSourceElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &IconSourceElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<IconSourceElement> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: IconSourceElement) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&IconSourceElement> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &IconSourceElement) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for IconSourceElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &IconSourceElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<IconSourceElement> for IconElement {
    fn from(value: IconSourceElement) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&IconSourceElement> for IconElement {
    fn from(value: &IconSourceElement) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, IconElement> for IconSourceElement {
    fn into_param(self) -> ::windows::core::Param<'a, IconElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IconElement> for &IconSourceElement {
    fn into_param(self) -> ::windows::core::Param<'a, IconElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<IconElement>::into(self))
    }
}
impl ::core::convert::From<IconSourceElement> for super::FrameworkElement {
    fn from(value: IconSourceElement) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&IconSourceElement> for super::FrameworkElement {
    fn from(value: &IconSourceElement) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for IconSourceElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &IconSourceElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<IconSourceElement> for super::UIElement {
    fn from(value: IconSourceElement) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&IconSourceElement> for super::UIElement {
    fn from(value: &IconSourceElement) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for IconSourceElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &IconSourceElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<IconSourceElement> for super::DependencyObject {
    fn from(value: IconSourceElement) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&IconSourceElement> for super::DependencyObject {
    fn from(value: &IconSourceElement) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for IconSourceElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &IconSourceElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for IconSourceElement {}
unsafe impl ::core::marker::Sync for IconSourceElement {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct Image(::windows::core::IUnknown);
impl Image {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Image, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn Source(&self) -> ::windows::core::Result<super::Media::ImageSource> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Source)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::ImageSource>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetSource<'a, Param0: ::windows::core::IntoParam<'a, super::Media::ImageSource>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSource)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn Stretch(&self) -> ::windows::core::Result<super::Media::Stretch> {
        let this = self;
        unsafe {
            let mut result__: super::Media::Stretch = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Stretch)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Stretch>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetStretch(&self, value: super::Media::Stretch) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetStretch)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn NineGrid(&self) -> ::windows::core::Result<super::Thickness> {
        let this = self;
        unsafe {
            let mut result__: super::Thickness = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).NineGrid)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Thickness>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetNineGrid<'a, Param0: ::windows::core::IntoParam<'a, super::Thickness>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetNineGrid)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Media_PlayTo', 'deprecated'*"]
    #[cfg(all(feature = "Media_PlayTo", feature = "deprecated"))]
    pub fn PlayToSource(&self) -> ::windows::core::Result<super::super::super::Media::PlayTo::PlayToSource> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlayToSource)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Media::PlayTo::PlayToSource>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ImageFailed<'a, Param0: ::windows::core::IntoParam<'a, super::ExceptionRoutedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ImageFailed)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveImageFailed<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveImageFailed)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ImageOpened<'a, Param0: ::windows::core::IntoParam<'a, super::RoutedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ImageOpened)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveImageOpened<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveImageOpened)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Media_Casting'*"]
    #[cfg(feature = "Media_Casting")]
    pub fn GetAsCastingSource(&self) -> ::windows::core::Result<super::super::super::Media::Casting::CastingSource> {
        let this = &::windows::core::Interface::cast::<IImage2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetAsCastingSource)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Media::Casting::CastingSource>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Composition'*"]
    #[cfg(feature = "UI_Composition")]
    pub fn GetAlphaMask(&self) -> ::windows::core::Result<super::super::Composition::CompositionBrush> {
        let this = &::windows::core::Interface::cast::<IImage3>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetAlphaMask)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Composition::CompositionBrush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SourceProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IImageStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SourceProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn StretchProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IImageStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).StretchProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn NineGridProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IImageStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).NineGridProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'deprecated'*"]
    #[cfg(feature = "deprecated")]
    pub fn PlayToSourceProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IImageStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlayToSourceProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IImageStatics<R, F: FnOnce(&IImageStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Image, IImageStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for Image {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for Image {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for Image {}
impl ::core::fmt::Debug for Image {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("Image").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for Image {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.Image;{495b7402-9af3-4e50-aa90-03388f3086d2})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for Image {
    type Vtable = IImage_Vtbl;
    const IID: ::windows::core::GUID = <IImage as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for Image {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.Image";
}
impl ::core::convert::From<Image> for ::windows::core::IUnknown {
    fn from(value: Image) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&Image> for ::windows::core::IUnknown {
    fn from(value: &Image) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for Image {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a Image {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<Image> for ::windows::core::IInspectable {
    fn from(value: Image) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&Image> for ::windows::core::IInspectable {
    fn from(value: &Image) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for Image {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a Image {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<Image> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: Image) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&Image> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &Image) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for Image {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &Image {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<Image> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: Image) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&Image> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &Image) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for Image {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &Image {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<Image> for super::FrameworkElement {
    fn from(value: Image) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Image> for super::FrameworkElement {
    fn from(value: &Image) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for Image {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &Image {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<Image> for super::UIElement {
    fn from(value: Image) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Image> for super::UIElement {
    fn from(value: &Image) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for Image {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &Image {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<Image> for super::DependencyObject {
    fn from(value: Image) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Image> for super::DependencyObject {
    fn from(value: &Image) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for Image {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &Image {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for Image {}
unsafe impl ::core::marker::Sync for Image {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct IncrementalLoadingTrigger(pub i32);
impl IncrementalLoadingTrigger {
    pub const None: Self = Self(0i32);
    pub const Edge: Self = Self(1i32);
}
impl ::core::marker::Copy for IncrementalLoadingTrigger {}
impl ::core::clone::Clone for IncrementalLoadingTrigger {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for IncrementalLoadingTrigger {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for IncrementalLoadingTrigger {
    type Abi = Self;
}
impl ::core::fmt::Debug for IncrementalLoadingTrigger {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IncrementalLoadingTrigger").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for IncrementalLoadingTrigger {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.IncrementalLoadingTrigger;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct InkCanvas(::windows::core::IUnknown);
impl InkCanvas {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Input_Inking'*"]
    #[cfg(feature = "UI_Input_Inking")]
    pub fn InkPresenter(&self) -> ::windows::core::Result<super::super::Input::Inking::InkPresenter> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).InkPresenter)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Input::Inking::InkPresenter>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<InkCanvas> {
        Self::IInkCanvasFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<InkCanvas>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<InkCanvas> {
        Self::IInkCanvasFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<InkCanvas>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IInkCanvasFactory<R, F: FnOnce(&IInkCanvasFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<InkCanvas, IInkCanvasFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for InkCanvas {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for InkCanvas {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for InkCanvas {}
impl ::core::fmt::Debug for InkCanvas {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("InkCanvas").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for InkCanvas {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.InkCanvas;{29443c28-8e48-4fc8-a473-35b0ba12acea})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for InkCanvas {
    type Vtable = IInkCanvas_Vtbl;
    const IID: ::windows::core::GUID = <IInkCanvas as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for InkCanvas {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.InkCanvas";
}
impl ::core::convert::From<InkCanvas> for ::windows::core::IUnknown {
    fn from(value: InkCanvas) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkCanvas> for ::windows::core::IUnknown {
    fn from(value: &InkCanvas) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for InkCanvas {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a InkCanvas {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<InkCanvas> for ::windows::core::IInspectable {
    fn from(value: InkCanvas) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkCanvas> for ::windows::core::IInspectable {
    fn from(value: &InkCanvas) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for InkCanvas {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a InkCanvas {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<InkCanvas> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: InkCanvas) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&InkCanvas> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkCanvas) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for InkCanvas {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &InkCanvas {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<InkCanvas> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: InkCanvas) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&InkCanvas> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkCanvas) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for InkCanvas {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &InkCanvas {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<InkCanvas> for super::FrameworkElement {
    fn from(value: InkCanvas) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkCanvas> for super::FrameworkElement {
    fn from(value: &InkCanvas) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for InkCanvas {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &InkCanvas {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<InkCanvas> for super::UIElement {
    fn from(value: InkCanvas) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkCanvas> for super::UIElement {
    fn from(value: &InkCanvas) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for InkCanvas {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &InkCanvas {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<InkCanvas> for super::DependencyObject {
    fn from(value: InkCanvas) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkCanvas> for super::DependencyObject {
    fn from(value: &InkCanvas) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for InkCanvas {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &InkCanvas {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for InkCanvas {}
unsafe impl ::core::marker::Sync for InkCanvas {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct InkToolbar(::windows::core::IUnknown);
impl InkToolbar {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn InitialControls(&self) -> ::windows::core::Result<InkToolbarInitialControls> {
        let this = self;
        unsafe {
            let mut result__: InkToolbarInitialControls = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).InitialControls)(::core::mem::transmute_copy(this), &mut result__).from_abi::<InkToolbarInitialControls>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetInitialControls(&self, value: InkToolbarInitialControls) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetInitialControls)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn Children(&self) -> ::windows::core::Result<super::DependencyObjectCollection> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Children)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyObjectCollection>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ActiveTool(&self) -> ::windows::core::Result<InkToolbarToolButton> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ActiveTool)(::core::mem::transmute_copy(this), &mut result__).from_abi::<InkToolbarToolButton>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetActiveTool<'a, Param0: ::windows::core::IntoParam<'a, InkToolbarToolButton>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetActiveTool)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Input_Inking'*"]
    #[cfg(feature = "UI_Input_Inking")]
    pub fn InkDrawingAttributes(&self) -> ::windows::core::Result<super::super::Input::Inking::InkDrawingAttributes> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).InkDrawingAttributes)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Input::Inking::InkDrawingAttributes>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsRulerButtonChecked(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsRulerButtonChecked)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsRulerButtonChecked(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsRulerButtonChecked)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TargetInkCanvas(&self) -> ::windows::core::Result<InkCanvas> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TargetInkCanvas)(::core::mem::transmute_copy(this), &mut result__).from_abi::<InkCanvas>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTargetInkCanvas<'a, Param0: ::windows::core::IntoParam<'a, InkCanvas>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTargetInkCanvas)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ActiveToolChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<InkToolbar, ::windows::core::IInspectable>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ActiveToolChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveActiveToolChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveActiveToolChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn InkDrawingAttributesChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<InkToolbar, ::windows::core::IInspectable>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).InkDrawingAttributesChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveInkDrawingAttributesChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveInkDrawingAttributesChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn EraseAllClicked<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<InkToolbar, ::windows::core::IInspectable>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).EraseAllClicked)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveEraseAllClicked<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveEraseAllClicked)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'deprecated'*"]
    #[cfg(all(feature = "Foundation", feature = "deprecated"))]
    pub fn IsRulerButtonCheckedChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<InkToolbar, ::windows::core::IInspectable>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsRulerButtonCheckedChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'deprecated'*"]
    #[cfg(all(feature = "Foundation", feature = "deprecated"))]
    pub fn RemoveIsRulerButtonCheckedChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveIsRulerButtonCheckedChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetToolButton(&self, tool: InkToolbarTool) -> ::windows::core::Result<InkToolbarToolButton> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetToolButton)(::core::mem::transmute_copy(this), tool, &mut result__).from_abi::<InkToolbarToolButton>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetToggleButton(&self, tool: InkToolbarToggle) -> ::windows::core::Result<InkToolbarToggleButton> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetToggleButton)(::core::mem::transmute_copy(this), tool, &mut result__).from_abi::<InkToolbarToggleButton>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsStencilButtonChecked(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IInkToolbar2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsStencilButtonChecked)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsStencilButtonChecked(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IInkToolbar2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsStencilButtonChecked)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ButtonFlyoutPlacement(&self) -> ::windows::core::Result<InkToolbarButtonFlyoutPlacement> {
        let this = &::windows::core::Interface::cast::<IInkToolbar2>(self)?;
        unsafe {
            let mut result__: InkToolbarButtonFlyoutPlacement = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ButtonFlyoutPlacement)(::core::mem::transmute_copy(this), &mut result__).from_abi::<InkToolbarButtonFlyoutPlacement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetButtonFlyoutPlacement(&self, value: InkToolbarButtonFlyoutPlacement) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IInkToolbar2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetButtonFlyoutPlacement)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Orientation(&self) -> ::windows::core::Result<Orientation> {
        let this = &::windows::core::Interface::cast::<IInkToolbar2>(self)?;
        unsafe {
            let mut result__: Orientation = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Orientation)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Orientation>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetOrientation(&self, value: Orientation) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IInkToolbar2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetOrientation)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn IsStencilButtonCheckedChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<InkToolbar, InkToolbarIsStencilButtonCheckedChangedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IInkToolbar2>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsStencilButtonCheckedChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveIsStencilButtonCheckedChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IInkToolbar2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveIsStencilButtonCheckedChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetMenuButton(&self, menu: InkToolbarMenuKind) -> ::windows::core::Result<InkToolbarMenuButton> {
        let this = &::windows::core::Interface::cast::<IInkToolbar2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetMenuButton)(::core::mem::transmute_copy(this), menu, &mut result__).from_abi::<InkToolbarMenuButton>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Input_Inking'*"]
    #[cfg(feature = "UI_Input_Inking")]
    pub fn TargetInkPresenter(&self) -> ::windows::core::Result<super::super::Input::Inking::InkPresenter> {
        let this = &::windows::core::Interface::cast::<IInkToolbar3>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TargetInkPresenter)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Input::Inking::InkPresenter>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Input_Inking'*"]
    #[cfg(feature = "UI_Input_Inking")]
    pub fn SetTargetInkPresenter<'a, Param0: ::windows::core::IntoParam<'a, super::super::Input::Inking::InkPresenter>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IInkToolbar3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetTargetInkPresenter)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<InkToolbar> {
        Self::IInkToolbarFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<InkToolbar>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<InkToolbar> {
        Self::IInkToolbarFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<InkToolbar>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn InitialControlsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IInkToolbarStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).InitialControlsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ChildrenProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IInkToolbarStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ChildrenProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ActiveToolProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IInkToolbarStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ActiveToolProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn InkDrawingAttributesProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IInkToolbarStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).InkDrawingAttributesProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsRulerButtonCheckedProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IInkToolbarStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsRulerButtonCheckedProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TargetInkCanvasProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IInkToolbarStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TargetInkCanvasProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsStencilButtonCheckedProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IInkToolbarStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsStencilButtonCheckedProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ButtonFlyoutPlacementProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IInkToolbarStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ButtonFlyoutPlacementProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OrientationProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IInkToolbarStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OrientationProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TargetInkPresenterProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IInkToolbarStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TargetInkPresenterProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IInkToolbarFactory<R, F: FnOnce(&IInkToolbarFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<InkToolbar, IInkToolbarFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IInkToolbarStatics<R, F: FnOnce(&IInkToolbarStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<InkToolbar, IInkToolbarStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IInkToolbarStatics2<R, F: FnOnce(&IInkToolbarStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<InkToolbar, IInkToolbarStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IInkToolbarStatics3<R, F: FnOnce(&IInkToolbarStatics3) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<InkToolbar, IInkToolbarStatics3> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for InkToolbar {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for InkToolbar {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for InkToolbar {}
impl ::core::fmt::Debug for InkToolbar {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("InkToolbar").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for InkToolbar {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.InkToolbar;{3ddd0cca-51f0-486f-a03e-4ee13dc12bcb})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for InkToolbar {
    type Vtable = IInkToolbar_Vtbl;
    const IID: ::windows::core::GUID = <IInkToolbar as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for InkToolbar {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.InkToolbar";
}
impl ::core::convert::From<InkToolbar> for ::windows::core::IUnknown {
    fn from(value: InkToolbar) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbar> for ::windows::core::IUnknown {
    fn from(value: &InkToolbar) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for InkToolbar {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a InkToolbar {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<InkToolbar> for ::windows::core::IInspectable {
    fn from(value: InkToolbar) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbar> for ::windows::core::IInspectable {
    fn from(value: &InkToolbar) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for InkToolbar {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a InkToolbar {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<InkToolbar> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: InkToolbar) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&InkToolbar> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkToolbar) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for InkToolbar {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &InkToolbar {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<InkToolbar> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: InkToolbar) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&InkToolbar> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkToolbar) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for InkToolbar {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &InkToolbar {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<InkToolbar> for Control {
    fn from(value: InkToolbar) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbar> for Control {
    fn from(value: &InkToolbar) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for InkToolbar {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &InkToolbar {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<InkToolbar> for super::FrameworkElement {
    fn from(value: InkToolbar) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbar> for super::FrameworkElement {
    fn from(value: &InkToolbar) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for InkToolbar {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &InkToolbar {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<InkToolbar> for super::UIElement {
    fn from(value: InkToolbar) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbar> for super::UIElement {
    fn from(value: &InkToolbar) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for InkToolbar {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &InkToolbar {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<InkToolbar> for super::DependencyObject {
    fn from(value: InkToolbar) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbar> for super::DependencyObject {
    fn from(value: &InkToolbar) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for InkToolbar {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &InkToolbar {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for InkToolbar {}
unsafe impl ::core::marker::Sync for InkToolbar {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct InkToolbarBallpointPenButton(::windows::core::IUnknown);
impl InkToolbarBallpointPenButton {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<InkToolbarBallpointPenButton> {
        Self::IInkToolbarBallpointPenButtonFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<InkToolbarBallpointPenButton>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<InkToolbarBallpointPenButton> {
        Self::IInkToolbarBallpointPenButtonFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<InkToolbarBallpointPenButton>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IInkToolbarBallpointPenButtonFactory<R, F: FnOnce(&IInkToolbarBallpointPenButtonFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<InkToolbarBallpointPenButton, IInkToolbarBallpointPenButtonFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for InkToolbarBallpointPenButton {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for InkToolbarBallpointPenButton {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for InkToolbarBallpointPenButton {}
impl ::core::fmt::Debug for InkToolbarBallpointPenButton {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("InkToolbarBallpointPenButton").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for InkToolbarBallpointPenButton {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.InkToolbarBallpointPenButton;{158329f8-1e99-3acc-910f-9da2d872ae12})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for InkToolbarBallpointPenButton {
    type Vtable = IInkToolbarBallpointPenButton_Vtbl;
    const IID: ::windows::core::GUID = <IInkToolbarBallpointPenButton as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for InkToolbarBallpointPenButton {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.InkToolbarBallpointPenButton";
}
impl ::core::convert::From<InkToolbarBallpointPenButton> for ::windows::core::IUnknown {
    fn from(value: InkToolbarBallpointPenButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbarBallpointPenButton> for ::windows::core::IUnknown {
    fn from(value: &InkToolbarBallpointPenButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for InkToolbarBallpointPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a InkToolbarBallpointPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<InkToolbarBallpointPenButton> for ::windows::core::IInspectable {
    fn from(value: InkToolbarBallpointPenButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbarBallpointPenButton> for ::windows::core::IInspectable {
    fn from(value: &InkToolbarBallpointPenButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for InkToolbarBallpointPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a InkToolbarBallpointPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<InkToolbarBallpointPenButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: InkToolbarBallpointPenButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&InkToolbarBallpointPenButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkToolbarBallpointPenButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for InkToolbarBallpointPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &InkToolbarBallpointPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<InkToolbarBallpointPenButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: InkToolbarBallpointPenButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&InkToolbarBallpointPenButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkToolbarBallpointPenButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for InkToolbarBallpointPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &InkToolbarBallpointPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<InkToolbarBallpointPenButton> for InkToolbarPenButton {
    fn from(value: InkToolbarBallpointPenButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarBallpointPenButton> for InkToolbarPenButton {
    fn from(value: &InkToolbarBallpointPenButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, InkToolbarPenButton> for InkToolbarBallpointPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, InkToolbarPenButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, InkToolbarPenButton> for &InkToolbarBallpointPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, InkToolbarPenButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<InkToolbarPenButton>::into(self))
    }
}
impl ::core::convert::From<InkToolbarBallpointPenButton> for InkToolbarToolButton {
    fn from(value: InkToolbarBallpointPenButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarBallpointPenButton> for InkToolbarToolButton {
    fn from(value: &InkToolbarBallpointPenButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, InkToolbarToolButton> for InkToolbarBallpointPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, InkToolbarToolButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, InkToolbarToolButton> for &InkToolbarBallpointPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, InkToolbarToolButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<InkToolbarToolButton>::into(self))
    }
}
impl ::core::convert::From<InkToolbarBallpointPenButton> for RadioButton {
    fn from(value: InkToolbarBallpointPenButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarBallpointPenButton> for RadioButton {
    fn from(value: &InkToolbarBallpointPenButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, RadioButton> for InkToolbarBallpointPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, RadioButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, RadioButton> for &InkToolbarBallpointPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, RadioButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<RadioButton>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<InkToolbarBallpointPenButton> for Primitives::ToggleButton {
    fn from(value: InkToolbarBallpointPenButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&InkToolbarBallpointPenButton> for Primitives::ToggleButton {
    fn from(value: &InkToolbarBallpointPenButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ToggleButton> for InkToolbarBallpointPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ToggleButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ToggleButton> for &InkToolbarBallpointPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ToggleButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ToggleButton>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<InkToolbarBallpointPenButton> for Primitives::ButtonBase {
    fn from(value: InkToolbarBallpointPenButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&InkToolbarBallpointPenButton> for Primitives::ButtonBase {
    fn from(value: &InkToolbarBallpointPenButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for InkToolbarBallpointPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for &InkToolbarBallpointPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ButtonBase>::into(self))
    }
}
impl ::core::convert::From<InkToolbarBallpointPenButton> for ContentControl {
    fn from(value: InkToolbarBallpointPenButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarBallpointPenButton> for ContentControl {
    fn from(value: &InkToolbarBallpointPenButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for InkToolbarBallpointPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &InkToolbarBallpointPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<InkToolbarBallpointPenButton> for Control {
    fn from(value: InkToolbarBallpointPenButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarBallpointPenButton> for Control {
    fn from(value: &InkToolbarBallpointPenButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for InkToolbarBallpointPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &InkToolbarBallpointPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<InkToolbarBallpointPenButton> for super::FrameworkElement {
    fn from(value: InkToolbarBallpointPenButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarBallpointPenButton> for super::FrameworkElement {
    fn from(value: &InkToolbarBallpointPenButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for InkToolbarBallpointPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &InkToolbarBallpointPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<InkToolbarBallpointPenButton> for super::UIElement {
    fn from(value: InkToolbarBallpointPenButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarBallpointPenButton> for super::UIElement {
    fn from(value: &InkToolbarBallpointPenButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for InkToolbarBallpointPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &InkToolbarBallpointPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<InkToolbarBallpointPenButton> for super::DependencyObject {
    fn from(value: InkToolbarBallpointPenButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarBallpointPenButton> for super::DependencyObject {
    fn from(value: &InkToolbarBallpointPenButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for InkToolbarBallpointPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &InkToolbarBallpointPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for InkToolbarBallpointPenButton {}
unsafe impl ::core::marker::Sync for InkToolbarBallpointPenButton {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct InkToolbarButtonFlyoutPlacement(pub i32);
impl InkToolbarButtonFlyoutPlacement {
    pub const Auto: Self = Self(0i32);
    pub const Top: Self = Self(1i32);
    pub const Bottom: Self = Self(2i32);
    pub const Left: Self = Self(3i32);
    pub const Right: Self = Self(4i32);
}
impl ::core::marker::Copy for InkToolbarButtonFlyoutPlacement {}
impl ::core::clone::Clone for InkToolbarButtonFlyoutPlacement {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for InkToolbarButtonFlyoutPlacement {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for InkToolbarButtonFlyoutPlacement {
    type Abi = Self;
}
impl ::core::fmt::Debug for InkToolbarButtonFlyoutPlacement {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("InkToolbarButtonFlyoutPlacement").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for InkToolbarButtonFlyoutPlacement {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.InkToolbarButtonFlyoutPlacement;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct InkToolbarCustomPen(::windows::core::IUnknown);
impl InkToolbarCustomPen {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Input_Inking', 'UI_Xaml_Media'*"]
    #[cfg(all(feature = "UI_Input_Inking", feature = "UI_Xaml_Media"))]
    pub fn CreateInkDrawingAttributes<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, brush: Param0, strokewidth: f64) -> ::windows::core::Result<super::super::Input::Inking::InkDrawingAttributes> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInkDrawingAttributes)(::core::mem::transmute_copy(this), brush.into_param().abi(), strokewidth, &mut result__).from_abi::<super::super::Input::Inking::InkDrawingAttributes>(result__)
        }
    }
}
impl ::core::clone::Clone for InkToolbarCustomPen {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for InkToolbarCustomPen {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for InkToolbarCustomPen {}
impl ::core::fmt::Debug for InkToolbarCustomPen {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("InkToolbarCustomPen").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for InkToolbarCustomPen {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.InkToolbarCustomPen;{4082207b-2f3d-4e6a-8c27-fe61ef7e70eb})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for InkToolbarCustomPen {
    type Vtable = IInkToolbarCustomPen_Vtbl;
    const IID: ::windows::core::GUID = <IInkToolbarCustomPen as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for InkToolbarCustomPen {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.InkToolbarCustomPen";
}
impl ::core::convert::From<InkToolbarCustomPen> for ::windows::core::IUnknown {
    fn from(value: InkToolbarCustomPen) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbarCustomPen> for ::windows::core::IUnknown {
    fn from(value: &InkToolbarCustomPen) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for InkToolbarCustomPen {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a InkToolbarCustomPen {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<InkToolbarCustomPen> for ::windows::core::IInspectable {
    fn from(value: InkToolbarCustomPen) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbarCustomPen> for ::windows::core::IInspectable {
    fn from(value: &InkToolbarCustomPen) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for InkToolbarCustomPen {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a InkToolbarCustomPen {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<InkToolbarCustomPen> for super::DependencyObject {
    fn from(value: InkToolbarCustomPen) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarCustomPen> for super::DependencyObject {
    fn from(value: &InkToolbarCustomPen) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for InkToolbarCustomPen {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &InkToolbarCustomPen {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for InkToolbarCustomPen {}
unsafe impl ::core::marker::Sync for InkToolbarCustomPen {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct InkToolbarCustomPenButton(::windows::core::IUnknown);
impl InkToolbarCustomPenButton {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CustomPen(&self) -> ::windows::core::Result<InkToolbarCustomPen> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CustomPen)(::core::mem::transmute_copy(this), &mut result__).from_abi::<InkToolbarCustomPen>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCustomPen<'a, Param0: ::windows::core::IntoParam<'a, InkToolbarCustomPen>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCustomPen)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ConfigurationContent(&self) -> ::windows::core::Result<super::UIElement> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ConfigurationContent)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::UIElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetConfigurationContent<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetConfigurationContent)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<InkToolbarCustomPenButton> {
        Self::IInkToolbarCustomPenButtonFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<InkToolbarCustomPenButton>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<InkToolbarCustomPenButton> {
        Self::IInkToolbarCustomPenButtonFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<InkToolbarCustomPenButton>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CustomPenProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IInkToolbarCustomPenButtonStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CustomPenProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ConfigurationContentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IInkToolbarCustomPenButtonStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ConfigurationContentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IInkToolbarCustomPenButtonFactory<R, F: FnOnce(&IInkToolbarCustomPenButtonFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<InkToolbarCustomPenButton, IInkToolbarCustomPenButtonFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IInkToolbarCustomPenButtonStatics<R, F: FnOnce(&IInkToolbarCustomPenButtonStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<InkToolbarCustomPenButton, IInkToolbarCustomPenButtonStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for InkToolbarCustomPenButton {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for InkToolbarCustomPenButton {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for InkToolbarCustomPenButton {}
impl ::core::fmt::Debug for InkToolbarCustomPenButton {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("InkToolbarCustomPenButton").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for InkToolbarCustomPenButton {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.InkToolbarCustomPenButton;{46024401-2b2a-4f3c-a53c-1a045a408efa})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for InkToolbarCustomPenButton {
    type Vtable = IInkToolbarCustomPenButton_Vtbl;
    const IID: ::windows::core::GUID = <IInkToolbarCustomPenButton as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for InkToolbarCustomPenButton {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.InkToolbarCustomPenButton";
}
impl ::core::convert::From<InkToolbarCustomPenButton> for ::windows::core::IUnknown {
    fn from(value: InkToolbarCustomPenButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbarCustomPenButton> for ::windows::core::IUnknown {
    fn from(value: &InkToolbarCustomPenButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for InkToolbarCustomPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a InkToolbarCustomPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<InkToolbarCustomPenButton> for ::windows::core::IInspectable {
    fn from(value: InkToolbarCustomPenButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbarCustomPenButton> for ::windows::core::IInspectable {
    fn from(value: &InkToolbarCustomPenButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for InkToolbarCustomPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a InkToolbarCustomPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<InkToolbarCustomPenButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: InkToolbarCustomPenButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&InkToolbarCustomPenButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkToolbarCustomPenButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for InkToolbarCustomPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &InkToolbarCustomPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<InkToolbarCustomPenButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: InkToolbarCustomPenButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&InkToolbarCustomPenButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkToolbarCustomPenButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for InkToolbarCustomPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &InkToolbarCustomPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<InkToolbarCustomPenButton> for InkToolbarPenButton {
    fn from(value: InkToolbarCustomPenButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarCustomPenButton> for InkToolbarPenButton {
    fn from(value: &InkToolbarCustomPenButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, InkToolbarPenButton> for InkToolbarCustomPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, InkToolbarPenButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, InkToolbarPenButton> for &InkToolbarCustomPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, InkToolbarPenButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<InkToolbarPenButton>::into(self))
    }
}
impl ::core::convert::From<InkToolbarCustomPenButton> for InkToolbarToolButton {
    fn from(value: InkToolbarCustomPenButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarCustomPenButton> for InkToolbarToolButton {
    fn from(value: &InkToolbarCustomPenButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, InkToolbarToolButton> for InkToolbarCustomPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, InkToolbarToolButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, InkToolbarToolButton> for &InkToolbarCustomPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, InkToolbarToolButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<InkToolbarToolButton>::into(self))
    }
}
impl ::core::convert::From<InkToolbarCustomPenButton> for RadioButton {
    fn from(value: InkToolbarCustomPenButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarCustomPenButton> for RadioButton {
    fn from(value: &InkToolbarCustomPenButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, RadioButton> for InkToolbarCustomPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, RadioButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, RadioButton> for &InkToolbarCustomPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, RadioButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<RadioButton>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<InkToolbarCustomPenButton> for Primitives::ToggleButton {
    fn from(value: InkToolbarCustomPenButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&InkToolbarCustomPenButton> for Primitives::ToggleButton {
    fn from(value: &InkToolbarCustomPenButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ToggleButton> for InkToolbarCustomPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ToggleButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ToggleButton> for &InkToolbarCustomPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ToggleButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ToggleButton>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<InkToolbarCustomPenButton> for Primitives::ButtonBase {
    fn from(value: InkToolbarCustomPenButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&InkToolbarCustomPenButton> for Primitives::ButtonBase {
    fn from(value: &InkToolbarCustomPenButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for InkToolbarCustomPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for &InkToolbarCustomPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ButtonBase>::into(self))
    }
}
impl ::core::convert::From<InkToolbarCustomPenButton> for ContentControl {
    fn from(value: InkToolbarCustomPenButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarCustomPenButton> for ContentControl {
    fn from(value: &InkToolbarCustomPenButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for InkToolbarCustomPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &InkToolbarCustomPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<InkToolbarCustomPenButton> for Control {
    fn from(value: InkToolbarCustomPenButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarCustomPenButton> for Control {
    fn from(value: &InkToolbarCustomPenButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for InkToolbarCustomPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &InkToolbarCustomPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<InkToolbarCustomPenButton> for super::FrameworkElement {
    fn from(value: InkToolbarCustomPenButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarCustomPenButton> for super::FrameworkElement {
    fn from(value: &InkToolbarCustomPenButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for InkToolbarCustomPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &InkToolbarCustomPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<InkToolbarCustomPenButton> for super::UIElement {
    fn from(value: InkToolbarCustomPenButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarCustomPenButton> for super::UIElement {
    fn from(value: &InkToolbarCustomPenButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for InkToolbarCustomPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &InkToolbarCustomPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<InkToolbarCustomPenButton> for super::DependencyObject {
    fn from(value: InkToolbarCustomPenButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarCustomPenButton> for super::DependencyObject {
    fn from(value: &InkToolbarCustomPenButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for InkToolbarCustomPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &InkToolbarCustomPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for InkToolbarCustomPenButton {}
unsafe impl ::core::marker::Sync for InkToolbarCustomPenButton {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct InkToolbarCustomToggleButton(::windows::core::IUnknown);
impl InkToolbarCustomToggleButton {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<InkToolbarCustomToggleButton> {
        Self::IInkToolbarCustomToggleButtonFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<InkToolbarCustomToggleButton>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<InkToolbarCustomToggleButton> {
        Self::IInkToolbarCustomToggleButtonFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<InkToolbarCustomToggleButton>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IInkToolbarCustomToggleButtonFactory<R, F: FnOnce(&IInkToolbarCustomToggleButtonFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<InkToolbarCustomToggleButton, IInkToolbarCustomToggleButtonFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for InkToolbarCustomToggleButton {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for InkToolbarCustomToggleButton {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for InkToolbarCustomToggleButton {}
impl ::core::fmt::Debug for InkToolbarCustomToggleButton {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("InkToolbarCustomToggleButton").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for InkToolbarCustomToggleButton {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.InkToolbarCustomToggleButton;{550c4d84-4f54-4fbe-b12b-e0a50aab0d05})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for InkToolbarCustomToggleButton {
    type Vtable = IInkToolbarCustomToggleButton_Vtbl;
    const IID: ::windows::core::GUID = <IInkToolbarCustomToggleButton as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for InkToolbarCustomToggleButton {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.InkToolbarCustomToggleButton";
}
impl ::core::convert::From<InkToolbarCustomToggleButton> for ::windows::core::IUnknown {
    fn from(value: InkToolbarCustomToggleButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbarCustomToggleButton> for ::windows::core::IUnknown {
    fn from(value: &InkToolbarCustomToggleButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for InkToolbarCustomToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a InkToolbarCustomToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<InkToolbarCustomToggleButton> for ::windows::core::IInspectable {
    fn from(value: InkToolbarCustomToggleButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbarCustomToggleButton> for ::windows::core::IInspectable {
    fn from(value: &InkToolbarCustomToggleButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for InkToolbarCustomToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a InkToolbarCustomToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<InkToolbarCustomToggleButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: InkToolbarCustomToggleButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&InkToolbarCustomToggleButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkToolbarCustomToggleButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for InkToolbarCustomToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &InkToolbarCustomToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<InkToolbarCustomToggleButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: InkToolbarCustomToggleButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&InkToolbarCustomToggleButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkToolbarCustomToggleButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for InkToolbarCustomToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &InkToolbarCustomToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<InkToolbarCustomToggleButton> for InkToolbarToggleButton {
    fn from(value: InkToolbarCustomToggleButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarCustomToggleButton> for InkToolbarToggleButton {
    fn from(value: &InkToolbarCustomToggleButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, InkToolbarToggleButton> for InkToolbarCustomToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, InkToolbarToggleButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, InkToolbarToggleButton> for &InkToolbarCustomToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, InkToolbarToggleButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<InkToolbarToggleButton>::into(self))
    }
}
impl ::core::convert::From<InkToolbarCustomToggleButton> for CheckBox {
    fn from(value: InkToolbarCustomToggleButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarCustomToggleButton> for CheckBox {
    fn from(value: &InkToolbarCustomToggleButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, CheckBox> for InkToolbarCustomToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, CheckBox> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, CheckBox> for &InkToolbarCustomToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, CheckBox> {
        ::windows::core::Param::Owned(::core::convert::Into::<CheckBox>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<InkToolbarCustomToggleButton> for Primitives::ToggleButton {
    fn from(value: InkToolbarCustomToggleButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&InkToolbarCustomToggleButton> for Primitives::ToggleButton {
    fn from(value: &InkToolbarCustomToggleButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ToggleButton> for InkToolbarCustomToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ToggleButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ToggleButton> for &InkToolbarCustomToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ToggleButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ToggleButton>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<InkToolbarCustomToggleButton> for Primitives::ButtonBase {
    fn from(value: InkToolbarCustomToggleButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&InkToolbarCustomToggleButton> for Primitives::ButtonBase {
    fn from(value: &InkToolbarCustomToggleButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for InkToolbarCustomToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for &InkToolbarCustomToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ButtonBase>::into(self))
    }
}
impl ::core::convert::From<InkToolbarCustomToggleButton> for ContentControl {
    fn from(value: InkToolbarCustomToggleButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarCustomToggleButton> for ContentControl {
    fn from(value: &InkToolbarCustomToggleButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for InkToolbarCustomToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &InkToolbarCustomToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<InkToolbarCustomToggleButton> for Control {
    fn from(value: InkToolbarCustomToggleButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarCustomToggleButton> for Control {
    fn from(value: &InkToolbarCustomToggleButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for InkToolbarCustomToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &InkToolbarCustomToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<InkToolbarCustomToggleButton> for super::FrameworkElement {
    fn from(value: InkToolbarCustomToggleButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarCustomToggleButton> for super::FrameworkElement {
    fn from(value: &InkToolbarCustomToggleButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for InkToolbarCustomToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &InkToolbarCustomToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<InkToolbarCustomToggleButton> for super::UIElement {
    fn from(value: InkToolbarCustomToggleButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarCustomToggleButton> for super::UIElement {
    fn from(value: &InkToolbarCustomToggleButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for InkToolbarCustomToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &InkToolbarCustomToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<InkToolbarCustomToggleButton> for super::DependencyObject {
    fn from(value: InkToolbarCustomToggleButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarCustomToggleButton> for super::DependencyObject {
    fn from(value: &InkToolbarCustomToggleButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for InkToolbarCustomToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &InkToolbarCustomToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for InkToolbarCustomToggleButton {}
unsafe impl ::core::marker::Sync for InkToolbarCustomToggleButton {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct InkToolbarCustomToolButton(::windows::core::IUnknown);
impl InkToolbarCustomToolButton {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ConfigurationContent(&self) -> ::windows::core::Result<super::UIElement> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ConfigurationContent)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::UIElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetConfigurationContent<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetConfigurationContent)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<InkToolbarCustomToolButton> {
        Self::IInkToolbarCustomToolButtonFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<InkToolbarCustomToolButton>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<InkToolbarCustomToolButton> {
        Self::IInkToolbarCustomToolButtonFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<InkToolbarCustomToolButton>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ConfigurationContentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IInkToolbarCustomToolButtonStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ConfigurationContentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IInkToolbarCustomToolButtonFactory<R, F: FnOnce(&IInkToolbarCustomToolButtonFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<InkToolbarCustomToolButton, IInkToolbarCustomToolButtonFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IInkToolbarCustomToolButtonStatics<R, F: FnOnce(&IInkToolbarCustomToolButtonStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<InkToolbarCustomToolButton, IInkToolbarCustomToolButtonStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for InkToolbarCustomToolButton {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for InkToolbarCustomToolButton {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for InkToolbarCustomToolButton {}
impl ::core::fmt::Debug for InkToolbarCustomToolButton {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("InkToolbarCustomToolButton").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for InkToolbarCustomToolButton {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.InkToolbarCustomToolButton;{9f98acd7-c605-4105-be10-3943a7c0da3c})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for InkToolbarCustomToolButton {
    type Vtable = IInkToolbarCustomToolButton_Vtbl;
    const IID: ::windows::core::GUID = <IInkToolbarCustomToolButton as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for InkToolbarCustomToolButton {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.InkToolbarCustomToolButton";
}
impl ::core::convert::From<InkToolbarCustomToolButton> for ::windows::core::IUnknown {
    fn from(value: InkToolbarCustomToolButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbarCustomToolButton> for ::windows::core::IUnknown {
    fn from(value: &InkToolbarCustomToolButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for InkToolbarCustomToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a InkToolbarCustomToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<InkToolbarCustomToolButton> for ::windows::core::IInspectable {
    fn from(value: InkToolbarCustomToolButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbarCustomToolButton> for ::windows::core::IInspectable {
    fn from(value: &InkToolbarCustomToolButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for InkToolbarCustomToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a InkToolbarCustomToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<InkToolbarCustomToolButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: InkToolbarCustomToolButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&InkToolbarCustomToolButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkToolbarCustomToolButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for InkToolbarCustomToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &InkToolbarCustomToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<InkToolbarCustomToolButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: InkToolbarCustomToolButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&InkToolbarCustomToolButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkToolbarCustomToolButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for InkToolbarCustomToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &InkToolbarCustomToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<InkToolbarCustomToolButton> for InkToolbarToolButton {
    fn from(value: InkToolbarCustomToolButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarCustomToolButton> for InkToolbarToolButton {
    fn from(value: &InkToolbarCustomToolButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, InkToolbarToolButton> for InkToolbarCustomToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, InkToolbarToolButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, InkToolbarToolButton> for &InkToolbarCustomToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, InkToolbarToolButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<InkToolbarToolButton>::into(self))
    }
}
impl ::core::convert::From<InkToolbarCustomToolButton> for RadioButton {
    fn from(value: InkToolbarCustomToolButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarCustomToolButton> for RadioButton {
    fn from(value: &InkToolbarCustomToolButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, RadioButton> for InkToolbarCustomToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, RadioButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, RadioButton> for &InkToolbarCustomToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, RadioButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<RadioButton>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<InkToolbarCustomToolButton> for Primitives::ToggleButton {
    fn from(value: InkToolbarCustomToolButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&InkToolbarCustomToolButton> for Primitives::ToggleButton {
    fn from(value: &InkToolbarCustomToolButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ToggleButton> for InkToolbarCustomToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ToggleButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ToggleButton> for &InkToolbarCustomToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ToggleButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ToggleButton>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<InkToolbarCustomToolButton> for Primitives::ButtonBase {
    fn from(value: InkToolbarCustomToolButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&InkToolbarCustomToolButton> for Primitives::ButtonBase {
    fn from(value: &InkToolbarCustomToolButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for InkToolbarCustomToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for &InkToolbarCustomToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ButtonBase>::into(self))
    }
}
impl ::core::convert::From<InkToolbarCustomToolButton> for ContentControl {
    fn from(value: InkToolbarCustomToolButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarCustomToolButton> for ContentControl {
    fn from(value: &InkToolbarCustomToolButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for InkToolbarCustomToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &InkToolbarCustomToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<InkToolbarCustomToolButton> for Control {
    fn from(value: InkToolbarCustomToolButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarCustomToolButton> for Control {
    fn from(value: &InkToolbarCustomToolButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for InkToolbarCustomToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &InkToolbarCustomToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<InkToolbarCustomToolButton> for super::FrameworkElement {
    fn from(value: InkToolbarCustomToolButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarCustomToolButton> for super::FrameworkElement {
    fn from(value: &InkToolbarCustomToolButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for InkToolbarCustomToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &InkToolbarCustomToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<InkToolbarCustomToolButton> for super::UIElement {
    fn from(value: InkToolbarCustomToolButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarCustomToolButton> for super::UIElement {
    fn from(value: &InkToolbarCustomToolButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for InkToolbarCustomToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &InkToolbarCustomToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<InkToolbarCustomToolButton> for super::DependencyObject {
    fn from(value: InkToolbarCustomToolButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarCustomToolButton> for super::DependencyObject {
    fn from(value: &InkToolbarCustomToolButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for InkToolbarCustomToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &InkToolbarCustomToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for InkToolbarCustomToolButton {}
unsafe impl ::core::marker::Sync for InkToolbarCustomToolButton {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct InkToolbarEraserButton(::windows::core::IUnknown);
impl InkToolbarEraserButton {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsClearAllVisible(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IInkToolbarEraserButton2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsClearAllVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsClearAllVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IInkToolbarEraserButton2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsClearAllVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<InkToolbarEraserButton> {
        Self::IInkToolbarEraserButtonFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<InkToolbarEraserButton>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<InkToolbarEraserButton> {
        Self::IInkToolbarEraserButtonFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<InkToolbarEraserButton>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsClearAllVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IInkToolbarEraserButtonStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsClearAllVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IInkToolbarEraserButtonFactory<R, F: FnOnce(&IInkToolbarEraserButtonFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<InkToolbarEraserButton, IInkToolbarEraserButtonFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IInkToolbarEraserButtonStatics2<R, F: FnOnce(&IInkToolbarEraserButtonStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<InkToolbarEraserButton, IInkToolbarEraserButtonStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for InkToolbarEraserButton {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for InkToolbarEraserButton {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for InkToolbarEraserButton {}
impl ::core::fmt::Debug for InkToolbarEraserButton {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("InkToolbarEraserButton").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for InkToolbarEraserButton {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.InkToolbarEraserButton;{4cbdb92e-5f5e-4b35-a41c-16ffb0283bc0})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for InkToolbarEraserButton {
    type Vtable = IInkToolbarEraserButton_Vtbl;
    const IID: ::windows::core::GUID = <IInkToolbarEraserButton as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for InkToolbarEraserButton {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.InkToolbarEraserButton";
}
impl ::core::convert::From<InkToolbarEraserButton> for ::windows::core::IUnknown {
    fn from(value: InkToolbarEraserButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbarEraserButton> for ::windows::core::IUnknown {
    fn from(value: &InkToolbarEraserButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for InkToolbarEraserButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a InkToolbarEraserButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<InkToolbarEraserButton> for ::windows::core::IInspectable {
    fn from(value: InkToolbarEraserButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbarEraserButton> for ::windows::core::IInspectable {
    fn from(value: &InkToolbarEraserButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for InkToolbarEraserButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a InkToolbarEraserButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<InkToolbarEraserButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: InkToolbarEraserButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&InkToolbarEraserButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkToolbarEraserButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for InkToolbarEraserButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &InkToolbarEraserButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<InkToolbarEraserButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: InkToolbarEraserButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&InkToolbarEraserButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkToolbarEraserButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for InkToolbarEraserButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &InkToolbarEraserButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<InkToolbarEraserButton> for InkToolbarToolButton {
    fn from(value: InkToolbarEraserButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarEraserButton> for InkToolbarToolButton {
    fn from(value: &InkToolbarEraserButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, InkToolbarToolButton> for InkToolbarEraserButton {
    fn into_param(self) -> ::windows::core::Param<'a, InkToolbarToolButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, InkToolbarToolButton> for &InkToolbarEraserButton {
    fn into_param(self) -> ::windows::core::Param<'a, InkToolbarToolButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<InkToolbarToolButton>::into(self))
    }
}
impl ::core::convert::From<InkToolbarEraserButton> for RadioButton {
    fn from(value: InkToolbarEraserButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarEraserButton> for RadioButton {
    fn from(value: &InkToolbarEraserButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, RadioButton> for InkToolbarEraserButton {
    fn into_param(self) -> ::windows::core::Param<'a, RadioButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, RadioButton> for &InkToolbarEraserButton {
    fn into_param(self) -> ::windows::core::Param<'a, RadioButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<RadioButton>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<InkToolbarEraserButton> for Primitives::ToggleButton {
    fn from(value: InkToolbarEraserButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&InkToolbarEraserButton> for Primitives::ToggleButton {
    fn from(value: &InkToolbarEraserButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ToggleButton> for InkToolbarEraserButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ToggleButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ToggleButton> for &InkToolbarEraserButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ToggleButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ToggleButton>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<InkToolbarEraserButton> for Primitives::ButtonBase {
    fn from(value: InkToolbarEraserButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&InkToolbarEraserButton> for Primitives::ButtonBase {
    fn from(value: &InkToolbarEraserButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for InkToolbarEraserButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for &InkToolbarEraserButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ButtonBase>::into(self))
    }
}
impl ::core::convert::From<InkToolbarEraserButton> for ContentControl {
    fn from(value: InkToolbarEraserButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarEraserButton> for ContentControl {
    fn from(value: &InkToolbarEraserButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for InkToolbarEraserButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &InkToolbarEraserButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<InkToolbarEraserButton> for Control {
    fn from(value: InkToolbarEraserButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarEraserButton> for Control {
    fn from(value: &InkToolbarEraserButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for InkToolbarEraserButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &InkToolbarEraserButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<InkToolbarEraserButton> for super::FrameworkElement {
    fn from(value: InkToolbarEraserButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarEraserButton> for super::FrameworkElement {
    fn from(value: &InkToolbarEraserButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for InkToolbarEraserButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &InkToolbarEraserButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<InkToolbarEraserButton> for super::UIElement {
    fn from(value: InkToolbarEraserButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarEraserButton> for super::UIElement {
    fn from(value: &InkToolbarEraserButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for InkToolbarEraserButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &InkToolbarEraserButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<InkToolbarEraserButton> for super::DependencyObject {
    fn from(value: InkToolbarEraserButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarEraserButton> for super::DependencyObject {
    fn from(value: &InkToolbarEraserButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for InkToolbarEraserButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &InkToolbarEraserButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for InkToolbarEraserButton {}
unsafe impl ::core::marker::Sync for InkToolbarEraserButton {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct InkToolbarFlyoutItem(::windows::core::IUnknown);
impl InkToolbarFlyoutItem {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Kind(&self) -> ::windows::core::Result<InkToolbarFlyoutItemKind> {
        let this = self;
        unsafe {
            let mut result__: InkToolbarFlyoutItemKind = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Kind)(::core::mem::transmute_copy(this), &mut result__).from_abi::<InkToolbarFlyoutItemKind>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetKind(&self, value: InkToolbarFlyoutItemKind) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetKind)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsChecked(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsChecked)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsChecked(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsChecked)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Checked<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<InkToolbarFlyoutItem, ::windows::core::IInspectable>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Checked)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveChecked<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveChecked)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Unchecked<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<InkToolbarFlyoutItem, ::windows::core::IInspectable>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Unchecked)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveUnchecked<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveUnchecked)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<InkToolbarFlyoutItem> {
        Self::IInkToolbarFlyoutItemFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<InkToolbarFlyoutItem>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<InkToolbarFlyoutItem> {
        Self::IInkToolbarFlyoutItemFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<InkToolbarFlyoutItem>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn KindProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IInkToolbarFlyoutItemStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).KindProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsCheckedProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IInkToolbarFlyoutItemStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsCheckedProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IInkToolbarFlyoutItemFactory<R, F: FnOnce(&IInkToolbarFlyoutItemFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<InkToolbarFlyoutItem, IInkToolbarFlyoutItemFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IInkToolbarFlyoutItemStatics<R, F: FnOnce(&IInkToolbarFlyoutItemStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<InkToolbarFlyoutItem, IInkToolbarFlyoutItemStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for InkToolbarFlyoutItem {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for InkToolbarFlyoutItem {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for InkToolbarFlyoutItem {}
impl ::core::fmt::Debug for InkToolbarFlyoutItem {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("InkToolbarFlyoutItem").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for InkToolbarFlyoutItem {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.InkToolbarFlyoutItem;{92b68786-37ee-4915-9e89-e187564a889a})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for InkToolbarFlyoutItem {
    type Vtable = IInkToolbarFlyoutItem_Vtbl;
    const IID: ::windows::core::GUID = <IInkToolbarFlyoutItem as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for InkToolbarFlyoutItem {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.InkToolbarFlyoutItem";
}
impl ::core::convert::From<InkToolbarFlyoutItem> for ::windows::core::IUnknown {
    fn from(value: InkToolbarFlyoutItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbarFlyoutItem> for ::windows::core::IUnknown {
    fn from(value: &InkToolbarFlyoutItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for InkToolbarFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a InkToolbarFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<InkToolbarFlyoutItem> for ::windows::core::IInspectable {
    fn from(value: InkToolbarFlyoutItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbarFlyoutItem> for ::windows::core::IInspectable {
    fn from(value: &InkToolbarFlyoutItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for InkToolbarFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a InkToolbarFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<InkToolbarFlyoutItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: InkToolbarFlyoutItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&InkToolbarFlyoutItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkToolbarFlyoutItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for InkToolbarFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &InkToolbarFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<InkToolbarFlyoutItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: InkToolbarFlyoutItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&InkToolbarFlyoutItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkToolbarFlyoutItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for InkToolbarFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &InkToolbarFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<InkToolbarFlyoutItem> for Primitives::ButtonBase {
    fn from(value: InkToolbarFlyoutItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&InkToolbarFlyoutItem> for Primitives::ButtonBase {
    fn from(value: &InkToolbarFlyoutItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for InkToolbarFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for &InkToolbarFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ButtonBase>::into(self))
    }
}
impl ::core::convert::From<InkToolbarFlyoutItem> for ContentControl {
    fn from(value: InkToolbarFlyoutItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarFlyoutItem> for ContentControl {
    fn from(value: &InkToolbarFlyoutItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for InkToolbarFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &InkToolbarFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<InkToolbarFlyoutItem> for Control {
    fn from(value: InkToolbarFlyoutItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarFlyoutItem> for Control {
    fn from(value: &InkToolbarFlyoutItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for InkToolbarFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &InkToolbarFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<InkToolbarFlyoutItem> for super::FrameworkElement {
    fn from(value: InkToolbarFlyoutItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarFlyoutItem> for super::FrameworkElement {
    fn from(value: &InkToolbarFlyoutItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for InkToolbarFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &InkToolbarFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<InkToolbarFlyoutItem> for super::UIElement {
    fn from(value: InkToolbarFlyoutItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarFlyoutItem> for super::UIElement {
    fn from(value: &InkToolbarFlyoutItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for InkToolbarFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &InkToolbarFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<InkToolbarFlyoutItem> for super::DependencyObject {
    fn from(value: InkToolbarFlyoutItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarFlyoutItem> for super::DependencyObject {
    fn from(value: &InkToolbarFlyoutItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for InkToolbarFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &InkToolbarFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for InkToolbarFlyoutItem {}
unsafe impl ::core::marker::Sync for InkToolbarFlyoutItem {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct InkToolbarFlyoutItemKind(pub i32);
impl InkToolbarFlyoutItemKind {
    pub const Simple: Self = Self(0i32);
    pub const Radio: Self = Self(1i32);
    pub const Check: Self = Self(2i32);
    pub const RadioCheck: Self = Self(3i32);
}
impl ::core::marker::Copy for InkToolbarFlyoutItemKind {}
impl ::core::clone::Clone for InkToolbarFlyoutItemKind {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for InkToolbarFlyoutItemKind {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for InkToolbarFlyoutItemKind {
    type Abi = Self;
}
impl ::core::fmt::Debug for InkToolbarFlyoutItemKind {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("InkToolbarFlyoutItemKind").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for InkToolbarFlyoutItemKind {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.InkToolbarFlyoutItemKind;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct InkToolbarHighlighterButton(::windows::core::IUnknown);
impl InkToolbarHighlighterButton {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<InkToolbarHighlighterButton> {
        Self::IInkToolbarHighlighterButtonFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<InkToolbarHighlighterButton>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<InkToolbarHighlighterButton> {
        Self::IInkToolbarHighlighterButtonFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<InkToolbarHighlighterButton>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IInkToolbarHighlighterButtonFactory<R, F: FnOnce(&IInkToolbarHighlighterButtonFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<InkToolbarHighlighterButton, IInkToolbarHighlighterButtonFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for InkToolbarHighlighterButton {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for InkToolbarHighlighterButton {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for InkToolbarHighlighterButton {}
impl ::core::fmt::Debug for InkToolbarHighlighterButton {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("InkToolbarHighlighterButton").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for InkToolbarHighlighterButton {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.InkToolbarHighlighterButton;{0b3cc15b-7abf-487e-acc1-5b5048fee6d2})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for InkToolbarHighlighterButton {
    type Vtable = IInkToolbarHighlighterButton_Vtbl;
    const IID: ::windows::core::GUID = <IInkToolbarHighlighterButton as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for InkToolbarHighlighterButton {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.InkToolbarHighlighterButton";
}
impl ::core::convert::From<InkToolbarHighlighterButton> for ::windows::core::IUnknown {
    fn from(value: InkToolbarHighlighterButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbarHighlighterButton> for ::windows::core::IUnknown {
    fn from(value: &InkToolbarHighlighterButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for InkToolbarHighlighterButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a InkToolbarHighlighterButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<InkToolbarHighlighterButton> for ::windows::core::IInspectable {
    fn from(value: InkToolbarHighlighterButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbarHighlighterButton> for ::windows::core::IInspectable {
    fn from(value: &InkToolbarHighlighterButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for InkToolbarHighlighterButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a InkToolbarHighlighterButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<InkToolbarHighlighterButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: InkToolbarHighlighterButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&InkToolbarHighlighterButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkToolbarHighlighterButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for InkToolbarHighlighterButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &InkToolbarHighlighterButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<InkToolbarHighlighterButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: InkToolbarHighlighterButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&InkToolbarHighlighterButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkToolbarHighlighterButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for InkToolbarHighlighterButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &InkToolbarHighlighterButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<InkToolbarHighlighterButton> for InkToolbarPenButton {
    fn from(value: InkToolbarHighlighterButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarHighlighterButton> for InkToolbarPenButton {
    fn from(value: &InkToolbarHighlighterButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, InkToolbarPenButton> for InkToolbarHighlighterButton {
    fn into_param(self) -> ::windows::core::Param<'a, InkToolbarPenButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, InkToolbarPenButton> for &InkToolbarHighlighterButton {
    fn into_param(self) -> ::windows::core::Param<'a, InkToolbarPenButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<InkToolbarPenButton>::into(self))
    }
}
impl ::core::convert::From<InkToolbarHighlighterButton> for InkToolbarToolButton {
    fn from(value: InkToolbarHighlighterButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarHighlighterButton> for InkToolbarToolButton {
    fn from(value: &InkToolbarHighlighterButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, InkToolbarToolButton> for InkToolbarHighlighterButton {
    fn into_param(self) -> ::windows::core::Param<'a, InkToolbarToolButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, InkToolbarToolButton> for &InkToolbarHighlighterButton {
    fn into_param(self) -> ::windows::core::Param<'a, InkToolbarToolButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<InkToolbarToolButton>::into(self))
    }
}
impl ::core::convert::From<InkToolbarHighlighterButton> for RadioButton {
    fn from(value: InkToolbarHighlighterButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarHighlighterButton> for RadioButton {
    fn from(value: &InkToolbarHighlighterButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, RadioButton> for InkToolbarHighlighterButton {
    fn into_param(self) -> ::windows::core::Param<'a, RadioButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, RadioButton> for &InkToolbarHighlighterButton {
    fn into_param(self) -> ::windows::core::Param<'a, RadioButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<RadioButton>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<InkToolbarHighlighterButton> for Primitives::ToggleButton {
    fn from(value: InkToolbarHighlighterButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&InkToolbarHighlighterButton> for Primitives::ToggleButton {
    fn from(value: &InkToolbarHighlighterButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ToggleButton> for InkToolbarHighlighterButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ToggleButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ToggleButton> for &InkToolbarHighlighterButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ToggleButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ToggleButton>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<InkToolbarHighlighterButton> for Primitives::ButtonBase {
    fn from(value: InkToolbarHighlighterButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&InkToolbarHighlighterButton> for Primitives::ButtonBase {
    fn from(value: &InkToolbarHighlighterButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for InkToolbarHighlighterButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for &InkToolbarHighlighterButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ButtonBase>::into(self))
    }
}
impl ::core::convert::From<InkToolbarHighlighterButton> for ContentControl {
    fn from(value: InkToolbarHighlighterButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarHighlighterButton> for ContentControl {
    fn from(value: &InkToolbarHighlighterButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for InkToolbarHighlighterButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &InkToolbarHighlighterButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<InkToolbarHighlighterButton> for Control {
    fn from(value: InkToolbarHighlighterButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarHighlighterButton> for Control {
    fn from(value: &InkToolbarHighlighterButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for InkToolbarHighlighterButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &InkToolbarHighlighterButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<InkToolbarHighlighterButton> for super::FrameworkElement {
    fn from(value: InkToolbarHighlighterButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarHighlighterButton> for super::FrameworkElement {
    fn from(value: &InkToolbarHighlighterButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for InkToolbarHighlighterButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &InkToolbarHighlighterButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<InkToolbarHighlighterButton> for super::UIElement {
    fn from(value: InkToolbarHighlighterButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarHighlighterButton> for super::UIElement {
    fn from(value: &InkToolbarHighlighterButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for InkToolbarHighlighterButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &InkToolbarHighlighterButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<InkToolbarHighlighterButton> for super::DependencyObject {
    fn from(value: InkToolbarHighlighterButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarHighlighterButton> for super::DependencyObject {
    fn from(value: &InkToolbarHighlighterButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for InkToolbarHighlighterButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &InkToolbarHighlighterButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for InkToolbarHighlighterButton {}
unsafe impl ::core::marker::Sync for InkToolbarHighlighterButton {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct InkToolbarInitialControls(pub i32);
impl InkToolbarInitialControls {
    pub const All: Self = Self(0i32);
    pub const None: Self = Self(1i32);
    pub const PensOnly: Self = Self(2i32);
    pub const AllExceptPens: Self = Self(3i32);
}
impl ::core::marker::Copy for InkToolbarInitialControls {}
impl ::core::clone::Clone for InkToolbarInitialControls {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for InkToolbarInitialControls {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for InkToolbarInitialControls {
    type Abi = Self;
}
impl ::core::fmt::Debug for InkToolbarInitialControls {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("InkToolbarInitialControls").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for InkToolbarInitialControls {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.InkToolbarInitialControls;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct InkToolbarIsStencilButtonCheckedChangedEventArgs(::windows::core::IUnknown);
impl InkToolbarIsStencilButtonCheckedChangedEventArgs {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<InkToolbarIsStencilButtonCheckedChangedEventArgs, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn StencilButton(&self) -> ::windows::core::Result<InkToolbarStencilButton> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).StencilButton)(::core::mem::transmute_copy(this), &mut result__).from_abi::<InkToolbarStencilButton>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn StencilKind(&self) -> ::windows::core::Result<InkToolbarStencilKind> {
        let this = self;
        unsafe {
            let mut result__: InkToolbarStencilKind = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).StencilKind)(::core::mem::transmute_copy(this), &mut result__).from_abi::<InkToolbarStencilKind>(result__)
        }
    }
}
impl ::core::clone::Clone for InkToolbarIsStencilButtonCheckedChangedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for InkToolbarIsStencilButtonCheckedChangedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for InkToolbarIsStencilButtonCheckedChangedEventArgs {}
impl ::core::fmt::Debug for InkToolbarIsStencilButtonCheckedChangedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("InkToolbarIsStencilButtonCheckedChangedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for InkToolbarIsStencilButtonCheckedChangedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.InkToolbarIsStencilButtonCheckedChangedEventArgs;{026edd26-d32b-4e28-a033-d5097662b292})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for InkToolbarIsStencilButtonCheckedChangedEventArgs {
    type Vtable = IInkToolbarIsStencilButtonCheckedChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IInkToolbarIsStencilButtonCheckedChangedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for InkToolbarIsStencilButtonCheckedChangedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.InkToolbarIsStencilButtonCheckedChangedEventArgs";
}
impl ::core::convert::From<InkToolbarIsStencilButtonCheckedChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: InkToolbarIsStencilButtonCheckedChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbarIsStencilButtonCheckedChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &InkToolbarIsStencilButtonCheckedChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for InkToolbarIsStencilButtonCheckedChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a InkToolbarIsStencilButtonCheckedChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<InkToolbarIsStencilButtonCheckedChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: InkToolbarIsStencilButtonCheckedChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbarIsStencilButtonCheckedChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &InkToolbarIsStencilButtonCheckedChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for InkToolbarIsStencilButtonCheckedChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a InkToolbarIsStencilButtonCheckedChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for InkToolbarIsStencilButtonCheckedChangedEventArgs {}
unsafe impl ::core::marker::Sync for InkToolbarIsStencilButtonCheckedChangedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct InkToolbarMenuButton(::windows::core::IUnknown);
impl InkToolbarMenuButton {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MenuKind(&self) -> ::windows::core::Result<InkToolbarMenuKind> {
        let this = self;
        unsafe {
            let mut result__: InkToolbarMenuKind = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MenuKind)(::core::mem::transmute_copy(this), &mut result__).from_abi::<InkToolbarMenuKind>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsExtensionGlyphShown(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsExtensionGlyphShown)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsExtensionGlyphShown(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsExtensionGlyphShown)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsExtensionGlyphShownProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IInkToolbarMenuButtonStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsExtensionGlyphShownProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IInkToolbarMenuButtonStatics<R, F: FnOnce(&IInkToolbarMenuButtonStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<InkToolbarMenuButton, IInkToolbarMenuButtonStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for InkToolbarMenuButton {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for InkToolbarMenuButton {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for InkToolbarMenuButton {}
impl ::core::fmt::Debug for InkToolbarMenuButton {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("InkToolbarMenuButton").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for InkToolbarMenuButton {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.InkToolbarMenuButton;{860ecae5-7633-4ea1-a209-50392d1aebd1})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for InkToolbarMenuButton {
    type Vtable = IInkToolbarMenuButton_Vtbl;
    const IID: ::windows::core::GUID = <IInkToolbarMenuButton as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for InkToolbarMenuButton {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.InkToolbarMenuButton";
}
impl ::core::convert::From<InkToolbarMenuButton> for ::windows::core::IUnknown {
    fn from(value: InkToolbarMenuButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbarMenuButton> for ::windows::core::IUnknown {
    fn from(value: &InkToolbarMenuButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for InkToolbarMenuButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a InkToolbarMenuButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<InkToolbarMenuButton> for ::windows::core::IInspectable {
    fn from(value: InkToolbarMenuButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbarMenuButton> for ::windows::core::IInspectable {
    fn from(value: &InkToolbarMenuButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for InkToolbarMenuButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a InkToolbarMenuButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<InkToolbarMenuButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: InkToolbarMenuButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&InkToolbarMenuButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkToolbarMenuButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for InkToolbarMenuButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &InkToolbarMenuButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<InkToolbarMenuButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: InkToolbarMenuButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&InkToolbarMenuButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkToolbarMenuButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for InkToolbarMenuButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &InkToolbarMenuButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<InkToolbarMenuButton> for Primitives::ToggleButton {
    fn from(value: InkToolbarMenuButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&InkToolbarMenuButton> for Primitives::ToggleButton {
    fn from(value: &InkToolbarMenuButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ToggleButton> for InkToolbarMenuButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ToggleButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ToggleButton> for &InkToolbarMenuButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ToggleButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ToggleButton>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<InkToolbarMenuButton> for Primitives::ButtonBase {
    fn from(value: InkToolbarMenuButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&InkToolbarMenuButton> for Primitives::ButtonBase {
    fn from(value: &InkToolbarMenuButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for InkToolbarMenuButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for &InkToolbarMenuButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ButtonBase>::into(self))
    }
}
impl ::core::convert::From<InkToolbarMenuButton> for ContentControl {
    fn from(value: InkToolbarMenuButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarMenuButton> for ContentControl {
    fn from(value: &InkToolbarMenuButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for InkToolbarMenuButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &InkToolbarMenuButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<InkToolbarMenuButton> for Control {
    fn from(value: InkToolbarMenuButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarMenuButton> for Control {
    fn from(value: &InkToolbarMenuButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for InkToolbarMenuButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &InkToolbarMenuButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<InkToolbarMenuButton> for super::FrameworkElement {
    fn from(value: InkToolbarMenuButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarMenuButton> for super::FrameworkElement {
    fn from(value: &InkToolbarMenuButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for InkToolbarMenuButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &InkToolbarMenuButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<InkToolbarMenuButton> for super::UIElement {
    fn from(value: InkToolbarMenuButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarMenuButton> for super::UIElement {
    fn from(value: &InkToolbarMenuButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for InkToolbarMenuButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &InkToolbarMenuButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<InkToolbarMenuButton> for super::DependencyObject {
    fn from(value: InkToolbarMenuButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarMenuButton> for super::DependencyObject {
    fn from(value: &InkToolbarMenuButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for InkToolbarMenuButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &InkToolbarMenuButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for InkToolbarMenuButton {}
unsafe impl ::core::marker::Sync for InkToolbarMenuButton {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct InkToolbarMenuKind(pub i32);
impl InkToolbarMenuKind {
    pub const Stencil: Self = Self(0i32);
}
impl ::core::marker::Copy for InkToolbarMenuKind {}
impl ::core::clone::Clone for InkToolbarMenuKind {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for InkToolbarMenuKind {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for InkToolbarMenuKind {
    type Abi = Self;
}
impl ::core::fmt::Debug for InkToolbarMenuKind {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("InkToolbarMenuKind").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for InkToolbarMenuKind {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.InkToolbarMenuKind;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct InkToolbarPenButton(::windows::core::IUnknown);
impl InkToolbarPenButton {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'UI_Xaml_Media'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media"))]
    pub fn Palette(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVector<super::Media::Brush>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Palette)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<super::Media::Brush>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'UI_Xaml_Media'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media"))]
    pub fn SetPalette<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IVector<super::Media::Brush>>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPalette)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MinStrokeWidth(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MinStrokeWidth)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMinStrokeWidth(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMinStrokeWidth)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxStrokeWidth(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxStrokeWidth)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMaxStrokeWidth(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMaxStrokeWidth)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SelectedBrush(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedBrush)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedBrushIndex(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedBrushIndex)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSelectedBrushIndex(&self, value: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectedBrushIndex)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedStrokeWidth(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedStrokeWidth)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSelectedStrokeWidth(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectedStrokeWidth)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PaletteProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IInkToolbarPenButtonStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaletteProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MinStrokeWidthProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IInkToolbarPenButtonStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MinStrokeWidthProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxStrokeWidthProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IInkToolbarPenButtonStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxStrokeWidthProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedBrushProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IInkToolbarPenButtonStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedBrushProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedBrushIndexProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IInkToolbarPenButtonStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedBrushIndexProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedStrokeWidthProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IInkToolbarPenButtonStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedStrokeWidthProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IInkToolbarPenButtonStatics<R, F: FnOnce(&IInkToolbarPenButtonStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<InkToolbarPenButton, IInkToolbarPenButtonStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for InkToolbarPenButton {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for InkToolbarPenButton {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for InkToolbarPenButton {}
impl ::core::fmt::Debug for InkToolbarPenButton {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("InkToolbarPenButton").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for InkToolbarPenButton {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.InkToolbarPenButton;{e0b80c21-b032-40ee-a2b9-507f6ccb827b})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for InkToolbarPenButton {
    type Vtable = IInkToolbarPenButton_Vtbl;
    const IID: ::windows::core::GUID = <IInkToolbarPenButton as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for InkToolbarPenButton {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.InkToolbarPenButton";
}
impl ::core::convert::From<InkToolbarPenButton> for ::windows::core::IUnknown {
    fn from(value: InkToolbarPenButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbarPenButton> for ::windows::core::IUnknown {
    fn from(value: &InkToolbarPenButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for InkToolbarPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a InkToolbarPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<InkToolbarPenButton> for ::windows::core::IInspectable {
    fn from(value: InkToolbarPenButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbarPenButton> for ::windows::core::IInspectable {
    fn from(value: &InkToolbarPenButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for InkToolbarPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a InkToolbarPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<InkToolbarPenButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: InkToolbarPenButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&InkToolbarPenButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkToolbarPenButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for InkToolbarPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &InkToolbarPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<InkToolbarPenButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: InkToolbarPenButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&InkToolbarPenButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkToolbarPenButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for InkToolbarPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &InkToolbarPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<InkToolbarPenButton> for InkToolbarToolButton {
    fn from(value: InkToolbarPenButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarPenButton> for InkToolbarToolButton {
    fn from(value: &InkToolbarPenButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, InkToolbarToolButton> for InkToolbarPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, InkToolbarToolButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, InkToolbarToolButton> for &InkToolbarPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, InkToolbarToolButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<InkToolbarToolButton>::into(self))
    }
}
impl ::core::convert::From<InkToolbarPenButton> for RadioButton {
    fn from(value: InkToolbarPenButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarPenButton> for RadioButton {
    fn from(value: &InkToolbarPenButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, RadioButton> for InkToolbarPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, RadioButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, RadioButton> for &InkToolbarPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, RadioButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<RadioButton>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<InkToolbarPenButton> for Primitives::ToggleButton {
    fn from(value: InkToolbarPenButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&InkToolbarPenButton> for Primitives::ToggleButton {
    fn from(value: &InkToolbarPenButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ToggleButton> for InkToolbarPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ToggleButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ToggleButton> for &InkToolbarPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ToggleButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ToggleButton>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<InkToolbarPenButton> for Primitives::ButtonBase {
    fn from(value: InkToolbarPenButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&InkToolbarPenButton> for Primitives::ButtonBase {
    fn from(value: &InkToolbarPenButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for InkToolbarPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for &InkToolbarPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ButtonBase>::into(self))
    }
}
impl ::core::convert::From<InkToolbarPenButton> for ContentControl {
    fn from(value: InkToolbarPenButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarPenButton> for ContentControl {
    fn from(value: &InkToolbarPenButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for InkToolbarPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &InkToolbarPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<InkToolbarPenButton> for Control {
    fn from(value: InkToolbarPenButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarPenButton> for Control {
    fn from(value: &InkToolbarPenButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for InkToolbarPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &InkToolbarPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<InkToolbarPenButton> for super::FrameworkElement {
    fn from(value: InkToolbarPenButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarPenButton> for super::FrameworkElement {
    fn from(value: &InkToolbarPenButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for InkToolbarPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &InkToolbarPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<InkToolbarPenButton> for super::UIElement {
    fn from(value: InkToolbarPenButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarPenButton> for super::UIElement {
    fn from(value: &InkToolbarPenButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for InkToolbarPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &InkToolbarPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<InkToolbarPenButton> for super::DependencyObject {
    fn from(value: InkToolbarPenButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarPenButton> for super::DependencyObject {
    fn from(value: &InkToolbarPenButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for InkToolbarPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &InkToolbarPenButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for InkToolbarPenButton {}
unsafe impl ::core::marker::Sync for InkToolbarPenButton {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct InkToolbarPenConfigurationControl(::windows::core::IUnknown);
impl InkToolbarPenConfigurationControl {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PenButton(&self) -> ::windows::core::Result<InkToolbarPenButton> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PenButton)(::core::mem::transmute_copy(this), &mut result__).from_abi::<InkToolbarPenButton>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<InkToolbarPenConfigurationControl> {
        Self::IInkToolbarPenConfigurationControlFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<InkToolbarPenConfigurationControl>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<InkToolbarPenConfigurationControl> {
        Self::IInkToolbarPenConfigurationControlFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<InkToolbarPenConfigurationControl>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PenButtonProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IInkToolbarPenConfigurationControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PenButtonProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IInkToolbarPenConfigurationControlFactory<R, F: FnOnce(&IInkToolbarPenConfigurationControlFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<InkToolbarPenConfigurationControl, IInkToolbarPenConfigurationControlFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IInkToolbarPenConfigurationControlStatics<R, F: FnOnce(&IInkToolbarPenConfigurationControlStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<InkToolbarPenConfigurationControl, IInkToolbarPenConfigurationControlStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for InkToolbarPenConfigurationControl {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for InkToolbarPenConfigurationControl {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for InkToolbarPenConfigurationControl {}
impl ::core::fmt::Debug for InkToolbarPenConfigurationControl {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("InkToolbarPenConfigurationControl").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for InkToolbarPenConfigurationControl {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.InkToolbarPenConfigurationControl;{601ae5f6-28a5-44cc-89a6-380e91a572dd})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for InkToolbarPenConfigurationControl {
    type Vtable = IInkToolbarPenConfigurationControl_Vtbl;
    const IID: ::windows::core::GUID = <IInkToolbarPenConfigurationControl as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for InkToolbarPenConfigurationControl {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.InkToolbarPenConfigurationControl";
}
impl ::core::convert::From<InkToolbarPenConfigurationControl> for ::windows::core::IUnknown {
    fn from(value: InkToolbarPenConfigurationControl) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbarPenConfigurationControl> for ::windows::core::IUnknown {
    fn from(value: &InkToolbarPenConfigurationControl) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for InkToolbarPenConfigurationControl {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a InkToolbarPenConfigurationControl {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<InkToolbarPenConfigurationControl> for ::windows::core::IInspectable {
    fn from(value: InkToolbarPenConfigurationControl) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbarPenConfigurationControl> for ::windows::core::IInspectable {
    fn from(value: &InkToolbarPenConfigurationControl) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for InkToolbarPenConfigurationControl {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a InkToolbarPenConfigurationControl {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<InkToolbarPenConfigurationControl> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: InkToolbarPenConfigurationControl) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&InkToolbarPenConfigurationControl> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkToolbarPenConfigurationControl) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for InkToolbarPenConfigurationControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &InkToolbarPenConfigurationControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<InkToolbarPenConfigurationControl> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: InkToolbarPenConfigurationControl) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&InkToolbarPenConfigurationControl> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkToolbarPenConfigurationControl) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for InkToolbarPenConfigurationControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &InkToolbarPenConfigurationControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<InkToolbarPenConfigurationControl> for Control {
    fn from(value: InkToolbarPenConfigurationControl) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarPenConfigurationControl> for Control {
    fn from(value: &InkToolbarPenConfigurationControl) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for InkToolbarPenConfigurationControl {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &InkToolbarPenConfigurationControl {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<InkToolbarPenConfigurationControl> for super::FrameworkElement {
    fn from(value: InkToolbarPenConfigurationControl) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarPenConfigurationControl> for super::FrameworkElement {
    fn from(value: &InkToolbarPenConfigurationControl) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for InkToolbarPenConfigurationControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &InkToolbarPenConfigurationControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<InkToolbarPenConfigurationControl> for super::UIElement {
    fn from(value: InkToolbarPenConfigurationControl) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarPenConfigurationControl> for super::UIElement {
    fn from(value: &InkToolbarPenConfigurationControl) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for InkToolbarPenConfigurationControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &InkToolbarPenConfigurationControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<InkToolbarPenConfigurationControl> for super::DependencyObject {
    fn from(value: InkToolbarPenConfigurationControl) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarPenConfigurationControl> for super::DependencyObject {
    fn from(value: &InkToolbarPenConfigurationControl) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for InkToolbarPenConfigurationControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &InkToolbarPenConfigurationControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for InkToolbarPenConfigurationControl {}
unsafe impl ::core::marker::Sync for InkToolbarPenConfigurationControl {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct InkToolbarPencilButton(::windows::core::IUnknown);
impl InkToolbarPencilButton {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<InkToolbarPencilButton> {
        Self::IInkToolbarPencilButtonFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<InkToolbarPencilButton>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<InkToolbarPencilButton> {
        Self::IInkToolbarPencilButtonFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<InkToolbarPencilButton>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IInkToolbarPencilButtonFactory<R, F: FnOnce(&IInkToolbarPencilButtonFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<InkToolbarPencilButton, IInkToolbarPencilButtonFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for InkToolbarPencilButton {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for InkToolbarPencilButton {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for InkToolbarPencilButton {}
impl ::core::fmt::Debug for InkToolbarPencilButton {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("InkToolbarPencilButton").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for InkToolbarPencilButton {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.InkToolbarPencilButton;{5b112832-1984-4148-9f25-382b35db087f})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for InkToolbarPencilButton {
    type Vtable = IInkToolbarPencilButton_Vtbl;
    const IID: ::windows::core::GUID = <IInkToolbarPencilButton as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for InkToolbarPencilButton {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.InkToolbarPencilButton";
}
impl ::core::convert::From<InkToolbarPencilButton> for ::windows::core::IUnknown {
    fn from(value: InkToolbarPencilButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbarPencilButton> for ::windows::core::IUnknown {
    fn from(value: &InkToolbarPencilButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for InkToolbarPencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a InkToolbarPencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<InkToolbarPencilButton> for ::windows::core::IInspectable {
    fn from(value: InkToolbarPencilButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbarPencilButton> for ::windows::core::IInspectable {
    fn from(value: &InkToolbarPencilButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for InkToolbarPencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a InkToolbarPencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<InkToolbarPencilButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: InkToolbarPencilButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&InkToolbarPencilButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkToolbarPencilButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for InkToolbarPencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &InkToolbarPencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<InkToolbarPencilButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: InkToolbarPencilButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&InkToolbarPencilButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkToolbarPencilButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for InkToolbarPencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &InkToolbarPencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<InkToolbarPencilButton> for InkToolbarPenButton {
    fn from(value: InkToolbarPencilButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarPencilButton> for InkToolbarPenButton {
    fn from(value: &InkToolbarPencilButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, InkToolbarPenButton> for InkToolbarPencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, InkToolbarPenButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, InkToolbarPenButton> for &InkToolbarPencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, InkToolbarPenButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<InkToolbarPenButton>::into(self))
    }
}
impl ::core::convert::From<InkToolbarPencilButton> for InkToolbarToolButton {
    fn from(value: InkToolbarPencilButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarPencilButton> for InkToolbarToolButton {
    fn from(value: &InkToolbarPencilButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, InkToolbarToolButton> for InkToolbarPencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, InkToolbarToolButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, InkToolbarToolButton> for &InkToolbarPencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, InkToolbarToolButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<InkToolbarToolButton>::into(self))
    }
}
impl ::core::convert::From<InkToolbarPencilButton> for RadioButton {
    fn from(value: InkToolbarPencilButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarPencilButton> for RadioButton {
    fn from(value: &InkToolbarPencilButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, RadioButton> for InkToolbarPencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, RadioButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, RadioButton> for &InkToolbarPencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, RadioButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<RadioButton>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<InkToolbarPencilButton> for Primitives::ToggleButton {
    fn from(value: InkToolbarPencilButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&InkToolbarPencilButton> for Primitives::ToggleButton {
    fn from(value: &InkToolbarPencilButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ToggleButton> for InkToolbarPencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ToggleButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ToggleButton> for &InkToolbarPencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ToggleButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ToggleButton>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<InkToolbarPencilButton> for Primitives::ButtonBase {
    fn from(value: InkToolbarPencilButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&InkToolbarPencilButton> for Primitives::ButtonBase {
    fn from(value: &InkToolbarPencilButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for InkToolbarPencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for &InkToolbarPencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ButtonBase>::into(self))
    }
}
impl ::core::convert::From<InkToolbarPencilButton> for ContentControl {
    fn from(value: InkToolbarPencilButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarPencilButton> for ContentControl {
    fn from(value: &InkToolbarPencilButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for InkToolbarPencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &InkToolbarPencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<InkToolbarPencilButton> for Control {
    fn from(value: InkToolbarPencilButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarPencilButton> for Control {
    fn from(value: &InkToolbarPencilButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for InkToolbarPencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &InkToolbarPencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<InkToolbarPencilButton> for super::FrameworkElement {
    fn from(value: InkToolbarPencilButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarPencilButton> for super::FrameworkElement {
    fn from(value: &InkToolbarPencilButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for InkToolbarPencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &InkToolbarPencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<InkToolbarPencilButton> for super::UIElement {
    fn from(value: InkToolbarPencilButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarPencilButton> for super::UIElement {
    fn from(value: &InkToolbarPencilButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for InkToolbarPencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &InkToolbarPencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<InkToolbarPencilButton> for super::DependencyObject {
    fn from(value: InkToolbarPencilButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarPencilButton> for super::DependencyObject {
    fn from(value: &InkToolbarPencilButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for InkToolbarPencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &InkToolbarPencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for InkToolbarPencilButton {}
unsafe impl ::core::marker::Sync for InkToolbarPencilButton {}
#[doc = "*Required features: 'UI_Xaml_Controls', 'deprecated'*"]
#[cfg(feature = "deprecated")]
#[repr(transparent)]
pub struct InkToolbarRulerButton(::windows::core::IUnknown);
#[cfg(feature = "deprecated")]
impl InkToolbarRulerButton {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Input_Inking', 'deprecated'*"]
    #[cfg(all(feature = "UI_Input_Inking", feature = "deprecated"))]
    pub fn Ruler(&self) -> ::windows::core::Result<super::super::Input::Inking::InkPresenterRuler> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Ruler)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Input::Inking::InkPresenterRuler>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'deprecated'*"]
    #[cfg(feature = "deprecated")]
    pub fn new() -> ::windows::core::Result<InkToolbarRulerButton> {
        Self::IInkToolbarRulerButtonFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<InkToolbarRulerButton>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'deprecated'*"]
    #[cfg(feature = "deprecated")]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<InkToolbarRulerButton> {
        Self::IInkToolbarRulerButtonFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<InkToolbarRulerButton>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'deprecated'*"]
    #[cfg(feature = "deprecated")]
    pub fn RulerProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IInkToolbarRulerButtonStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).RulerProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    #[cfg(feature = "deprecated")]
    pub fn IInkToolbarRulerButtonFactory<R, F: FnOnce(&IInkToolbarRulerButtonFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<InkToolbarRulerButton, IInkToolbarRulerButtonFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    #[cfg(feature = "deprecated")]
    pub fn IInkToolbarRulerButtonStatics<R, F: FnOnce(&IInkToolbarRulerButtonStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<InkToolbarRulerButton, IInkToolbarRulerButtonStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
#[cfg(feature = "deprecated")]
impl ::core::clone::Clone for InkToolbarRulerButton {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
#[cfg(feature = "deprecated")]
impl ::core::cmp::PartialEq for InkToolbarRulerButton {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
#[cfg(feature = "deprecated")]
impl ::core::cmp::Eq for InkToolbarRulerButton {}
#[cfg(feature = "deprecated")]
impl ::core::fmt::Debug for InkToolbarRulerButton {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("InkToolbarRulerButton").field(&self.0).finish()
    }
}
#[cfg(feature = "deprecated")]
unsafe impl ::windows::core::RuntimeType for InkToolbarRulerButton {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.InkToolbarRulerButton;{4a992832-1984-4148-9f25-382b35db087f})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
#[cfg(feature = "deprecated")]
unsafe impl ::windows::core::Interface for InkToolbarRulerButton {
    type Vtable = IInkToolbarRulerButton_Vtbl;
    const IID: ::windows::core::GUID = <IInkToolbarRulerButton as ::windows::core::Interface>::IID;
}
#[cfg(feature = "deprecated")]
impl ::windows::core::RuntimeName for InkToolbarRulerButton {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.InkToolbarRulerButton";
}
#[cfg(feature = "deprecated")]
impl ::core::convert::From<InkToolbarRulerButton> for ::windows::core::IUnknown {
    fn from(value: InkToolbarRulerButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
#[cfg(feature = "deprecated")]
impl ::core::convert::From<&InkToolbarRulerButton> for ::windows::core::IUnknown {
    fn from(value: &InkToolbarRulerButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
#[cfg(feature = "deprecated")]
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for InkToolbarRulerButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "deprecated")]
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a InkToolbarRulerButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "deprecated")]
impl ::core::convert::From<InkToolbarRulerButton> for ::windows::core::IInspectable {
    fn from(value: InkToolbarRulerButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
#[cfg(feature = "deprecated")]
impl ::core::convert::From<&InkToolbarRulerButton> for ::windows::core::IInspectable {
    fn from(value: &InkToolbarRulerButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
#[cfg(feature = "deprecated")]
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for InkToolbarRulerButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "deprecated")]
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a InkToolbarRulerButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(all(feature = "UI_Composition", feature = "deprecated"))]
impl ::core::convert::TryFrom<InkToolbarRulerButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: InkToolbarRulerButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(all(feature = "UI_Composition", feature = "deprecated"))]
impl ::core::convert::TryFrom<&InkToolbarRulerButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkToolbarRulerButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(all(feature = "UI_Composition", feature = "deprecated"))]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for InkToolbarRulerButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(all(feature = "UI_Composition", feature = "deprecated"))]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &InkToolbarRulerButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(all(feature = "UI_Composition", feature = "deprecated"))]
impl ::core::convert::TryFrom<InkToolbarRulerButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: InkToolbarRulerButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(all(feature = "UI_Composition", feature = "deprecated"))]
impl ::core::convert::TryFrom<&InkToolbarRulerButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkToolbarRulerButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(all(feature = "UI_Composition", feature = "deprecated"))]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for InkToolbarRulerButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(all(feature = "UI_Composition", feature = "deprecated"))]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &InkToolbarRulerButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "deprecated")]
impl ::core::convert::From<InkToolbarRulerButton> for InkToolbarToggleButton {
    fn from(value: InkToolbarRulerButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "deprecated")]
impl ::core::convert::From<&InkToolbarRulerButton> for InkToolbarToggleButton {
    fn from(value: &InkToolbarRulerButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "deprecated")]
impl<'a> ::windows::core::IntoParam<'a, InkToolbarToggleButton> for InkToolbarRulerButton {
    fn into_param(self) -> ::windows::core::Param<'a, InkToolbarToggleButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "deprecated")]
impl<'a> ::windows::core::IntoParam<'a, InkToolbarToggleButton> for &InkToolbarRulerButton {
    fn into_param(self) -> ::windows::core::Param<'a, InkToolbarToggleButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<InkToolbarToggleButton>::into(self))
    }
}
#[cfg(feature = "deprecated")]
impl ::core::convert::From<InkToolbarRulerButton> for CheckBox {
    fn from(value: InkToolbarRulerButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "deprecated")]
impl ::core::convert::From<&InkToolbarRulerButton> for CheckBox {
    fn from(value: &InkToolbarRulerButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "deprecated")]
impl<'a> ::windows::core::IntoParam<'a, CheckBox> for InkToolbarRulerButton {
    fn into_param(self) -> ::windows::core::Param<'a, CheckBox> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "deprecated")]
impl<'a> ::windows::core::IntoParam<'a, CheckBox> for &InkToolbarRulerButton {
    fn into_param(self) -> ::windows::core::Param<'a, CheckBox> {
        ::windows::core::Param::Owned(::core::convert::Into::<CheckBox>::into(self))
    }
}
#[cfg(all(feature = "UI_Xaml_Controls_Primitives", feature = "deprecated"))]
impl ::core::convert::From<InkToolbarRulerButton> for Primitives::ToggleButton {
    fn from(value: InkToolbarRulerButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(all(feature = "UI_Xaml_Controls_Primitives", feature = "deprecated"))]
impl ::core::convert::From<&InkToolbarRulerButton> for Primitives::ToggleButton {
    fn from(value: &InkToolbarRulerButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(all(feature = "UI_Xaml_Controls_Primitives", feature = "deprecated"))]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ToggleButton> for InkToolbarRulerButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ToggleButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(all(feature = "UI_Xaml_Controls_Primitives", feature = "deprecated"))]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ToggleButton> for &InkToolbarRulerButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ToggleButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ToggleButton>::into(self))
    }
}
#[cfg(all(feature = "UI_Xaml_Controls_Primitives", feature = "deprecated"))]
impl ::core::convert::From<InkToolbarRulerButton> for Primitives::ButtonBase {
    fn from(value: InkToolbarRulerButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(all(feature = "UI_Xaml_Controls_Primitives", feature = "deprecated"))]
impl ::core::convert::From<&InkToolbarRulerButton> for Primitives::ButtonBase {
    fn from(value: &InkToolbarRulerButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(all(feature = "UI_Xaml_Controls_Primitives", feature = "deprecated"))]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for InkToolbarRulerButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(all(feature = "UI_Xaml_Controls_Primitives", feature = "deprecated"))]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for &InkToolbarRulerButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ButtonBase>::into(self))
    }
}
#[cfg(feature = "deprecated")]
impl ::core::convert::From<InkToolbarRulerButton> for ContentControl {
    fn from(value: InkToolbarRulerButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "deprecated")]
impl ::core::convert::From<&InkToolbarRulerButton> for ContentControl {
    fn from(value: &InkToolbarRulerButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "deprecated")]
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for InkToolbarRulerButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "deprecated")]
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &InkToolbarRulerButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
#[cfg(feature = "deprecated")]
impl ::core::convert::From<InkToolbarRulerButton> for Control {
    fn from(value: InkToolbarRulerButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "deprecated")]
impl ::core::convert::From<&InkToolbarRulerButton> for Control {
    fn from(value: &InkToolbarRulerButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "deprecated")]
impl<'a> ::windows::core::IntoParam<'a, Control> for InkToolbarRulerButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "deprecated")]
impl<'a> ::windows::core::IntoParam<'a, Control> for &InkToolbarRulerButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
#[cfg(feature = "deprecated")]
impl ::core::convert::From<InkToolbarRulerButton> for super::FrameworkElement {
    fn from(value: InkToolbarRulerButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "deprecated")]
impl ::core::convert::From<&InkToolbarRulerButton> for super::FrameworkElement {
    fn from(value: &InkToolbarRulerButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "deprecated")]
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for InkToolbarRulerButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "deprecated")]
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &InkToolbarRulerButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
#[cfg(feature = "deprecated")]
impl ::core::convert::From<InkToolbarRulerButton> for super::UIElement {
    fn from(value: InkToolbarRulerButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "deprecated")]
impl ::core::convert::From<&InkToolbarRulerButton> for super::UIElement {
    fn from(value: &InkToolbarRulerButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "deprecated")]
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for InkToolbarRulerButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "deprecated")]
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &InkToolbarRulerButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
#[cfg(feature = "deprecated")]
impl ::core::convert::From<InkToolbarRulerButton> for super::DependencyObject {
    fn from(value: InkToolbarRulerButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "deprecated")]
impl ::core::convert::From<&InkToolbarRulerButton> for super::DependencyObject {
    fn from(value: &InkToolbarRulerButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "deprecated")]
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for InkToolbarRulerButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "deprecated")]
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &InkToolbarRulerButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
#[cfg(feature = "deprecated")]
unsafe impl ::core::marker::Send for InkToolbarRulerButton {}
#[cfg(feature = "deprecated")]
unsafe impl ::core::marker::Sync for InkToolbarRulerButton {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct InkToolbarStencilButton(::windows::core::IUnknown);
impl InkToolbarStencilButton {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Input_Inking'*"]
    #[cfg(feature = "UI_Input_Inking")]
    pub fn Ruler(&self) -> ::windows::core::Result<super::super::Input::Inking::InkPresenterRuler> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Ruler)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Input::Inking::InkPresenterRuler>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Input_Inking'*"]
    #[cfg(feature = "UI_Input_Inking")]
    pub fn Protractor(&self) -> ::windows::core::Result<super::super::Input::Inking::InkPresenterProtractor> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Protractor)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Input::Inking::InkPresenterProtractor>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedStencil(&self) -> ::windows::core::Result<InkToolbarStencilKind> {
        let this = self;
        unsafe {
            let mut result__: InkToolbarStencilKind = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedStencil)(::core::mem::transmute_copy(this), &mut result__).from_abi::<InkToolbarStencilKind>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSelectedStencil(&self, value: InkToolbarStencilKind) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectedStencil)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsRulerItemVisible(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsRulerItemVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsRulerItemVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsRulerItemVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsProtractorItemVisible(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsProtractorItemVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsProtractorItemVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsProtractorItemVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<InkToolbarStencilButton> {
        Self::IInkToolbarStencilButtonFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<InkToolbarStencilButton>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<InkToolbarStencilButton> {
        Self::IInkToolbarStencilButtonFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<InkToolbarStencilButton>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn RulerProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IInkToolbarStencilButtonStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).RulerProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ProtractorProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IInkToolbarStencilButtonStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ProtractorProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedStencilProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IInkToolbarStencilButtonStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedStencilProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsRulerItemVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IInkToolbarStencilButtonStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsRulerItemVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsProtractorItemVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IInkToolbarStencilButtonStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsProtractorItemVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IInkToolbarStencilButtonFactory<R, F: FnOnce(&IInkToolbarStencilButtonFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<InkToolbarStencilButton, IInkToolbarStencilButtonFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IInkToolbarStencilButtonStatics<R, F: FnOnce(&IInkToolbarStencilButtonStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<InkToolbarStencilButton, IInkToolbarStencilButtonStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for InkToolbarStencilButton {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for InkToolbarStencilButton {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for InkToolbarStencilButton {}
impl ::core::fmt::Debug for InkToolbarStencilButton {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("InkToolbarStencilButton").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for InkToolbarStencilButton {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.InkToolbarStencilButton;{306a2616-5b40-4bf3-92b7-f1df936aeff5})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for InkToolbarStencilButton {
    type Vtable = IInkToolbarStencilButton_Vtbl;
    const IID: ::windows::core::GUID = <IInkToolbarStencilButton as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for InkToolbarStencilButton {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.InkToolbarStencilButton";
}
impl ::core::convert::From<InkToolbarStencilButton> for ::windows::core::IUnknown {
    fn from(value: InkToolbarStencilButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbarStencilButton> for ::windows::core::IUnknown {
    fn from(value: &InkToolbarStencilButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for InkToolbarStencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a InkToolbarStencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<InkToolbarStencilButton> for ::windows::core::IInspectable {
    fn from(value: InkToolbarStencilButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbarStencilButton> for ::windows::core::IInspectable {
    fn from(value: &InkToolbarStencilButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for InkToolbarStencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a InkToolbarStencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<InkToolbarStencilButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: InkToolbarStencilButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&InkToolbarStencilButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkToolbarStencilButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for InkToolbarStencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &InkToolbarStencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<InkToolbarStencilButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: InkToolbarStencilButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&InkToolbarStencilButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkToolbarStencilButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for InkToolbarStencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &InkToolbarStencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<InkToolbarStencilButton> for InkToolbarMenuButton {
    fn from(value: InkToolbarStencilButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarStencilButton> for InkToolbarMenuButton {
    fn from(value: &InkToolbarStencilButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, InkToolbarMenuButton> for InkToolbarStencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, InkToolbarMenuButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, InkToolbarMenuButton> for &InkToolbarStencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, InkToolbarMenuButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<InkToolbarMenuButton>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<InkToolbarStencilButton> for Primitives::ToggleButton {
    fn from(value: InkToolbarStencilButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&InkToolbarStencilButton> for Primitives::ToggleButton {
    fn from(value: &InkToolbarStencilButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ToggleButton> for InkToolbarStencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ToggleButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ToggleButton> for &InkToolbarStencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ToggleButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ToggleButton>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<InkToolbarStencilButton> for Primitives::ButtonBase {
    fn from(value: InkToolbarStencilButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&InkToolbarStencilButton> for Primitives::ButtonBase {
    fn from(value: &InkToolbarStencilButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for InkToolbarStencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for &InkToolbarStencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ButtonBase>::into(self))
    }
}
impl ::core::convert::From<InkToolbarStencilButton> for ContentControl {
    fn from(value: InkToolbarStencilButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarStencilButton> for ContentControl {
    fn from(value: &InkToolbarStencilButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for InkToolbarStencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &InkToolbarStencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<InkToolbarStencilButton> for Control {
    fn from(value: InkToolbarStencilButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarStencilButton> for Control {
    fn from(value: &InkToolbarStencilButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for InkToolbarStencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &InkToolbarStencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<InkToolbarStencilButton> for super::FrameworkElement {
    fn from(value: InkToolbarStencilButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarStencilButton> for super::FrameworkElement {
    fn from(value: &InkToolbarStencilButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for InkToolbarStencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &InkToolbarStencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<InkToolbarStencilButton> for super::UIElement {
    fn from(value: InkToolbarStencilButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarStencilButton> for super::UIElement {
    fn from(value: &InkToolbarStencilButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for InkToolbarStencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &InkToolbarStencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<InkToolbarStencilButton> for super::DependencyObject {
    fn from(value: InkToolbarStencilButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarStencilButton> for super::DependencyObject {
    fn from(value: &InkToolbarStencilButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for InkToolbarStencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &InkToolbarStencilButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for InkToolbarStencilButton {}
unsafe impl ::core::marker::Sync for InkToolbarStencilButton {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct InkToolbarStencilKind(pub i32);
impl InkToolbarStencilKind {
    pub const Ruler: Self = Self(0i32);
    pub const Protractor: Self = Self(1i32);
}
impl ::core::marker::Copy for InkToolbarStencilKind {}
impl ::core::clone::Clone for InkToolbarStencilKind {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for InkToolbarStencilKind {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for InkToolbarStencilKind {
    type Abi = Self;
}
impl ::core::fmt::Debug for InkToolbarStencilKind {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("InkToolbarStencilKind").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for InkToolbarStencilKind {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.InkToolbarStencilKind;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct InkToolbarToggle(pub i32);
impl InkToolbarToggle {
    pub const Ruler: Self = Self(0i32);
    pub const Custom: Self = Self(1i32);
}
impl ::core::marker::Copy for InkToolbarToggle {}
impl ::core::clone::Clone for InkToolbarToggle {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for InkToolbarToggle {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for InkToolbarToggle {
    type Abi = Self;
}
impl ::core::fmt::Debug for InkToolbarToggle {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("InkToolbarToggle").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for InkToolbarToggle {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.InkToolbarToggle;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct InkToolbarToggleButton(::windows::core::IUnknown);
impl InkToolbarToggleButton {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ToggleKind(&self) -> ::windows::core::Result<InkToolbarToggle> {
        let this = self;
        unsafe {
            let mut result__: InkToolbarToggle = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ToggleKind)(::core::mem::transmute_copy(this), &mut result__).from_abi::<InkToolbarToggle>(result__)
        }
    }
}
impl ::core::clone::Clone for InkToolbarToggleButton {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for InkToolbarToggleButton {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for InkToolbarToggleButton {}
impl ::core::fmt::Debug for InkToolbarToggleButton {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("InkToolbarToggleButton").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for InkToolbarToggleButton {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.InkToolbarToggleButton;{b4a278fa-f5f0-4b1f-beb0-0b8a29905a4a})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for InkToolbarToggleButton {
    type Vtable = IInkToolbarToggleButton_Vtbl;
    const IID: ::windows::core::GUID = <IInkToolbarToggleButton as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for InkToolbarToggleButton {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.InkToolbarToggleButton";
}
impl ::core::convert::From<InkToolbarToggleButton> for ::windows::core::IUnknown {
    fn from(value: InkToolbarToggleButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbarToggleButton> for ::windows::core::IUnknown {
    fn from(value: &InkToolbarToggleButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for InkToolbarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a InkToolbarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<InkToolbarToggleButton> for ::windows::core::IInspectable {
    fn from(value: InkToolbarToggleButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbarToggleButton> for ::windows::core::IInspectable {
    fn from(value: &InkToolbarToggleButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for InkToolbarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a InkToolbarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<InkToolbarToggleButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: InkToolbarToggleButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&InkToolbarToggleButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkToolbarToggleButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for InkToolbarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &InkToolbarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<InkToolbarToggleButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: InkToolbarToggleButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&InkToolbarToggleButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkToolbarToggleButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for InkToolbarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &InkToolbarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<InkToolbarToggleButton> for CheckBox {
    fn from(value: InkToolbarToggleButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarToggleButton> for CheckBox {
    fn from(value: &InkToolbarToggleButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, CheckBox> for InkToolbarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, CheckBox> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, CheckBox> for &InkToolbarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, CheckBox> {
        ::windows::core::Param::Owned(::core::convert::Into::<CheckBox>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<InkToolbarToggleButton> for Primitives::ToggleButton {
    fn from(value: InkToolbarToggleButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&InkToolbarToggleButton> for Primitives::ToggleButton {
    fn from(value: &InkToolbarToggleButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ToggleButton> for InkToolbarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ToggleButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ToggleButton> for &InkToolbarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ToggleButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ToggleButton>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<InkToolbarToggleButton> for Primitives::ButtonBase {
    fn from(value: InkToolbarToggleButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&InkToolbarToggleButton> for Primitives::ButtonBase {
    fn from(value: &InkToolbarToggleButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for InkToolbarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for &InkToolbarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ButtonBase>::into(self))
    }
}
impl ::core::convert::From<InkToolbarToggleButton> for ContentControl {
    fn from(value: InkToolbarToggleButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarToggleButton> for ContentControl {
    fn from(value: &InkToolbarToggleButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for InkToolbarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &InkToolbarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<InkToolbarToggleButton> for Control {
    fn from(value: InkToolbarToggleButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarToggleButton> for Control {
    fn from(value: &InkToolbarToggleButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for InkToolbarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &InkToolbarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<InkToolbarToggleButton> for super::FrameworkElement {
    fn from(value: InkToolbarToggleButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarToggleButton> for super::FrameworkElement {
    fn from(value: &InkToolbarToggleButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for InkToolbarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &InkToolbarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<InkToolbarToggleButton> for super::UIElement {
    fn from(value: InkToolbarToggleButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarToggleButton> for super::UIElement {
    fn from(value: &InkToolbarToggleButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for InkToolbarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &InkToolbarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<InkToolbarToggleButton> for super::DependencyObject {
    fn from(value: InkToolbarToggleButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarToggleButton> for super::DependencyObject {
    fn from(value: &InkToolbarToggleButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for InkToolbarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &InkToolbarToggleButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for InkToolbarToggleButton {}
unsafe impl ::core::marker::Sync for InkToolbarToggleButton {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct InkToolbarTool(pub i32);
impl InkToolbarTool {
    pub const BallpointPen: Self = Self(0i32);
    pub const Pencil: Self = Self(1i32);
    pub const Highlighter: Self = Self(2i32);
    pub const Eraser: Self = Self(3i32);
    pub const CustomPen: Self = Self(4i32);
    pub const CustomTool: Self = Self(5i32);
}
impl ::core::marker::Copy for InkToolbarTool {}
impl ::core::clone::Clone for InkToolbarTool {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for InkToolbarTool {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for InkToolbarTool {
    type Abi = Self;
}
impl ::core::fmt::Debug for InkToolbarTool {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("InkToolbarTool").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for InkToolbarTool {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.InkToolbarTool;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct InkToolbarToolButton(::windows::core::IUnknown);
impl InkToolbarToolButton {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ToolKind(&self) -> ::windows::core::Result<InkToolbarTool> {
        let this = self;
        unsafe {
            let mut result__: InkToolbarTool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ToolKind)(::core::mem::transmute_copy(this), &mut result__).from_abi::<InkToolbarTool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsExtensionGlyphShown(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsExtensionGlyphShown)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsExtensionGlyphShown(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsExtensionGlyphShown)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsExtensionGlyphShownProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IInkToolbarToolButtonStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsExtensionGlyphShownProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IInkToolbarToolButtonStatics<R, F: FnOnce(&IInkToolbarToolButtonStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<InkToolbarToolButton, IInkToolbarToolButtonStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for InkToolbarToolButton {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for InkToolbarToolButton {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for InkToolbarToolButton {}
impl ::core::fmt::Debug for InkToolbarToolButton {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("InkToolbarToolButton").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for InkToolbarToolButton {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.InkToolbarToolButton;{5c5af41e-ccb7-4458-8064-a9849d31561b})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for InkToolbarToolButton {
    type Vtable = IInkToolbarToolButton_Vtbl;
    const IID: ::windows::core::GUID = <IInkToolbarToolButton as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for InkToolbarToolButton {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.InkToolbarToolButton";
}
impl ::core::convert::From<InkToolbarToolButton> for ::windows::core::IUnknown {
    fn from(value: InkToolbarToolButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbarToolButton> for ::windows::core::IUnknown {
    fn from(value: &InkToolbarToolButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for InkToolbarToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a InkToolbarToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<InkToolbarToolButton> for ::windows::core::IInspectable {
    fn from(value: InkToolbarToolButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&InkToolbarToolButton> for ::windows::core::IInspectable {
    fn from(value: &InkToolbarToolButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for InkToolbarToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a InkToolbarToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<InkToolbarToolButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: InkToolbarToolButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&InkToolbarToolButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkToolbarToolButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for InkToolbarToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &InkToolbarToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<InkToolbarToolButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: InkToolbarToolButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&InkToolbarToolButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &InkToolbarToolButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for InkToolbarToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &InkToolbarToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<InkToolbarToolButton> for RadioButton {
    fn from(value: InkToolbarToolButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarToolButton> for RadioButton {
    fn from(value: &InkToolbarToolButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, RadioButton> for InkToolbarToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, RadioButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, RadioButton> for &InkToolbarToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, RadioButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<RadioButton>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<InkToolbarToolButton> for Primitives::ToggleButton {
    fn from(value: InkToolbarToolButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&InkToolbarToolButton> for Primitives::ToggleButton {
    fn from(value: &InkToolbarToolButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ToggleButton> for InkToolbarToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ToggleButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ToggleButton> for &InkToolbarToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ToggleButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ToggleButton>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<InkToolbarToolButton> for Primitives::ButtonBase {
    fn from(value: InkToolbarToolButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&InkToolbarToolButton> for Primitives::ButtonBase {
    fn from(value: &InkToolbarToolButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for InkToolbarToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for &InkToolbarToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ButtonBase>::into(self))
    }
}
impl ::core::convert::From<InkToolbarToolButton> for ContentControl {
    fn from(value: InkToolbarToolButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarToolButton> for ContentControl {
    fn from(value: &InkToolbarToolButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for InkToolbarToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &InkToolbarToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<InkToolbarToolButton> for Control {
    fn from(value: InkToolbarToolButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarToolButton> for Control {
    fn from(value: &InkToolbarToolButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for InkToolbarToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &InkToolbarToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<InkToolbarToolButton> for super::FrameworkElement {
    fn from(value: InkToolbarToolButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarToolButton> for super::FrameworkElement {
    fn from(value: &InkToolbarToolButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for InkToolbarToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &InkToolbarToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<InkToolbarToolButton> for super::UIElement {
    fn from(value: InkToolbarToolButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarToolButton> for super::UIElement {
    fn from(value: &InkToolbarToolButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for InkToolbarToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &InkToolbarToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<InkToolbarToolButton> for super::DependencyObject {
    fn from(value: InkToolbarToolButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&InkToolbarToolButton> for super::DependencyObject {
    fn from(value: &InkToolbarToolButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for InkToolbarToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &InkToolbarToolButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for InkToolbarToolButton {}
unsafe impl ::core::marker::Sync for InkToolbarToolButton {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct IsTextTrimmedChangedEventArgs(::windows::core::IUnknown);
impl IsTextTrimmedChangedEventArgs {}
impl ::core::clone::Clone for IsTextTrimmedChangedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IsTextTrimmedChangedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IsTextTrimmedChangedEventArgs {}
impl ::core::fmt::Debug for IsTextTrimmedChangedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IsTextTrimmedChangedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for IsTextTrimmedChangedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.IsTextTrimmedChangedEventArgs;{16f597cd-ebff-4fb4-8714-26147418b945})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for IsTextTrimmedChangedEventArgs {
    type Vtable = IIsTextTrimmedChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IIsTextTrimmedChangedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for IsTextTrimmedChangedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.IsTextTrimmedChangedEventArgs";
}
impl ::core::convert::From<IsTextTrimmedChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: IsTextTrimmedChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IsTextTrimmedChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &IsTextTrimmedChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for IsTextTrimmedChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a IsTextTrimmedChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<IsTextTrimmedChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: IsTextTrimmedChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IsTextTrimmedChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &IsTextTrimmedChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for IsTextTrimmedChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a IsTextTrimmedChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for IsTextTrimmedChangedEventArgs {}
unsafe impl ::core::marker::Sync for IsTextTrimmedChangedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ItemClickEventArgs(::windows::core::IUnknown);
impl ItemClickEventArgs {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ItemClickEventArgs, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ClickedItem(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ClickedItem)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
}
impl ::core::clone::Clone for ItemClickEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ItemClickEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ItemClickEventArgs {}
impl ::core::fmt::Debug for ItemClickEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ItemClickEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ItemClickEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ItemClickEventArgs;{9c314242-f29a-494d-a3a5-d4c7b2a46852})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ItemClickEventArgs {
    type Vtable = IItemClickEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IItemClickEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ItemClickEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ItemClickEventArgs";
}
impl ::core::convert::From<ItemClickEventArgs> for ::windows::core::IUnknown {
    fn from(value: ItemClickEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ItemClickEventArgs> for ::windows::core::IUnknown {
    fn from(value: &ItemClickEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ItemClickEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ItemClickEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ItemClickEventArgs> for ::windows::core::IInspectable {
    fn from(value: ItemClickEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ItemClickEventArgs> for ::windows::core::IInspectable {
    fn from(value: &ItemClickEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ItemClickEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ItemClickEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ItemClickEventArgs> for super::RoutedEventArgs {
    fn from(value: ItemClickEventArgs) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ItemClickEventArgs> for super::RoutedEventArgs {
    fn from(value: &ItemClickEventArgs) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::RoutedEventArgs> for ItemClickEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, super::RoutedEventArgs> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::RoutedEventArgs> for &ItemClickEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, super::RoutedEventArgs> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::RoutedEventArgs>::into(self))
    }
}
unsafe impl ::core::marker::Send for ItemClickEventArgs {}
unsafe impl ::core::marker::Sync for ItemClickEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ItemClickEventHandler(pub ::windows::core::IUnknown);
impl ItemClickEventHandler {
    pub fn new<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<ItemClickEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static>(invoke: F) -> Self {
        let com = ItemClickEventHandlerBox::<F> { vtable: &ItemClickEventHandlerBox::<F>::VTABLE, count: ::windows::core::RefCount::new(1), invoke };
        unsafe { ::core::mem::transmute(::windows::core::alloc::boxed::Box::new(com)) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Invoke<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>, Param1: ::windows::core::IntoParam<'a, ItemClickEventArgs>>(&self, sender: Param0, e: Param1) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Invoke)(::core::mem::transmute_copy(this), sender.into_param().abi(), e.into_param().abi()).ok() }
    }
}
#[repr(C)]
struct ItemClickEventHandlerBox<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<ItemClickEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static> {
    vtable: *const ItemClickEventHandler_Vtbl,
    invoke: F,
    count: ::windows::core::RefCount,
}
impl<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<ItemClickEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static> ItemClickEventHandlerBox<F> {
    const VTABLE: ItemClickEventHandler_Vtbl = ItemClickEventHandler_Vtbl { base: ::windows::core::IUnknownVtbl { QueryInterface: Self::QueryInterface, AddRef: Self::AddRef, Release: Self::Release }, Invoke: Self::Invoke };
    unsafe extern "system" fn QueryInterface(this: ::windows::core::RawPtr, iid: &::windows::core::GUID, interface: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        *interface = if iid == &<ItemClickEventHandler as ::windows::core::Interface>::IID || iid == &<::windows::core::IUnknown as ::windows::core::Interface>::IID || iid == &<::windows::core::IAgileObject as ::windows::core::Interface>::IID { &mut (*this).vtable as *mut _ as _ } else { ::core::ptr::null_mut() };
        if (*interface).is_null() {
            ::windows::core::HRESULT(-2147467262)
        } else {
            (*this).count.add_ref();
            ::windows::core::HRESULT(0)
        }
    }
    unsafe extern "system" fn AddRef(this: ::windows::core::RawPtr) -> u32 {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        (*this).count.add_ref()
    }
    unsafe extern "system" fn Release(this: ::windows::core::RawPtr) -> u32 {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        let remaining = (*this).count.release();
        if remaining == 0 {
            ::windows::core::alloc::boxed::Box::from_raw(this);
        }
        remaining
    }
    unsafe extern "system" fn Invoke(this: *mut ::core::ffi::c_void, sender: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        ((*this).invoke)(::core::mem::transmute(&sender), ::core::mem::transmute(&e)).into()
    }
}
impl ::core::clone::Clone for ItemClickEventHandler {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ItemClickEventHandler {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ItemClickEventHandler {}
impl ::core::fmt::Debug for ItemClickEventHandler {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ItemClickEventHandler").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for ItemClickEventHandler {
    type Vtable = ItemClickEventHandler_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3df6d14e_e18a_4a75_9395_627c5f3cd489);
}
unsafe impl ::windows::core::RuntimeType for ItemClickEventHandler {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"{3df6d14e-e18a-4a75-9395-627c5f3cd489}");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
#[repr(C)]
#[doc(hidden)]
pub struct ItemClickEventHandler_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    pub Invoke: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sender: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
#[cfg(feature = "Foundation_Collections")]
#[repr(transparent)]
pub struct ItemCollection(::windows::core::IUnknown);
#[cfg(feature = "Foundation_Collections")]
impl ItemCollection {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn First(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IIterator<::windows::core::IInspectable>> {
        let this = &::windows::core::Interface::cast::<super::super::super::Foundation::Collections::IIterable<::windows::core::IInspectable>>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).First)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IIterator<::windows::core::IInspectable>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn VectorChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::VectorChangedEventHandler<::windows::core::IInspectable>>>(&self, vhnd: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VectorChanged)(::core::mem::transmute_copy(this), vhnd.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn RemoveVectorChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveVectorChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn GetAt(&self, index: u32) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = &::windows::core::Interface::cast::<super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>>(self)?;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetAt)(::core::mem::transmute_copy(this), index, &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn Size(&self) -> ::windows::core::Result<u32> {
        let this = &::windows::core::Interface::cast::<super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>>(self)?;
        unsafe {
            let mut result__: u32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Size)(::core::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn GetView(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVectorView<::windows::core::IInspectable>> {
        let this = &::windows::core::Interface::cast::<super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetView)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVectorView<::windows::core::IInspectable>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn IndexOf<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0, index: &mut u32) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IndexOf)(::core::mem::transmute_copy(this), value.into_param().abi(), index, &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn SetAt<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, index: u32, value: Param1) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetAt)(::core::mem::transmute_copy(this), index, value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn InsertAt<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, index: u32, value: Param1) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).InsertAt)(::core::mem::transmute_copy(this), index, value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn RemoveAt(&self, index: u32) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveAt)(::core::mem::transmute_copy(this), index).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn Append<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).Append)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn RemoveAtEnd(&self) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveAtEnd)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn Clear(&self) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).Clear)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn GetMany(&self, startindex: u32, items: &mut [::core::option::Option<::windows::core::IInspectable>]) -> ::windows::core::Result<u32> {
        let this = &::windows::core::Interface::cast::<super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>>(self)?;
        unsafe {
            let mut result__: u32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetMany)(::core::mem::transmute_copy(this), startindex, items.len() as u32, ::core::mem::transmute_copy(&items), &mut result__).from_abi::<u32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn ReplaceAll(&self, items: &[::core::option::Option<::windows::core::IInspectable>]) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).ReplaceAll)(::core::mem::transmute_copy(this), items.len() as u32, ::core::mem::transmute(items.as_ptr())).ok() }
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::clone::Clone for ItemCollection {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::cmp::PartialEq for ItemCollection {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::cmp::Eq for ItemCollection {}
#[cfg(feature = "Foundation_Collections")]
impl ::core::fmt::Debug for ItemCollection {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ItemCollection").field(&self.0).finish()
    }
}
#[cfg(feature = "Foundation_Collections")]
unsafe impl ::windows::core::RuntimeType for ItemCollection {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ItemCollection;pinterface({5917eb53-50b4-4a0d-b309-65862b3f1dbc};cinterface(IInspectable)))");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
#[cfg(feature = "Foundation_Collections")]
unsafe impl ::windows::core::Interface for ItemCollection {
    type Vtable = super::super::super::Foundation::Collections::IObservableVector_Vtbl<::windows::core::IInspectable>;
    const IID: ::windows::core::GUID = <super::super::super::Foundation::Collections::IObservableVector<::windows::core::IInspectable> as ::windows::core::Interface>::IID;
}
#[cfg(feature = "Foundation_Collections")]
impl ::windows::core::RuntimeName for ItemCollection {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ItemCollection";
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::iter::IntoIterator for ItemCollection {
    type Item = ::windows::core::IInspectable;
    type IntoIter = super::super::super::Foundation::Collections::VectorIterator<Self::Item>;
    fn into_iter(self) -> Self::IntoIter {
        ::core::iter::IntoIterator::into_iter(&self)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::iter::IntoIterator for &ItemCollection {
    type Item = ::windows::core::IInspectable;
    type IntoIter = super::super::super::Foundation::Collections::VectorIterator<Self::Item>;
    fn into_iter(self) -> Self::IntoIter {
        super::super::super::Foundation::Collections::VectorIterator::new(::core::convert::TryInto::try_into(self).ok())
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::From<ItemCollection> for ::windows::core::IUnknown {
    fn from(value: ItemCollection) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::From<&ItemCollection> for ::windows::core::IUnknown {
    fn from(value: &ItemCollection) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ItemCollection {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ItemCollection {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::From<ItemCollection> for ::windows::core::IInspectable {
    fn from(value: ItemCollection) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::From<&ItemCollection> for ::windows::core::IInspectable {
    fn from(value: &ItemCollection) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ItemCollection {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ItemCollection {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::TryFrom<ItemCollection> for super::super::super::Foundation::Collections::IIterable<::windows::core::IInspectable> {
    type Error = ::windows::core::Error;
    fn try_from(value: ItemCollection) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::TryFrom<&ItemCollection> for super::super::super::Foundation::Collections::IIterable<::windows::core::IInspectable> {
    type Error = ::windows::core::Error;
    fn try_from(value: &ItemCollection) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IIterable<::windows::core::IInspectable>> for ItemCollection {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::super::Foundation::Collections::IIterable<::windows::core::IInspectable>> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IIterable<::windows::core::IInspectable>> for &ItemCollection {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::super::Foundation::Collections::IIterable<::windows::core::IInspectable>> {
        ::core::convert::TryInto::<super::super::super::Foundation::Collections::IIterable<::windows::core::IInspectable>>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::TryFrom<ItemCollection> for super::super::super::Foundation::Collections::IObservableVector<::windows::core::IInspectable> {
    type Error = ::windows::core::Error;
    fn try_from(value: ItemCollection) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::TryFrom<&ItemCollection> for super::super::super::Foundation::Collections::IObservableVector<::windows::core::IInspectable> {
    type Error = ::windows::core::Error;
    fn try_from(value: &ItemCollection) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IObservableVector<::windows::core::IInspectable>> for ItemCollection {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::super::Foundation::Collections::IObservableVector<::windows::core::IInspectable>> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IObservableVector<::windows::core::IInspectable>> for &ItemCollection {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::super::Foundation::Collections::IObservableVector<::windows::core::IInspectable>> {
        ::core::convert::TryInto::<super::super::super::Foundation::Collections::IObservableVector<::windows::core::IInspectable>>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::TryFrom<ItemCollection> for super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable> {
    type Error = ::windows::core::Error;
    fn try_from(value: ItemCollection) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::TryFrom<&ItemCollection> for super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable> {
    type Error = ::windows::core::Error;
    fn try_from(value: &ItemCollection) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>> for ItemCollection {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>> for &ItemCollection {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>> {
        ::core::convert::TryInto::<super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "Foundation_Collections")]
unsafe impl ::core::marker::Send for ItemCollection {}
#[cfg(feature = "Foundation_Collections")]
unsafe impl ::core::marker::Sync for ItemCollection {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ItemContainerGenerator(::windows::core::IUnknown);
impl ItemContainerGenerator {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Controls_Primitives"))]
    pub fn ItemsChanged<'a, Param0: ::windows::core::IntoParam<'a, Primitives::ItemsChangedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemsChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveItemsChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveItemsChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'deprecated'*"]
    #[cfg(feature = "deprecated")]
    pub fn ItemFromContainer<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(&self, container: Param0) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemFromContainer)(::core::mem::transmute_copy(this), container.into_param().abi(), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'deprecated'*"]
    #[cfg(feature = "deprecated")]
    pub fn ContainerFromItem<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, item: Param0) -> ::windows::core::Result<super::DependencyObject> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContainerFromItem)(::core::mem::transmute_copy(this), item.into_param().abi(), &mut result__).from_abi::<super::DependencyObject>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'deprecated'*"]
    #[cfg(feature = "deprecated")]
    pub fn IndexFromContainer<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(&self, container: Param0) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IndexFromContainer)(::core::mem::transmute_copy(this), container.into_param().abi(), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'deprecated'*"]
    #[cfg(feature = "deprecated")]
    pub fn ContainerFromIndex(&self, index: i32) -> ::windows::core::Result<super::DependencyObject> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContainerFromIndex)(::core::mem::transmute_copy(this), index, &mut result__).from_abi::<super::DependencyObject>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetItemContainerGeneratorForPanel<'a, Param0: ::windows::core::IntoParam<'a, Panel>>(&self, panel: Param0) -> ::windows::core::Result<ItemContainerGenerator> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetItemContainerGeneratorForPanel)(::core::mem::transmute_copy(this), panel.into_param().abi(), &mut result__).from_abi::<ItemContainerGenerator>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn StartAt<'a, Param0: ::windows::core::IntoParam<'a, Primitives::GeneratorPosition>>(&self, position: Param0, direction: Primitives::GeneratorDirection, allowstartatrealizeditem: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).StartAt)(::core::mem::transmute_copy(this), position.into_param().abi(), direction, allowstartatrealizeditem).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Stop(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Stop)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GenerateNext(&self, isnewlyrealized: &mut bool) -> ::windows::core::Result<super::DependencyObject> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GenerateNext)(::core::mem::transmute_copy(this), isnewlyrealized, &mut result__).from_abi::<super::DependencyObject>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PrepareItemContainer<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(&self, container: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).PrepareItemContainer)(::core::mem::transmute_copy(this), container.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn RemoveAll(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveAll)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn Remove<'a, Param0: ::windows::core::IntoParam<'a, Primitives::GeneratorPosition>>(&self, position: Param0, count: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Remove)(::core::mem::transmute_copy(this), position.into_param().abi(), count).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn GeneratorPositionFromIndex(&self, itemindex: i32) -> ::windows::core::Result<Primitives::GeneratorPosition> {
        let this = self;
        unsafe {
            let mut result__: Primitives::GeneratorPosition = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GeneratorPositionFromIndex)(::core::mem::transmute_copy(this), itemindex, &mut result__).from_abi::<Primitives::GeneratorPosition>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn IndexFromGeneratorPosition<'a, Param0: ::windows::core::IntoParam<'a, Primitives::GeneratorPosition>>(&self, position: Param0) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IndexFromGeneratorPosition)(::core::mem::transmute_copy(this), position.into_param().abi(), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn Recycle<'a, Param0: ::windows::core::IntoParam<'a, Primitives::GeneratorPosition>>(&self, position: Param0, count: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Recycle)(::core::mem::transmute_copy(this), position.into_param().abi(), count).ok() }
    }
}
impl ::core::clone::Clone for ItemContainerGenerator {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ItemContainerGenerator {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ItemContainerGenerator {}
impl ::core::fmt::Debug for ItemContainerGenerator {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ItemContainerGenerator").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ItemContainerGenerator {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ItemContainerGenerator;{40765f00-83f0-4d7f-b1b8-f19de4f1d5da})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ItemContainerGenerator {
    type Vtable = IItemContainerGenerator_Vtbl;
    const IID: ::windows::core::GUID = <IItemContainerGenerator as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ItemContainerGenerator {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ItemContainerGenerator";
}
impl ::core::convert::From<ItemContainerGenerator> for ::windows::core::IUnknown {
    fn from(value: ItemContainerGenerator) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ItemContainerGenerator> for ::windows::core::IUnknown {
    fn from(value: &ItemContainerGenerator) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ItemContainerGenerator {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ItemContainerGenerator {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ItemContainerGenerator> for ::windows::core::IInspectable {
    fn from(value: ItemContainerGenerator) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ItemContainerGenerator> for ::windows::core::IInspectable {
    fn from(value: &ItemContainerGenerator) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ItemContainerGenerator {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ItemContainerGenerator {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for ItemContainerGenerator {}
unsafe impl ::core::marker::Sync for ItemContainerGenerator {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ItemsControl(::windows::core::IUnknown);
impl ItemsControl {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemFromContainer<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(&self, container: Param0) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = &::windows::core::Interface::cast::<IItemContainerMapping>(self)?;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemFromContainer)(::core::mem::transmute_copy(this), container.into_param().abi(), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContainerFromItem<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, item: Param0) -> ::windows::core::Result<super::DependencyObject> {
        let this = &::windows::core::Interface::cast::<IItemContainerMapping>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContainerFromItem)(::core::mem::transmute_copy(this), item.into_param().abi(), &mut result__).from_abi::<super::DependencyObject>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IndexFromContainer<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(&self, container: Param0) -> ::windows::core::Result<i32> {
        let this = &::windows::core::Interface::cast::<IItemContainerMapping>(self)?;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IndexFromContainer)(::core::mem::transmute_copy(this), container.into_param().abi(), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContainerFromIndex(&self, index: i32) -> ::windows::core::Result<super::DependencyObject> {
        let this = &::windows::core::Interface::cast::<IItemContainerMapping>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContainerFromIndex)(::core::mem::transmute_copy(this), index, &mut result__).from_abi::<super::DependencyObject>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemsSource(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemsSource)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetItemsSource<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetItemsSource)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn Items(&self) -> ::windows::core::Result<ItemCollection> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Items)(::core::mem::transmute_copy(this), &mut result__).from_abi::<ItemCollection>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemTemplate(&self) -> ::windows::core::Result<super::DataTemplate> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemTemplate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetItemTemplate<'a, Param0: ::windows::core::IntoParam<'a, super::DataTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetItemTemplate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemTemplateSelector(&self) -> ::windows::core::Result<DataTemplateSelector> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemTemplateSelector)(::core::mem::transmute_copy(this), &mut result__).from_abi::<DataTemplateSelector>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetItemTemplateSelector<'a, Param0: ::windows::core::IntoParam<'a, DataTemplateSelector>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetItemTemplateSelector)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemsPanel(&self) -> ::windows::core::Result<ItemsPanelTemplate> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemsPanel)(::core::mem::transmute_copy(this), &mut result__).from_abi::<ItemsPanelTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetItemsPanel<'a, Param0: ::windows::core::IntoParam<'a, ItemsPanelTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetItemsPanel)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DisplayMemberPath(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DisplayMemberPath)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDisplayMemberPath<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetDisplayMemberPath)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemContainerStyle(&self) -> ::windows::core::Result<super::Style> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemContainerStyle)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Style>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetItemContainerStyle<'a, Param0: ::windows::core::IntoParam<'a, super::Style>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetItemContainerStyle)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemContainerStyleSelector(&self) -> ::windows::core::Result<StyleSelector> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemContainerStyleSelector)(::core::mem::transmute_copy(this), &mut result__).from_abi::<StyleSelector>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetItemContainerStyleSelector<'a, Param0: ::windows::core::IntoParam<'a, StyleSelector>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetItemContainerStyleSelector)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemContainerGenerator(&self) -> ::windows::core::Result<ItemContainerGenerator> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemContainerGenerator)(::core::mem::transmute_copy(this), &mut result__).from_abi::<ItemContainerGenerator>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'UI_Xaml_Media_Animation'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub fn ItemContainerTransitions(&self) -> ::windows::core::Result<super::Media::Animation::TransitionCollection> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemContainerTransitions)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Animation::TransitionCollection>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'UI_Xaml_Media_Animation'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub fn SetItemContainerTransitions<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Animation::TransitionCollection>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetItemContainerTransitions)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn GroupStyle(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IObservableVector<GroupStyle>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GroupStyle)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IObservableVector<GroupStyle>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GroupStyleSelector(&self) -> ::windows::core::Result<GroupStyleSelector> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GroupStyleSelector)(::core::mem::transmute_copy(this), &mut result__).from_abi::<GroupStyleSelector>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetGroupStyleSelector<'a, Param0: ::windows::core::IntoParam<'a, GroupStyleSelector>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetGroupStyleSelector)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsGrouping(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsGrouping)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemsPanelRoot(&self) -> ::windows::core::Result<Panel> {
        let this = &::windows::core::Interface::cast::<IItemsControl2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemsPanelRoot)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Panel>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GroupHeaderContainerFromItemContainer<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(&self, itemcontainer: Param0) -> ::windows::core::Result<super::DependencyObject> {
        let this = &::windows::core::Interface::cast::<IItemsControl3>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GroupHeaderContainerFromItemContainer)(::core::mem::transmute_copy(this), itemcontainer.into_param().abi(), &mut result__).from_abi::<super::DependencyObject>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<ItemsControl> {
        Self::IItemsControlFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<ItemsControl>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<ItemsControl> {
        Self::IItemsControlFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<ItemsControl>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemsSourceProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IItemsControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemsSourceProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemTemplateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IItemsControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemTemplateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemTemplateSelectorProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IItemsControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemTemplateSelectorProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemsPanelProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IItemsControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemsPanelProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DisplayMemberPathProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IItemsControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DisplayMemberPathProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemContainerStyleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IItemsControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemContainerStyleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemContainerStyleSelectorProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IItemsControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemContainerStyleSelectorProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemContainerTransitionsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IItemsControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemContainerTransitionsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GroupStyleSelectorProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IItemsControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GroupStyleSelectorProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsGroupingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IItemsControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsGroupingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetItemsOwner<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0) -> ::windows::core::Result<ItemsControl> {
        Self::IItemsControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetItemsOwner)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<ItemsControl>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemsControlFromItemContainer<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(container: Param0) -> ::windows::core::Result<ItemsControl> {
        Self::IItemsControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemsControlFromItemContainer)(::core::mem::transmute_copy(this), container.into_param().abi(), &mut result__).from_abi::<ItemsControl>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IItemsControlFactory<R, F: FnOnce(&IItemsControlFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ItemsControl, IItemsControlFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IItemsControlStatics<R, F: FnOnce(&IItemsControlStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ItemsControl, IItemsControlStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for ItemsControl {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ItemsControl {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ItemsControl {}
impl ::core::fmt::Debug for ItemsControl {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ItemsControl").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ItemsControl {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ItemsControl;{f4a91dd8-d979-4381-8652-bda0342a765e})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ItemsControl {
    type Vtable = IItemsControl_Vtbl;
    const IID: ::windows::core::GUID = <IItemsControl as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ItemsControl {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ItemsControl";
}
impl ::core::convert::From<ItemsControl> for ::windows::core::IUnknown {
    fn from(value: ItemsControl) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ItemsControl> for ::windows::core::IUnknown {
    fn from(value: &ItemsControl) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ItemsControl {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ItemsControl {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ItemsControl> for ::windows::core::IInspectable {
    fn from(value: ItemsControl) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ItemsControl> for ::windows::core::IInspectable {
    fn from(value: &ItemsControl) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ItemsControl {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ItemsControl {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ItemsControl> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: ItemsControl) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ItemsControl> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &ItemsControl) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for ItemsControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &ItemsControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::TryFrom<ItemsControl> for IItemContainerMapping {
    type Error = ::windows::core::Error;
    fn try_from(value: ItemsControl) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
impl ::core::convert::TryFrom<&ItemsControl> for IItemContainerMapping {
    type Error = ::windows::core::Error;
    fn try_from(value: &ItemsControl) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IItemContainerMapping> for ItemsControl {
    fn into_param(self) -> ::windows::core::Param<'a, IItemContainerMapping> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IItemContainerMapping> for &ItemsControl {
    fn into_param(self) -> ::windows::core::Param<'a, IItemContainerMapping> {
        ::core::convert::TryInto::<IItemContainerMapping>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ItemsControl> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: ItemsControl) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ItemsControl> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &ItemsControl) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for ItemsControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &ItemsControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<ItemsControl> for Control {
    fn from(value: ItemsControl) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ItemsControl> for Control {
    fn from(value: &ItemsControl) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for ItemsControl {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &ItemsControl {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<ItemsControl> for super::FrameworkElement {
    fn from(value: ItemsControl) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ItemsControl> for super::FrameworkElement {
    fn from(value: &ItemsControl) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for ItemsControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &ItemsControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<ItemsControl> for super::UIElement {
    fn from(value: ItemsControl) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ItemsControl> for super::UIElement {
    fn from(value: &ItemsControl) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for ItemsControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &ItemsControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<ItemsControl> for super::DependencyObject {
    fn from(value: ItemsControl) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ItemsControl> for super::DependencyObject {
    fn from(value: &ItemsControl) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for ItemsControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &ItemsControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for ItemsControl {}
unsafe impl ::core::marker::Sync for ItemsControl {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ItemsPanelTemplate(::windows::core::IUnknown);
impl ItemsPanelTemplate {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ItemsPanelTemplate, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for ItemsPanelTemplate {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ItemsPanelTemplate {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ItemsPanelTemplate {}
impl ::core::fmt::Debug for ItemsPanelTemplate {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ItemsPanelTemplate").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ItemsPanelTemplate {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ItemsPanelTemplate;{14ead768-34b2-4b97-bf3c-e8d73230a2aa})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ItemsPanelTemplate {
    type Vtable = IItemsPanelTemplate_Vtbl;
    const IID: ::windows::core::GUID = <IItemsPanelTemplate as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ItemsPanelTemplate {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ItemsPanelTemplate";
}
impl ::core::convert::From<ItemsPanelTemplate> for ::windows::core::IUnknown {
    fn from(value: ItemsPanelTemplate) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ItemsPanelTemplate> for ::windows::core::IUnknown {
    fn from(value: &ItemsPanelTemplate) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ItemsPanelTemplate {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ItemsPanelTemplate {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ItemsPanelTemplate> for ::windows::core::IInspectable {
    fn from(value: ItemsPanelTemplate) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ItemsPanelTemplate> for ::windows::core::IInspectable {
    fn from(value: &ItemsPanelTemplate) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ItemsPanelTemplate {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ItemsPanelTemplate {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ItemsPanelTemplate> for super::FrameworkTemplate {
    fn from(value: ItemsPanelTemplate) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ItemsPanelTemplate> for super::FrameworkTemplate {
    fn from(value: &ItemsPanelTemplate) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkTemplate> for ItemsPanelTemplate {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkTemplate> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkTemplate> for &ItemsPanelTemplate {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkTemplate> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkTemplate>::into(self))
    }
}
impl ::core::convert::From<ItemsPanelTemplate> for super::DependencyObject {
    fn from(value: ItemsPanelTemplate) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ItemsPanelTemplate> for super::DependencyObject {
    fn from(value: &ItemsPanelTemplate) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for ItemsPanelTemplate {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &ItemsPanelTemplate {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for ItemsPanelTemplate {}
unsafe impl ::core::marker::Sync for ItemsPanelTemplate {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ItemsPickedEventArgs(::windows::core::IUnknown);
impl ItemsPickedEventArgs {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ItemsPickedEventArgs, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn AddedItems(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AddedItems)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn RemovedItems(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).RemovedItems)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>>(result__)
        }
    }
}
impl ::core::clone::Clone for ItemsPickedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ItemsPickedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ItemsPickedEventArgs {}
impl ::core::fmt::Debug for ItemsPickedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ItemsPickedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ItemsPickedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ItemsPickedEventArgs;{f95b9aac-a621-488e-9156-8ee31165be04})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ItemsPickedEventArgs {
    type Vtable = IItemsPickedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IItemsPickedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ItemsPickedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ItemsPickedEventArgs";
}
impl ::core::convert::From<ItemsPickedEventArgs> for ::windows::core::IUnknown {
    fn from(value: ItemsPickedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ItemsPickedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &ItemsPickedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ItemsPickedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ItemsPickedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ItemsPickedEventArgs> for ::windows::core::IInspectable {
    fn from(value: ItemsPickedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ItemsPickedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &ItemsPickedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ItemsPickedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ItemsPickedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ItemsPickedEventArgs> for super::DependencyObject {
    fn from(value: ItemsPickedEventArgs) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ItemsPickedEventArgs> for super::DependencyObject {
    fn from(value: &ItemsPickedEventArgs) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for ItemsPickedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &ItemsPickedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for ItemsPickedEventArgs {}
unsafe impl ::core::marker::Sync for ItemsPickedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ItemsPresenter(::windows::core::IUnknown);
impl ItemsPresenter {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ItemsPresenter, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Header(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Header)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeader<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHeader)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTemplate(&self) -> ::windows::core::Result<super::DataTemplate> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTemplate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeaderTemplate<'a, Param0: ::windows::core::IntoParam<'a, super::DataTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHeaderTemplate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'UI_Xaml_Media_Animation'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub fn HeaderTransitions(&self) -> ::windows::core::Result<super::Media::Animation::TransitionCollection> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTransitions)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Animation::TransitionCollection>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'UI_Xaml_Media_Animation'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub fn SetHeaderTransitions<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Animation::TransitionCollection>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHeaderTransitions)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Padding(&self) -> ::windows::core::Result<super::Thickness> {
        let this = self;
        unsafe {
            let mut result__: super::Thickness = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Padding)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Thickness>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPadding<'a, Param0: ::windows::core::IntoParam<'a, super::Thickness>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPadding)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Footer(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = &::windows::core::Interface::cast::<IItemsPresenter2>(self)?;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Footer)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetFooter<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IItemsPresenter2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetFooter)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FooterTemplate(&self) -> ::windows::core::Result<super::DataTemplate> {
        let this = &::windows::core::Interface::cast::<IItemsPresenter2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FooterTemplate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetFooterTemplate<'a, Param0: ::windows::core::IntoParam<'a, super::DataTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IItemsPresenter2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetFooterTemplate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'UI_Xaml_Media_Animation'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub fn FooterTransitions(&self) -> ::windows::core::Result<super::Media::Animation::TransitionCollection> {
        let this = &::windows::core::Interface::cast::<IItemsPresenter2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FooterTransitions)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Animation::TransitionCollection>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'UI_Xaml_Media_Animation'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub fn SetFooterTransitions<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Animation::TransitionCollection>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IItemsPresenter2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetFooterTransitions)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IItemsPresenterStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTemplateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IItemsPresenterStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTemplateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTransitionsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IItemsPresenterStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTransitionsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PaddingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IItemsPresenterStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaddingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FooterProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IItemsPresenterStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FooterProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FooterTemplateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IItemsPresenterStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FooterTemplateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FooterTransitionsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IItemsPresenterStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FooterTransitionsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn AreHorizontalSnapPointsRegular(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<Primitives::IScrollSnapPointsInfo>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AreHorizontalSnapPointsRegular)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn AreVerticalSnapPointsRegular(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<Primitives::IScrollSnapPointsInfo>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AreVerticalSnapPointsRegular)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Controls_Primitives"))]
    pub fn HorizontalSnapPointsChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventHandler<::windows::core::IInspectable>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<Primitives::IScrollSnapPointsInfo>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalSnapPointsChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Controls_Primitives"))]
    pub fn RemoveHorizontalSnapPointsChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<Primitives::IScrollSnapPointsInfo>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveHorizontalSnapPointsChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Controls_Primitives"))]
    pub fn VerticalSnapPointsChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventHandler<::windows::core::IInspectable>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<Primitives::IScrollSnapPointsInfo>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalSnapPointsChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Controls_Primitives"))]
    pub fn RemoveVerticalSnapPointsChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<Primitives::IScrollSnapPointsInfo>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveVerticalSnapPointsChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Controls_Primitives"))]
    pub fn GetIrregularSnapPoints(&self, orientation: Orientation, alignment: Primitives::SnapPointsAlignment) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVectorView<f32>> {
        let this = &::windows::core::Interface::cast::<Primitives::IScrollSnapPointsInfo>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetIrregularSnapPoints)(::core::mem::transmute_copy(this), orientation, alignment, &mut result__).from_abi::<super::super::super::Foundation::Collections::IVectorView<f32>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn GetRegularSnapPoints(&self, orientation: Orientation, alignment: Primitives::SnapPointsAlignment, offset: &mut f32) -> ::windows::core::Result<f32> {
        let this = &::windows::core::Interface::cast::<Primitives::IScrollSnapPointsInfo>(self)?;
        unsafe {
            let mut result__: f32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetRegularSnapPoints)(::core::mem::transmute_copy(this), orientation, alignment, offset, &mut result__).from_abi::<f32>(result__)
        }
    }
    #[doc(hidden)]
    pub fn IItemsPresenterStatics<R, F: FnOnce(&IItemsPresenterStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ItemsPresenter, IItemsPresenterStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IItemsPresenterStatics2<R, F: FnOnce(&IItemsPresenterStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ItemsPresenter, IItemsPresenterStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for ItemsPresenter {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ItemsPresenter {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ItemsPresenter {}
impl ::core::fmt::Debug for ItemsPresenter {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ItemsPresenter").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ItemsPresenter {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ItemsPresenter;{c271569b-6dca-4e2b-8e14-c55136b02a71})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ItemsPresenter {
    type Vtable = IItemsPresenter_Vtbl;
    const IID: ::windows::core::GUID = <IItemsPresenter as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ItemsPresenter {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ItemsPresenter";
}
impl ::core::convert::From<ItemsPresenter> for ::windows::core::IUnknown {
    fn from(value: ItemsPresenter) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ItemsPresenter> for ::windows::core::IUnknown {
    fn from(value: &ItemsPresenter) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ItemsPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ItemsPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ItemsPresenter> for ::windows::core::IInspectable {
    fn from(value: ItemsPresenter) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ItemsPresenter> for ::windows::core::IInspectable {
    fn from(value: &ItemsPresenter) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ItemsPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ItemsPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ItemsPresenter> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: ItemsPresenter) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ItemsPresenter> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &ItemsPresenter) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for ItemsPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &ItemsPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::TryFrom<ItemsPresenter> for Primitives::IScrollSnapPointsInfo {
    type Error = ::windows::core::Error;
    fn try_from(value: ItemsPresenter) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::TryFrom<&ItemsPresenter> for Primitives::IScrollSnapPointsInfo {
    type Error = ::windows::core::Error;
    fn try_from(value: &ItemsPresenter) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::IScrollSnapPointsInfo> for ItemsPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::IScrollSnapPointsInfo> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::IScrollSnapPointsInfo> for &ItemsPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::IScrollSnapPointsInfo> {
        ::core::convert::TryInto::<Primitives::IScrollSnapPointsInfo>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ItemsPresenter> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: ItemsPresenter) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ItemsPresenter> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &ItemsPresenter) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for ItemsPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &ItemsPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<ItemsPresenter> for super::FrameworkElement {
    fn from(value: ItemsPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ItemsPresenter> for super::FrameworkElement {
    fn from(value: &ItemsPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for ItemsPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &ItemsPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<ItemsPresenter> for super::UIElement {
    fn from(value: ItemsPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ItemsPresenter> for super::UIElement {
    fn from(value: &ItemsPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for ItemsPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &ItemsPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<ItemsPresenter> for super::DependencyObject {
    fn from(value: ItemsPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ItemsPresenter> for super::DependencyObject {
    fn from(value: &ItemsPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for ItemsPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &ItemsPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for ItemsPresenter {}
unsafe impl ::core::marker::Sync for ItemsPresenter {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ItemsStackPanel(::windows::core::IUnknown);
impl ItemsStackPanel {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ItemsStackPanel, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GroupPadding(&self) -> ::windows::core::Result<super::Thickness> {
        let this = self;
        unsafe {
            let mut result__: super::Thickness = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GroupPadding)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Thickness>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetGroupPadding<'a, Param0: ::windows::core::IntoParam<'a, super::Thickness>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetGroupPadding)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Orientation(&self) -> ::windows::core::Result<Orientation> {
        let this = self;
        unsafe {
            let mut result__: Orientation = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Orientation)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Orientation>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetOrientation(&self, value: Orientation) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetOrientation)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FirstCacheIndex(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FirstCacheIndex)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FirstVisibleIndex(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FirstVisibleIndex)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LastVisibleIndex(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LastVisibleIndex)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LastCacheIndex(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LastCacheIndex)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ScrollingDirection(&self) -> ::windows::core::Result<PanelScrollingDirection> {
        let this = self;
        unsafe {
            let mut result__: PanelScrollingDirection = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ScrollingDirection)(::core::mem::transmute_copy(this), &mut result__).from_abi::<PanelScrollingDirection>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn GroupHeaderPlacement(&self) -> ::windows::core::Result<Primitives::GroupHeaderPlacement> {
        let this = self;
        unsafe {
            let mut result__: Primitives::GroupHeaderPlacement = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GroupHeaderPlacement)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::GroupHeaderPlacement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn SetGroupHeaderPlacement(&self, value: Primitives::GroupHeaderPlacement) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetGroupHeaderPlacement)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemsUpdatingScrollMode(&self) -> ::windows::core::Result<ItemsUpdatingScrollMode> {
        let this = self;
        unsafe {
            let mut result__: ItemsUpdatingScrollMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemsUpdatingScrollMode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<ItemsUpdatingScrollMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetItemsUpdatingScrollMode(&self, value: ItemsUpdatingScrollMode) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetItemsUpdatingScrollMode)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CacheLength(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CacheLength)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCacheLength(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCacheLength)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AreStickyGroupHeadersEnabled(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IItemsStackPanel2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AreStickyGroupHeadersEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetAreStickyGroupHeadersEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IItemsStackPanel2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetAreStickyGroupHeadersEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GroupPaddingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IItemsStackPanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GroupPaddingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OrientationProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IItemsStackPanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OrientationProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GroupHeaderPlacementProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IItemsStackPanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GroupHeaderPlacementProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CacheLengthProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IItemsStackPanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CacheLengthProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AreStickyGroupHeadersEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IItemsStackPanelStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AreStickyGroupHeadersEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IItemsStackPanelStatics<R, F: FnOnce(&IItemsStackPanelStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ItemsStackPanel, IItemsStackPanelStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IItemsStackPanelStatics2<R, F: FnOnce(&IItemsStackPanelStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ItemsStackPanel, IItemsStackPanelStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for ItemsStackPanel {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ItemsStackPanel {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ItemsStackPanel {}
impl ::core::fmt::Debug for ItemsStackPanel {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ItemsStackPanel").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ItemsStackPanel {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ItemsStackPanel;{df7ab79d-7ad5-4b58-9363-919af90226e6})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ItemsStackPanel {
    type Vtable = IItemsStackPanel_Vtbl;
    const IID: ::windows::core::GUID = <IItemsStackPanel as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ItemsStackPanel {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ItemsStackPanel";
}
impl ::core::convert::From<ItemsStackPanel> for ::windows::core::IUnknown {
    fn from(value: ItemsStackPanel) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ItemsStackPanel> for ::windows::core::IUnknown {
    fn from(value: &ItemsStackPanel) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ItemsStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ItemsStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ItemsStackPanel> for ::windows::core::IInspectable {
    fn from(value: ItemsStackPanel) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ItemsStackPanel> for ::windows::core::IInspectable {
    fn from(value: &ItemsStackPanel) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ItemsStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ItemsStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ItemsStackPanel> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: ItemsStackPanel) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ItemsStackPanel> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &ItemsStackPanel) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for ItemsStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &ItemsStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ItemsStackPanel> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: ItemsStackPanel) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ItemsStackPanel> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &ItemsStackPanel) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for ItemsStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &ItemsStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<ItemsStackPanel> for Panel {
    fn from(value: ItemsStackPanel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ItemsStackPanel> for Panel {
    fn from(value: &ItemsStackPanel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Panel> for ItemsStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, Panel> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Panel> for &ItemsStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, Panel> {
        ::windows::core::Param::Owned(::core::convert::Into::<Panel>::into(self))
    }
}
impl ::core::convert::From<ItemsStackPanel> for super::FrameworkElement {
    fn from(value: ItemsStackPanel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ItemsStackPanel> for super::FrameworkElement {
    fn from(value: &ItemsStackPanel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for ItemsStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &ItemsStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<ItemsStackPanel> for super::UIElement {
    fn from(value: ItemsStackPanel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ItemsStackPanel> for super::UIElement {
    fn from(value: &ItemsStackPanel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for ItemsStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &ItemsStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<ItemsStackPanel> for super::DependencyObject {
    fn from(value: ItemsStackPanel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ItemsStackPanel> for super::DependencyObject {
    fn from(value: &ItemsStackPanel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for ItemsStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &ItemsStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for ItemsStackPanel {}
unsafe impl ::core::marker::Sync for ItemsStackPanel {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct ItemsUpdatingScrollMode(pub i32);
impl ItemsUpdatingScrollMode {
    pub const KeepItemsInView: Self = Self(0i32);
    pub const KeepScrollOffset: Self = Self(1i32);
    pub const KeepLastItemInView: Self = Self(2i32);
}
impl ::core::marker::Copy for ItemsUpdatingScrollMode {}
impl ::core::clone::Clone for ItemsUpdatingScrollMode {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ItemsUpdatingScrollMode {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ItemsUpdatingScrollMode {
    type Abi = Self;
}
impl ::core::fmt::Debug for ItemsUpdatingScrollMode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ItemsUpdatingScrollMode").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ItemsUpdatingScrollMode {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.ItemsUpdatingScrollMode;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ItemsWrapGrid(::windows::core::IUnknown);
impl ItemsWrapGrid {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ItemsWrapGrid, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GroupPadding(&self) -> ::windows::core::Result<super::Thickness> {
        let this = self;
        unsafe {
            let mut result__: super::Thickness = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GroupPadding)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Thickness>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetGroupPadding<'a, Param0: ::windows::core::IntoParam<'a, super::Thickness>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetGroupPadding)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Orientation(&self) -> ::windows::core::Result<Orientation> {
        let this = self;
        unsafe {
            let mut result__: Orientation = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Orientation)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Orientation>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetOrientation(&self, value: Orientation) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetOrientation)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaximumRowsOrColumns(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaximumRowsOrColumns)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMaximumRowsOrColumns(&self, value: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMaximumRowsOrColumns)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemWidth(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemWidth)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetItemWidth(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetItemWidth)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemHeight(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemHeight)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetItemHeight(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetItemHeight)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FirstCacheIndex(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FirstCacheIndex)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FirstVisibleIndex(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FirstVisibleIndex)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LastVisibleIndex(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LastVisibleIndex)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LastCacheIndex(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LastCacheIndex)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ScrollingDirection(&self) -> ::windows::core::Result<PanelScrollingDirection> {
        let this = self;
        unsafe {
            let mut result__: PanelScrollingDirection = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ScrollingDirection)(::core::mem::transmute_copy(this), &mut result__).from_abi::<PanelScrollingDirection>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn GroupHeaderPlacement(&self) -> ::windows::core::Result<Primitives::GroupHeaderPlacement> {
        let this = self;
        unsafe {
            let mut result__: Primitives::GroupHeaderPlacement = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GroupHeaderPlacement)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::GroupHeaderPlacement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn SetGroupHeaderPlacement(&self, value: Primitives::GroupHeaderPlacement) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetGroupHeaderPlacement)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CacheLength(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CacheLength)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCacheLength(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCacheLength)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AreStickyGroupHeadersEnabled(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IItemsWrapGrid2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AreStickyGroupHeadersEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetAreStickyGroupHeadersEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IItemsWrapGrid2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetAreStickyGroupHeadersEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GroupPaddingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IItemsWrapGridStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GroupPaddingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OrientationProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IItemsWrapGridStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OrientationProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaximumRowsOrColumnsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IItemsWrapGridStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaximumRowsOrColumnsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemWidthProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IItemsWrapGridStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemWidthProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemHeightProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IItemsWrapGridStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemHeightProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GroupHeaderPlacementProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IItemsWrapGridStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GroupHeaderPlacementProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CacheLengthProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IItemsWrapGridStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CacheLengthProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AreStickyGroupHeadersEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IItemsWrapGridStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AreStickyGroupHeadersEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IItemsWrapGridStatics<R, F: FnOnce(&IItemsWrapGridStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ItemsWrapGrid, IItemsWrapGridStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IItemsWrapGridStatics2<R, F: FnOnce(&IItemsWrapGridStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ItemsWrapGrid, IItemsWrapGridStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for ItemsWrapGrid {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ItemsWrapGrid {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ItemsWrapGrid {}
impl ::core::fmt::Debug for ItemsWrapGrid {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ItemsWrapGrid").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ItemsWrapGrid {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ItemsWrapGrid;{ddfe6b5f-ba88-4a7d-8a5b-e58caf0f4e2d})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ItemsWrapGrid {
    type Vtable = IItemsWrapGrid_Vtbl;
    const IID: ::windows::core::GUID = <IItemsWrapGrid as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ItemsWrapGrid {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ItemsWrapGrid";
}
impl ::core::convert::From<ItemsWrapGrid> for ::windows::core::IUnknown {
    fn from(value: ItemsWrapGrid) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ItemsWrapGrid> for ::windows::core::IUnknown {
    fn from(value: &ItemsWrapGrid) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ItemsWrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ItemsWrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ItemsWrapGrid> for ::windows::core::IInspectable {
    fn from(value: ItemsWrapGrid) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ItemsWrapGrid> for ::windows::core::IInspectable {
    fn from(value: &ItemsWrapGrid) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ItemsWrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ItemsWrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ItemsWrapGrid> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: ItemsWrapGrid) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ItemsWrapGrid> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &ItemsWrapGrid) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for ItemsWrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &ItemsWrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ItemsWrapGrid> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: ItemsWrapGrid) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ItemsWrapGrid> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &ItemsWrapGrid) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for ItemsWrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &ItemsWrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<ItemsWrapGrid> for Panel {
    fn from(value: ItemsWrapGrid) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ItemsWrapGrid> for Panel {
    fn from(value: &ItemsWrapGrid) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Panel> for ItemsWrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, Panel> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Panel> for &ItemsWrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, Panel> {
        ::windows::core::Param::Owned(::core::convert::Into::<Panel>::into(self))
    }
}
impl ::core::convert::From<ItemsWrapGrid> for super::FrameworkElement {
    fn from(value: ItemsWrapGrid) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ItemsWrapGrid> for super::FrameworkElement {
    fn from(value: &ItemsWrapGrid) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for ItemsWrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &ItemsWrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<ItemsWrapGrid> for super::UIElement {
    fn from(value: ItemsWrapGrid) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ItemsWrapGrid> for super::UIElement {
    fn from(value: &ItemsWrapGrid) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for ItemsWrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &ItemsWrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<ItemsWrapGrid> for super::DependencyObject {
    fn from(value: ItemsWrapGrid) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ItemsWrapGrid> for super::DependencyObject {
    fn from(value: &ItemsWrapGrid) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for ItemsWrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &ItemsWrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for ItemsWrapGrid {}
unsafe impl ::core::marker::Sync for ItemsWrapGrid {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct LightDismissOverlayMode(pub i32);
impl LightDismissOverlayMode {
    pub const Auto: Self = Self(0i32);
    pub const On: Self = Self(1i32);
    pub const Off: Self = Self(2i32);
}
impl ::core::marker::Copy for LightDismissOverlayMode {}
impl ::core::clone::Clone for LightDismissOverlayMode {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for LightDismissOverlayMode {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for LightDismissOverlayMode {
    type Abi = Self;
}
impl ::core::fmt::Debug for LightDismissOverlayMode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("LightDismissOverlayMode").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for LightDismissOverlayMode {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.LightDismissOverlayMode;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ListBox(::windows::core::IUnknown);
impl ListBox {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn SelectedItems(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedItems)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionMode(&self) -> ::windows::core::Result<SelectionMode> {
        let this = self;
        unsafe {
            let mut result__: SelectionMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionMode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<SelectionMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSelectionMode(&self, value: SelectionMode) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectionMode)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ScrollIntoView<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, item: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).ScrollIntoView)(::core::mem::transmute_copy(this), item.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectAll(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SelectAll)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SingleSelectionFollowsFocus(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IListBox2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SingleSelectionFollowsFocus)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSingleSelectionFollowsFocus(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IListBox2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetSingleSelectionFollowsFocus)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<ListBox> {
        Self::IListBoxFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<ListBox>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<ListBox> {
        Self::IListBoxFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<ListBox>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionModeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IListBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionModeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SingleSelectionFollowsFocusProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IListBoxStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SingleSelectionFollowsFocusProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IListBoxFactory<R, F: FnOnce(&IListBoxFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ListBox, IListBoxFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IListBoxStatics<R, F: FnOnce(&IListBoxStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ListBox, IListBoxStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IListBoxStatics2<R, F: FnOnce(&IListBoxStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ListBox, IListBoxStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for ListBox {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ListBox {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ListBox {}
impl ::core::fmt::Debug for ListBox {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ListBox").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ListBox {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ListBox;{e9f3b9ff-8e91-4ecf-a707-c927f694f881})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ListBox {
    type Vtable = IListBox_Vtbl;
    const IID: ::windows::core::GUID = <IListBox as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ListBox {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ListBox";
}
impl ::core::convert::From<ListBox> for ::windows::core::IUnknown {
    fn from(value: ListBox) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ListBox> for ::windows::core::IUnknown {
    fn from(value: &ListBox) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ListBox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ListBox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ListBox> for ::windows::core::IInspectable {
    fn from(value: ListBox) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ListBox> for ::windows::core::IInspectable {
    fn from(value: &ListBox) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ListBox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ListBox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ListBox> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: ListBox) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ListBox> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &ListBox) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for ListBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &ListBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::TryFrom<ListBox> for IItemContainerMapping {
    type Error = ::windows::core::Error;
    fn try_from(value: ListBox) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
impl ::core::convert::TryFrom<&ListBox> for IItemContainerMapping {
    type Error = ::windows::core::Error;
    fn try_from(value: &ListBox) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IItemContainerMapping> for ListBox {
    fn into_param(self) -> ::windows::core::Param<'a, IItemContainerMapping> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IItemContainerMapping> for &ListBox {
    fn into_param(self) -> ::windows::core::Param<'a, IItemContainerMapping> {
        ::core::convert::TryInto::<IItemContainerMapping>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ListBox> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: ListBox) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ListBox> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &ListBox) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for ListBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &ListBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<ListBox> for Primitives::Selector {
    fn from(value: ListBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&ListBox> for Primitives::Selector {
    fn from(value: &ListBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::Selector> for ListBox {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::Selector> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::Selector> for &ListBox {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::Selector> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::Selector>::into(self))
    }
}
impl ::core::convert::From<ListBox> for ItemsControl {
    fn from(value: ListBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListBox> for ItemsControl {
    fn from(value: &ListBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ItemsControl> for ListBox {
    fn into_param(self) -> ::windows::core::Param<'a, ItemsControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ItemsControl> for &ListBox {
    fn into_param(self) -> ::windows::core::Param<'a, ItemsControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ItemsControl>::into(self))
    }
}
impl ::core::convert::From<ListBox> for Control {
    fn from(value: ListBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListBox> for Control {
    fn from(value: &ListBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for ListBox {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &ListBox {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<ListBox> for super::FrameworkElement {
    fn from(value: ListBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListBox> for super::FrameworkElement {
    fn from(value: &ListBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for ListBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &ListBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<ListBox> for super::UIElement {
    fn from(value: ListBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListBox> for super::UIElement {
    fn from(value: &ListBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for ListBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &ListBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<ListBox> for super::DependencyObject {
    fn from(value: ListBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListBox> for super::DependencyObject {
    fn from(value: &ListBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for ListBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &ListBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for ListBox {}
unsafe impl ::core::marker::Sync for ListBox {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ListBoxItem(::windows::core::IUnknown);
impl ListBoxItem {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<ListBoxItem> {
        Self::IListBoxItemFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<ListBoxItem>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<ListBoxItem> {
        Self::IListBoxItemFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<ListBoxItem>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IListBoxItemFactory<R, F: FnOnce(&IListBoxItemFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ListBoxItem, IListBoxItemFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for ListBoxItem {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ListBoxItem {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ListBoxItem {}
impl ::core::fmt::Debug for ListBoxItem {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ListBoxItem").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ListBoxItem {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ListBoxItem;{43c13323-6edf-4e4b-b6b2-3a93eec41d95})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ListBoxItem {
    type Vtable = IListBoxItem_Vtbl;
    const IID: ::windows::core::GUID = <IListBoxItem as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ListBoxItem {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ListBoxItem";
}
impl ::core::convert::From<ListBoxItem> for ::windows::core::IUnknown {
    fn from(value: ListBoxItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ListBoxItem> for ::windows::core::IUnknown {
    fn from(value: &ListBoxItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ListBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ListBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ListBoxItem> for ::windows::core::IInspectable {
    fn from(value: ListBoxItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ListBoxItem> for ::windows::core::IInspectable {
    fn from(value: &ListBoxItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ListBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ListBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ListBoxItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: ListBoxItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ListBoxItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &ListBoxItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for ListBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &ListBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ListBoxItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: ListBoxItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ListBoxItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &ListBoxItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for ListBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &ListBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<ListBoxItem> for Primitives::SelectorItem {
    fn from(value: ListBoxItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&ListBoxItem> for Primitives::SelectorItem {
    fn from(value: &ListBoxItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::SelectorItem> for ListBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::SelectorItem> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::SelectorItem> for &ListBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::SelectorItem> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::SelectorItem>::into(self))
    }
}
impl ::core::convert::From<ListBoxItem> for ContentControl {
    fn from(value: ListBoxItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListBoxItem> for ContentControl {
    fn from(value: &ListBoxItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for ListBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &ListBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<ListBoxItem> for Control {
    fn from(value: ListBoxItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListBoxItem> for Control {
    fn from(value: &ListBoxItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for ListBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &ListBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<ListBoxItem> for super::FrameworkElement {
    fn from(value: ListBoxItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListBoxItem> for super::FrameworkElement {
    fn from(value: &ListBoxItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for ListBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &ListBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<ListBoxItem> for super::UIElement {
    fn from(value: ListBoxItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListBoxItem> for super::UIElement {
    fn from(value: &ListBoxItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for ListBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &ListBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<ListBoxItem> for super::DependencyObject {
    fn from(value: ListBoxItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListBoxItem> for super::DependencyObject {
    fn from(value: &ListBoxItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for ListBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &ListBoxItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for ListBoxItem {}
unsafe impl ::core::marker::Sync for ListBoxItem {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ListPickerFlyout(::windows::core::IUnknown);
impl ListPickerFlyout {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ListPickerFlyout, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemsSource(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemsSource)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetItemsSource<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetItemsSource)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemTemplate(&self) -> ::windows::core::Result<super::DataTemplate> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemTemplate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetItemTemplate<'a, Param0: ::windows::core::IntoParam<'a, super::DataTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetItemTemplate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DisplayMemberPath(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DisplayMemberPath)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDisplayMemberPath<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetDisplayMemberPath)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionMode(&self) -> ::windows::core::Result<ListPickerFlyoutSelectionMode> {
        let this = self;
        unsafe {
            let mut result__: ListPickerFlyoutSelectionMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionMode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<ListPickerFlyoutSelectionMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSelectionMode(&self, value: ListPickerFlyoutSelectionMode) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectionMode)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedIndex(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedIndex)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSelectedIndex(&self, value: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectedIndex)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedItem(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedItem)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSelectedItem<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectedItem)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedValue(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedValue)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSelectedValue<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectedValue)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedValuePath(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedValuePath)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSelectedValuePath<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectedValuePath)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn SelectedItems(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedItems)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ItemsPicked<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<ListPickerFlyout, ItemsPickedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemsPicked)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveItemsPicked<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveItemsPicked)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn ShowAtAsync<'a, Param0: ::windows::core::IntoParam<'a, super::FrameworkElement>>(&self, target: Param0) -> ::windows::core::Result<super::super::super::Foundation::IAsyncOperation<super::super::super::Foundation::Collections::IVectorView<::windows::core::IInspectable>>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ShowAtAsync)(::core::mem::transmute_copy(this), target.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::IAsyncOperation<super::super::super::Foundation::Collections::IVectorView<::windows::core::IInspectable>>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemsSourceProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IListPickerFlyoutStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemsSourceProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemTemplateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IListPickerFlyoutStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemTemplateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DisplayMemberPathProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IListPickerFlyoutStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DisplayMemberPathProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionModeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IListPickerFlyoutStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionModeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedIndexProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IListPickerFlyoutStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedIndexProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedItemProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IListPickerFlyoutStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedItemProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedValueProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IListPickerFlyoutStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedValueProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedValuePathProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IListPickerFlyoutStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedValuePathProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IListPickerFlyoutStatics<R, F: FnOnce(&IListPickerFlyoutStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ListPickerFlyout, IListPickerFlyoutStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for ListPickerFlyout {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ListPickerFlyout {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ListPickerFlyout {}
impl ::core::fmt::Debug for ListPickerFlyout {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ListPickerFlyout").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ListPickerFlyout {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ListPickerFlyout;{0f0cb9d7-e5f3-45e6-9063-ff7bbb193c47})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ListPickerFlyout {
    type Vtable = IListPickerFlyout_Vtbl;
    const IID: ::windows::core::GUID = <IListPickerFlyout as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ListPickerFlyout {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ListPickerFlyout";
}
impl ::core::convert::From<ListPickerFlyout> for ::windows::core::IUnknown {
    fn from(value: ListPickerFlyout) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ListPickerFlyout> for ::windows::core::IUnknown {
    fn from(value: &ListPickerFlyout) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ListPickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ListPickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ListPickerFlyout> for ::windows::core::IInspectable {
    fn from(value: ListPickerFlyout) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ListPickerFlyout> for ::windows::core::IInspectable {
    fn from(value: &ListPickerFlyout) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ListPickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ListPickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<ListPickerFlyout> for Primitives::PickerFlyoutBase {
    fn from(value: ListPickerFlyout) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&ListPickerFlyout> for Primitives::PickerFlyoutBase {
    fn from(value: &ListPickerFlyout) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::PickerFlyoutBase> for ListPickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::PickerFlyoutBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::PickerFlyoutBase> for &ListPickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::PickerFlyoutBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::PickerFlyoutBase>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<ListPickerFlyout> for Primitives::FlyoutBase {
    fn from(value: ListPickerFlyout) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&ListPickerFlyout> for Primitives::FlyoutBase {
    fn from(value: &ListPickerFlyout) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::FlyoutBase> for ListPickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::FlyoutBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::FlyoutBase> for &ListPickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::FlyoutBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::FlyoutBase>::into(self))
    }
}
impl ::core::convert::From<ListPickerFlyout> for super::DependencyObject {
    fn from(value: ListPickerFlyout) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListPickerFlyout> for super::DependencyObject {
    fn from(value: &ListPickerFlyout) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for ListPickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &ListPickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for ListPickerFlyout {}
unsafe impl ::core::marker::Sync for ListPickerFlyout {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ListPickerFlyoutPresenter(::windows::core::IUnknown);
impl ListPickerFlyoutPresenter {}
impl ::core::clone::Clone for ListPickerFlyoutPresenter {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ListPickerFlyoutPresenter {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ListPickerFlyoutPresenter {}
impl ::core::fmt::Debug for ListPickerFlyoutPresenter {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ListPickerFlyoutPresenter").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ListPickerFlyoutPresenter {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ListPickerFlyoutPresenter;{68155fb3-883e-417a-80d0-e2fd88410084})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ListPickerFlyoutPresenter {
    type Vtable = IListPickerFlyoutPresenter_Vtbl;
    const IID: ::windows::core::GUID = <IListPickerFlyoutPresenter as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ListPickerFlyoutPresenter {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ListPickerFlyoutPresenter";
}
impl ::core::convert::From<ListPickerFlyoutPresenter> for ::windows::core::IUnknown {
    fn from(value: ListPickerFlyoutPresenter) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ListPickerFlyoutPresenter> for ::windows::core::IUnknown {
    fn from(value: &ListPickerFlyoutPresenter) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ListPickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ListPickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ListPickerFlyoutPresenter> for ::windows::core::IInspectable {
    fn from(value: ListPickerFlyoutPresenter) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ListPickerFlyoutPresenter> for ::windows::core::IInspectable {
    fn from(value: &ListPickerFlyoutPresenter) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ListPickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ListPickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ListPickerFlyoutPresenter> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: ListPickerFlyoutPresenter) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ListPickerFlyoutPresenter> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &ListPickerFlyoutPresenter) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for ListPickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &ListPickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ListPickerFlyoutPresenter> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: ListPickerFlyoutPresenter) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ListPickerFlyoutPresenter> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &ListPickerFlyoutPresenter) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for ListPickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &ListPickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<ListPickerFlyoutPresenter> for Control {
    fn from(value: ListPickerFlyoutPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListPickerFlyoutPresenter> for Control {
    fn from(value: &ListPickerFlyoutPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for ListPickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &ListPickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<ListPickerFlyoutPresenter> for super::FrameworkElement {
    fn from(value: ListPickerFlyoutPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListPickerFlyoutPresenter> for super::FrameworkElement {
    fn from(value: &ListPickerFlyoutPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for ListPickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &ListPickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<ListPickerFlyoutPresenter> for super::UIElement {
    fn from(value: ListPickerFlyoutPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListPickerFlyoutPresenter> for super::UIElement {
    fn from(value: &ListPickerFlyoutPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for ListPickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &ListPickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<ListPickerFlyoutPresenter> for super::DependencyObject {
    fn from(value: ListPickerFlyoutPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListPickerFlyoutPresenter> for super::DependencyObject {
    fn from(value: &ListPickerFlyoutPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for ListPickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &ListPickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for ListPickerFlyoutPresenter {}
unsafe impl ::core::marker::Sync for ListPickerFlyoutPresenter {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct ListPickerFlyoutSelectionMode(pub i32);
impl ListPickerFlyoutSelectionMode {
    pub const Single: Self = Self(0i32);
    pub const Multiple: Self = Self(1i32);
}
impl ::core::marker::Copy for ListPickerFlyoutSelectionMode {}
impl ::core::clone::Clone for ListPickerFlyoutSelectionMode {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ListPickerFlyoutSelectionMode {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ListPickerFlyoutSelectionMode {
    type Abi = Self;
}
impl ::core::fmt::Debug for ListPickerFlyoutSelectionMode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ListPickerFlyoutSelectionMode").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ListPickerFlyoutSelectionMode {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.ListPickerFlyoutSelectionMode;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ListView(::windows::core::IUnknown);
impl ListView {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<ListView> {
        Self::IListViewFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<ListView>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<ListView> {
        Self::IListViewFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<ListView>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IListViewFactory<R, F: FnOnce(&IListViewFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ListView, IListViewFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for ListView {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ListView {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ListView {}
impl ::core::fmt::Debug for ListView {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ListView").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ListView {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ListView;{f6ce8c6d-fe96-41ad-a64a-c2b81c4af7f8})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ListView {
    type Vtable = IListView_Vtbl;
    const IID: ::windows::core::GUID = <IListView as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ListView {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ListView";
}
impl ::core::convert::From<ListView> for ::windows::core::IUnknown {
    fn from(value: ListView) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ListView> for ::windows::core::IUnknown {
    fn from(value: &ListView) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ListView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ListView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ListView> for ::windows::core::IInspectable {
    fn from(value: ListView) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ListView> for ::windows::core::IInspectable {
    fn from(value: &ListView) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ListView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ListView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ListView> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: ListView) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ListView> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &ListView) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for ListView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &ListView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::TryFrom<ListView> for IItemContainerMapping {
    type Error = ::windows::core::Error;
    fn try_from(value: ListView) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
impl ::core::convert::TryFrom<&ListView> for IItemContainerMapping {
    type Error = ::windows::core::Error;
    fn try_from(value: &ListView) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IItemContainerMapping> for ListView {
    fn into_param(self) -> ::windows::core::Param<'a, IItemContainerMapping> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IItemContainerMapping> for &ListView {
    fn into_param(self) -> ::windows::core::Param<'a, IItemContainerMapping> {
        ::core::convert::TryInto::<IItemContainerMapping>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::TryFrom<ListView> for ISemanticZoomInformation {
    type Error = ::windows::core::Error;
    fn try_from(value: ListView) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
impl ::core::convert::TryFrom<&ListView> for ISemanticZoomInformation {
    type Error = ::windows::core::Error;
    fn try_from(value: &ListView) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ISemanticZoomInformation> for ListView {
    fn into_param(self) -> ::windows::core::Param<'a, ISemanticZoomInformation> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ISemanticZoomInformation> for &ListView {
    fn into_param(self) -> ::windows::core::Param<'a, ISemanticZoomInformation> {
        ::core::convert::TryInto::<ISemanticZoomInformation>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ListView> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: ListView) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ListView> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &ListView) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for ListView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &ListView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<ListView> for ListViewBase {
    fn from(value: ListView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListView> for ListViewBase {
    fn from(value: &ListView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ListViewBase> for ListView {
    fn into_param(self) -> ::windows::core::Param<'a, ListViewBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ListViewBase> for &ListView {
    fn into_param(self) -> ::windows::core::Param<'a, ListViewBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<ListViewBase>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<ListView> for Primitives::Selector {
    fn from(value: ListView) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&ListView> for Primitives::Selector {
    fn from(value: &ListView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::Selector> for ListView {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::Selector> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::Selector> for &ListView {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::Selector> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::Selector>::into(self))
    }
}
impl ::core::convert::From<ListView> for ItemsControl {
    fn from(value: ListView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListView> for ItemsControl {
    fn from(value: &ListView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ItemsControl> for ListView {
    fn into_param(self) -> ::windows::core::Param<'a, ItemsControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ItemsControl> for &ListView {
    fn into_param(self) -> ::windows::core::Param<'a, ItemsControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ItemsControl>::into(self))
    }
}
impl ::core::convert::From<ListView> for Control {
    fn from(value: ListView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListView> for Control {
    fn from(value: &ListView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for ListView {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &ListView {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<ListView> for super::FrameworkElement {
    fn from(value: ListView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListView> for super::FrameworkElement {
    fn from(value: &ListView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for ListView {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &ListView {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<ListView> for super::UIElement {
    fn from(value: ListView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListView> for super::UIElement {
    fn from(value: &ListView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for ListView {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &ListView {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<ListView> for super::DependencyObject {
    fn from(value: ListView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListView> for super::DependencyObject {
    fn from(value: &ListView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for ListView {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &ListView {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for ListView {}
unsafe impl ::core::marker::Sync for ListView {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ListViewBase(::windows::core::IUnknown);
impl ListViewBase {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn SelectedItems(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedItems)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionMode(&self) -> ::windows::core::Result<ListViewSelectionMode> {
        let this = self;
        unsafe {
            let mut result__: ListViewSelectionMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionMode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<ListViewSelectionMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSelectionMode(&self, value: ListViewSelectionMode) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectionMode)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsSwipeEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsSwipeEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsSwipeEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsSwipeEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanDragItems(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanDragItems)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCanDragItems(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCanDragItems)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanReorderItems(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanReorderItems)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCanReorderItems(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCanReorderItems)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsItemClickEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsItemClickEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsItemClickEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsItemClickEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DataFetchSize(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DataFetchSize)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDataFetchSize(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetDataFetchSize)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IncrementalLoadingThreshold(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IncrementalLoadingThreshold)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIncrementalLoadingThreshold(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIncrementalLoadingThreshold)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IncrementalLoadingTrigger(&self) -> ::windows::core::Result<IncrementalLoadingTrigger> {
        let this = self;
        unsafe {
            let mut result__: IncrementalLoadingTrigger = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IncrementalLoadingTrigger)(::core::mem::transmute_copy(this), &mut result__).from_abi::<IncrementalLoadingTrigger>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIncrementalLoadingTrigger(&self, value: IncrementalLoadingTrigger) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIncrementalLoadingTrigger)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ItemClick<'a, Param0: ::windows::core::IntoParam<'a, ItemClickEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemClick)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveItemClick<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveItemClick)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn DragItemsStarting<'a, Param0: ::windows::core::IntoParam<'a, DragItemsStartingEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DragItemsStarting)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveDragItemsStarting<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveDragItemsStarting)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ScrollIntoView<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, item: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).ScrollIntoView)(::core::mem::transmute_copy(this), item.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectAll(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SelectAll)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'UI_Xaml_Data'*"]
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Data"))]
    pub fn LoadMoreItemsAsync(&self) -> ::windows::core::Result<super::super::super::Foundation::IAsyncOperation<super::Data::LoadMoreItemsResult>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LoadMoreItemsAsync)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::IAsyncOperation<super::Data::LoadMoreItemsResult>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ScrollIntoViewWithAlignment<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, item: Param0, alignment: ScrollIntoViewAlignment) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).ScrollIntoViewWithAlignment)(::core::mem::transmute_copy(this), item.into_param().abi(), alignment).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Header(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Header)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeader<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHeader)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTemplate(&self) -> ::windows::core::Result<super::DataTemplate> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTemplate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeaderTemplate<'a, Param0: ::windows::core::IntoParam<'a, super::DataTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHeaderTemplate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'UI_Xaml_Media_Animation'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub fn HeaderTransitions(&self) -> ::windows::core::Result<super::Media::Animation::TransitionCollection> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTransitions)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Animation::TransitionCollection>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'UI_Xaml_Media_Animation'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub fn SetHeaderTransitions<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Animation::TransitionCollection>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHeaderTransitions)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ShowsScrollingPlaceholders(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IListViewBase2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ShowsScrollingPlaceholders)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetShowsScrollingPlaceholders(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IListViewBase2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetShowsScrollingPlaceholders)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ContainerContentChanging<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<ListViewBase, ContainerContentChangingEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IListViewBase2>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContainerContentChanging)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveContainerContentChanging<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IListViewBase2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveContainerContentChanging)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SetDesiredContainerUpdateDuration<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TimeSpan>>(&self, duration: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IListViewBase2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetDesiredContainerUpdateDuration)(::core::mem::transmute_copy(this), duration.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Footer(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = &::windows::core::Interface::cast::<IListViewBase2>(self)?;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Footer)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetFooter<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IListViewBase2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetFooter)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FooterTemplate(&self) -> ::windows::core::Result<super::DataTemplate> {
        let this = &::windows::core::Interface::cast::<IListViewBase2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FooterTemplate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetFooterTemplate<'a, Param0: ::windows::core::IntoParam<'a, super::DataTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IListViewBase2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetFooterTemplate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'UI_Xaml_Media_Animation'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub fn FooterTransitions(&self) -> ::windows::core::Result<super::Media::Animation::TransitionCollection> {
        let this = &::windows::core::Interface::cast::<IListViewBase2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FooterTransitions)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Animation::TransitionCollection>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'UI_Xaml_Media_Animation'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub fn SetFooterTransitions<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Animation::TransitionCollection>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IListViewBase2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetFooterTransitions)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ReorderMode(&self) -> ::windows::core::Result<ListViewReorderMode> {
        let this = &::windows::core::Interface::cast::<IListViewBase3>(self)?;
        unsafe {
            let mut result__: ListViewReorderMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ReorderMode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<ListViewReorderMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetReorderMode(&self, value: ListViewReorderMode) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IListViewBase3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetReorderMode)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'UI_Xaml_Data'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Data"))]
    pub fn SelectedRanges(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVectorView<super::Data::ItemIndexRange>> {
        let this = &::windows::core::Interface::cast::<IListViewBase4>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedRanges)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVectorView<super::Data::ItemIndexRange>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsMultiSelectCheckBoxEnabled(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IListViewBase4>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsMultiSelectCheckBoxEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsMultiSelectCheckBoxEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IListViewBase4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsMultiSelectCheckBoxEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn DragItemsCompleted<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<ListViewBase, DragItemsCompletedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IListViewBase4>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DragItemsCompleted)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveDragItemsCompleted<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IListViewBase4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveDragItemsCompleted)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ChoosingItemContainer<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<ListViewBase, ChoosingItemContainerEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IListViewBase4>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ChoosingItemContainer)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveChoosingItemContainer<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IListViewBase4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveChoosingItemContainer)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ChoosingGroupHeaderContainer<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<ListViewBase, ChoosingGroupHeaderContainerEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IListViewBase4>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ChoosingGroupHeaderContainer)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveChoosingGroupHeaderContainer<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IListViewBase4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveChoosingGroupHeaderContainer)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Data'*"]
    #[cfg(feature = "UI_Xaml_Data")]
    pub fn SelectRange<'a, Param0: ::windows::core::IntoParam<'a, super::Data::ItemIndexRange>>(&self, itemindexrange: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IListViewBase4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SelectRange)(::core::mem::transmute_copy(this), itemindexrange.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Data'*"]
    #[cfg(feature = "UI_Xaml_Data")]
    pub fn DeselectRange<'a, Param0: ::windows::core::IntoParam<'a, super::Data::ItemIndexRange>>(&self, itemindexrange: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IListViewBase4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).DeselectRange)(::core::mem::transmute_copy(this), itemindexrange.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SingleSelectionFollowsFocus(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IListViewBase5>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SingleSelectionFollowsFocus)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSingleSelectionFollowsFocus(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IListViewBase5>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetSingleSelectionFollowsFocus)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsDragSource(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IListViewBase5>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsDragSource)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'UI_Xaml_Media_Animation'*"]
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Media_Animation"))]
    pub fn TryStartConnectedAnimationAsync<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Animation::ConnectedAnimation>, Param1: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>, Param2: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, animation: Param0, item: Param1, elementname: Param2) -> ::windows::core::Result<super::super::super::Foundation::IAsyncOperation<bool>> {
        let this = &::windows::core::Interface::cast::<IListViewBase6>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TryStartConnectedAnimationAsync)(::core::mem::transmute_copy(this), animation.into_param().abi(), item.into_param().abi(), elementname.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::IAsyncOperation<bool>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media_Animation'*"]
    #[cfg(feature = "UI_Xaml_Media_Animation")]
    pub fn PrepareConnectedAnimation<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>, Param1: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>, Param2: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, key: Param0, item: Param1, elementname: Param2) -> ::windows::core::Result<super::Media::Animation::ConnectedAnimation> {
        let this = &::windows::core::Interface::cast::<IListViewBase6>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PrepareConnectedAnimation)(::core::mem::transmute_copy(this), key.into_param().abi(), item.into_param().abi(), elementname.into_param().abi(), &mut result__).from_abi::<super::Media::Animation::ConnectedAnimation>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionModeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IListViewBaseStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionModeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsSwipeEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IListViewBaseStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsSwipeEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanDragItemsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IListViewBaseStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanDragItemsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanReorderItemsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IListViewBaseStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanReorderItemsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsItemClickEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IListViewBaseStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsItemClickEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DataFetchSizeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IListViewBaseStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DataFetchSizeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IncrementalLoadingThresholdProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IListViewBaseStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IncrementalLoadingThresholdProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IncrementalLoadingTriggerProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IListViewBaseStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IncrementalLoadingTriggerProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SemanticZoomOwnerProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IListViewBaseStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SemanticZoomOwnerProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsActiveViewProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IListViewBaseStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsActiveViewProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsZoomedInViewProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IListViewBaseStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsZoomedInViewProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IListViewBaseStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTemplateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IListViewBaseStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTemplateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTransitionsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IListViewBaseStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTransitionsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ShowsScrollingPlaceholdersProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IListViewBaseStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ShowsScrollingPlaceholdersProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FooterProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IListViewBaseStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FooterProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FooterTemplateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IListViewBaseStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FooterTemplateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FooterTransitionsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IListViewBaseStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FooterTransitionsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ReorderModeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IListViewBaseStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ReorderModeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsMultiSelectCheckBoxEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IListViewBaseStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsMultiSelectCheckBoxEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SingleSelectionFollowsFocusProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IListViewBaseStatics5(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SingleSelectionFollowsFocusProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SemanticZoomOwner(&self) -> ::windows::core::Result<SemanticZoom> {
        let this = &::windows::core::Interface::cast::<ISemanticZoomInformation>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SemanticZoomOwner)(::core::mem::transmute_copy(this), &mut result__).from_abi::<SemanticZoom>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSemanticZoomOwner<'a, Param0: ::windows::core::IntoParam<'a, SemanticZoom>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ISemanticZoomInformation>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetSemanticZoomOwner)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsActiveView(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<ISemanticZoomInformation>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsActiveView)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsActiveView(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ISemanticZoomInformation>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsActiveView)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsZoomedInView(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<ISemanticZoomInformation>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsZoomedInView)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsZoomedInView(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ISemanticZoomInformation>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsZoomedInView)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn InitializeViewChange(&self) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ISemanticZoomInformation>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).InitializeViewChange)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CompleteViewChange(&self) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ISemanticZoomInformation>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).CompleteViewChange)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MakeVisible<'a, Param0: ::windows::core::IntoParam<'a, SemanticZoomLocation>>(&self, item: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ISemanticZoomInformation>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).MakeVisible)(::core::mem::transmute_copy(this), item.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn StartViewChangeFrom<'a, Param0: ::windows::core::IntoParam<'a, SemanticZoomLocation>, Param1: ::windows::core::IntoParam<'a, SemanticZoomLocation>>(&self, source: Param0, destination: Param1) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ISemanticZoomInformation>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).StartViewChangeFrom)(::core::mem::transmute_copy(this), source.into_param().abi(), destination.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn StartViewChangeTo<'a, Param0: ::windows::core::IntoParam<'a, SemanticZoomLocation>, Param1: ::windows::core::IntoParam<'a, SemanticZoomLocation>>(&self, source: Param0, destination: Param1) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ISemanticZoomInformation>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).StartViewChangeTo)(::core::mem::transmute_copy(this), source.into_param().abi(), destination.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CompleteViewChangeFrom<'a, Param0: ::windows::core::IntoParam<'a, SemanticZoomLocation>, Param1: ::windows::core::IntoParam<'a, SemanticZoomLocation>>(&self, source: Param0, destination: Param1) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ISemanticZoomInformation>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).CompleteViewChangeFrom)(::core::mem::transmute_copy(this), source.into_param().abi(), destination.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CompleteViewChangeTo<'a, Param0: ::windows::core::IntoParam<'a, SemanticZoomLocation>, Param1: ::windows::core::IntoParam<'a, SemanticZoomLocation>>(&self, source: Param0, destination: Param1) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ISemanticZoomInformation>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).CompleteViewChangeTo)(::core::mem::transmute_copy(this), source.into_param().abi(), destination.into_param().abi()).ok() }
    }
    #[doc(hidden)]
    pub fn IListViewBaseStatics<R, F: FnOnce(&IListViewBaseStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ListViewBase, IListViewBaseStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IListViewBaseStatics2<R, F: FnOnce(&IListViewBaseStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ListViewBase, IListViewBaseStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IListViewBaseStatics3<R, F: FnOnce(&IListViewBaseStatics3) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ListViewBase, IListViewBaseStatics3> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IListViewBaseStatics4<R, F: FnOnce(&IListViewBaseStatics4) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ListViewBase, IListViewBaseStatics4> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IListViewBaseStatics5<R, F: FnOnce(&IListViewBaseStatics5) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ListViewBase, IListViewBaseStatics5> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for ListViewBase {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ListViewBase {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ListViewBase {}
impl ::core::fmt::Debug for ListViewBase {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ListViewBase").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ListViewBase {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ListViewBase;{3d0813ba-6890-4537-bfe5-796d9458edd6})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ListViewBase {
    type Vtable = IListViewBase_Vtbl;
    const IID: ::windows::core::GUID = <IListViewBase as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ListViewBase {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ListViewBase";
}
impl ::core::convert::From<ListViewBase> for ::windows::core::IUnknown {
    fn from(value: ListViewBase) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ListViewBase> for ::windows::core::IUnknown {
    fn from(value: &ListViewBase) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ListViewBase {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ListViewBase {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ListViewBase> for ::windows::core::IInspectable {
    fn from(value: ListViewBase) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ListViewBase> for ::windows::core::IInspectable {
    fn from(value: &ListViewBase) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ListViewBase {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ListViewBase {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ListViewBase> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: ListViewBase) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ListViewBase> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &ListViewBase) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for ListViewBase {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &ListViewBase {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::TryFrom<ListViewBase> for IItemContainerMapping {
    type Error = ::windows::core::Error;
    fn try_from(value: ListViewBase) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
impl ::core::convert::TryFrom<&ListViewBase> for IItemContainerMapping {
    type Error = ::windows::core::Error;
    fn try_from(value: &ListViewBase) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IItemContainerMapping> for ListViewBase {
    fn into_param(self) -> ::windows::core::Param<'a, IItemContainerMapping> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IItemContainerMapping> for &ListViewBase {
    fn into_param(self) -> ::windows::core::Param<'a, IItemContainerMapping> {
        ::core::convert::TryInto::<IItemContainerMapping>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::TryFrom<ListViewBase> for ISemanticZoomInformation {
    type Error = ::windows::core::Error;
    fn try_from(value: ListViewBase) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
impl ::core::convert::TryFrom<&ListViewBase> for ISemanticZoomInformation {
    type Error = ::windows::core::Error;
    fn try_from(value: &ListViewBase) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ISemanticZoomInformation> for ListViewBase {
    fn into_param(self) -> ::windows::core::Param<'a, ISemanticZoomInformation> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ISemanticZoomInformation> for &ListViewBase {
    fn into_param(self) -> ::windows::core::Param<'a, ISemanticZoomInformation> {
        ::core::convert::TryInto::<ISemanticZoomInformation>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ListViewBase> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: ListViewBase) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ListViewBase> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &ListViewBase) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for ListViewBase {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &ListViewBase {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<ListViewBase> for Primitives::Selector {
    fn from(value: ListViewBase) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&ListViewBase> for Primitives::Selector {
    fn from(value: &ListViewBase) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::Selector> for ListViewBase {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::Selector> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::Selector> for &ListViewBase {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::Selector> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::Selector>::into(self))
    }
}
impl ::core::convert::From<ListViewBase> for ItemsControl {
    fn from(value: ListViewBase) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListViewBase> for ItemsControl {
    fn from(value: &ListViewBase) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ItemsControl> for ListViewBase {
    fn into_param(self) -> ::windows::core::Param<'a, ItemsControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ItemsControl> for &ListViewBase {
    fn into_param(self) -> ::windows::core::Param<'a, ItemsControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ItemsControl>::into(self))
    }
}
impl ::core::convert::From<ListViewBase> for Control {
    fn from(value: ListViewBase) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListViewBase> for Control {
    fn from(value: &ListViewBase) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for ListViewBase {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &ListViewBase {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<ListViewBase> for super::FrameworkElement {
    fn from(value: ListViewBase) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListViewBase> for super::FrameworkElement {
    fn from(value: &ListViewBase) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for ListViewBase {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &ListViewBase {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<ListViewBase> for super::UIElement {
    fn from(value: ListViewBase) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListViewBase> for super::UIElement {
    fn from(value: &ListViewBase) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for ListViewBase {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &ListViewBase {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<ListViewBase> for super::DependencyObject {
    fn from(value: ListViewBase) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListViewBase> for super::DependencyObject {
    fn from(value: &ListViewBase) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for ListViewBase {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &ListViewBase {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for ListViewBase {}
unsafe impl ::core::marker::Sync for ListViewBase {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ListViewBaseHeaderItem(::windows::core::IUnknown);
impl ListViewBaseHeaderItem {}
impl ::core::clone::Clone for ListViewBaseHeaderItem {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ListViewBaseHeaderItem {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ListViewBaseHeaderItem {}
impl ::core::fmt::Debug for ListViewBaseHeaderItem {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ListViewBaseHeaderItem").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ListViewBaseHeaderItem {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ListViewBaseHeaderItem;{6d0ded27-0d19-4091-8917-ce7c85c1e630})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ListViewBaseHeaderItem {
    type Vtable = IListViewBaseHeaderItem_Vtbl;
    const IID: ::windows::core::GUID = <IListViewBaseHeaderItem as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ListViewBaseHeaderItem {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ListViewBaseHeaderItem";
}
impl ::core::convert::From<ListViewBaseHeaderItem> for ::windows::core::IUnknown {
    fn from(value: ListViewBaseHeaderItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ListViewBaseHeaderItem> for ::windows::core::IUnknown {
    fn from(value: &ListViewBaseHeaderItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ListViewBaseHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ListViewBaseHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ListViewBaseHeaderItem> for ::windows::core::IInspectable {
    fn from(value: ListViewBaseHeaderItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ListViewBaseHeaderItem> for ::windows::core::IInspectable {
    fn from(value: &ListViewBaseHeaderItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ListViewBaseHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ListViewBaseHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ListViewBaseHeaderItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: ListViewBaseHeaderItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ListViewBaseHeaderItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &ListViewBaseHeaderItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for ListViewBaseHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &ListViewBaseHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ListViewBaseHeaderItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: ListViewBaseHeaderItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ListViewBaseHeaderItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &ListViewBaseHeaderItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for ListViewBaseHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &ListViewBaseHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<ListViewBaseHeaderItem> for ContentControl {
    fn from(value: ListViewBaseHeaderItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListViewBaseHeaderItem> for ContentControl {
    fn from(value: &ListViewBaseHeaderItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for ListViewBaseHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &ListViewBaseHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<ListViewBaseHeaderItem> for Control {
    fn from(value: ListViewBaseHeaderItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListViewBaseHeaderItem> for Control {
    fn from(value: &ListViewBaseHeaderItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for ListViewBaseHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &ListViewBaseHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<ListViewBaseHeaderItem> for super::FrameworkElement {
    fn from(value: ListViewBaseHeaderItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListViewBaseHeaderItem> for super::FrameworkElement {
    fn from(value: &ListViewBaseHeaderItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for ListViewBaseHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &ListViewBaseHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<ListViewBaseHeaderItem> for super::UIElement {
    fn from(value: ListViewBaseHeaderItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListViewBaseHeaderItem> for super::UIElement {
    fn from(value: &ListViewBaseHeaderItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for ListViewBaseHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &ListViewBaseHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<ListViewBaseHeaderItem> for super::DependencyObject {
    fn from(value: ListViewBaseHeaderItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListViewBaseHeaderItem> for super::DependencyObject {
    fn from(value: &ListViewBaseHeaderItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for ListViewBaseHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &ListViewBaseHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for ListViewBaseHeaderItem {}
unsafe impl ::core::marker::Sync for ListViewBaseHeaderItem {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ListViewHeaderItem(::windows::core::IUnknown);
impl ListViewHeaderItem {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<ListViewHeaderItem> {
        Self::IListViewHeaderItemFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<ListViewHeaderItem>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<ListViewHeaderItem> {
        Self::IListViewHeaderItemFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<ListViewHeaderItem>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IListViewHeaderItemFactory<R, F: FnOnce(&IListViewHeaderItemFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ListViewHeaderItem, IListViewHeaderItemFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for ListViewHeaderItem {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ListViewHeaderItem {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ListViewHeaderItem {}
impl ::core::fmt::Debug for ListViewHeaderItem {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ListViewHeaderItem").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ListViewHeaderItem {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ListViewHeaderItem;{1b61baeb-e196-4b3b-a5f9-1ed636f3f79b})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ListViewHeaderItem {
    type Vtable = IListViewHeaderItem_Vtbl;
    const IID: ::windows::core::GUID = <IListViewHeaderItem as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ListViewHeaderItem {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ListViewHeaderItem";
}
impl ::core::convert::From<ListViewHeaderItem> for ::windows::core::IUnknown {
    fn from(value: ListViewHeaderItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ListViewHeaderItem> for ::windows::core::IUnknown {
    fn from(value: &ListViewHeaderItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ListViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ListViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ListViewHeaderItem> for ::windows::core::IInspectable {
    fn from(value: ListViewHeaderItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ListViewHeaderItem> for ::windows::core::IInspectable {
    fn from(value: &ListViewHeaderItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ListViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ListViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ListViewHeaderItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: ListViewHeaderItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ListViewHeaderItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &ListViewHeaderItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for ListViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &ListViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ListViewHeaderItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: ListViewHeaderItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ListViewHeaderItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &ListViewHeaderItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for ListViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &ListViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<ListViewHeaderItem> for ListViewBaseHeaderItem {
    fn from(value: ListViewHeaderItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListViewHeaderItem> for ListViewBaseHeaderItem {
    fn from(value: &ListViewHeaderItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ListViewBaseHeaderItem> for ListViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, ListViewBaseHeaderItem> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ListViewBaseHeaderItem> for &ListViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, ListViewBaseHeaderItem> {
        ::windows::core::Param::Owned(::core::convert::Into::<ListViewBaseHeaderItem>::into(self))
    }
}
impl ::core::convert::From<ListViewHeaderItem> for ContentControl {
    fn from(value: ListViewHeaderItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListViewHeaderItem> for ContentControl {
    fn from(value: &ListViewHeaderItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for ListViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &ListViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<ListViewHeaderItem> for Control {
    fn from(value: ListViewHeaderItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListViewHeaderItem> for Control {
    fn from(value: &ListViewHeaderItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for ListViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &ListViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<ListViewHeaderItem> for super::FrameworkElement {
    fn from(value: ListViewHeaderItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListViewHeaderItem> for super::FrameworkElement {
    fn from(value: &ListViewHeaderItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for ListViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &ListViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<ListViewHeaderItem> for super::UIElement {
    fn from(value: ListViewHeaderItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListViewHeaderItem> for super::UIElement {
    fn from(value: &ListViewHeaderItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for ListViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &ListViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<ListViewHeaderItem> for super::DependencyObject {
    fn from(value: ListViewHeaderItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListViewHeaderItem> for super::DependencyObject {
    fn from(value: &ListViewHeaderItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for ListViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &ListViewHeaderItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for ListViewHeaderItem {}
unsafe impl ::core::marker::Sync for ListViewHeaderItem {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ListViewItem(::windows::core::IUnknown);
impl ListViewItem {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn TemplateSettings(&self) -> ::windows::core::Result<Primitives::ListViewItemTemplateSettings> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TemplateSettings)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::ListViewItemTemplateSettings>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<ListViewItem> {
        Self::IListViewItemFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<ListViewItem>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<ListViewItem> {
        Self::IListViewItemFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<ListViewItem>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IListViewItemFactory<R, F: FnOnce(&IListViewItemFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ListViewItem, IListViewItemFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for ListViewItem {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ListViewItem {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ListViewItem {}
impl ::core::fmt::Debug for ListViewItem {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ListViewItem").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ListViewItem {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ListViewItem;{b7bb4305-3dd9-43de-a8c0-c472f085bc11})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ListViewItem {
    type Vtable = IListViewItem_Vtbl;
    const IID: ::windows::core::GUID = <IListViewItem as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ListViewItem {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ListViewItem";
}
impl ::core::convert::From<ListViewItem> for ::windows::core::IUnknown {
    fn from(value: ListViewItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ListViewItem> for ::windows::core::IUnknown {
    fn from(value: &ListViewItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ListViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ListViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ListViewItem> for ::windows::core::IInspectable {
    fn from(value: ListViewItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ListViewItem> for ::windows::core::IInspectable {
    fn from(value: &ListViewItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ListViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ListViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ListViewItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: ListViewItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ListViewItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &ListViewItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for ListViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &ListViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ListViewItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: ListViewItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ListViewItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &ListViewItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for ListViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &ListViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<ListViewItem> for Primitives::SelectorItem {
    fn from(value: ListViewItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&ListViewItem> for Primitives::SelectorItem {
    fn from(value: &ListViewItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::SelectorItem> for ListViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::SelectorItem> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::SelectorItem> for &ListViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::SelectorItem> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::SelectorItem>::into(self))
    }
}
impl ::core::convert::From<ListViewItem> for ContentControl {
    fn from(value: ListViewItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListViewItem> for ContentControl {
    fn from(value: &ListViewItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for ListViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &ListViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<ListViewItem> for Control {
    fn from(value: ListViewItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListViewItem> for Control {
    fn from(value: &ListViewItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for ListViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &ListViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<ListViewItem> for super::FrameworkElement {
    fn from(value: ListViewItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListViewItem> for super::FrameworkElement {
    fn from(value: &ListViewItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for ListViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &ListViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<ListViewItem> for super::UIElement {
    fn from(value: ListViewItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListViewItem> for super::UIElement {
    fn from(value: &ListViewItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for ListViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &ListViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<ListViewItem> for super::DependencyObject {
    fn from(value: ListViewItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ListViewItem> for super::DependencyObject {
    fn from(value: &ListViewItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for ListViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &ListViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for ListViewItem {}
unsafe impl ::core::marker::Sync for ListViewItem {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ListViewItemToKeyHandler(pub ::windows::core::IUnknown);
impl ListViewItemToKeyHandler {
    pub fn new<F: FnMut(&::core::option::Option<::windows::core::IInspectable>) -> ::windows::core::Result<::windows::core::HSTRING> + ::core::marker::Send + 'static>(invoke: F) -> Self {
        let com = ListViewItemToKeyHandlerBox::<F> { vtable: &ListViewItemToKeyHandlerBox::<F>::VTABLE, count: ::windows::core::RefCount::new(1), invoke };
        unsafe { ::core::mem::transmute(::windows::core::alloc::boxed::Box::new(com)) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Invoke<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, item: Param0) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Invoke)(::core::mem::transmute_copy(this), item.into_param().abi(), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
}
#[repr(C)]
struct ListViewItemToKeyHandlerBox<F: FnMut(&::core::option::Option<::windows::core::IInspectable>) -> ::windows::core::Result<::windows::core::HSTRING> + ::core::marker::Send + 'static> {
    vtable: *const ListViewItemToKeyHandler_Vtbl,
    invoke: F,
    count: ::windows::core::RefCount,
}
impl<F: FnMut(&::core::option::Option<::windows::core::IInspectable>) -> ::windows::core::Result<::windows::core::HSTRING> + ::core::marker::Send + 'static> ListViewItemToKeyHandlerBox<F> {
    const VTABLE: ListViewItemToKeyHandler_Vtbl = ListViewItemToKeyHandler_Vtbl { base: ::windows::core::IUnknownVtbl { QueryInterface: Self::QueryInterface, AddRef: Self::AddRef, Release: Self::Release }, Invoke: Self::Invoke };
    unsafe extern "system" fn QueryInterface(this: ::windows::core::RawPtr, iid: &::windows::core::GUID, interface: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        *interface = if iid == &<ListViewItemToKeyHandler as ::windows::core::Interface>::IID || iid == &<::windows::core::IUnknown as ::windows::core::Interface>::IID || iid == &<::windows::core::IAgileObject as ::windows::core::Interface>::IID { &mut (*this).vtable as *mut _ as _ } else { ::core::ptr::null_mut() };
        if (*interface).is_null() {
            ::windows::core::HRESULT(-2147467262)
        } else {
            (*this).count.add_ref();
            ::windows::core::HRESULT(0)
        }
    }
    unsafe extern "system" fn AddRef(this: ::windows::core::RawPtr) -> u32 {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        (*this).count.add_ref()
    }
    unsafe extern "system" fn Release(this: ::windows::core::RawPtr) -> u32 {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        let remaining = (*this).count.release();
        if remaining == 0 {
            ::windows::core::alloc::boxed::Box::from_raw(this);
        }
        remaining
    }
    unsafe extern "system" fn Invoke(this: *mut ::core::ffi::c_void, item: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        match ((*this).invoke)(::core::mem::transmute(&item)) {
            ::core::result::Result::Ok(ok__) => {
                *result__ = ::core::mem::transmute_copy(&ok__);
                ::core::mem::forget(ok__);
                ::windows::core::HRESULT(0)
            }
            ::core::result::Result::Err(err) => err.into(),
        }
    }
}
impl ::core::clone::Clone for ListViewItemToKeyHandler {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ListViewItemToKeyHandler {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ListViewItemToKeyHandler {}
impl ::core::fmt::Debug for ListViewItemToKeyHandler {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ListViewItemToKeyHandler").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for ListViewItemToKeyHandler {
    type Vtable = ListViewItemToKeyHandler_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6af5da76_7e8b_4a91_9a56_460cb47d523f);
}
unsafe impl ::windows::core::RuntimeType for ListViewItemToKeyHandler {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"{6af5da76-7e8b-4a91-9a56-460cb47d523f}");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
#[repr(C)]
#[doc(hidden)]
pub struct ListViewItemToKeyHandler_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    pub Invoke: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, item: *mut ::core::ffi::c_void, result__: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
#[cfg(feature = "Foundation")]
#[repr(transparent)]
pub struct ListViewKeyToItemHandler(pub ::windows::core::IUnknown);
#[cfg(feature = "Foundation")]
impl ListViewKeyToItemHandler {
    pub fn new<F: FnMut(&::windows::core::HSTRING) -> ::windows::core::Result<super::super::super::Foundation::IAsyncOperation<::windows::core::IInspectable>> + ::core::marker::Send + 'static>(invoke: F) -> Self {
        let com = ListViewKeyToItemHandlerBox::<F> { vtable: &ListViewKeyToItemHandlerBox::<F>::VTABLE, count: ::windows::core::RefCount::new(1), invoke };
        unsafe { ::core::mem::transmute(::windows::core::alloc::boxed::Box::new(com)) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Invoke<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, key: Param0) -> ::windows::core::Result<super::super::super::Foundation::IAsyncOperation<::windows::core::IInspectable>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Invoke)(::core::mem::transmute_copy(this), key.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::IAsyncOperation<::windows::core::IInspectable>>(result__)
        }
    }
}
#[cfg(feature = "Foundation")]
#[repr(C)]
struct ListViewKeyToItemHandlerBox<F: FnMut(&::windows::core::HSTRING) -> ::windows::core::Result<super::super::super::Foundation::IAsyncOperation<::windows::core::IInspectable>> + ::core::marker::Send + 'static> {
    vtable: *const ListViewKeyToItemHandler_Vtbl,
    invoke: F,
    count: ::windows::core::RefCount,
}
#[cfg(feature = "Foundation")]
impl<F: FnMut(&::windows::core::HSTRING) -> ::windows::core::Result<super::super::super::Foundation::IAsyncOperation<::windows::core::IInspectable>> + ::core::marker::Send + 'static> ListViewKeyToItemHandlerBox<F> {
    const VTABLE: ListViewKeyToItemHandler_Vtbl = ListViewKeyToItemHandler_Vtbl { base: ::windows::core::IUnknownVtbl { QueryInterface: Self::QueryInterface, AddRef: Self::AddRef, Release: Self::Release }, Invoke: Self::Invoke };
    unsafe extern "system" fn QueryInterface(this: ::windows::core::RawPtr, iid: &::windows::core::GUID, interface: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        *interface = if iid == &<ListViewKeyToItemHandler as ::windows::core::Interface>::IID || iid == &<::windows::core::IUnknown as ::windows::core::Interface>::IID || iid == &<::windows::core::IAgileObject as ::windows::core::Interface>::IID { &mut (*this).vtable as *mut _ as _ } else { ::core::ptr::null_mut() };
        if (*interface).is_null() {
            ::windows::core::HRESULT(-2147467262)
        } else {
            (*this).count.add_ref();
            ::windows::core::HRESULT(0)
        }
    }
    unsafe extern "system" fn AddRef(this: ::windows::core::RawPtr) -> u32 {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        (*this).count.add_ref()
    }
    unsafe extern "system" fn Release(this: ::windows::core::RawPtr) -> u32 {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        let remaining = (*this).count.release();
        if remaining == 0 {
            ::windows::core::alloc::boxed::Box::from_raw(this);
        }
        remaining
    }
    unsafe extern "system" fn Invoke(this: *mut ::core::ffi::c_void, key: ::core::mem::ManuallyDrop<::windows::core::HSTRING>, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        match ((*this).invoke)(::core::mem::transmute(&key)) {
            ::core::result::Result::Ok(ok__) => {
                *result__ = ::core::mem::transmute_copy(&ok__);
                ::core::mem::forget(ok__);
                ::windows::core::HRESULT(0)
            }
            ::core::result::Result::Err(err) => err.into(),
        }
    }
}
#[cfg(feature = "Foundation")]
impl ::core::clone::Clone for ListViewKeyToItemHandler {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
#[cfg(feature = "Foundation")]
impl ::core::cmp::PartialEq for ListViewKeyToItemHandler {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
#[cfg(feature = "Foundation")]
impl ::core::cmp::Eq for ListViewKeyToItemHandler {}
#[cfg(feature = "Foundation")]
impl ::core::fmt::Debug for ListViewKeyToItemHandler {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ListViewKeyToItemHandler").field(&self.0).finish()
    }
}
#[cfg(feature = "Foundation")]
unsafe impl ::windows::core::Interface for ListViewKeyToItemHandler {
    type Vtable = ListViewKeyToItemHandler_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x26fd5855_b530_4688_b9f0_428249178ef8);
}
#[cfg(feature = "Foundation")]
unsafe impl ::windows::core::RuntimeType for ListViewKeyToItemHandler {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"{26fd5855-b530-4688-b9f0-428249178ef8}");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
#[cfg(feature = "Foundation")]
#[repr(C)]
#[doc(hidden)]
pub struct ListViewKeyToItemHandler_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    #[cfg(feature = "Foundation")]
    pub Invoke: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, key: ::core::mem::ManuallyDrop<::windows::core::HSTRING>, result__: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Foundation"))]
    Invoke: usize,
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ListViewPersistenceHelper(::windows::core::IUnknown);
impl ListViewPersistenceHelper {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetRelativeScrollPosition<'a, Param0: ::windows::core::IntoParam<'a, ListViewBase>, Param1: ::windows::core::IntoParam<'a, ListViewItemToKeyHandler>>(listviewbase: Param0, itemtokeyhandler: Param1) -> ::windows::core::Result<::windows::core::HSTRING> {
        Self::IListViewPersistenceHelperStatics(|this| unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetRelativeScrollPosition)(::core::mem::transmute_copy(this), listviewbase.into_param().abi(), itemtokeyhandler.into_param().abi(), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SetRelativeScrollPositionAsync<'a, Param0: ::windows::core::IntoParam<'a, ListViewBase>, Param1: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>, Param2: ::windows::core::IntoParam<'a, ListViewKeyToItemHandler>>(listviewbase: Param0, relativescrollposition: Param1, keytoitemhandler: Param2) -> ::windows::core::Result<super::super::super::Foundation::IAsyncAction> {
        Self::IListViewPersistenceHelperStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SetRelativeScrollPositionAsync)(::core::mem::transmute_copy(this), listviewbase.into_param().abi(), relativescrollposition.into_param().abi(), keytoitemhandler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::IAsyncAction>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IListViewPersistenceHelperStatics<R, F: FnOnce(&IListViewPersistenceHelperStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ListViewPersistenceHelper, IListViewPersistenceHelperStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for ListViewPersistenceHelper {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ListViewPersistenceHelper {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ListViewPersistenceHelper {}
impl ::core::fmt::Debug for ListViewPersistenceHelper {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ListViewPersistenceHelper").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ListViewPersistenceHelper {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ListViewPersistenceHelper;{05bde8a6-2191-4b4b-8c22-9b25676e806e})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ListViewPersistenceHelper {
    type Vtable = IListViewPersistenceHelper_Vtbl;
    const IID: ::windows::core::GUID = <IListViewPersistenceHelper as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ListViewPersistenceHelper {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ListViewPersistenceHelper";
}
impl ::core::convert::From<ListViewPersistenceHelper> for ::windows::core::IUnknown {
    fn from(value: ListViewPersistenceHelper) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ListViewPersistenceHelper> for ::windows::core::IUnknown {
    fn from(value: &ListViewPersistenceHelper) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ListViewPersistenceHelper {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ListViewPersistenceHelper {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ListViewPersistenceHelper> for ::windows::core::IInspectable {
    fn from(value: ListViewPersistenceHelper) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ListViewPersistenceHelper> for ::windows::core::IInspectable {
    fn from(value: &ListViewPersistenceHelper) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ListViewPersistenceHelper {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ListViewPersistenceHelper {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for ListViewPersistenceHelper {}
unsafe impl ::core::marker::Sync for ListViewPersistenceHelper {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct ListViewReorderMode(pub i32);
impl ListViewReorderMode {
    pub const Disabled: Self = Self(0i32);
    pub const Enabled: Self = Self(1i32);
}
impl ::core::marker::Copy for ListViewReorderMode {}
impl ::core::clone::Clone for ListViewReorderMode {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ListViewReorderMode {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ListViewReorderMode {
    type Abi = Self;
}
impl ::core::fmt::Debug for ListViewReorderMode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ListViewReorderMode").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ListViewReorderMode {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.ListViewReorderMode;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct ListViewSelectionMode(pub i32);
impl ListViewSelectionMode {
    pub const None: Self = Self(0i32);
    pub const Single: Self = Self(1i32);
    pub const Multiple: Self = Self(2i32);
    pub const Extended: Self = Self(3i32);
}
impl ::core::marker::Copy for ListViewSelectionMode {}
impl ::core::clone::Clone for ListViewSelectionMode {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ListViewSelectionMode {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ListViewSelectionMode {
    type Abi = Self;
}
impl ::core::fmt::Debug for ListViewSelectionMode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ListViewSelectionMode").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ListViewSelectionMode {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.ListViewSelectionMode;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct MediaElement(::windows::core::IUnknown);
impl MediaElement {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<MediaElement, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn PosterSource(&self) -> ::windows::core::Result<super::Media::ImageSource> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PosterSource)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::ImageSource>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetPosterSource<'a, Param0: ::windows::core::IntoParam<'a, super::Media::ImageSource>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPosterSource)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Source(&self) -> ::windows::core::Result<super::super::super::Foundation::Uri> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Source)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Uri>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SetSource<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::Uri>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSource)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsMuted(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsMuted)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsMuted(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsMuted)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsAudioOnly(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsAudioOnly)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AutoPlay(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AutoPlay)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetAutoPlay(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetAutoPlay)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Volume(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Volume)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetVolume(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetVolume)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Balance(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Balance)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetBalance(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetBalance)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn NaturalVideoHeight(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).NaturalVideoHeight)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn NaturalVideoWidth(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).NaturalVideoWidth)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn NaturalDuration(&self) -> ::windows::core::Result<super::Duration> {
        let this = self;
        unsafe {
            let mut result__: super::Duration = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).NaturalDuration)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Duration>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Position(&self) -> ::windows::core::Result<super::super::super::Foundation::TimeSpan> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::TimeSpan = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Position)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::TimeSpan>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SetPosition<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TimeSpan>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPosition)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DownloadProgress(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DownloadProgress)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BufferingProgress(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BufferingProgress)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DownloadProgressOffset(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DownloadProgressOffset)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn CurrentState(&self) -> ::windows::core::Result<super::Media::MediaElementState> {
        let this = self;
        unsafe {
            let mut result__: super::Media::MediaElementState = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CurrentState)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::MediaElementState>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'UI_Xaml_Media'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media"))]
    pub fn Markers(&self) -> ::windows::core::Result<super::Media::TimelineMarkerCollection> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Markers)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::TimelineMarkerCollection>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanSeek(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanSeek)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanPause(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanPause)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AudioStreamCount(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AudioStreamCount)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn AudioStreamIndex(&self) -> ::windows::core::Result<super::super::super::Foundation::IReference<i32>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AudioStreamIndex)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::IReference<i32>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SetAudioStreamIndex<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::IReference<i32>>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetAudioStreamIndex)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PlaybackRate(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlaybackRate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPlaybackRate(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPlaybackRate)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsLooping(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsLooping)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsLooping(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsLooping)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Media_PlayTo', 'deprecated'*"]
    #[cfg(all(feature = "Media_PlayTo", feature = "deprecated"))]
    pub fn PlayToSource(&self) -> ::windows::core::Result<super::super::super::Media::PlayTo::PlayToSource> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlayToSource)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Media::PlayTo::PlayToSource>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DefaultPlaybackRate(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DefaultPlaybackRate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDefaultPlaybackRate(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetDefaultPlaybackRate)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AspectRatioWidth(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AspectRatioWidth)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AspectRatioHeight(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AspectRatioHeight)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn RealTimePlayback(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).RealTimePlayback)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetRealTimePlayback(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetRealTimePlayback)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn AudioCategory(&self) -> ::windows::core::Result<super::Media::AudioCategory> {
        let this = self;
        unsafe {
            let mut result__: super::Media::AudioCategory = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AudioCategory)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::AudioCategory>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetAudioCategory(&self, value: super::Media::AudioCategory) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetAudioCategory)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn AudioDeviceType(&self) -> ::windows::core::Result<super::Media::AudioDeviceType> {
        let this = self;
        unsafe {
            let mut result__: super::Media::AudioDeviceType = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AudioDeviceType)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::AudioDeviceType>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetAudioDeviceType(&self, value: super::Media::AudioDeviceType) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetAudioDeviceType)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Media_Protection'*"]
    #[cfg(feature = "Media_Protection")]
    pub fn ProtectionManager(&self) -> ::windows::core::Result<super::super::super::Media::Protection::MediaProtectionManager> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ProtectionManager)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Media::Protection::MediaProtectionManager>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Media_Protection'*"]
    #[cfg(feature = "Media_Protection")]
    pub fn SetProtectionManager<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Media::Protection::MediaProtectionManager>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetProtectionManager)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn Stereo3DVideoPackingMode(&self) -> ::windows::core::Result<super::Media::Stereo3DVideoPackingMode> {
        let this = self;
        unsafe {
            let mut result__: super::Media::Stereo3DVideoPackingMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Stereo3DVideoPackingMode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Stereo3DVideoPackingMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetStereo3DVideoPackingMode(&self, value: super::Media::Stereo3DVideoPackingMode) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetStereo3DVideoPackingMode)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn Stereo3DVideoRenderMode(&self) -> ::windows::core::Result<super::Media::Stereo3DVideoRenderMode> {
        let this = self;
        unsafe {
            let mut result__: super::Media::Stereo3DVideoRenderMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Stereo3DVideoRenderMode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Stereo3DVideoRenderMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetStereo3DVideoRenderMode(&self, value: super::Media::Stereo3DVideoRenderMode) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetStereo3DVideoRenderMode)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsStereo3DVideo(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsStereo3DVideo)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn MediaOpened<'a, Param0: ::windows::core::IntoParam<'a, super::RoutedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MediaOpened)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveMediaOpened<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveMediaOpened)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn MediaEnded<'a, Param0: ::windows::core::IntoParam<'a, super::RoutedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MediaEnded)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveMediaEnded<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveMediaEnded)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn MediaFailed<'a, Param0: ::windows::core::IntoParam<'a, super::ExceptionRoutedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MediaFailed)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveMediaFailed<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveMediaFailed)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn DownloadProgressChanged<'a, Param0: ::windows::core::IntoParam<'a, super::RoutedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DownloadProgressChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveDownloadProgressChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveDownloadProgressChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn BufferingProgressChanged<'a, Param0: ::windows::core::IntoParam<'a, super::RoutedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BufferingProgressChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveBufferingProgressChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveBufferingProgressChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn CurrentStateChanged<'a, Param0: ::windows::core::IntoParam<'a, super::RoutedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CurrentStateChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveCurrentStateChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveCurrentStateChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'UI_Xaml_Media'*"]
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Media"))]
    pub fn MarkerReached<'a, Param0: ::windows::core::IntoParam<'a, super::Media::TimelineMarkerRoutedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MarkerReached)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveMarkerReached<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveMarkerReached)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'UI_Xaml_Media'*"]
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Media"))]
    pub fn RateChanged<'a, Param0: ::windows::core::IntoParam<'a, super::Media::RateChangedRoutedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).RateChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveRateChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveRateChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn VolumeChanged<'a, Param0: ::windows::core::IntoParam<'a, super::RoutedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VolumeChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveVolumeChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveVolumeChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SeekCompleted<'a, Param0: ::windows::core::IntoParam<'a, super::RoutedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SeekCompleted)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveSeekCompleted<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveSeekCompleted)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Stop(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Stop)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Play(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Play)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Pause(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Pause)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn CanPlayType<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, r#type: Param0) -> ::windows::core::Result<super::Media::MediaCanPlayResponse> {
        let this = self;
        unsafe {
            let mut result__: super::Media::MediaCanPlayResponse = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanPlayType)(::core::mem::transmute_copy(this), r#type.into_param().abi(), &mut result__).from_abi::<super::Media::MediaCanPlayResponse>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Storage_Streams'*"]
    #[cfg(feature = "Storage_Streams")]
    pub fn SetSource2<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Storage::Streams::IRandomAccessStream>, Param1: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, stream: Param0, mimetype: Param1) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSource2)(::core::mem::transmute_copy(this), stream.into_param().abi(), mimetype.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn GetAudioStreamLanguage<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::IReference<i32>>>(&self, index: Param0) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetAudioStreamLanguage)(::core::mem::transmute_copy(this), index.into_param().abi(), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn AddAudioEffect<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>, Param2: ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IPropertySet>>(&self, effectid: Param0, effectoptional: bool, effectconfiguration: Param2) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).AddAudioEffect)(::core::mem::transmute_copy(this), effectid.into_param().abi(), effectoptional, effectconfiguration.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn AddVideoEffect<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>, Param2: ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IPropertySet>>(&self, effectid: Param0, effectoptional: bool, effectconfiguration: Param2) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).AddVideoEffect)(::core::mem::transmute_copy(this), effectid.into_param().abi(), effectoptional, effectconfiguration.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn RemoveAllEffects(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveAllEffects)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn ActualStereo3DVideoPackingMode(&self) -> ::windows::core::Result<super::Media::Stereo3DVideoPackingMode> {
        let this = self;
        unsafe {
            let mut result__: super::Media::Stereo3DVideoPackingMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ActualStereo3DVideoPackingMode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Stereo3DVideoPackingMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AreTransportControlsEnabled(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IMediaElement2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AreTransportControlsEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetAreTransportControlsEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IMediaElement2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetAreTransportControlsEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn Stretch(&self) -> ::windows::core::Result<super::Media::Stretch> {
        let this = &::windows::core::Interface::cast::<IMediaElement2>(self)?;
        unsafe {
            let mut result__: super::Media::Stretch = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Stretch)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Stretch>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetStretch(&self, value: super::Media::Stretch) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IMediaElement2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetStretch)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsFullWindow(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IMediaElement2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsFullWindow)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsFullWindow(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IMediaElement2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsFullWindow)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Media_Core'*"]
    #[cfg(feature = "Media_Core")]
    pub fn SetMediaStreamSource<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Media::Core::IMediaSource>>(&self, source: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IMediaElement2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetMediaStreamSource)(::core::mem::transmute_copy(this), source.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'deprecated'*"]
    #[cfg(all(feature = "Foundation", feature = "deprecated"))]
    pub fn PlayToPreferredSourceUri(&self) -> ::windows::core::Result<super::super::super::Foundation::Uri> {
        let this = &::windows::core::Interface::cast::<IMediaElement2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlayToPreferredSourceUri)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Uri>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'deprecated'*"]
    #[cfg(all(feature = "Foundation", feature = "deprecated"))]
    pub fn SetPlayToPreferredSourceUri<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::Uri>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IMediaElement2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetPlayToPreferredSourceUri)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TransportControls(&self) -> ::windows::core::Result<MediaTransportControls> {
        let this = &::windows::core::Interface::cast::<IMediaElement3>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TransportControls)(::core::mem::transmute_copy(this), &mut result__).from_abi::<MediaTransportControls>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTransportControls<'a, Param0: ::windows::core::IntoParam<'a, MediaTransportControls>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IMediaElement3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetTransportControls)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'UI_Xaml_Media'*"]
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Media"))]
    pub fn PartialMediaFailureDetected<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<MediaElement, super::Media::PartialMediaFailureDetectedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IMediaElement3>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PartialMediaFailureDetected)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemovePartialMediaFailureDetected<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IMediaElement3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemovePartialMediaFailureDetected)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Media_Playback'*"]
    #[cfg(feature = "Media_Playback")]
    pub fn SetPlaybackSource<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Media::Playback::IMediaPlaybackSource>>(&self, source: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IMediaElement3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetPlaybackSource)(::core::mem::transmute_copy(this), source.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Media_Casting'*"]
    #[cfg(feature = "Media_Casting")]
    pub fn GetAsCastingSource(&self) -> ::windows::core::Result<super::super::super::Media::Casting::CastingSource> {
        let this = &::windows::core::Interface::cast::<IMediaElement3>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetAsCastingSource)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Media::Casting::CastingSource>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PosterSourceProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PosterSourceProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SourceProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SourceProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsMutedProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsMutedProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsAudioOnlyProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsAudioOnlyProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AutoPlayProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AutoPlayProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VolumeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VolumeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BalanceProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BalanceProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn NaturalVideoHeightProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).NaturalVideoHeightProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn NaturalVideoWidthProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).NaturalVideoWidthProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn NaturalDurationProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).NaturalDurationProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PositionProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PositionProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DownloadProgressProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DownloadProgressProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BufferingProgressProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BufferingProgressProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DownloadProgressOffsetProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DownloadProgressOffsetProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CurrentStateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CurrentStateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanSeekProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanSeekProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanPauseProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanPauseProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AudioStreamCountProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AudioStreamCountProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AudioStreamIndexProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AudioStreamIndexProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PlaybackRateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlaybackRateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsLoopingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsLoopingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'deprecated'*"]
    #[cfg(feature = "deprecated")]
    pub fn PlayToSourceProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlayToSourceProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DefaultPlaybackRateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DefaultPlaybackRateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AspectRatioWidthProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AspectRatioWidthProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AspectRatioHeightProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AspectRatioHeightProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn RealTimePlaybackProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).RealTimePlaybackProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AudioCategoryProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AudioCategoryProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AudioDeviceTypeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AudioDeviceTypeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ProtectionManagerProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ProtectionManagerProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Stereo3DVideoPackingModeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Stereo3DVideoPackingModeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Stereo3DVideoRenderModeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Stereo3DVideoRenderModeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsStereo3DVideoProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsStereo3DVideoProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ActualStereo3DVideoPackingModeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ActualStereo3DVideoPackingModeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AreTransportControlsEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AreTransportControlsEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn StretchProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).StretchProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsFullWindowProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsFullWindowProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'deprecated'*"]
    #[cfg(feature = "deprecated")]
    pub fn PlayToPreferredSourceUriProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaElementStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlayToPreferredSourceUriProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IMediaElementStatics<R, F: FnOnce(&IMediaElementStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<MediaElement, IMediaElementStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IMediaElementStatics2<R, F: FnOnce(&IMediaElementStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<MediaElement, IMediaElementStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for MediaElement {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for MediaElement {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for MediaElement {}
impl ::core::fmt::Debug for MediaElement {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("MediaElement").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for MediaElement {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.MediaElement;{a38ed2cf-13de-4299-ade2-ae18f74ed353})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for MediaElement {
    type Vtable = IMediaElement_Vtbl;
    const IID: ::windows::core::GUID = <IMediaElement as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for MediaElement {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.MediaElement";
}
impl ::core::convert::From<MediaElement> for ::windows::core::IUnknown {
    fn from(value: MediaElement) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&MediaElement> for ::windows::core::IUnknown {
    fn from(value: &MediaElement) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for MediaElement {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a MediaElement {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<MediaElement> for ::windows::core::IInspectable {
    fn from(value: MediaElement) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&MediaElement> for ::windows::core::IInspectable {
    fn from(value: &MediaElement) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for MediaElement {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a MediaElement {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<MediaElement> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: MediaElement) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&MediaElement> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &MediaElement) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for MediaElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &MediaElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<MediaElement> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: MediaElement) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&MediaElement> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &MediaElement) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for MediaElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &MediaElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<MediaElement> for super::FrameworkElement {
    fn from(value: MediaElement) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MediaElement> for super::FrameworkElement {
    fn from(value: &MediaElement) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for MediaElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &MediaElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<MediaElement> for super::UIElement {
    fn from(value: MediaElement) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MediaElement> for super::UIElement {
    fn from(value: &MediaElement) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for MediaElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &MediaElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<MediaElement> for super::DependencyObject {
    fn from(value: MediaElement) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MediaElement> for super::DependencyObject {
    fn from(value: &MediaElement) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for MediaElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &MediaElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for MediaElement {}
unsafe impl ::core::marker::Sync for MediaElement {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct MediaPlayerElement(::windows::core::IUnknown);
impl MediaPlayerElement {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Media_Playback'*"]
    #[cfg(feature = "Media_Playback")]
    pub fn Source(&self) -> ::windows::core::Result<super::super::super::Media::Playback::IMediaPlaybackSource> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Source)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Media::Playback::IMediaPlaybackSource>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Media_Playback'*"]
    #[cfg(feature = "Media_Playback")]
    pub fn SetSource<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Media::Playback::IMediaPlaybackSource>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSource)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TransportControls(&self) -> ::windows::core::Result<MediaTransportControls> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TransportControls)(::core::mem::transmute_copy(this), &mut result__).from_abi::<MediaTransportControls>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTransportControls<'a, Param0: ::windows::core::IntoParam<'a, MediaTransportControls>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTransportControls)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AreTransportControlsEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AreTransportControlsEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetAreTransportControlsEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetAreTransportControlsEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn PosterSource(&self) -> ::windows::core::Result<super::Media::ImageSource> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PosterSource)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::ImageSource>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetPosterSource<'a, Param0: ::windows::core::IntoParam<'a, super::Media::ImageSource>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPosterSource)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn Stretch(&self) -> ::windows::core::Result<super::Media::Stretch> {
        let this = self;
        unsafe {
            let mut result__: super::Media::Stretch = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Stretch)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Stretch>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetStretch(&self, value: super::Media::Stretch) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetStretch)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AutoPlay(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AutoPlay)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetAutoPlay(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetAutoPlay)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsFullWindow(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsFullWindow)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsFullWindow(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsFullWindow)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Media_Playback'*"]
    #[cfg(feature = "Media_Playback")]
    pub fn MediaPlayer(&self) -> ::windows::core::Result<super::super::super::Media::Playback::MediaPlayer> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MediaPlayer)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Media::Playback::MediaPlayer>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Media_Playback'*"]
    #[cfg(feature = "Media_Playback")]
    pub fn SetMediaPlayer<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Media::Playback::MediaPlayer>>(&self, mediaplayer: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMediaPlayer)(::core::mem::transmute_copy(this), mediaplayer.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<MediaPlayerElement> {
        Self::IMediaPlayerElementFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<MediaPlayerElement>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<MediaPlayerElement> {
        Self::IMediaPlayerElementFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<MediaPlayerElement>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SourceProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaPlayerElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SourceProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AreTransportControlsEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaPlayerElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AreTransportControlsEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PosterSourceProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaPlayerElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PosterSourceProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn StretchProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaPlayerElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).StretchProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AutoPlayProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaPlayerElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AutoPlayProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsFullWindowProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaPlayerElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsFullWindowProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MediaPlayerProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaPlayerElementStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MediaPlayerProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IMediaPlayerElementFactory<R, F: FnOnce(&IMediaPlayerElementFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<MediaPlayerElement, IMediaPlayerElementFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IMediaPlayerElementStatics<R, F: FnOnce(&IMediaPlayerElementStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<MediaPlayerElement, IMediaPlayerElementStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for MediaPlayerElement {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for MediaPlayerElement {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for MediaPlayerElement {}
impl ::core::fmt::Debug for MediaPlayerElement {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("MediaPlayerElement").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for MediaPlayerElement {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.MediaPlayerElement;{3b4ca526-2e25-4598-bc71-d491f8e8de39})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for MediaPlayerElement {
    type Vtable = IMediaPlayerElement_Vtbl;
    const IID: ::windows::core::GUID = <IMediaPlayerElement as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for MediaPlayerElement {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.MediaPlayerElement";
}
impl ::core::convert::From<MediaPlayerElement> for ::windows::core::IUnknown {
    fn from(value: MediaPlayerElement) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&MediaPlayerElement> for ::windows::core::IUnknown {
    fn from(value: &MediaPlayerElement) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for MediaPlayerElement {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a MediaPlayerElement {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<MediaPlayerElement> for ::windows::core::IInspectable {
    fn from(value: MediaPlayerElement) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&MediaPlayerElement> for ::windows::core::IInspectable {
    fn from(value: &MediaPlayerElement) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for MediaPlayerElement {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a MediaPlayerElement {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<MediaPlayerElement> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: MediaPlayerElement) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&MediaPlayerElement> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &MediaPlayerElement) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for MediaPlayerElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &MediaPlayerElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<MediaPlayerElement> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: MediaPlayerElement) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&MediaPlayerElement> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &MediaPlayerElement) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for MediaPlayerElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &MediaPlayerElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<MediaPlayerElement> for Control {
    fn from(value: MediaPlayerElement) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MediaPlayerElement> for Control {
    fn from(value: &MediaPlayerElement) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for MediaPlayerElement {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &MediaPlayerElement {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<MediaPlayerElement> for super::FrameworkElement {
    fn from(value: MediaPlayerElement) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MediaPlayerElement> for super::FrameworkElement {
    fn from(value: &MediaPlayerElement) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for MediaPlayerElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &MediaPlayerElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<MediaPlayerElement> for super::UIElement {
    fn from(value: MediaPlayerElement) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MediaPlayerElement> for super::UIElement {
    fn from(value: &MediaPlayerElement) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for MediaPlayerElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &MediaPlayerElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<MediaPlayerElement> for super::DependencyObject {
    fn from(value: MediaPlayerElement) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MediaPlayerElement> for super::DependencyObject {
    fn from(value: &MediaPlayerElement) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for MediaPlayerElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &MediaPlayerElement {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for MediaPlayerElement {}
unsafe impl ::core::marker::Sync for MediaPlayerElement {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct MediaPlayerPresenter(::windows::core::IUnknown);
impl MediaPlayerPresenter {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Media_Playback'*"]
    #[cfg(feature = "Media_Playback")]
    pub fn MediaPlayer(&self) -> ::windows::core::Result<super::super::super::Media::Playback::MediaPlayer> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MediaPlayer)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Media::Playback::MediaPlayer>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Media_Playback'*"]
    #[cfg(feature = "Media_Playback")]
    pub fn SetMediaPlayer<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Media::Playback::MediaPlayer>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMediaPlayer)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn Stretch(&self) -> ::windows::core::Result<super::Media::Stretch> {
        let this = self;
        unsafe {
            let mut result__: super::Media::Stretch = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Stretch)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Stretch>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetStretch(&self, value: super::Media::Stretch) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetStretch)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsFullWindow(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsFullWindow)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsFullWindow(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsFullWindow)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<MediaPlayerPresenter> {
        Self::IMediaPlayerPresenterFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<MediaPlayerPresenter>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<MediaPlayerPresenter> {
        Self::IMediaPlayerPresenterFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<MediaPlayerPresenter>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MediaPlayerProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaPlayerPresenterStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MediaPlayerProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn StretchProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaPlayerPresenterStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).StretchProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsFullWindowProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaPlayerPresenterStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsFullWindowProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IMediaPlayerPresenterFactory<R, F: FnOnce(&IMediaPlayerPresenterFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<MediaPlayerPresenter, IMediaPlayerPresenterFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IMediaPlayerPresenterStatics<R, F: FnOnce(&IMediaPlayerPresenterStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<MediaPlayerPresenter, IMediaPlayerPresenterStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for MediaPlayerPresenter {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for MediaPlayerPresenter {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for MediaPlayerPresenter {}
impl ::core::fmt::Debug for MediaPlayerPresenter {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("MediaPlayerPresenter").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for MediaPlayerPresenter {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.MediaPlayerPresenter;{77a92326-0c5b-41fc-bf49-15f6c3524b6b})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for MediaPlayerPresenter {
    type Vtable = IMediaPlayerPresenter_Vtbl;
    const IID: ::windows::core::GUID = <IMediaPlayerPresenter as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for MediaPlayerPresenter {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.MediaPlayerPresenter";
}
impl ::core::convert::From<MediaPlayerPresenter> for ::windows::core::IUnknown {
    fn from(value: MediaPlayerPresenter) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&MediaPlayerPresenter> for ::windows::core::IUnknown {
    fn from(value: &MediaPlayerPresenter) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for MediaPlayerPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a MediaPlayerPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<MediaPlayerPresenter> for ::windows::core::IInspectable {
    fn from(value: MediaPlayerPresenter) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&MediaPlayerPresenter> for ::windows::core::IInspectable {
    fn from(value: &MediaPlayerPresenter) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for MediaPlayerPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a MediaPlayerPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<MediaPlayerPresenter> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: MediaPlayerPresenter) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&MediaPlayerPresenter> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &MediaPlayerPresenter) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for MediaPlayerPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &MediaPlayerPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<MediaPlayerPresenter> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: MediaPlayerPresenter) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&MediaPlayerPresenter> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &MediaPlayerPresenter) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for MediaPlayerPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &MediaPlayerPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<MediaPlayerPresenter> for super::FrameworkElement {
    fn from(value: MediaPlayerPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MediaPlayerPresenter> for super::FrameworkElement {
    fn from(value: &MediaPlayerPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for MediaPlayerPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &MediaPlayerPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<MediaPlayerPresenter> for super::UIElement {
    fn from(value: MediaPlayerPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MediaPlayerPresenter> for super::UIElement {
    fn from(value: &MediaPlayerPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for MediaPlayerPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &MediaPlayerPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<MediaPlayerPresenter> for super::DependencyObject {
    fn from(value: MediaPlayerPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MediaPlayerPresenter> for super::DependencyObject {
    fn from(value: &MediaPlayerPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for MediaPlayerPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &MediaPlayerPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for MediaPlayerPresenter {}
unsafe impl ::core::marker::Sync for MediaPlayerPresenter {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct MediaTransportControls(::windows::core::IUnknown);
impl MediaTransportControls {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsFullWindowButtonVisible(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsFullWindowButtonVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsFullWindowButtonVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsFullWindowButtonVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsFullWindowEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsFullWindowEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsFullWindowEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsFullWindowEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsZoomButtonVisible(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsZoomButtonVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsZoomButtonVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsZoomButtonVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsZoomEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsZoomEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsZoomEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsZoomEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsFastForwardButtonVisible(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsFastForwardButtonVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsFastForwardButtonVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsFastForwardButtonVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsFastForwardEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsFastForwardEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsFastForwardEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsFastForwardEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsFastRewindButtonVisible(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsFastRewindButtonVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsFastRewindButtonVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsFastRewindButtonVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsFastRewindEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsFastRewindEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsFastRewindEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsFastRewindEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsStopButtonVisible(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsStopButtonVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsStopButtonVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsStopButtonVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsStopEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsStopEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsStopEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsStopEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsVolumeButtonVisible(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsVolumeButtonVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsVolumeButtonVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsVolumeButtonVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsVolumeEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsVolumeEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsVolumeEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsVolumeEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsPlaybackRateButtonVisible(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsPlaybackRateButtonVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsPlaybackRateButtonVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsPlaybackRateButtonVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsPlaybackRateEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsPlaybackRateEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsPlaybackRateEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsPlaybackRateEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsSeekBarVisible(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsSeekBarVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsSeekBarVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsSeekBarVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsSeekEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsSeekEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsSeekEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsSeekEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsCompact(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsCompact)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsCompact(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsCompact)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsSkipForwardButtonVisible(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IMediaTransportControls2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsSkipForwardButtonVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsSkipForwardButtonVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IMediaTransportControls2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsSkipForwardButtonVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsSkipForwardEnabled(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IMediaTransportControls2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsSkipForwardEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsSkipForwardEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IMediaTransportControls2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsSkipForwardEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsSkipBackwardButtonVisible(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IMediaTransportControls2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsSkipBackwardButtonVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsSkipBackwardButtonVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IMediaTransportControls2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsSkipBackwardButtonVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsSkipBackwardEnabled(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IMediaTransportControls2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsSkipBackwardEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsSkipBackwardEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IMediaTransportControls2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsSkipBackwardEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsNextTrackButtonVisible(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IMediaTransportControls2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsNextTrackButtonVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsNextTrackButtonVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IMediaTransportControls2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsNextTrackButtonVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsPreviousTrackButtonVisible(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IMediaTransportControls2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsPreviousTrackButtonVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsPreviousTrackButtonVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IMediaTransportControls2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsPreviousTrackButtonVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn FastPlayFallbackBehaviour(&self) -> ::windows::core::Result<super::Media::FastPlayFallbackBehaviour> {
        let this = &::windows::core::Interface::cast::<IMediaTransportControls2>(self)?;
        unsafe {
            let mut result__: super::Media::FastPlayFallbackBehaviour = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FastPlayFallbackBehaviour)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::FastPlayFallbackBehaviour>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetFastPlayFallbackBehaviour(&self, value: super::Media::FastPlayFallbackBehaviour) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IMediaTransportControls2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetFastPlayFallbackBehaviour)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'UI_Xaml_Media'*"]
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Media"))]
    pub fn ThumbnailRequested<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<MediaTransportControls, super::Media::MediaTransportControlsThumbnailRequestedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IMediaTransportControls2>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ThumbnailRequested)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveThumbnailRequested<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IMediaTransportControls2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveThumbnailRequested)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ShowAndHideAutomatically(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IMediaTransportControls3>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ShowAndHideAutomatically)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetShowAndHideAutomatically(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IMediaTransportControls3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetShowAndHideAutomatically)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsRepeatEnabled(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IMediaTransportControls3>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsRepeatEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsRepeatEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IMediaTransportControls3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsRepeatEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsRepeatButtonVisible(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IMediaTransportControls3>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsRepeatButtonVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsRepeatButtonVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IMediaTransportControls3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsRepeatButtonVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Show(&self) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IMediaTransportControls3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).Show)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Hide(&self) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IMediaTransportControls3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).Hide)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsCompactOverlayButtonVisible(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IMediaTransportControls4>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsCompactOverlayButtonVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsCompactOverlayButtonVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IMediaTransportControls4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsCompactOverlayButtonVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsCompactOverlayEnabled(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IMediaTransportControls4>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsCompactOverlayEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsCompactOverlayEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IMediaTransportControls4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsCompactOverlayEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<MediaTransportControls> {
        Self::IMediaTransportControlsFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<MediaTransportControls>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<MediaTransportControls> {
        Self::IMediaTransportControlsFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<MediaTransportControls>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsFullWindowButtonVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaTransportControlsStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsFullWindowButtonVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsFullWindowEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaTransportControlsStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsFullWindowEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsZoomButtonVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaTransportControlsStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsZoomButtonVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsZoomEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaTransportControlsStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsZoomEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsFastForwardButtonVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaTransportControlsStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsFastForwardButtonVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsFastForwardEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaTransportControlsStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsFastForwardEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsFastRewindButtonVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaTransportControlsStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsFastRewindButtonVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsFastRewindEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaTransportControlsStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsFastRewindEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsStopButtonVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaTransportControlsStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsStopButtonVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsStopEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaTransportControlsStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsStopEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsVolumeButtonVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaTransportControlsStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsVolumeButtonVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsVolumeEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaTransportControlsStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsVolumeEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsPlaybackRateButtonVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaTransportControlsStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsPlaybackRateButtonVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsPlaybackRateEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaTransportControlsStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsPlaybackRateEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsSeekBarVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaTransportControlsStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsSeekBarVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsSeekEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaTransportControlsStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsSeekEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsCompactProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaTransportControlsStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsCompactProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsSkipForwardButtonVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaTransportControlsStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsSkipForwardButtonVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsSkipForwardEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaTransportControlsStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsSkipForwardEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsSkipBackwardButtonVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaTransportControlsStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsSkipBackwardButtonVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsSkipBackwardEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaTransportControlsStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsSkipBackwardEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsNextTrackButtonVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaTransportControlsStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsNextTrackButtonVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsPreviousTrackButtonVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaTransportControlsStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsPreviousTrackButtonVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FastPlayFallbackBehaviourProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaTransportControlsStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FastPlayFallbackBehaviourProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ShowAndHideAutomaticallyProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaTransportControlsStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ShowAndHideAutomaticallyProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsRepeatEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaTransportControlsStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsRepeatEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsRepeatButtonVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaTransportControlsStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsRepeatButtonVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsCompactOverlayButtonVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaTransportControlsStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsCompactOverlayButtonVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsCompactOverlayEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaTransportControlsStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsCompactOverlayEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IMediaTransportControlsFactory<R, F: FnOnce(&IMediaTransportControlsFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<MediaTransportControls, IMediaTransportControlsFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IMediaTransportControlsStatics<R, F: FnOnce(&IMediaTransportControlsStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<MediaTransportControls, IMediaTransportControlsStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IMediaTransportControlsStatics2<R, F: FnOnce(&IMediaTransportControlsStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<MediaTransportControls, IMediaTransportControlsStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IMediaTransportControlsStatics3<R, F: FnOnce(&IMediaTransportControlsStatics3) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<MediaTransportControls, IMediaTransportControlsStatics3> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IMediaTransportControlsStatics4<R, F: FnOnce(&IMediaTransportControlsStatics4) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<MediaTransportControls, IMediaTransportControlsStatics4> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for MediaTransportControls {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for MediaTransportControls {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for MediaTransportControls {}
impl ::core::fmt::Debug for MediaTransportControls {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("MediaTransportControls").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for MediaTransportControls {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.MediaTransportControls;{d6f69e7d-0825-49a9-9fce-5586d8694f0c})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for MediaTransportControls {
    type Vtable = IMediaTransportControls_Vtbl;
    const IID: ::windows::core::GUID = <IMediaTransportControls as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for MediaTransportControls {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.MediaTransportControls";
}
impl ::core::convert::From<MediaTransportControls> for ::windows::core::IUnknown {
    fn from(value: MediaTransportControls) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&MediaTransportControls> for ::windows::core::IUnknown {
    fn from(value: &MediaTransportControls) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for MediaTransportControls {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a MediaTransportControls {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<MediaTransportControls> for ::windows::core::IInspectable {
    fn from(value: MediaTransportControls) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&MediaTransportControls> for ::windows::core::IInspectable {
    fn from(value: &MediaTransportControls) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for MediaTransportControls {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a MediaTransportControls {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<MediaTransportControls> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: MediaTransportControls) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&MediaTransportControls> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &MediaTransportControls) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for MediaTransportControls {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &MediaTransportControls {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<MediaTransportControls> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: MediaTransportControls) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&MediaTransportControls> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &MediaTransportControls) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for MediaTransportControls {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &MediaTransportControls {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<MediaTransportControls> for Control {
    fn from(value: MediaTransportControls) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MediaTransportControls> for Control {
    fn from(value: &MediaTransportControls) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for MediaTransportControls {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &MediaTransportControls {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<MediaTransportControls> for super::FrameworkElement {
    fn from(value: MediaTransportControls) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MediaTransportControls> for super::FrameworkElement {
    fn from(value: &MediaTransportControls) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for MediaTransportControls {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &MediaTransportControls {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<MediaTransportControls> for super::UIElement {
    fn from(value: MediaTransportControls) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MediaTransportControls> for super::UIElement {
    fn from(value: &MediaTransportControls) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for MediaTransportControls {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &MediaTransportControls {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<MediaTransportControls> for super::DependencyObject {
    fn from(value: MediaTransportControls) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MediaTransportControls> for super::DependencyObject {
    fn from(value: &MediaTransportControls) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for MediaTransportControls {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &MediaTransportControls {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for MediaTransportControls {}
unsafe impl ::core::marker::Sync for MediaTransportControls {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct MediaTransportControlsHelper(::windows::core::IUnknown);
impl MediaTransportControlsHelper {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DropoutOrderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMediaTransportControlsHelperStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DropoutOrderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn GetDropoutOrder<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0) -> ::windows::core::Result<super::super::super::Foundation::IReference<i32>> {
        Self::IMediaTransportControlsHelperStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetDropoutOrder)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::IReference<i32>>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SetDropoutOrder<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>, Param1: ::windows::core::IntoParam<'a, super::super::super::Foundation::IReference<i32>>>(element: Param0, value: Param1) -> ::windows::core::Result<()> {
        Self::IMediaTransportControlsHelperStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetDropoutOrder)(::core::mem::transmute_copy(this), element.into_param().abi(), value.into_param().abi()).ok() })
    }
    #[doc(hidden)]
    pub fn IMediaTransportControlsHelperStatics<R, F: FnOnce(&IMediaTransportControlsHelperStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<MediaTransportControlsHelper, IMediaTransportControlsHelperStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for MediaTransportControlsHelper {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for MediaTransportControlsHelper {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for MediaTransportControlsHelper {}
impl ::core::fmt::Debug for MediaTransportControlsHelper {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("MediaTransportControlsHelper").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for MediaTransportControlsHelper {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.MediaTransportControlsHelper;{3d41d509-ff44-4420-807e-8f7a2e2c4251})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for MediaTransportControlsHelper {
    type Vtable = IMediaTransportControlsHelper_Vtbl;
    const IID: ::windows::core::GUID = <IMediaTransportControlsHelper as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for MediaTransportControlsHelper {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.MediaTransportControlsHelper";
}
impl ::core::convert::From<MediaTransportControlsHelper> for ::windows::core::IUnknown {
    fn from(value: MediaTransportControlsHelper) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&MediaTransportControlsHelper> for ::windows::core::IUnknown {
    fn from(value: &MediaTransportControlsHelper) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for MediaTransportControlsHelper {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a MediaTransportControlsHelper {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<MediaTransportControlsHelper> for ::windows::core::IInspectable {
    fn from(value: MediaTransportControlsHelper) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&MediaTransportControlsHelper> for ::windows::core::IInspectable {
    fn from(value: &MediaTransportControlsHelper) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for MediaTransportControlsHelper {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a MediaTransportControlsHelper {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for MediaTransportControlsHelper {}
unsafe impl ::core::marker::Sync for MediaTransportControlsHelper {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct MenuBar(::windows::core::IUnknown);
impl MenuBar {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn Items(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVector<MenuBarItem>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Items)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<MenuBarItem>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<MenuBar> {
        Self::IMenuBarFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<MenuBar>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<MenuBar> {
        Self::IMenuBarFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<MenuBar>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMenuBarStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IMenuBarFactory<R, F: FnOnce(&IMenuBarFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<MenuBar, IMenuBarFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IMenuBarStatics<R, F: FnOnce(&IMenuBarStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<MenuBar, IMenuBarStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for MenuBar {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for MenuBar {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for MenuBar {}
impl ::core::fmt::Debug for MenuBar {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("MenuBar").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for MenuBar {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.MenuBar;{c8f67b0c-0e76-5af2-bade-785049c80a41})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for MenuBar {
    type Vtable = IMenuBar_Vtbl;
    const IID: ::windows::core::GUID = <IMenuBar as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for MenuBar {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.MenuBar";
}
impl ::core::convert::From<MenuBar> for ::windows::core::IUnknown {
    fn from(value: MenuBar) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&MenuBar> for ::windows::core::IUnknown {
    fn from(value: &MenuBar) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for MenuBar {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a MenuBar {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<MenuBar> for ::windows::core::IInspectable {
    fn from(value: MenuBar) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&MenuBar> for ::windows::core::IInspectable {
    fn from(value: &MenuBar) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for MenuBar {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a MenuBar {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<MenuBar> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: MenuBar) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&MenuBar> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &MenuBar) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for MenuBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &MenuBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<MenuBar> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: MenuBar) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&MenuBar> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &MenuBar) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for MenuBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &MenuBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<MenuBar> for Control {
    fn from(value: MenuBar) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuBar> for Control {
    fn from(value: &MenuBar) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for MenuBar {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &MenuBar {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<MenuBar> for super::FrameworkElement {
    fn from(value: MenuBar) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuBar> for super::FrameworkElement {
    fn from(value: &MenuBar) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for MenuBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &MenuBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<MenuBar> for super::UIElement {
    fn from(value: MenuBar) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuBar> for super::UIElement {
    fn from(value: &MenuBar) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for MenuBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &MenuBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<MenuBar> for super::DependencyObject {
    fn from(value: MenuBar) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuBar> for super::DependencyObject {
    fn from(value: &MenuBar) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for MenuBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &MenuBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for MenuBar {}
unsafe impl ::core::marker::Sync for MenuBar {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct MenuBarItem(::windows::core::IUnknown);
impl MenuBarItem {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Title(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Title)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTitle<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTitle)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn Items(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVector<MenuFlyoutItemBase>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Items)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<MenuFlyoutItemBase>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<MenuBarItem> {
        Self::IMenuBarItemFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<MenuBarItem>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<MenuBarItem> {
        Self::IMenuBarItemFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<MenuBarItem>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TitleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMenuBarItemStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TitleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMenuBarItemStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IMenuBarItemFactory<R, F: FnOnce(&IMenuBarItemFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<MenuBarItem, IMenuBarItemFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IMenuBarItemStatics<R, F: FnOnce(&IMenuBarItemStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<MenuBarItem, IMenuBarItemStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for MenuBarItem {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for MenuBarItem {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for MenuBarItem {}
impl ::core::fmt::Debug for MenuBarItem {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("MenuBarItem").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for MenuBarItem {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.MenuBarItem;{bf643b4c-8125-5b53-a454-06e896a5acee})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for MenuBarItem {
    type Vtable = IMenuBarItem_Vtbl;
    const IID: ::windows::core::GUID = <IMenuBarItem as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for MenuBarItem {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.MenuBarItem";
}
impl ::core::convert::From<MenuBarItem> for ::windows::core::IUnknown {
    fn from(value: MenuBarItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&MenuBarItem> for ::windows::core::IUnknown {
    fn from(value: &MenuBarItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for MenuBarItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a MenuBarItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<MenuBarItem> for ::windows::core::IInspectable {
    fn from(value: MenuBarItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&MenuBarItem> for ::windows::core::IInspectable {
    fn from(value: &MenuBarItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for MenuBarItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a MenuBarItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<MenuBarItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: MenuBarItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&MenuBarItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &MenuBarItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for MenuBarItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &MenuBarItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<MenuBarItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: MenuBarItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&MenuBarItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &MenuBarItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for MenuBarItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &MenuBarItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<MenuBarItem> for Control {
    fn from(value: MenuBarItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuBarItem> for Control {
    fn from(value: &MenuBarItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for MenuBarItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &MenuBarItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<MenuBarItem> for super::FrameworkElement {
    fn from(value: MenuBarItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuBarItem> for super::FrameworkElement {
    fn from(value: &MenuBarItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for MenuBarItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &MenuBarItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<MenuBarItem> for super::UIElement {
    fn from(value: MenuBarItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuBarItem> for super::UIElement {
    fn from(value: &MenuBarItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for MenuBarItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &MenuBarItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<MenuBarItem> for super::DependencyObject {
    fn from(value: MenuBarItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuBarItem> for super::DependencyObject {
    fn from(value: &MenuBarItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for MenuBarItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &MenuBarItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for MenuBarItem {}
unsafe impl ::core::marker::Sync for MenuBarItem {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct MenuBarItemFlyout(::windows::core::IUnknown);
impl MenuBarItemFlyout {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<MenuBarItemFlyout> {
        Self::IMenuBarItemFlyoutFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<MenuBarItemFlyout>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<MenuBarItemFlyout> {
        Self::IMenuBarItemFlyoutFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<MenuBarItemFlyout>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IMenuBarItemFlyoutFactory<R, F: FnOnce(&IMenuBarItemFlyoutFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<MenuBarItemFlyout, IMenuBarItemFlyoutFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for MenuBarItemFlyout {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for MenuBarItemFlyout {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for MenuBarItemFlyout {}
impl ::core::fmt::Debug for MenuBarItemFlyout {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("MenuBarItemFlyout").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for MenuBarItemFlyout {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.MenuBarItemFlyout;{ed00d2d8-b686-55fe-8dbb-f04a640e42ef})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for MenuBarItemFlyout {
    type Vtable = IMenuBarItemFlyout_Vtbl;
    const IID: ::windows::core::GUID = <IMenuBarItemFlyout as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for MenuBarItemFlyout {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.MenuBarItemFlyout";
}
impl ::core::convert::From<MenuBarItemFlyout> for ::windows::core::IUnknown {
    fn from(value: MenuBarItemFlyout) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&MenuBarItemFlyout> for ::windows::core::IUnknown {
    fn from(value: &MenuBarItemFlyout) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for MenuBarItemFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a MenuBarItemFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<MenuBarItemFlyout> for ::windows::core::IInspectable {
    fn from(value: MenuBarItemFlyout) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&MenuBarItemFlyout> for ::windows::core::IInspectable {
    fn from(value: &MenuBarItemFlyout) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for MenuBarItemFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a MenuBarItemFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<MenuBarItemFlyout> for MenuFlyout {
    fn from(value: MenuBarItemFlyout) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuBarItemFlyout> for MenuFlyout {
    fn from(value: &MenuBarItemFlyout) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, MenuFlyout> for MenuBarItemFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, MenuFlyout> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, MenuFlyout> for &MenuBarItemFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, MenuFlyout> {
        ::windows::core::Param::Owned(::core::convert::Into::<MenuFlyout>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<MenuBarItemFlyout> for Primitives::FlyoutBase {
    fn from(value: MenuBarItemFlyout) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&MenuBarItemFlyout> for Primitives::FlyoutBase {
    fn from(value: &MenuBarItemFlyout) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::FlyoutBase> for MenuBarItemFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::FlyoutBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::FlyoutBase> for &MenuBarItemFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::FlyoutBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::FlyoutBase>::into(self))
    }
}
impl ::core::convert::From<MenuBarItemFlyout> for super::DependencyObject {
    fn from(value: MenuBarItemFlyout) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuBarItemFlyout> for super::DependencyObject {
    fn from(value: &MenuBarItemFlyout) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for MenuBarItemFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &MenuBarItemFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for MenuBarItemFlyout {}
unsafe impl ::core::marker::Sync for MenuBarItemFlyout {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct MenuFlyout(::windows::core::IUnknown);
impl MenuFlyout {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn Items(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVector<MenuFlyoutItemBase>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Items)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<MenuFlyoutItemBase>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MenuFlyoutPresenterStyle(&self) -> ::windows::core::Result<super::Style> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MenuFlyoutPresenterStyle)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Style>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMenuFlyoutPresenterStyle<'a, Param0: ::windows::core::IntoParam<'a, super::Style>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMenuFlyoutPresenterStyle)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ShowAt<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>, Param1: ::windows::core::IntoParam<'a, super::super::super::Foundation::Point>>(&self, targetelement: Param0, point: Param1) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IMenuFlyout2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).ShowAt)(::core::mem::transmute_copy(this), targetelement.into_param().abi(), point.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<MenuFlyout> {
        Self::IMenuFlyoutFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<MenuFlyout>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<MenuFlyout> {
        Self::IMenuFlyoutFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<MenuFlyout>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MenuFlyoutPresenterStyleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMenuFlyoutStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MenuFlyoutPresenterStyleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IMenuFlyoutFactory<R, F: FnOnce(&IMenuFlyoutFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<MenuFlyout, IMenuFlyoutFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IMenuFlyoutStatics<R, F: FnOnce(&IMenuFlyoutStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<MenuFlyout, IMenuFlyoutStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for MenuFlyout {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for MenuFlyout {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for MenuFlyout {}
impl ::core::fmt::Debug for MenuFlyout {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("MenuFlyout").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for MenuFlyout {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.MenuFlyout;{ad3210f1-985b-4171-bbba-67bcc729649b})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for MenuFlyout {
    type Vtable = IMenuFlyout_Vtbl;
    const IID: ::windows::core::GUID = <IMenuFlyout as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for MenuFlyout {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.MenuFlyout";
}
impl ::core::convert::From<MenuFlyout> for ::windows::core::IUnknown {
    fn from(value: MenuFlyout) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&MenuFlyout> for ::windows::core::IUnknown {
    fn from(value: &MenuFlyout) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for MenuFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a MenuFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<MenuFlyout> for ::windows::core::IInspectable {
    fn from(value: MenuFlyout) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&MenuFlyout> for ::windows::core::IInspectable {
    fn from(value: &MenuFlyout) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for MenuFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a MenuFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<MenuFlyout> for Primitives::FlyoutBase {
    fn from(value: MenuFlyout) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&MenuFlyout> for Primitives::FlyoutBase {
    fn from(value: &MenuFlyout) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::FlyoutBase> for MenuFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::FlyoutBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::FlyoutBase> for &MenuFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::FlyoutBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::FlyoutBase>::into(self))
    }
}
impl ::core::convert::From<MenuFlyout> for super::DependencyObject {
    fn from(value: MenuFlyout) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuFlyout> for super::DependencyObject {
    fn from(value: &MenuFlyout) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for MenuFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &MenuFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for MenuFlyout {}
unsafe impl ::core::marker::Sync for MenuFlyout {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct MenuFlyoutItem(::windows::core::IUnknown);
impl MenuFlyoutItem {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Text(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Text)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetText<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetText)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Input'*"]
    #[cfg(feature = "UI_Xaml_Input")]
    pub fn Command(&self) -> ::windows::core::Result<super::Input::ICommand> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Command)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Input::ICommand>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Input'*"]
    #[cfg(feature = "UI_Xaml_Input")]
    pub fn SetCommand<'a, Param0: ::windows::core::IntoParam<'a, super::Input::ICommand>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCommand)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CommandParameter(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CommandParameter)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCommandParameter<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCommandParameter)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Click<'a, Param0: ::windows::core::IntoParam<'a, super::RoutedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Click)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveClick<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveClick)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Icon(&self) -> ::windows::core::Result<IconElement> {
        let this = &::windows::core::Interface::cast::<IMenuFlyoutItem2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Icon)(::core::mem::transmute_copy(this), &mut result__).from_abi::<IconElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIcon<'a, Param0: ::windows::core::IntoParam<'a, IconElement>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IMenuFlyoutItem2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIcon)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn KeyboardAcceleratorTextOverride(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = &::windows::core::Interface::cast::<IMenuFlyoutItem3>(self)?;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).KeyboardAcceleratorTextOverride)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetKeyboardAcceleratorTextOverride<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IMenuFlyoutItem3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetKeyboardAcceleratorTextOverride)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn TemplateSettings(&self) -> ::windows::core::Result<Primitives::MenuFlyoutItemTemplateSettings> {
        let this = &::windows::core::Interface::cast::<IMenuFlyoutItem3>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TemplateSettings)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::MenuFlyoutItemTemplateSettings>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<MenuFlyoutItem> {
        Self::IMenuFlyoutItemFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<MenuFlyoutItem>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<MenuFlyoutItem> {
        Self::IMenuFlyoutItemFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<MenuFlyoutItem>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMenuFlyoutItemStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CommandProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMenuFlyoutItemStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CommandProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CommandParameterProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMenuFlyoutItemStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CommandParameterProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IconProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMenuFlyoutItemStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IconProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn KeyboardAcceleratorTextOverrideProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMenuFlyoutItemStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).KeyboardAcceleratorTextOverrideProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IMenuFlyoutItemFactory<R, F: FnOnce(&IMenuFlyoutItemFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<MenuFlyoutItem, IMenuFlyoutItemFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IMenuFlyoutItemStatics<R, F: FnOnce(&IMenuFlyoutItemStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<MenuFlyoutItem, IMenuFlyoutItemStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IMenuFlyoutItemStatics2<R, F: FnOnce(&IMenuFlyoutItemStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<MenuFlyoutItem, IMenuFlyoutItemStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IMenuFlyoutItemStatics3<R, F: FnOnce(&IMenuFlyoutItemStatics3) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<MenuFlyoutItem, IMenuFlyoutItemStatics3> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for MenuFlyoutItem {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for MenuFlyoutItem {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for MenuFlyoutItem {}
impl ::core::fmt::Debug for MenuFlyoutItem {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("MenuFlyoutItem").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for MenuFlyoutItem {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.MenuFlyoutItem;{160775cf-b598-44af-a488-c3ce2af6d3f0})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for MenuFlyoutItem {
    type Vtable = IMenuFlyoutItem_Vtbl;
    const IID: ::windows::core::GUID = <IMenuFlyoutItem as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for MenuFlyoutItem {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.MenuFlyoutItem";
}
impl ::core::convert::From<MenuFlyoutItem> for ::windows::core::IUnknown {
    fn from(value: MenuFlyoutItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&MenuFlyoutItem> for ::windows::core::IUnknown {
    fn from(value: &MenuFlyoutItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for MenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a MenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<MenuFlyoutItem> for ::windows::core::IInspectable {
    fn from(value: MenuFlyoutItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&MenuFlyoutItem> for ::windows::core::IInspectable {
    fn from(value: &MenuFlyoutItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for MenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a MenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<MenuFlyoutItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: MenuFlyoutItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&MenuFlyoutItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &MenuFlyoutItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for MenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &MenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<MenuFlyoutItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: MenuFlyoutItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&MenuFlyoutItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &MenuFlyoutItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for MenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &MenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<MenuFlyoutItem> for MenuFlyoutItemBase {
    fn from(value: MenuFlyoutItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuFlyoutItem> for MenuFlyoutItemBase {
    fn from(value: &MenuFlyoutItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, MenuFlyoutItemBase> for MenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, MenuFlyoutItemBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, MenuFlyoutItemBase> for &MenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, MenuFlyoutItemBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<MenuFlyoutItemBase>::into(self))
    }
}
impl ::core::convert::From<MenuFlyoutItem> for Control {
    fn from(value: MenuFlyoutItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuFlyoutItem> for Control {
    fn from(value: &MenuFlyoutItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for MenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &MenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<MenuFlyoutItem> for super::FrameworkElement {
    fn from(value: MenuFlyoutItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuFlyoutItem> for super::FrameworkElement {
    fn from(value: &MenuFlyoutItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for MenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &MenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<MenuFlyoutItem> for super::UIElement {
    fn from(value: MenuFlyoutItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuFlyoutItem> for super::UIElement {
    fn from(value: &MenuFlyoutItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for MenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &MenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<MenuFlyoutItem> for super::DependencyObject {
    fn from(value: MenuFlyoutItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuFlyoutItem> for super::DependencyObject {
    fn from(value: &MenuFlyoutItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for MenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &MenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for MenuFlyoutItem {}
unsafe impl ::core::marker::Sync for MenuFlyoutItem {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct MenuFlyoutItemBase(::windows::core::IUnknown);
impl MenuFlyoutItemBase {}
impl ::core::clone::Clone for MenuFlyoutItemBase {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for MenuFlyoutItemBase {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for MenuFlyoutItemBase {}
impl ::core::fmt::Debug for MenuFlyoutItemBase {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("MenuFlyoutItemBase").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for MenuFlyoutItemBase {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.MenuFlyoutItemBase;{f9b56047-8da6-4730-9208-144125c6b396})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for MenuFlyoutItemBase {
    type Vtable = IMenuFlyoutItemBase_Vtbl;
    const IID: ::windows::core::GUID = <IMenuFlyoutItemBase as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for MenuFlyoutItemBase {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.MenuFlyoutItemBase";
}
impl ::core::convert::From<MenuFlyoutItemBase> for ::windows::core::IUnknown {
    fn from(value: MenuFlyoutItemBase) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&MenuFlyoutItemBase> for ::windows::core::IUnknown {
    fn from(value: &MenuFlyoutItemBase) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for MenuFlyoutItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a MenuFlyoutItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<MenuFlyoutItemBase> for ::windows::core::IInspectable {
    fn from(value: MenuFlyoutItemBase) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&MenuFlyoutItemBase> for ::windows::core::IInspectable {
    fn from(value: &MenuFlyoutItemBase) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for MenuFlyoutItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a MenuFlyoutItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<MenuFlyoutItemBase> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: MenuFlyoutItemBase) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&MenuFlyoutItemBase> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &MenuFlyoutItemBase) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for MenuFlyoutItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &MenuFlyoutItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<MenuFlyoutItemBase> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: MenuFlyoutItemBase) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&MenuFlyoutItemBase> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &MenuFlyoutItemBase) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for MenuFlyoutItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &MenuFlyoutItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<MenuFlyoutItemBase> for Control {
    fn from(value: MenuFlyoutItemBase) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuFlyoutItemBase> for Control {
    fn from(value: &MenuFlyoutItemBase) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for MenuFlyoutItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &MenuFlyoutItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<MenuFlyoutItemBase> for super::FrameworkElement {
    fn from(value: MenuFlyoutItemBase) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuFlyoutItemBase> for super::FrameworkElement {
    fn from(value: &MenuFlyoutItemBase) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for MenuFlyoutItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &MenuFlyoutItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<MenuFlyoutItemBase> for super::UIElement {
    fn from(value: MenuFlyoutItemBase) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuFlyoutItemBase> for super::UIElement {
    fn from(value: &MenuFlyoutItemBase) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for MenuFlyoutItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &MenuFlyoutItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<MenuFlyoutItemBase> for super::DependencyObject {
    fn from(value: MenuFlyoutItemBase) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuFlyoutItemBase> for super::DependencyObject {
    fn from(value: &MenuFlyoutItemBase) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for MenuFlyoutItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &MenuFlyoutItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for MenuFlyoutItemBase {}
unsafe impl ::core::marker::Sync for MenuFlyoutItemBase {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct MenuFlyoutPresenter(::windows::core::IUnknown);
impl MenuFlyoutPresenter {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn TemplateSettings(&self) -> ::windows::core::Result<Primitives::MenuFlyoutPresenterTemplateSettings> {
        let this = &::windows::core::Interface::cast::<IMenuFlyoutPresenter2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TemplateSettings)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::MenuFlyoutPresenterTemplateSettings>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsDefaultShadowEnabled(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IMenuFlyoutPresenter3>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsDefaultShadowEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsDefaultShadowEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IMenuFlyoutPresenter3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsDefaultShadowEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<MenuFlyoutPresenter> {
        Self::IMenuFlyoutPresenterFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<MenuFlyoutPresenter>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<MenuFlyoutPresenter> {
        Self::IMenuFlyoutPresenterFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<MenuFlyoutPresenter>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsDefaultShadowEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMenuFlyoutPresenterStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsDefaultShadowEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IMenuFlyoutPresenterFactory<R, F: FnOnce(&IMenuFlyoutPresenterFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<MenuFlyoutPresenter, IMenuFlyoutPresenterFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IMenuFlyoutPresenterStatics3<R, F: FnOnce(&IMenuFlyoutPresenterStatics3) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<MenuFlyoutPresenter, IMenuFlyoutPresenterStatics3> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for MenuFlyoutPresenter {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for MenuFlyoutPresenter {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for MenuFlyoutPresenter {}
impl ::core::fmt::Debug for MenuFlyoutPresenter {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("MenuFlyoutPresenter").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for MenuFlyoutPresenter {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.MenuFlyoutPresenter;{906e0304-254e-413f-b219-c7b97f003752})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for MenuFlyoutPresenter {
    type Vtable = IMenuFlyoutPresenter_Vtbl;
    const IID: ::windows::core::GUID = <IMenuFlyoutPresenter as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for MenuFlyoutPresenter {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.MenuFlyoutPresenter";
}
impl ::core::convert::From<MenuFlyoutPresenter> for ::windows::core::IUnknown {
    fn from(value: MenuFlyoutPresenter) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&MenuFlyoutPresenter> for ::windows::core::IUnknown {
    fn from(value: &MenuFlyoutPresenter) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for MenuFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a MenuFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<MenuFlyoutPresenter> for ::windows::core::IInspectable {
    fn from(value: MenuFlyoutPresenter) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&MenuFlyoutPresenter> for ::windows::core::IInspectable {
    fn from(value: &MenuFlyoutPresenter) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for MenuFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a MenuFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<MenuFlyoutPresenter> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: MenuFlyoutPresenter) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&MenuFlyoutPresenter> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &MenuFlyoutPresenter) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for MenuFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &MenuFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::TryFrom<MenuFlyoutPresenter> for IItemContainerMapping {
    type Error = ::windows::core::Error;
    fn try_from(value: MenuFlyoutPresenter) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
impl ::core::convert::TryFrom<&MenuFlyoutPresenter> for IItemContainerMapping {
    type Error = ::windows::core::Error;
    fn try_from(value: &MenuFlyoutPresenter) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IItemContainerMapping> for MenuFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, IItemContainerMapping> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IItemContainerMapping> for &MenuFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, IItemContainerMapping> {
        ::core::convert::TryInto::<IItemContainerMapping>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<MenuFlyoutPresenter> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: MenuFlyoutPresenter) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&MenuFlyoutPresenter> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &MenuFlyoutPresenter) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for MenuFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &MenuFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<MenuFlyoutPresenter> for ItemsControl {
    fn from(value: MenuFlyoutPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuFlyoutPresenter> for ItemsControl {
    fn from(value: &MenuFlyoutPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ItemsControl> for MenuFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ItemsControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ItemsControl> for &MenuFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ItemsControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ItemsControl>::into(self))
    }
}
impl ::core::convert::From<MenuFlyoutPresenter> for Control {
    fn from(value: MenuFlyoutPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuFlyoutPresenter> for Control {
    fn from(value: &MenuFlyoutPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for MenuFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &MenuFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<MenuFlyoutPresenter> for super::FrameworkElement {
    fn from(value: MenuFlyoutPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuFlyoutPresenter> for super::FrameworkElement {
    fn from(value: &MenuFlyoutPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for MenuFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &MenuFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<MenuFlyoutPresenter> for super::UIElement {
    fn from(value: MenuFlyoutPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuFlyoutPresenter> for super::UIElement {
    fn from(value: &MenuFlyoutPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for MenuFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &MenuFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<MenuFlyoutPresenter> for super::DependencyObject {
    fn from(value: MenuFlyoutPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuFlyoutPresenter> for super::DependencyObject {
    fn from(value: &MenuFlyoutPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for MenuFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &MenuFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for MenuFlyoutPresenter {}
unsafe impl ::core::marker::Sync for MenuFlyoutPresenter {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct MenuFlyoutSeparator(::windows::core::IUnknown);
impl MenuFlyoutSeparator {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<MenuFlyoutSeparator> {
        Self::IMenuFlyoutSeparatorFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<MenuFlyoutSeparator>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<MenuFlyoutSeparator> {
        Self::IMenuFlyoutSeparatorFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<MenuFlyoutSeparator>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IMenuFlyoutSeparatorFactory<R, F: FnOnce(&IMenuFlyoutSeparatorFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<MenuFlyoutSeparator, IMenuFlyoutSeparatorFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for MenuFlyoutSeparator {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for MenuFlyoutSeparator {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for MenuFlyoutSeparator {}
impl ::core::fmt::Debug for MenuFlyoutSeparator {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("MenuFlyoutSeparator").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for MenuFlyoutSeparator {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.MenuFlyoutSeparator;{71fa2b7d-0b51-4950-a1a4-bbc42eac4c12})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for MenuFlyoutSeparator {
    type Vtable = IMenuFlyoutSeparator_Vtbl;
    const IID: ::windows::core::GUID = <IMenuFlyoutSeparator as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for MenuFlyoutSeparator {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.MenuFlyoutSeparator";
}
impl ::core::convert::From<MenuFlyoutSeparator> for ::windows::core::IUnknown {
    fn from(value: MenuFlyoutSeparator) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&MenuFlyoutSeparator> for ::windows::core::IUnknown {
    fn from(value: &MenuFlyoutSeparator) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for MenuFlyoutSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a MenuFlyoutSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<MenuFlyoutSeparator> for ::windows::core::IInspectable {
    fn from(value: MenuFlyoutSeparator) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&MenuFlyoutSeparator> for ::windows::core::IInspectable {
    fn from(value: &MenuFlyoutSeparator) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for MenuFlyoutSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a MenuFlyoutSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<MenuFlyoutSeparator> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: MenuFlyoutSeparator) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&MenuFlyoutSeparator> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &MenuFlyoutSeparator) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for MenuFlyoutSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &MenuFlyoutSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<MenuFlyoutSeparator> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: MenuFlyoutSeparator) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&MenuFlyoutSeparator> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &MenuFlyoutSeparator) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for MenuFlyoutSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &MenuFlyoutSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<MenuFlyoutSeparator> for MenuFlyoutItemBase {
    fn from(value: MenuFlyoutSeparator) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuFlyoutSeparator> for MenuFlyoutItemBase {
    fn from(value: &MenuFlyoutSeparator) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, MenuFlyoutItemBase> for MenuFlyoutSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, MenuFlyoutItemBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, MenuFlyoutItemBase> for &MenuFlyoutSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, MenuFlyoutItemBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<MenuFlyoutItemBase>::into(self))
    }
}
impl ::core::convert::From<MenuFlyoutSeparator> for Control {
    fn from(value: MenuFlyoutSeparator) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuFlyoutSeparator> for Control {
    fn from(value: &MenuFlyoutSeparator) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for MenuFlyoutSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &MenuFlyoutSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<MenuFlyoutSeparator> for super::FrameworkElement {
    fn from(value: MenuFlyoutSeparator) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuFlyoutSeparator> for super::FrameworkElement {
    fn from(value: &MenuFlyoutSeparator) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for MenuFlyoutSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &MenuFlyoutSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<MenuFlyoutSeparator> for super::UIElement {
    fn from(value: MenuFlyoutSeparator) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuFlyoutSeparator> for super::UIElement {
    fn from(value: &MenuFlyoutSeparator) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for MenuFlyoutSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &MenuFlyoutSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<MenuFlyoutSeparator> for super::DependencyObject {
    fn from(value: MenuFlyoutSeparator) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuFlyoutSeparator> for super::DependencyObject {
    fn from(value: &MenuFlyoutSeparator) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for MenuFlyoutSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &MenuFlyoutSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for MenuFlyoutSeparator {}
unsafe impl ::core::marker::Sync for MenuFlyoutSeparator {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct MenuFlyoutSubItem(::windows::core::IUnknown);
impl MenuFlyoutSubItem {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<MenuFlyoutSubItem, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn Items(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVector<MenuFlyoutItemBase>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Items)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<MenuFlyoutItemBase>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Text(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Text)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetText<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetText)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Icon(&self) -> ::windows::core::Result<IconElement> {
        let this = &::windows::core::Interface::cast::<IMenuFlyoutSubItem2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Icon)(::core::mem::transmute_copy(this), &mut result__).from_abi::<IconElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIcon<'a, Param0: ::windows::core::IntoParam<'a, IconElement>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IMenuFlyoutSubItem2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIcon)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMenuFlyoutSubItemStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IconProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IMenuFlyoutSubItemStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IconProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IMenuFlyoutSubItemStatics<R, F: FnOnce(&IMenuFlyoutSubItemStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<MenuFlyoutSubItem, IMenuFlyoutSubItemStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IMenuFlyoutSubItemStatics2<R, F: FnOnce(&IMenuFlyoutSubItemStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<MenuFlyoutSubItem, IMenuFlyoutSubItemStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for MenuFlyoutSubItem {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for MenuFlyoutSubItem {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for MenuFlyoutSubItem {}
impl ::core::fmt::Debug for MenuFlyoutSubItem {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("MenuFlyoutSubItem").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for MenuFlyoutSubItem {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.MenuFlyoutSubItem;{e5386550-fe2c-43e2-a73f-62168f619973})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for MenuFlyoutSubItem {
    type Vtable = IMenuFlyoutSubItem_Vtbl;
    const IID: ::windows::core::GUID = <IMenuFlyoutSubItem as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for MenuFlyoutSubItem {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.MenuFlyoutSubItem";
}
impl ::core::convert::From<MenuFlyoutSubItem> for ::windows::core::IUnknown {
    fn from(value: MenuFlyoutSubItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&MenuFlyoutSubItem> for ::windows::core::IUnknown {
    fn from(value: &MenuFlyoutSubItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for MenuFlyoutSubItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a MenuFlyoutSubItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<MenuFlyoutSubItem> for ::windows::core::IInspectable {
    fn from(value: MenuFlyoutSubItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&MenuFlyoutSubItem> for ::windows::core::IInspectable {
    fn from(value: &MenuFlyoutSubItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for MenuFlyoutSubItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a MenuFlyoutSubItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<MenuFlyoutSubItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: MenuFlyoutSubItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&MenuFlyoutSubItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &MenuFlyoutSubItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for MenuFlyoutSubItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &MenuFlyoutSubItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<MenuFlyoutSubItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: MenuFlyoutSubItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&MenuFlyoutSubItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &MenuFlyoutSubItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for MenuFlyoutSubItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &MenuFlyoutSubItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<MenuFlyoutSubItem> for MenuFlyoutItemBase {
    fn from(value: MenuFlyoutSubItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuFlyoutSubItem> for MenuFlyoutItemBase {
    fn from(value: &MenuFlyoutSubItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, MenuFlyoutItemBase> for MenuFlyoutSubItem {
    fn into_param(self) -> ::windows::core::Param<'a, MenuFlyoutItemBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, MenuFlyoutItemBase> for &MenuFlyoutSubItem {
    fn into_param(self) -> ::windows::core::Param<'a, MenuFlyoutItemBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<MenuFlyoutItemBase>::into(self))
    }
}
impl ::core::convert::From<MenuFlyoutSubItem> for Control {
    fn from(value: MenuFlyoutSubItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuFlyoutSubItem> for Control {
    fn from(value: &MenuFlyoutSubItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for MenuFlyoutSubItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &MenuFlyoutSubItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<MenuFlyoutSubItem> for super::FrameworkElement {
    fn from(value: MenuFlyoutSubItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuFlyoutSubItem> for super::FrameworkElement {
    fn from(value: &MenuFlyoutSubItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for MenuFlyoutSubItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &MenuFlyoutSubItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<MenuFlyoutSubItem> for super::UIElement {
    fn from(value: MenuFlyoutSubItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuFlyoutSubItem> for super::UIElement {
    fn from(value: &MenuFlyoutSubItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for MenuFlyoutSubItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &MenuFlyoutSubItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<MenuFlyoutSubItem> for super::DependencyObject {
    fn from(value: MenuFlyoutSubItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&MenuFlyoutSubItem> for super::DependencyObject {
    fn from(value: &MenuFlyoutSubItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for MenuFlyoutSubItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &MenuFlyoutSubItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for MenuFlyoutSubItem {}
unsafe impl ::core::marker::Sync for MenuFlyoutSubItem {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct NavigationView(::windows::core::IUnknown);
impl NavigationView {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsPaneOpen(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsPaneOpen)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsPaneOpen(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsPaneOpen)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CompactModeThresholdWidth(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CompactModeThresholdWidth)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCompactModeThresholdWidth(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCompactModeThresholdWidth)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ExpandedModeThresholdWidth(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ExpandedModeThresholdWidth)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetExpandedModeThresholdWidth(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetExpandedModeThresholdWidth)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PaneFooter(&self) -> ::windows::core::Result<super::UIElement> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaneFooter)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::UIElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPaneFooter<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPaneFooter)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Header(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Header)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeader<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHeader)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTemplate(&self) -> ::windows::core::Result<super::DataTemplate> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTemplate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeaderTemplate<'a, Param0: ::windows::core::IntoParam<'a, super::DataTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHeaderTemplate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DisplayMode(&self) -> ::windows::core::Result<NavigationViewDisplayMode> {
        let this = self;
        unsafe {
            let mut result__: NavigationViewDisplayMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DisplayMode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<NavigationViewDisplayMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsSettingsVisible(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsSettingsVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsSettingsVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsSettingsVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsPaneToggleButtonVisible(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsPaneToggleButtonVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsPaneToggleButtonVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsPaneToggleButtonVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AlwaysShowHeader(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AlwaysShowHeader)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetAlwaysShowHeader(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetAlwaysShowHeader)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CompactPaneLength(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CompactPaneLength)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCompactPaneLength(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCompactPaneLength)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OpenPaneLength(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OpenPaneLength)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetOpenPaneLength(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetOpenPaneLength)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PaneToggleButtonStyle(&self) -> ::windows::core::Result<super::Style> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaneToggleButtonStyle)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Style>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPaneToggleButtonStyle<'a, Param0: ::windows::core::IntoParam<'a, super::Style>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPaneToggleButtonStyle)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedItem(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedItem)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSelectedItem<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectedItem)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn MenuItems(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MenuItems)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MenuItemsSource(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MenuItemsSource)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMenuItemsSource<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMenuItemsSource)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SettingsItem(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SettingsItem)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AutoSuggestBox(&self) -> ::windows::core::Result<AutoSuggestBox> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AutoSuggestBox)(::core::mem::transmute_copy(this), &mut result__).from_abi::<AutoSuggestBox>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetAutoSuggestBox<'a, Param0: ::windows::core::IntoParam<'a, AutoSuggestBox>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetAutoSuggestBox)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MenuItemTemplate(&self) -> ::windows::core::Result<super::DataTemplate> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MenuItemTemplate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMenuItemTemplate<'a, Param0: ::windows::core::IntoParam<'a, super::DataTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMenuItemTemplate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MenuItemTemplateSelector(&self) -> ::windows::core::Result<DataTemplateSelector> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MenuItemTemplateSelector)(::core::mem::transmute_copy(this), &mut result__).from_abi::<DataTemplateSelector>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMenuItemTemplateSelector<'a, Param0: ::windows::core::IntoParam<'a, DataTemplateSelector>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMenuItemTemplateSelector)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MenuItemContainerStyle(&self) -> ::windows::core::Result<super::Style> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MenuItemContainerStyle)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Style>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMenuItemContainerStyle<'a, Param0: ::windows::core::IntoParam<'a, super::Style>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMenuItemContainerStyle)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MenuItemContainerStyleSelector(&self) -> ::windows::core::Result<StyleSelector> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MenuItemContainerStyleSelector)(::core::mem::transmute_copy(this), &mut result__).from_abi::<StyleSelector>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMenuItemContainerStyleSelector<'a, Param0: ::windows::core::IntoParam<'a, StyleSelector>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMenuItemContainerStyleSelector)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MenuItemFromContainer<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(&self, container: Param0) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MenuItemFromContainer)(::core::mem::transmute_copy(this), container.into_param().abi(), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContainerFromMenuItem<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, item: Param0) -> ::windows::core::Result<super::DependencyObject> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContainerFromMenuItem)(::core::mem::transmute_copy(this), item.into_param().abi(), &mut result__).from_abi::<super::DependencyObject>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SelectionChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<NavigationView, NavigationViewSelectionChangedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveSelectionChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveSelectionChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ItemInvoked<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<NavigationView, NavigationViewItemInvokedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemInvoked)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveItemInvoked<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveItemInvoked)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn DisplayModeChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<NavigationView, NavigationViewDisplayModeChangedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DisplayModeChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveDisplayModeChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveDisplayModeChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsBackButtonVisible(&self) -> ::windows::core::Result<NavigationViewBackButtonVisible> {
        let this = &::windows::core::Interface::cast::<INavigationView2>(self)?;
        unsafe {
            let mut result__: NavigationViewBackButtonVisible = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsBackButtonVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<NavigationViewBackButtonVisible>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsBackButtonVisible(&self, value: NavigationViewBackButtonVisible) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<INavigationView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsBackButtonVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsBackEnabled(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<INavigationView2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsBackEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsBackEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<INavigationView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsBackEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PaneTitle(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = &::windows::core::Interface::cast::<INavigationView2>(self)?;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaneTitle)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPaneTitle<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<INavigationView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetPaneTitle)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn BackRequested<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<NavigationView, NavigationViewBackRequestedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<INavigationView2>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BackRequested)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveBackRequested<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<INavigationView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveBackRequested)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn PaneClosed<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<NavigationView, ::windows::core::IInspectable>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<INavigationView2>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaneClosed)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemovePaneClosed<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<INavigationView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemovePaneClosed)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn PaneClosing<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<NavigationView, NavigationViewPaneClosingEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<INavigationView2>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaneClosing)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemovePaneClosing<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<INavigationView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemovePaneClosing)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn PaneOpened<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<NavigationView, ::windows::core::IInspectable>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<INavigationView2>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaneOpened)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemovePaneOpened<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<INavigationView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemovePaneOpened)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn PaneOpening<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<NavigationView, ::windows::core::IInspectable>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<INavigationView2>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaneOpening)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemovePaneOpening<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<INavigationView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemovePaneOpening)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PaneDisplayMode(&self) -> ::windows::core::Result<NavigationViewPaneDisplayMode> {
        let this = &::windows::core::Interface::cast::<INavigationView3>(self)?;
        unsafe {
            let mut result__: NavigationViewPaneDisplayMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaneDisplayMode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<NavigationViewPaneDisplayMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPaneDisplayMode(&self, value: NavigationViewPaneDisplayMode) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<INavigationView3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetPaneDisplayMode)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PaneHeader(&self) -> ::windows::core::Result<super::UIElement> {
        let this = &::windows::core::Interface::cast::<INavigationView3>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaneHeader)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::UIElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPaneHeader<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<INavigationView3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetPaneHeader)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PaneCustomContent(&self) -> ::windows::core::Result<super::UIElement> {
        let this = &::windows::core::Interface::cast::<INavigationView3>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaneCustomContent)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::UIElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPaneCustomContent<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<INavigationView3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetPaneCustomContent)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContentOverlay(&self) -> ::windows::core::Result<super::UIElement> {
        let this = &::windows::core::Interface::cast::<INavigationView3>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentOverlay)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::UIElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetContentOverlay<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<INavigationView3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetContentOverlay)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsPaneVisible(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<INavigationView3>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsPaneVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsPaneVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<INavigationView3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsPaneVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionFollowsFocus(&self) -> ::windows::core::Result<NavigationViewSelectionFollowsFocus> {
        let this = &::windows::core::Interface::cast::<INavigationView3>(self)?;
        unsafe {
            let mut result__: NavigationViewSelectionFollowsFocus = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionFollowsFocus)(::core::mem::transmute_copy(this), &mut result__).from_abi::<NavigationViewSelectionFollowsFocus>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSelectionFollowsFocus(&self, value: NavigationViewSelectionFollowsFocus) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<INavigationView3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectionFollowsFocus)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TemplateSettings(&self) -> ::windows::core::Result<NavigationViewTemplateSettings> {
        let this = &::windows::core::Interface::cast::<INavigationView3>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TemplateSettings)(::core::mem::transmute_copy(this), &mut result__).from_abi::<NavigationViewTemplateSettings>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ShoulderNavigationEnabled(&self) -> ::windows::core::Result<NavigationViewShoulderNavigationEnabled> {
        let this = &::windows::core::Interface::cast::<INavigationView3>(self)?;
        unsafe {
            let mut result__: NavigationViewShoulderNavigationEnabled = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ShoulderNavigationEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<NavigationViewShoulderNavigationEnabled>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetShoulderNavigationEnabled(&self, value: NavigationViewShoulderNavigationEnabled) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<INavigationView3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetShoulderNavigationEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OverflowLabelMode(&self) -> ::windows::core::Result<NavigationViewOverflowLabelMode> {
        let this = &::windows::core::Interface::cast::<INavigationView3>(self)?;
        unsafe {
            let mut result__: NavigationViewOverflowLabelMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OverflowLabelMode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<NavigationViewOverflowLabelMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetOverflowLabelMode(&self, value: NavigationViewOverflowLabelMode) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<INavigationView3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetOverflowLabelMode)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<NavigationView> {
        Self::INavigationViewFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<NavigationView>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<NavigationView> {
        Self::INavigationViewFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<NavigationView>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsPaneOpenProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsPaneOpenProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CompactModeThresholdWidthProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CompactModeThresholdWidthProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ExpandedModeThresholdWidthProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ExpandedModeThresholdWidthProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PaneFooterProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaneFooterProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTemplateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTemplateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DisplayModeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DisplayModeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsSettingsVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsSettingsVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsPaneToggleButtonVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsPaneToggleButtonVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AlwaysShowHeaderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AlwaysShowHeaderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CompactPaneLengthProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CompactPaneLengthProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OpenPaneLengthProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OpenPaneLengthProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PaneToggleButtonStyleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaneToggleButtonStyleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MenuItemsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MenuItemsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MenuItemsSourceProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MenuItemsSourceProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedItemProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedItemProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SettingsItemProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SettingsItemProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AutoSuggestBoxProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AutoSuggestBoxProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MenuItemTemplateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MenuItemTemplateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MenuItemTemplateSelectorProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MenuItemTemplateSelectorProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MenuItemContainerStyleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MenuItemContainerStyleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MenuItemContainerStyleSelectorProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MenuItemContainerStyleSelectorProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsBackButtonVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsBackButtonVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsBackEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsBackEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PaneTitleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaneTitleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PaneDisplayModeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaneDisplayModeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PaneHeaderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaneHeaderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PaneCustomContentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaneCustomContentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContentOverlayProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentOverlayProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsPaneVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsPaneVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionFollowsFocusProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionFollowsFocusProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TemplateSettingsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TemplateSettingsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ShoulderNavigationEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ShoulderNavigationEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OverflowLabelModeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OverflowLabelModeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn INavigationViewFactory<R, F: FnOnce(&INavigationViewFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<NavigationView, INavigationViewFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn INavigationViewStatics<R, F: FnOnce(&INavigationViewStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<NavigationView, INavigationViewStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn INavigationViewStatics2<R, F: FnOnce(&INavigationViewStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<NavigationView, INavigationViewStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn INavigationViewStatics3<R, F: FnOnce(&INavigationViewStatics3) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<NavigationView, INavigationViewStatics3> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for NavigationView {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for NavigationView {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for NavigationView {}
impl ::core::fmt::Debug for NavigationView {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("NavigationView").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for NavigationView {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.NavigationView;{f209ce15-391a-42ca-9fc6-f79da65aca32})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for NavigationView {
    type Vtable = INavigationView_Vtbl;
    const IID: ::windows::core::GUID = <INavigationView as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for NavigationView {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.NavigationView";
}
impl ::core::convert::From<NavigationView> for ::windows::core::IUnknown {
    fn from(value: NavigationView) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&NavigationView> for ::windows::core::IUnknown {
    fn from(value: &NavigationView) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for NavigationView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a NavigationView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<NavigationView> for ::windows::core::IInspectable {
    fn from(value: NavigationView) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&NavigationView> for ::windows::core::IInspectable {
    fn from(value: &NavigationView) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for NavigationView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a NavigationView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<NavigationView> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: NavigationView) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&NavigationView> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &NavigationView) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for NavigationView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &NavigationView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<NavigationView> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: NavigationView) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&NavigationView> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &NavigationView) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for NavigationView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &NavigationView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<NavigationView> for ContentControl {
    fn from(value: NavigationView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationView> for ContentControl {
    fn from(value: &NavigationView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for NavigationView {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &NavigationView {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<NavigationView> for Control {
    fn from(value: NavigationView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationView> for Control {
    fn from(value: &NavigationView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for NavigationView {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &NavigationView {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<NavigationView> for super::FrameworkElement {
    fn from(value: NavigationView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationView> for super::FrameworkElement {
    fn from(value: &NavigationView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for NavigationView {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &NavigationView {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<NavigationView> for super::UIElement {
    fn from(value: NavigationView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationView> for super::UIElement {
    fn from(value: &NavigationView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for NavigationView {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &NavigationView {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<NavigationView> for super::DependencyObject {
    fn from(value: NavigationView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationView> for super::DependencyObject {
    fn from(value: &NavigationView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for NavigationView {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &NavigationView {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for NavigationView {}
unsafe impl ::core::marker::Sync for NavigationView {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct NavigationViewBackButtonVisible(pub i32);
impl NavigationViewBackButtonVisible {
    pub const Collapsed: Self = Self(0i32);
    pub const Visible: Self = Self(1i32);
    pub const Auto: Self = Self(2i32);
}
impl ::core::marker::Copy for NavigationViewBackButtonVisible {}
impl ::core::clone::Clone for NavigationViewBackButtonVisible {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for NavigationViewBackButtonVisible {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for NavigationViewBackButtonVisible {
    type Abi = Self;
}
impl ::core::fmt::Debug for NavigationViewBackButtonVisible {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("NavigationViewBackButtonVisible").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for NavigationViewBackButtonVisible {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.NavigationViewBackButtonVisible;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct NavigationViewBackRequestedEventArgs(::windows::core::IUnknown);
impl NavigationViewBackRequestedEventArgs {}
impl ::core::clone::Clone for NavigationViewBackRequestedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for NavigationViewBackRequestedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for NavigationViewBackRequestedEventArgs {}
impl ::core::fmt::Debug for NavigationViewBackRequestedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("NavigationViewBackRequestedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for NavigationViewBackRequestedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.NavigationViewBackRequestedEventArgs;{446700e1-9a9d-4500-a71d-25c15809b879})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for NavigationViewBackRequestedEventArgs {
    type Vtable = INavigationViewBackRequestedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <INavigationViewBackRequestedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for NavigationViewBackRequestedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.NavigationViewBackRequestedEventArgs";
}
impl ::core::convert::From<NavigationViewBackRequestedEventArgs> for ::windows::core::IUnknown {
    fn from(value: NavigationViewBackRequestedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&NavigationViewBackRequestedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &NavigationViewBackRequestedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for NavigationViewBackRequestedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a NavigationViewBackRequestedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<NavigationViewBackRequestedEventArgs> for ::windows::core::IInspectable {
    fn from(value: NavigationViewBackRequestedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&NavigationViewBackRequestedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &NavigationViewBackRequestedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for NavigationViewBackRequestedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a NavigationViewBackRequestedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for NavigationViewBackRequestedEventArgs {}
unsafe impl ::core::marker::Sync for NavigationViewBackRequestedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct NavigationViewDisplayMode(pub i32);
impl NavigationViewDisplayMode {
    pub const Minimal: Self = Self(0i32);
    pub const Compact: Self = Self(1i32);
    pub const Expanded: Self = Self(2i32);
}
impl ::core::marker::Copy for NavigationViewDisplayMode {}
impl ::core::clone::Clone for NavigationViewDisplayMode {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for NavigationViewDisplayMode {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for NavigationViewDisplayMode {
    type Abi = Self;
}
impl ::core::fmt::Debug for NavigationViewDisplayMode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("NavigationViewDisplayMode").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for NavigationViewDisplayMode {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.NavigationViewDisplayMode;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct NavigationViewDisplayModeChangedEventArgs(::windows::core::IUnknown);
impl NavigationViewDisplayModeChangedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DisplayMode(&self) -> ::windows::core::Result<NavigationViewDisplayMode> {
        let this = self;
        unsafe {
            let mut result__: NavigationViewDisplayMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DisplayMode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<NavigationViewDisplayMode>(result__)
        }
    }
}
impl ::core::clone::Clone for NavigationViewDisplayModeChangedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for NavigationViewDisplayModeChangedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for NavigationViewDisplayModeChangedEventArgs {}
impl ::core::fmt::Debug for NavigationViewDisplayModeChangedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("NavigationViewDisplayModeChangedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for NavigationViewDisplayModeChangedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.NavigationViewDisplayModeChangedEventArgs;{b7c1ad35-5544-40c1-9b33-acfe1d6c8094})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for NavigationViewDisplayModeChangedEventArgs {
    type Vtable = INavigationViewDisplayModeChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <INavigationViewDisplayModeChangedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for NavigationViewDisplayModeChangedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.NavigationViewDisplayModeChangedEventArgs";
}
impl ::core::convert::From<NavigationViewDisplayModeChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: NavigationViewDisplayModeChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&NavigationViewDisplayModeChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &NavigationViewDisplayModeChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for NavigationViewDisplayModeChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a NavigationViewDisplayModeChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<NavigationViewDisplayModeChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: NavigationViewDisplayModeChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&NavigationViewDisplayModeChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &NavigationViewDisplayModeChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for NavigationViewDisplayModeChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a NavigationViewDisplayModeChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for NavigationViewDisplayModeChangedEventArgs {}
unsafe impl ::core::marker::Sync for NavigationViewDisplayModeChangedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct NavigationViewItem(::windows::core::IUnknown);
impl NavigationViewItem {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Icon(&self) -> ::windows::core::Result<IconElement> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Icon)(::core::mem::transmute_copy(this), &mut result__).from_abi::<IconElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIcon<'a, Param0: ::windows::core::IntoParam<'a, IconElement>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIcon)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CompactPaneLength(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CompactPaneLength)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectsOnInvoked(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<INavigationViewItem2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectsOnInvoked)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSelectsOnInvoked(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<INavigationViewItem2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectsOnInvoked)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<NavigationViewItem> {
        Self::INavigationViewItemFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<NavigationViewItem>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<NavigationViewItem> {
        Self::INavigationViewItemFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<NavigationViewItem>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IconProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewItemStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IconProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CompactPaneLengthProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewItemStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CompactPaneLengthProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectsOnInvokedProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewItemStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectsOnInvokedProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn INavigationViewItemFactory<R, F: FnOnce(&INavigationViewItemFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<NavigationViewItem, INavigationViewItemFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn INavigationViewItemStatics<R, F: FnOnce(&INavigationViewItemStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<NavigationViewItem, INavigationViewItemStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn INavigationViewItemStatics2<R, F: FnOnce(&INavigationViewItemStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<NavigationViewItem, INavigationViewItemStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for NavigationViewItem {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for NavigationViewItem {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for NavigationViewItem {}
impl ::core::fmt::Debug for NavigationViewItem {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("NavigationViewItem").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for NavigationViewItem {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.NavigationViewItem;{8614be0f-b7b6-4851-960a-f5e3f69f624a})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for NavigationViewItem {
    type Vtable = INavigationViewItem_Vtbl;
    const IID: ::windows::core::GUID = <INavigationViewItem as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for NavigationViewItem {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.NavigationViewItem";
}
impl ::core::convert::From<NavigationViewItem> for ::windows::core::IUnknown {
    fn from(value: NavigationViewItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&NavigationViewItem> for ::windows::core::IUnknown {
    fn from(value: &NavigationViewItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for NavigationViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a NavigationViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<NavigationViewItem> for ::windows::core::IInspectable {
    fn from(value: NavigationViewItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&NavigationViewItem> for ::windows::core::IInspectable {
    fn from(value: &NavigationViewItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for NavigationViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a NavigationViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<NavigationViewItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: NavigationViewItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&NavigationViewItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &NavigationViewItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for NavigationViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &NavigationViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<NavigationViewItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: NavigationViewItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&NavigationViewItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &NavigationViewItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for NavigationViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &NavigationViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<NavigationViewItem> for NavigationViewItemBase {
    fn from(value: NavigationViewItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewItem> for NavigationViewItemBase {
    fn from(value: &NavigationViewItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, NavigationViewItemBase> for NavigationViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, NavigationViewItemBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, NavigationViewItemBase> for &NavigationViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, NavigationViewItemBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<NavigationViewItemBase>::into(self))
    }
}
impl ::core::convert::From<NavigationViewItem> for ListViewItem {
    fn from(value: NavigationViewItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewItem> for ListViewItem {
    fn from(value: &NavigationViewItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ListViewItem> for NavigationViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ListViewItem> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ListViewItem> for &NavigationViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ListViewItem> {
        ::windows::core::Param::Owned(::core::convert::Into::<ListViewItem>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<NavigationViewItem> for Primitives::SelectorItem {
    fn from(value: NavigationViewItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&NavigationViewItem> for Primitives::SelectorItem {
    fn from(value: &NavigationViewItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::SelectorItem> for NavigationViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::SelectorItem> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::SelectorItem> for &NavigationViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::SelectorItem> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::SelectorItem>::into(self))
    }
}
impl ::core::convert::From<NavigationViewItem> for ContentControl {
    fn from(value: NavigationViewItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewItem> for ContentControl {
    fn from(value: &NavigationViewItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for NavigationViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &NavigationViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<NavigationViewItem> for Control {
    fn from(value: NavigationViewItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewItem> for Control {
    fn from(value: &NavigationViewItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for NavigationViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &NavigationViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<NavigationViewItem> for super::FrameworkElement {
    fn from(value: NavigationViewItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewItem> for super::FrameworkElement {
    fn from(value: &NavigationViewItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for NavigationViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &NavigationViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<NavigationViewItem> for super::UIElement {
    fn from(value: NavigationViewItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewItem> for super::UIElement {
    fn from(value: &NavigationViewItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for NavigationViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &NavigationViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<NavigationViewItem> for super::DependencyObject {
    fn from(value: NavigationViewItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewItem> for super::DependencyObject {
    fn from(value: &NavigationViewItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for NavigationViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &NavigationViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for NavigationViewItem {}
unsafe impl ::core::marker::Sync for NavigationViewItem {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct NavigationViewItemBase(::windows::core::IUnknown);
impl NavigationViewItemBase {}
impl ::core::clone::Clone for NavigationViewItemBase {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for NavigationViewItemBase {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for NavigationViewItemBase {}
impl ::core::fmt::Debug for NavigationViewItemBase {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("NavigationViewItemBase").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for NavigationViewItemBase {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.NavigationViewItemBase;{edf04eb1-37d1-471f-8570-3829ee5b2bc6})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for NavigationViewItemBase {
    type Vtable = INavigationViewItemBase_Vtbl;
    const IID: ::windows::core::GUID = <INavigationViewItemBase as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for NavigationViewItemBase {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.NavigationViewItemBase";
}
impl ::core::convert::From<NavigationViewItemBase> for ::windows::core::IUnknown {
    fn from(value: NavigationViewItemBase) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&NavigationViewItemBase> for ::windows::core::IUnknown {
    fn from(value: &NavigationViewItemBase) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for NavigationViewItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a NavigationViewItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<NavigationViewItemBase> for ::windows::core::IInspectable {
    fn from(value: NavigationViewItemBase) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&NavigationViewItemBase> for ::windows::core::IInspectable {
    fn from(value: &NavigationViewItemBase) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for NavigationViewItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a NavigationViewItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<NavigationViewItemBase> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: NavigationViewItemBase) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&NavigationViewItemBase> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &NavigationViewItemBase) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for NavigationViewItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &NavigationViewItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<NavigationViewItemBase> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: NavigationViewItemBase) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&NavigationViewItemBase> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &NavigationViewItemBase) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for NavigationViewItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &NavigationViewItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<NavigationViewItemBase> for ListViewItem {
    fn from(value: NavigationViewItemBase) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewItemBase> for ListViewItem {
    fn from(value: &NavigationViewItemBase) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ListViewItem> for NavigationViewItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, ListViewItem> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ListViewItem> for &NavigationViewItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, ListViewItem> {
        ::windows::core::Param::Owned(::core::convert::Into::<ListViewItem>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<NavigationViewItemBase> for Primitives::SelectorItem {
    fn from(value: NavigationViewItemBase) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&NavigationViewItemBase> for Primitives::SelectorItem {
    fn from(value: &NavigationViewItemBase) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::SelectorItem> for NavigationViewItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::SelectorItem> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::SelectorItem> for &NavigationViewItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::SelectorItem> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::SelectorItem>::into(self))
    }
}
impl ::core::convert::From<NavigationViewItemBase> for ContentControl {
    fn from(value: NavigationViewItemBase) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewItemBase> for ContentControl {
    fn from(value: &NavigationViewItemBase) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for NavigationViewItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &NavigationViewItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<NavigationViewItemBase> for Control {
    fn from(value: NavigationViewItemBase) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewItemBase> for Control {
    fn from(value: &NavigationViewItemBase) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for NavigationViewItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &NavigationViewItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<NavigationViewItemBase> for super::FrameworkElement {
    fn from(value: NavigationViewItemBase) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewItemBase> for super::FrameworkElement {
    fn from(value: &NavigationViewItemBase) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for NavigationViewItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &NavigationViewItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<NavigationViewItemBase> for super::UIElement {
    fn from(value: NavigationViewItemBase) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewItemBase> for super::UIElement {
    fn from(value: &NavigationViewItemBase) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for NavigationViewItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &NavigationViewItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<NavigationViewItemBase> for super::DependencyObject {
    fn from(value: NavigationViewItemBase) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewItemBase> for super::DependencyObject {
    fn from(value: &NavigationViewItemBase) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for NavigationViewItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &NavigationViewItemBase {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for NavigationViewItemBase {}
unsafe impl ::core::marker::Sync for NavigationViewItemBase {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct NavigationViewItemHeader(::windows::core::IUnknown);
impl NavigationViewItemHeader {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<NavigationViewItemHeader> {
        Self::INavigationViewItemHeaderFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<NavigationViewItemHeader>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<NavigationViewItemHeader> {
        Self::INavigationViewItemHeaderFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<NavigationViewItemHeader>(result__)
        })
    }
    #[doc(hidden)]
    pub fn INavigationViewItemHeaderFactory<R, F: FnOnce(&INavigationViewItemHeaderFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<NavigationViewItemHeader, INavigationViewItemHeaderFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for NavigationViewItemHeader {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for NavigationViewItemHeader {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for NavigationViewItemHeader {}
impl ::core::fmt::Debug for NavigationViewItemHeader {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("NavigationViewItemHeader").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for NavigationViewItemHeader {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.NavigationViewItemHeader;{e21df22c-da4a-4e74-9ffc-b163bd7adacd})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for NavigationViewItemHeader {
    type Vtable = INavigationViewItemHeader_Vtbl;
    const IID: ::windows::core::GUID = <INavigationViewItemHeader as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for NavigationViewItemHeader {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.NavigationViewItemHeader";
}
impl ::core::convert::From<NavigationViewItemHeader> for ::windows::core::IUnknown {
    fn from(value: NavigationViewItemHeader) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&NavigationViewItemHeader> for ::windows::core::IUnknown {
    fn from(value: &NavigationViewItemHeader) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for NavigationViewItemHeader {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a NavigationViewItemHeader {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<NavigationViewItemHeader> for ::windows::core::IInspectable {
    fn from(value: NavigationViewItemHeader) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&NavigationViewItemHeader> for ::windows::core::IInspectable {
    fn from(value: &NavigationViewItemHeader) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for NavigationViewItemHeader {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a NavigationViewItemHeader {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<NavigationViewItemHeader> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: NavigationViewItemHeader) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&NavigationViewItemHeader> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &NavigationViewItemHeader) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for NavigationViewItemHeader {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &NavigationViewItemHeader {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<NavigationViewItemHeader> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: NavigationViewItemHeader) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&NavigationViewItemHeader> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &NavigationViewItemHeader) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for NavigationViewItemHeader {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &NavigationViewItemHeader {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<NavigationViewItemHeader> for NavigationViewItemBase {
    fn from(value: NavigationViewItemHeader) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewItemHeader> for NavigationViewItemBase {
    fn from(value: &NavigationViewItemHeader) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, NavigationViewItemBase> for NavigationViewItemHeader {
    fn into_param(self) -> ::windows::core::Param<'a, NavigationViewItemBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, NavigationViewItemBase> for &NavigationViewItemHeader {
    fn into_param(self) -> ::windows::core::Param<'a, NavigationViewItemBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<NavigationViewItemBase>::into(self))
    }
}
impl ::core::convert::From<NavigationViewItemHeader> for ListViewItem {
    fn from(value: NavigationViewItemHeader) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewItemHeader> for ListViewItem {
    fn from(value: &NavigationViewItemHeader) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ListViewItem> for NavigationViewItemHeader {
    fn into_param(self) -> ::windows::core::Param<'a, ListViewItem> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ListViewItem> for &NavigationViewItemHeader {
    fn into_param(self) -> ::windows::core::Param<'a, ListViewItem> {
        ::windows::core::Param::Owned(::core::convert::Into::<ListViewItem>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<NavigationViewItemHeader> for Primitives::SelectorItem {
    fn from(value: NavigationViewItemHeader) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&NavigationViewItemHeader> for Primitives::SelectorItem {
    fn from(value: &NavigationViewItemHeader) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::SelectorItem> for NavigationViewItemHeader {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::SelectorItem> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::SelectorItem> for &NavigationViewItemHeader {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::SelectorItem> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::SelectorItem>::into(self))
    }
}
impl ::core::convert::From<NavigationViewItemHeader> for ContentControl {
    fn from(value: NavigationViewItemHeader) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewItemHeader> for ContentControl {
    fn from(value: &NavigationViewItemHeader) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for NavigationViewItemHeader {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &NavigationViewItemHeader {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<NavigationViewItemHeader> for Control {
    fn from(value: NavigationViewItemHeader) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewItemHeader> for Control {
    fn from(value: &NavigationViewItemHeader) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for NavigationViewItemHeader {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &NavigationViewItemHeader {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<NavigationViewItemHeader> for super::FrameworkElement {
    fn from(value: NavigationViewItemHeader) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewItemHeader> for super::FrameworkElement {
    fn from(value: &NavigationViewItemHeader) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for NavigationViewItemHeader {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &NavigationViewItemHeader {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<NavigationViewItemHeader> for super::UIElement {
    fn from(value: NavigationViewItemHeader) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewItemHeader> for super::UIElement {
    fn from(value: &NavigationViewItemHeader) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for NavigationViewItemHeader {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &NavigationViewItemHeader {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<NavigationViewItemHeader> for super::DependencyObject {
    fn from(value: NavigationViewItemHeader) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewItemHeader> for super::DependencyObject {
    fn from(value: &NavigationViewItemHeader) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for NavigationViewItemHeader {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &NavigationViewItemHeader {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for NavigationViewItemHeader {}
unsafe impl ::core::marker::Sync for NavigationViewItemHeader {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct NavigationViewItemInvokedEventArgs(::windows::core::IUnknown);
impl NavigationViewItemInvokedEventArgs {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<NavigationViewItemInvokedEventArgs, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn InvokedItem(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).InvokedItem)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsSettingsInvoked(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsSettingsInvoked)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn InvokedItemContainer(&self) -> ::windows::core::Result<NavigationViewItemBase> {
        let this = &::windows::core::Interface::cast::<INavigationViewItemInvokedEventArgs2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).InvokedItemContainer)(::core::mem::transmute_copy(this), &mut result__).from_abi::<NavigationViewItemBase>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media_Animation'*"]
    #[cfg(feature = "UI_Xaml_Media_Animation")]
    pub fn RecommendedNavigationTransitionInfo(&self) -> ::windows::core::Result<super::Media::Animation::NavigationTransitionInfo> {
        let this = &::windows::core::Interface::cast::<INavigationViewItemInvokedEventArgs2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).RecommendedNavigationTransitionInfo)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Animation::NavigationTransitionInfo>(result__)
        }
    }
}
impl ::core::clone::Clone for NavigationViewItemInvokedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for NavigationViewItemInvokedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for NavigationViewItemInvokedEventArgs {}
impl ::core::fmt::Debug for NavigationViewItemInvokedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("NavigationViewItemInvokedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for NavigationViewItemInvokedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.NavigationViewItemInvokedEventArgs;{29496822-55d2-49fa-964b-f1dbafef85c4})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for NavigationViewItemInvokedEventArgs {
    type Vtable = INavigationViewItemInvokedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <INavigationViewItemInvokedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for NavigationViewItemInvokedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.NavigationViewItemInvokedEventArgs";
}
impl ::core::convert::From<NavigationViewItemInvokedEventArgs> for ::windows::core::IUnknown {
    fn from(value: NavigationViewItemInvokedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&NavigationViewItemInvokedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &NavigationViewItemInvokedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for NavigationViewItemInvokedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a NavigationViewItemInvokedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<NavigationViewItemInvokedEventArgs> for ::windows::core::IInspectable {
    fn from(value: NavigationViewItemInvokedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&NavigationViewItemInvokedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &NavigationViewItemInvokedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for NavigationViewItemInvokedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a NavigationViewItemInvokedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for NavigationViewItemInvokedEventArgs {}
unsafe impl ::core::marker::Sync for NavigationViewItemInvokedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct NavigationViewItemSeparator(::windows::core::IUnknown);
impl NavigationViewItemSeparator {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<NavigationViewItemSeparator> {
        Self::INavigationViewItemSeparatorFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<NavigationViewItemSeparator>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<NavigationViewItemSeparator> {
        Self::INavigationViewItemSeparatorFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<NavigationViewItemSeparator>(result__)
        })
    }
    #[doc(hidden)]
    pub fn INavigationViewItemSeparatorFactory<R, F: FnOnce(&INavigationViewItemSeparatorFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<NavigationViewItemSeparator, INavigationViewItemSeparatorFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for NavigationViewItemSeparator {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for NavigationViewItemSeparator {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for NavigationViewItemSeparator {}
impl ::core::fmt::Debug for NavigationViewItemSeparator {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("NavigationViewItemSeparator").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for NavigationViewItemSeparator {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.NavigationViewItemSeparator;{de62c951-bb9b-471e-83e3-af4791e7096a})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for NavigationViewItemSeparator {
    type Vtable = INavigationViewItemSeparator_Vtbl;
    const IID: ::windows::core::GUID = <INavigationViewItemSeparator as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for NavigationViewItemSeparator {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.NavigationViewItemSeparator";
}
impl ::core::convert::From<NavigationViewItemSeparator> for ::windows::core::IUnknown {
    fn from(value: NavigationViewItemSeparator) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&NavigationViewItemSeparator> for ::windows::core::IUnknown {
    fn from(value: &NavigationViewItemSeparator) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for NavigationViewItemSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a NavigationViewItemSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<NavigationViewItemSeparator> for ::windows::core::IInspectable {
    fn from(value: NavigationViewItemSeparator) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&NavigationViewItemSeparator> for ::windows::core::IInspectable {
    fn from(value: &NavigationViewItemSeparator) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for NavigationViewItemSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a NavigationViewItemSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<NavigationViewItemSeparator> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: NavigationViewItemSeparator) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&NavigationViewItemSeparator> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &NavigationViewItemSeparator) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for NavigationViewItemSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &NavigationViewItemSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<NavigationViewItemSeparator> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: NavigationViewItemSeparator) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&NavigationViewItemSeparator> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &NavigationViewItemSeparator) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for NavigationViewItemSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &NavigationViewItemSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<NavigationViewItemSeparator> for NavigationViewItemBase {
    fn from(value: NavigationViewItemSeparator) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewItemSeparator> for NavigationViewItemBase {
    fn from(value: &NavigationViewItemSeparator) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, NavigationViewItemBase> for NavigationViewItemSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, NavigationViewItemBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, NavigationViewItemBase> for &NavigationViewItemSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, NavigationViewItemBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<NavigationViewItemBase>::into(self))
    }
}
impl ::core::convert::From<NavigationViewItemSeparator> for ListViewItem {
    fn from(value: NavigationViewItemSeparator) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewItemSeparator> for ListViewItem {
    fn from(value: &NavigationViewItemSeparator) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ListViewItem> for NavigationViewItemSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, ListViewItem> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ListViewItem> for &NavigationViewItemSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, ListViewItem> {
        ::windows::core::Param::Owned(::core::convert::Into::<ListViewItem>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<NavigationViewItemSeparator> for Primitives::SelectorItem {
    fn from(value: NavigationViewItemSeparator) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&NavigationViewItemSeparator> for Primitives::SelectorItem {
    fn from(value: &NavigationViewItemSeparator) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::SelectorItem> for NavigationViewItemSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::SelectorItem> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::SelectorItem> for &NavigationViewItemSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::SelectorItem> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::SelectorItem>::into(self))
    }
}
impl ::core::convert::From<NavigationViewItemSeparator> for ContentControl {
    fn from(value: NavigationViewItemSeparator) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewItemSeparator> for ContentControl {
    fn from(value: &NavigationViewItemSeparator) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for NavigationViewItemSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &NavigationViewItemSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<NavigationViewItemSeparator> for Control {
    fn from(value: NavigationViewItemSeparator) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewItemSeparator> for Control {
    fn from(value: &NavigationViewItemSeparator) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for NavigationViewItemSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &NavigationViewItemSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<NavigationViewItemSeparator> for super::FrameworkElement {
    fn from(value: NavigationViewItemSeparator) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewItemSeparator> for super::FrameworkElement {
    fn from(value: &NavigationViewItemSeparator) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for NavigationViewItemSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &NavigationViewItemSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<NavigationViewItemSeparator> for super::UIElement {
    fn from(value: NavigationViewItemSeparator) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewItemSeparator> for super::UIElement {
    fn from(value: &NavigationViewItemSeparator) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for NavigationViewItemSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &NavigationViewItemSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<NavigationViewItemSeparator> for super::DependencyObject {
    fn from(value: NavigationViewItemSeparator) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewItemSeparator> for super::DependencyObject {
    fn from(value: &NavigationViewItemSeparator) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for NavigationViewItemSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &NavigationViewItemSeparator {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for NavigationViewItemSeparator {}
unsafe impl ::core::marker::Sync for NavigationViewItemSeparator {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct NavigationViewList(::windows::core::IUnknown);
impl NavigationViewList {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<NavigationViewList> {
        Self::INavigationViewListFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<NavigationViewList>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<NavigationViewList> {
        Self::INavigationViewListFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<NavigationViewList>(result__)
        })
    }
    #[doc(hidden)]
    pub fn INavigationViewListFactory<R, F: FnOnce(&INavigationViewListFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<NavigationViewList, INavigationViewListFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for NavigationViewList {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for NavigationViewList {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for NavigationViewList {}
impl ::core::fmt::Debug for NavigationViewList {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("NavigationViewList").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for NavigationViewList {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.NavigationViewList;{4f726f85-5ce0-48cd-8ef2-1a29458a3404})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for NavigationViewList {
    type Vtable = INavigationViewList_Vtbl;
    const IID: ::windows::core::GUID = <INavigationViewList as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for NavigationViewList {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.NavigationViewList";
}
impl ::core::convert::From<NavigationViewList> for ::windows::core::IUnknown {
    fn from(value: NavigationViewList) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&NavigationViewList> for ::windows::core::IUnknown {
    fn from(value: &NavigationViewList) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for NavigationViewList {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a NavigationViewList {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<NavigationViewList> for ::windows::core::IInspectable {
    fn from(value: NavigationViewList) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&NavigationViewList> for ::windows::core::IInspectable {
    fn from(value: &NavigationViewList) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for NavigationViewList {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a NavigationViewList {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<NavigationViewList> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: NavigationViewList) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&NavigationViewList> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &NavigationViewList) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for NavigationViewList {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &NavigationViewList {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::TryFrom<NavigationViewList> for IItemContainerMapping {
    type Error = ::windows::core::Error;
    fn try_from(value: NavigationViewList) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
impl ::core::convert::TryFrom<&NavigationViewList> for IItemContainerMapping {
    type Error = ::windows::core::Error;
    fn try_from(value: &NavigationViewList) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IItemContainerMapping> for NavigationViewList {
    fn into_param(self) -> ::windows::core::Param<'a, IItemContainerMapping> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IItemContainerMapping> for &NavigationViewList {
    fn into_param(self) -> ::windows::core::Param<'a, IItemContainerMapping> {
        ::core::convert::TryInto::<IItemContainerMapping>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::TryFrom<NavigationViewList> for ISemanticZoomInformation {
    type Error = ::windows::core::Error;
    fn try_from(value: NavigationViewList) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
impl ::core::convert::TryFrom<&NavigationViewList> for ISemanticZoomInformation {
    type Error = ::windows::core::Error;
    fn try_from(value: &NavigationViewList) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ISemanticZoomInformation> for NavigationViewList {
    fn into_param(self) -> ::windows::core::Param<'a, ISemanticZoomInformation> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ISemanticZoomInformation> for &NavigationViewList {
    fn into_param(self) -> ::windows::core::Param<'a, ISemanticZoomInformation> {
        ::core::convert::TryInto::<ISemanticZoomInformation>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<NavigationViewList> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: NavigationViewList) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&NavigationViewList> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &NavigationViewList) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for NavigationViewList {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &NavigationViewList {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<NavigationViewList> for ListView {
    fn from(value: NavigationViewList) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewList> for ListView {
    fn from(value: &NavigationViewList) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ListView> for NavigationViewList {
    fn into_param(self) -> ::windows::core::Param<'a, ListView> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ListView> for &NavigationViewList {
    fn into_param(self) -> ::windows::core::Param<'a, ListView> {
        ::windows::core::Param::Owned(::core::convert::Into::<ListView>::into(self))
    }
}
impl ::core::convert::From<NavigationViewList> for ListViewBase {
    fn from(value: NavigationViewList) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewList> for ListViewBase {
    fn from(value: &NavigationViewList) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ListViewBase> for NavigationViewList {
    fn into_param(self) -> ::windows::core::Param<'a, ListViewBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ListViewBase> for &NavigationViewList {
    fn into_param(self) -> ::windows::core::Param<'a, ListViewBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<ListViewBase>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<NavigationViewList> for Primitives::Selector {
    fn from(value: NavigationViewList) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&NavigationViewList> for Primitives::Selector {
    fn from(value: &NavigationViewList) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::Selector> for NavigationViewList {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::Selector> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::Selector> for &NavigationViewList {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::Selector> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::Selector>::into(self))
    }
}
impl ::core::convert::From<NavigationViewList> for ItemsControl {
    fn from(value: NavigationViewList) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewList> for ItemsControl {
    fn from(value: &NavigationViewList) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ItemsControl> for NavigationViewList {
    fn into_param(self) -> ::windows::core::Param<'a, ItemsControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ItemsControl> for &NavigationViewList {
    fn into_param(self) -> ::windows::core::Param<'a, ItemsControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ItemsControl>::into(self))
    }
}
impl ::core::convert::From<NavigationViewList> for Control {
    fn from(value: NavigationViewList) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewList> for Control {
    fn from(value: &NavigationViewList) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for NavigationViewList {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &NavigationViewList {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<NavigationViewList> for super::FrameworkElement {
    fn from(value: NavigationViewList) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewList> for super::FrameworkElement {
    fn from(value: &NavigationViewList) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for NavigationViewList {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &NavigationViewList {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<NavigationViewList> for super::UIElement {
    fn from(value: NavigationViewList) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewList> for super::UIElement {
    fn from(value: &NavigationViewList) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for NavigationViewList {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &NavigationViewList {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<NavigationViewList> for super::DependencyObject {
    fn from(value: NavigationViewList) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewList> for super::DependencyObject {
    fn from(value: &NavigationViewList) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for NavigationViewList {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &NavigationViewList {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for NavigationViewList {}
unsafe impl ::core::marker::Sync for NavigationViewList {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct NavigationViewOverflowLabelMode(pub i32);
impl NavigationViewOverflowLabelMode {
    pub const MoreLabel: Self = Self(0i32);
    pub const NoLabel: Self = Self(1i32);
}
impl ::core::marker::Copy for NavigationViewOverflowLabelMode {}
impl ::core::clone::Clone for NavigationViewOverflowLabelMode {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for NavigationViewOverflowLabelMode {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for NavigationViewOverflowLabelMode {
    type Abi = Self;
}
impl ::core::fmt::Debug for NavigationViewOverflowLabelMode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("NavigationViewOverflowLabelMode").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for NavigationViewOverflowLabelMode {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.NavigationViewOverflowLabelMode;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct NavigationViewPaneClosingEventArgs(::windows::core::IUnknown);
impl NavigationViewPaneClosingEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Cancel(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Cancel)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCancel(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCancel)(::core::mem::transmute_copy(this), value).ok() }
    }
}
impl ::core::clone::Clone for NavigationViewPaneClosingEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for NavigationViewPaneClosingEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for NavigationViewPaneClosingEventArgs {}
impl ::core::fmt::Debug for NavigationViewPaneClosingEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("NavigationViewPaneClosingEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for NavigationViewPaneClosingEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.NavigationViewPaneClosingEventArgs;{955575ba-75f5-432d-b49b-60e47552d5ee})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for NavigationViewPaneClosingEventArgs {
    type Vtable = INavigationViewPaneClosingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <INavigationViewPaneClosingEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for NavigationViewPaneClosingEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.NavigationViewPaneClosingEventArgs";
}
impl ::core::convert::From<NavigationViewPaneClosingEventArgs> for ::windows::core::IUnknown {
    fn from(value: NavigationViewPaneClosingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&NavigationViewPaneClosingEventArgs> for ::windows::core::IUnknown {
    fn from(value: &NavigationViewPaneClosingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for NavigationViewPaneClosingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a NavigationViewPaneClosingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<NavigationViewPaneClosingEventArgs> for ::windows::core::IInspectable {
    fn from(value: NavigationViewPaneClosingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&NavigationViewPaneClosingEventArgs> for ::windows::core::IInspectable {
    fn from(value: &NavigationViewPaneClosingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for NavigationViewPaneClosingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a NavigationViewPaneClosingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for NavigationViewPaneClosingEventArgs {}
unsafe impl ::core::marker::Sync for NavigationViewPaneClosingEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct NavigationViewPaneDisplayMode(pub i32);
impl NavigationViewPaneDisplayMode {
    pub const Auto: Self = Self(0i32);
    pub const Left: Self = Self(1i32);
    pub const Top: Self = Self(2i32);
    pub const LeftCompact: Self = Self(3i32);
    pub const LeftMinimal: Self = Self(4i32);
}
impl ::core::marker::Copy for NavigationViewPaneDisplayMode {}
impl ::core::clone::Clone for NavigationViewPaneDisplayMode {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for NavigationViewPaneDisplayMode {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for NavigationViewPaneDisplayMode {
    type Abi = Self;
}
impl ::core::fmt::Debug for NavigationViewPaneDisplayMode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("NavigationViewPaneDisplayMode").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for NavigationViewPaneDisplayMode {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.NavigationViewPaneDisplayMode;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct NavigationViewSelectionChangedEventArgs(::windows::core::IUnknown);
impl NavigationViewSelectionChangedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedItem(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedItem)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsSettingsSelected(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsSettingsSelected)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedItemContainer(&self) -> ::windows::core::Result<NavigationViewItemBase> {
        let this = &::windows::core::Interface::cast::<INavigationViewSelectionChangedEventArgs2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedItemContainer)(::core::mem::transmute_copy(this), &mut result__).from_abi::<NavigationViewItemBase>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media_Animation'*"]
    #[cfg(feature = "UI_Xaml_Media_Animation")]
    pub fn RecommendedNavigationTransitionInfo(&self) -> ::windows::core::Result<super::Media::Animation::NavigationTransitionInfo> {
        let this = &::windows::core::Interface::cast::<INavigationViewSelectionChangedEventArgs2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).RecommendedNavigationTransitionInfo)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Animation::NavigationTransitionInfo>(result__)
        }
    }
}
impl ::core::clone::Clone for NavigationViewSelectionChangedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for NavigationViewSelectionChangedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for NavigationViewSelectionChangedEventArgs {}
impl ::core::fmt::Debug for NavigationViewSelectionChangedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("NavigationViewSelectionChangedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for NavigationViewSelectionChangedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.NavigationViewSelectionChangedEventArgs;{5aa509a0-3a5e-4f54-896c-98b85f819508})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for NavigationViewSelectionChangedEventArgs {
    type Vtable = INavigationViewSelectionChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <INavigationViewSelectionChangedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for NavigationViewSelectionChangedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.NavigationViewSelectionChangedEventArgs";
}
impl ::core::convert::From<NavigationViewSelectionChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: NavigationViewSelectionChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&NavigationViewSelectionChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &NavigationViewSelectionChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for NavigationViewSelectionChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a NavigationViewSelectionChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<NavigationViewSelectionChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: NavigationViewSelectionChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&NavigationViewSelectionChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &NavigationViewSelectionChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for NavigationViewSelectionChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a NavigationViewSelectionChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for NavigationViewSelectionChangedEventArgs {}
unsafe impl ::core::marker::Sync for NavigationViewSelectionChangedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct NavigationViewSelectionFollowsFocus(pub i32);
impl NavigationViewSelectionFollowsFocus {
    pub const Disabled: Self = Self(0i32);
    pub const Enabled: Self = Self(1i32);
}
impl ::core::marker::Copy for NavigationViewSelectionFollowsFocus {}
impl ::core::clone::Clone for NavigationViewSelectionFollowsFocus {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for NavigationViewSelectionFollowsFocus {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for NavigationViewSelectionFollowsFocus {
    type Abi = Self;
}
impl ::core::fmt::Debug for NavigationViewSelectionFollowsFocus {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("NavigationViewSelectionFollowsFocus").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for NavigationViewSelectionFollowsFocus {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.NavigationViewSelectionFollowsFocus;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct NavigationViewShoulderNavigationEnabled(pub i32);
impl NavigationViewShoulderNavigationEnabled {
    pub const WhenSelectionFollowsFocus: Self = Self(0i32);
    pub const Always: Self = Self(1i32);
    pub const Never: Self = Self(2i32);
}
impl ::core::marker::Copy for NavigationViewShoulderNavigationEnabled {}
impl ::core::clone::Clone for NavigationViewShoulderNavigationEnabled {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for NavigationViewShoulderNavigationEnabled {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for NavigationViewShoulderNavigationEnabled {
    type Abi = Self;
}
impl ::core::fmt::Debug for NavigationViewShoulderNavigationEnabled {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("NavigationViewShoulderNavigationEnabled").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for NavigationViewShoulderNavigationEnabled {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.NavigationViewShoulderNavigationEnabled;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct NavigationViewTemplateSettings(::windows::core::IUnknown);
impl NavigationViewTemplateSettings {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TopPadding(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TopPadding)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OverflowButtonVisibility(&self) -> ::windows::core::Result<super::Visibility> {
        let this = self;
        unsafe {
            let mut result__: super::Visibility = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OverflowButtonVisibility)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Visibility>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PaneToggleButtonVisibility(&self) -> ::windows::core::Result<super::Visibility> {
        let this = self;
        unsafe {
            let mut result__: super::Visibility = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaneToggleButtonVisibility)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Visibility>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BackButtonVisibility(&self) -> ::windows::core::Result<super::Visibility> {
        let this = self;
        unsafe {
            let mut result__: super::Visibility = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BackButtonVisibility)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Visibility>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TopPaneVisibility(&self) -> ::windows::core::Result<super::Visibility> {
        let this = self;
        unsafe {
            let mut result__: super::Visibility = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TopPaneVisibility)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Visibility>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LeftPaneVisibility(&self) -> ::windows::core::Result<super::Visibility> {
        let this = self;
        unsafe {
            let mut result__: super::Visibility = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LeftPaneVisibility)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Visibility>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SingleSelectionFollowsFocus(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SingleSelectionFollowsFocus)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<NavigationViewTemplateSettings> {
        Self::INavigationViewTemplateSettingsFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<NavigationViewTemplateSettings>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<NavigationViewTemplateSettings> {
        Self::INavigationViewTemplateSettingsFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<NavigationViewTemplateSettings>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TopPaddingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewTemplateSettingsStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TopPaddingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OverflowButtonVisibilityProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewTemplateSettingsStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OverflowButtonVisibilityProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PaneToggleButtonVisibilityProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewTemplateSettingsStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaneToggleButtonVisibilityProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BackButtonVisibilityProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewTemplateSettingsStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BackButtonVisibilityProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TopPaneVisibilityProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewTemplateSettingsStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TopPaneVisibilityProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LeftPaneVisibilityProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewTemplateSettingsStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LeftPaneVisibilityProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SingleSelectionFollowsFocusProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::INavigationViewTemplateSettingsStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SingleSelectionFollowsFocusProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn INavigationViewTemplateSettingsFactory<R, F: FnOnce(&INavigationViewTemplateSettingsFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<NavigationViewTemplateSettings, INavigationViewTemplateSettingsFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn INavigationViewTemplateSettingsStatics<R, F: FnOnce(&INavigationViewTemplateSettingsStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<NavigationViewTemplateSettings, INavigationViewTemplateSettingsStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for NavigationViewTemplateSettings {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for NavigationViewTemplateSettings {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for NavigationViewTemplateSettings {}
impl ::core::fmt::Debug for NavigationViewTemplateSettings {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("NavigationViewTemplateSettings").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for NavigationViewTemplateSettings {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.NavigationViewTemplateSettings;{2956cbc4-0528-55d5-b2d1-eae807aea6da})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for NavigationViewTemplateSettings {
    type Vtable = INavigationViewTemplateSettings_Vtbl;
    const IID: ::windows::core::GUID = <INavigationViewTemplateSettings as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for NavigationViewTemplateSettings {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.NavigationViewTemplateSettings";
}
impl ::core::convert::From<NavigationViewTemplateSettings> for ::windows::core::IUnknown {
    fn from(value: NavigationViewTemplateSettings) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&NavigationViewTemplateSettings> for ::windows::core::IUnknown {
    fn from(value: &NavigationViewTemplateSettings) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for NavigationViewTemplateSettings {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a NavigationViewTemplateSettings {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<NavigationViewTemplateSettings> for ::windows::core::IInspectable {
    fn from(value: NavigationViewTemplateSettings) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&NavigationViewTemplateSettings> for ::windows::core::IInspectable {
    fn from(value: &NavigationViewTemplateSettings) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for NavigationViewTemplateSettings {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a NavigationViewTemplateSettings {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<NavigationViewTemplateSettings> for super::DependencyObject {
    fn from(value: NavigationViewTemplateSettings) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&NavigationViewTemplateSettings> for super::DependencyObject {
    fn from(value: &NavigationViewTemplateSettings) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for NavigationViewTemplateSettings {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &NavigationViewTemplateSettings {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for NavigationViewTemplateSettings {}
unsafe impl ::core::marker::Sync for NavigationViewTemplateSettings {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct NotifyEventArgs(::windows::core::IUnknown);
impl NotifyEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Value(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Value)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn CallingUri(&self) -> ::windows::core::Result<super::super::super::Foundation::Uri> {
        let this = &::windows::core::Interface::cast::<INotifyEventArgs2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CallingUri)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Uri>(result__)
        }
    }
}
impl ::core::clone::Clone for NotifyEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for NotifyEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for NotifyEventArgs {}
impl ::core::fmt::Debug for NotifyEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("NotifyEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for NotifyEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.NotifyEventArgs;{af0e05f7-c4b7-44c5-b09d-5cb7052b3a97})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for NotifyEventArgs {
    type Vtable = INotifyEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <INotifyEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for NotifyEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.NotifyEventArgs";
}
impl ::core::convert::From<NotifyEventArgs> for ::windows::core::IUnknown {
    fn from(value: NotifyEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&NotifyEventArgs> for ::windows::core::IUnknown {
    fn from(value: &NotifyEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for NotifyEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a NotifyEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<NotifyEventArgs> for ::windows::core::IInspectable {
    fn from(value: NotifyEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&NotifyEventArgs> for ::windows::core::IInspectable {
    fn from(value: &NotifyEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for NotifyEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a NotifyEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for NotifyEventArgs {}
unsafe impl ::core::marker::Sync for NotifyEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct NotifyEventHandler(pub ::windows::core::IUnknown);
impl NotifyEventHandler {
    pub fn new<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<NotifyEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static>(invoke: F) -> Self {
        let com = NotifyEventHandlerBox::<F> { vtable: &NotifyEventHandlerBox::<F>::VTABLE, count: ::windows::core::RefCount::new(1), invoke };
        unsafe { ::core::mem::transmute(::windows::core::alloc::boxed::Box::new(com)) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Invoke<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>, Param1: ::windows::core::IntoParam<'a, NotifyEventArgs>>(&self, sender: Param0, e: Param1) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Invoke)(::core::mem::transmute_copy(this), sender.into_param().abi(), e.into_param().abi()).ok() }
    }
}
#[repr(C)]
struct NotifyEventHandlerBox<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<NotifyEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static> {
    vtable: *const NotifyEventHandler_Vtbl,
    invoke: F,
    count: ::windows::core::RefCount,
}
impl<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<NotifyEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static> NotifyEventHandlerBox<F> {
    const VTABLE: NotifyEventHandler_Vtbl = NotifyEventHandler_Vtbl { base: ::windows::core::IUnknownVtbl { QueryInterface: Self::QueryInterface, AddRef: Self::AddRef, Release: Self::Release }, Invoke: Self::Invoke };
    unsafe extern "system" fn QueryInterface(this: ::windows::core::RawPtr, iid: &::windows::core::GUID, interface: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        *interface = if iid == &<NotifyEventHandler as ::windows::core::Interface>::IID || iid == &<::windows::core::IUnknown as ::windows::core::Interface>::IID || iid == &<::windows::core::IAgileObject as ::windows::core::Interface>::IID { &mut (*this).vtable as *mut _ as _ } else { ::core::ptr::null_mut() };
        if (*interface).is_null() {
            ::windows::core::HRESULT(-2147467262)
        } else {
            (*this).count.add_ref();
            ::windows::core::HRESULT(0)
        }
    }
    unsafe extern "system" fn AddRef(this: ::windows::core::RawPtr) -> u32 {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        (*this).count.add_ref()
    }
    unsafe extern "system" fn Release(this: ::windows::core::RawPtr) -> u32 {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        let remaining = (*this).count.release();
        if remaining == 0 {
            ::windows::core::alloc::boxed::Box::from_raw(this);
        }
        remaining
    }
    unsafe extern "system" fn Invoke(this: *mut ::core::ffi::c_void, sender: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        ((*this).invoke)(::core::mem::transmute(&sender), ::core::mem::transmute(&e)).into()
    }
}
impl ::core::clone::Clone for NotifyEventHandler {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for NotifyEventHandler {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for NotifyEventHandler {}
impl ::core::fmt::Debug for NotifyEventHandler {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("NotifyEventHandler").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for NotifyEventHandler {
    type Vtable = NotifyEventHandler_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc2fdd1f8_7105_4a74_a109_de29dff56b98);
}
unsafe impl ::windows::core::RuntimeType for NotifyEventHandler {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"{c2fdd1f8-7105-4a74-a109-de29dff56b98}");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
#[repr(C)]
#[doc(hidden)]
pub struct NotifyEventHandler_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    pub Invoke: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sender: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct Orientation(pub i32);
impl Orientation {
    pub const Vertical: Self = Self(0i32);
    pub const Horizontal: Self = Self(1i32);
}
impl ::core::marker::Copy for Orientation {}
impl ::core::clone::Clone for Orientation {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for Orientation {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for Orientation {
    type Abi = Self;
}
impl ::core::fmt::Debug for Orientation {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("Orientation").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for Orientation {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.Orientation;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct Page(::windows::core::IUnknown);
impl Page {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Frame(&self) -> ::windows::core::Result<Frame> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Frame)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Frame>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Navigation'*"]
    #[cfg(feature = "UI_Xaml_Navigation")]
    pub fn NavigationCacheMode(&self) -> ::windows::core::Result<super::Navigation::NavigationCacheMode> {
        let this = self;
        unsafe {
            let mut result__: super::Navigation::NavigationCacheMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).NavigationCacheMode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Navigation::NavigationCacheMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Navigation'*"]
    #[cfg(feature = "UI_Xaml_Navigation")]
    pub fn SetNavigationCacheMode(&self, value: super::Navigation::NavigationCacheMode) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetNavigationCacheMode)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TopAppBar(&self) -> ::windows::core::Result<AppBar> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TopAppBar)(::core::mem::transmute_copy(this), &mut result__).from_abi::<AppBar>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTopAppBar<'a, Param0: ::windows::core::IntoParam<'a, AppBar>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTopAppBar)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BottomAppBar(&self) -> ::windows::core::Result<AppBar> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BottomAppBar)(::core::mem::transmute_copy(this), &mut result__).from_abi::<AppBar>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetBottomAppBar<'a, Param0: ::windows::core::IntoParam<'a, AppBar>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetBottomAppBar)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<Page> {
        Self::IPageFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<Page>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<Page> {
        Self::IPageFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<Page>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FrameProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPageStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FrameProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TopAppBarProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPageStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TopAppBarProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BottomAppBarProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPageStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BottomAppBarProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IPageFactory<R, F: FnOnce(&IPageFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Page, IPageFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IPageStatics<R, F: FnOnce(&IPageStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Page, IPageStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for Page {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for Page {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for Page {}
impl ::core::fmt::Debug for Page {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("Page").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for Page {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.Page;{c4b27075-e641-453e-824d-012fc7cf95cf})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for Page {
    type Vtable = IPage_Vtbl;
    const IID: ::windows::core::GUID = <IPage as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for Page {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.Page";
}
impl ::core::convert::From<Page> for ::windows::core::IUnknown {
    fn from(value: Page) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&Page> for ::windows::core::IUnknown {
    fn from(value: &Page) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for Page {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a Page {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<Page> for ::windows::core::IInspectable {
    fn from(value: Page) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&Page> for ::windows::core::IInspectable {
    fn from(value: &Page) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for Page {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a Page {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<Page> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: Page) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&Page> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &Page) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for Page {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &Page {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<Page> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: Page) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&Page> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &Page) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for Page {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &Page {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<Page> for UserControl {
    fn from(value: Page) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Page> for UserControl {
    fn from(value: &Page) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, UserControl> for Page {
    fn into_param(self) -> ::windows::core::Param<'a, UserControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, UserControl> for &Page {
    fn into_param(self) -> ::windows::core::Param<'a, UserControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<UserControl>::into(self))
    }
}
impl ::core::convert::From<Page> for Control {
    fn from(value: Page) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Page> for Control {
    fn from(value: &Page) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for Page {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &Page {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<Page> for super::FrameworkElement {
    fn from(value: Page) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Page> for super::FrameworkElement {
    fn from(value: &Page) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for Page {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &Page {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<Page> for super::UIElement {
    fn from(value: Page) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Page> for super::UIElement {
    fn from(value: &Page) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for Page {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &Page {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<Page> for super::DependencyObject {
    fn from(value: Page) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Page> for super::DependencyObject {
    fn from(value: &Page) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for Page {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &Page {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for Page {}
unsafe impl ::core::marker::Sync for Page {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct Panel(::windows::core::IUnknown);
impl Panel {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn Children(&self) -> ::windows::core::Result<UIElementCollection> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Children)(::core::mem::transmute_copy(this), &mut result__).from_abi::<UIElementCollection>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn Background(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Background)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetBackground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetBackground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsItemsHost(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsItemsHost)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'UI_Xaml_Media_Animation'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub fn ChildrenTransitions(&self) -> ::windows::core::Result<super::Media::Animation::TransitionCollection> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ChildrenTransitions)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Animation::TransitionCollection>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'UI_Xaml_Media_Animation'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub fn SetChildrenTransitions<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Animation::TransitionCollection>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetChildrenTransitions)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BackgroundTransition(&self) -> ::windows::core::Result<super::BrushTransition> {
        let this = &::windows::core::Interface::cast::<IPanel2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BackgroundTransition)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::BrushTransition>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetBackgroundTransition<'a, Param0: ::windows::core::IntoParam<'a, super::BrushTransition>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IPanel2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetBackgroundTransition)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BackgroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BackgroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsItemsHostProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsItemsHostProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ChildrenTransitionsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ChildrenTransitionsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IPanelStatics<R, F: FnOnce(&IPanelStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Panel, IPanelStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for Panel {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for Panel {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for Panel {}
impl ::core::fmt::Debug for Panel {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("Panel").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for Panel {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.Panel;{a50a4bbd-8361-469c-90da-e9a40c7474df})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for Panel {
    type Vtable = IPanel_Vtbl;
    const IID: ::windows::core::GUID = <IPanel as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for Panel {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.Panel";
}
impl ::core::convert::From<Panel> for ::windows::core::IUnknown {
    fn from(value: Panel) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&Panel> for ::windows::core::IUnknown {
    fn from(value: &Panel) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for Panel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a Panel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<Panel> for ::windows::core::IInspectable {
    fn from(value: Panel) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&Panel> for ::windows::core::IInspectable {
    fn from(value: &Panel) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for Panel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a Panel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<Panel> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: Panel) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&Panel> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &Panel) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for Panel {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &Panel {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<Panel> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: Panel) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&Panel> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &Panel) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for Panel {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &Panel {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<Panel> for super::FrameworkElement {
    fn from(value: Panel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Panel> for super::FrameworkElement {
    fn from(value: &Panel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for Panel {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &Panel {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<Panel> for super::UIElement {
    fn from(value: Panel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Panel> for super::UIElement {
    fn from(value: &Panel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for Panel {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &Panel {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<Panel> for super::DependencyObject {
    fn from(value: Panel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Panel> for super::DependencyObject {
    fn from(value: &Panel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for Panel {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &Panel {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for Panel {}
unsafe impl ::core::marker::Sync for Panel {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct PanelScrollingDirection(pub i32);
impl PanelScrollingDirection {
    pub const None: Self = Self(0i32);
    pub const Forward: Self = Self(1i32);
    pub const Backward: Self = Self(2i32);
}
impl ::core::marker::Copy for PanelScrollingDirection {}
impl ::core::clone::Clone for PanelScrollingDirection {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for PanelScrollingDirection {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for PanelScrollingDirection {
    type Abi = Self;
}
impl ::core::fmt::Debug for PanelScrollingDirection {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("PanelScrollingDirection").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for PanelScrollingDirection {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.PanelScrollingDirection;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct ParallaxSourceOffsetKind(pub i32);
impl ParallaxSourceOffsetKind {
    pub const Absolute: Self = Self(0i32);
    pub const Relative: Self = Self(1i32);
}
impl ::core::marker::Copy for ParallaxSourceOffsetKind {}
impl ::core::clone::Clone for ParallaxSourceOffsetKind {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ParallaxSourceOffsetKind {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ParallaxSourceOffsetKind {
    type Abi = Self;
}
impl ::core::fmt::Debug for ParallaxSourceOffsetKind {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ParallaxSourceOffsetKind").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ParallaxSourceOffsetKind {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.ParallaxSourceOffsetKind;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ParallaxView(::windows::core::IUnknown);
impl ParallaxView {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Child(&self) -> ::windows::core::Result<super::UIElement> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Child)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::UIElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetChild<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetChild)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalShift(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalShift)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHorizontalShift(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHorizontalShift)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalSourceEndOffset(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalSourceEndOffset)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHorizontalSourceEndOffset(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHorizontalSourceEndOffset)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalSourceOffsetKind(&self) -> ::windows::core::Result<ParallaxSourceOffsetKind> {
        let this = self;
        unsafe {
            let mut result__: ParallaxSourceOffsetKind = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalSourceOffsetKind)(::core::mem::transmute_copy(this), &mut result__).from_abi::<ParallaxSourceOffsetKind>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHorizontalSourceOffsetKind(&self, value: ParallaxSourceOffsetKind) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHorizontalSourceOffsetKind)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalSourceStartOffset(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalSourceStartOffset)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHorizontalSourceStartOffset(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHorizontalSourceStartOffset)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsHorizontalShiftClamped(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsHorizontalShiftClamped)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsHorizontalShiftClamped(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsHorizontalShiftClamped)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsVerticalShiftClamped(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsVerticalShiftClamped)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsVerticalShiftClamped(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsVerticalShiftClamped)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxHorizontalShiftRatio(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxHorizontalShiftRatio)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMaxHorizontalShiftRatio(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMaxHorizontalShiftRatio)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxVerticalShiftRatio(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxVerticalShiftRatio)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMaxVerticalShiftRatio(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMaxVerticalShiftRatio)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Source(&self) -> ::windows::core::Result<super::UIElement> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Source)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::UIElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSource<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSource)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalShift(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalShift)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetVerticalShift(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetVerticalShift)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalSourceEndOffset(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalSourceEndOffset)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetVerticalSourceEndOffset(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetVerticalSourceEndOffset)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalSourceOffsetKind(&self) -> ::windows::core::Result<ParallaxSourceOffsetKind> {
        let this = self;
        unsafe {
            let mut result__: ParallaxSourceOffsetKind = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalSourceOffsetKind)(::core::mem::transmute_copy(this), &mut result__).from_abi::<ParallaxSourceOffsetKind>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetVerticalSourceOffsetKind(&self, value: ParallaxSourceOffsetKind) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetVerticalSourceOffsetKind)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalSourceStartOffset(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalSourceStartOffset)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetVerticalSourceStartOffset(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetVerticalSourceStartOffset)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn RefreshAutomaticHorizontalOffsets(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RefreshAutomaticHorizontalOffsets)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn RefreshAutomaticVerticalOffsets(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RefreshAutomaticVerticalOffsets)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<ParallaxView> {
        Self::IParallaxViewFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<ParallaxView>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<ParallaxView> {
        Self::IParallaxViewFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<ParallaxView>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ChildProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IParallaxViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ChildProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalSourceEndOffsetProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IParallaxViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalSourceEndOffsetProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalSourceOffsetKindProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IParallaxViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalSourceOffsetKindProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalSourceStartOffsetProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IParallaxViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalSourceStartOffsetProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxHorizontalShiftRatioProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IParallaxViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxHorizontalShiftRatioProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalShiftProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IParallaxViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalShiftProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsHorizontalShiftClampedProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IParallaxViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsHorizontalShiftClampedProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsVerticalShiftClampedProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IParallaxViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsVerticalShiftClampedProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SourceProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IParallaxViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SourceProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalSourceEndOffsetProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IParallaxViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalSourceEndOffsetProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalSourceOffsetKindProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IParallaxViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalSourceOffsetKindProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalSourceStartOffsetProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IParallaxViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalSourceStartOffsetProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxVerticalShiftRatioProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IParallaxViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxVerticalShiftRatioProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalShiftProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IParallaxViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalShiftProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IParallaxViewFactory<R, F: FnOnce(&IParallaxViewFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ParallaxView, IParallaxViewFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IParallaxViewStatics<R, F: FnOnce(&IParallaxViewStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ParallaxView, IParallaxViewStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for ParallaxView {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ParallaxView {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ParallaxView {}
impl ::core::fmt::Debug for ParallaxView {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ParallaxView").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ParallaxView {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ParallaxView;{6b84fcd4-4083-5b4b-bc40-d9204e19b41a})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ParallaxView {
    type Vtable = IParallaxView_Vtbl;
    const IID: ::windows::core::GUID = <IParallaxView as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ParallaxView {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ParallaxView";
}
impl ::core::convert::From<ParallaxView> for ::windows::core::IUnknown {
    fn from(value: ParallaxView) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ParallaxView> for ::windows::core::IUnknown {
    fn from(value: &ParallaxView) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ParallaxView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ParallaxView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ParallaxView> for ::windows::core::IInspectable {
    fn from(value: ParallaxView) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ParallaxView> for ::windows::core::IInspectable {
    fn from(value: &ParallaxView) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ParallaxView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ParallaxView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ParallaxView> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: ParallaxView) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ParallaxView> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &ParallaxView) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for ParallaxView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &ParallaxView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ParallaxView> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: ParallaxView) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ParallaxView> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &ParallaxView) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for ParallaxView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &ParallaxView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<ParallaxView> for super::FrameworkElement {
    fn from(value: ParallaxView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ParallaxView> for super::FrameworkElement {
    fn from(value: &ParallaxView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for ParallaxView {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &ParallaxView {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<ParallaxView> for super::UIElement {
    fn from(value: ParallaxView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ParallaxView> for super::UIElement {
    fn from(value: &ParallaxView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for ParallaxView {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &ParallaxView {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<ParallaxView> for super::DependencyObject {
    fn from(value: ParallaxView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ParallaxView> for super::DependencyObject {
    fn from(value: &ParallaxView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for ParallaxView {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &ParallaxView {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for ParallaxView {}
unsafe impl ::core::marker::Sync for ParallaxView {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct PasswordBox(::windows::core::IUnknown);
impl PasswordBox {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<PasswordBox, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Password(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Password)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPassword<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPassword)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PasswordChar(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PasswordChar)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPasswordChar<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPasswordChar)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'deprecated'*"]
    #[cfg(feature = "deprecated")]
    pub fn IsPasswordRevealButtonEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsPasswordRevealButtonEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'deprecated'*"]
    #[cfg(feature = "deprecated")]
    pub fn SetIsPasswordRevealButtonEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsPasswordRevealButtonEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxLength(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxLength)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMaxLength(&self, value: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMaxLength)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn PasswordChanged<'a, Param0: ::windows::core::IntoParam<'a, super::RoutedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PasswordChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemovePasswordChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemovePasswordChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ContextMenuOpening<'a, Param0: ::windows::core::IntoParam<'a, ContextMenuOpeningEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContextMenuOpening)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveContextMenuOpening<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveContextMenuOpening)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectAll(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SelectAll)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Header(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = &::windows::core::Interface::cast::<IPasswordBox2>(self)?;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Header)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeader<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IPasswordBox2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetHeader)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTemplate(&self) -> ::windows::core::Result<super::DataTemplate> {
        let this = &::windows::core::Interface::cast::<IPasswordBox2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTemplate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeaderTemplate<'a, Param0: ::windows::core::IntoParam<'a, super::DataTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IPasswordBox2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetHeaderTemplate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PlaceholderText(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = &::windows::core::Interface::cast::<IPasswordBox2>(self)?;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlaceholderText)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPlaceholderText<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IPasswordBox2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetPlaceholderText)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SelectionHighlightColor(&self) -> ::windows::core::Result<super::Media::SolidColorBrush> {
        let this = &::windows::core::Interface::cast::<IPasswordBox2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionHighlightColor)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::SolidColorBrush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetSelectionHighlightColor<'a, Param0: ::windows::core::IntoParam<'a, super::Media::SolidColorBrush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IPasswordBox2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectionHighlightColor)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PreventKeyboardDisplayOnProgrammaticFocus(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IPasswordBox2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PreventKeyboardDisplayOnProgrammaticFocus)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPreventKeyboardDisplayOnProgrammaticFocus(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IPasswordBox2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetPreventKeyboardDisplayOnProgrammaticFocus)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Paste<'a, Param0: ::windows::core::IntoParam<'a, TextControlPasteEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IPasswordBox2>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Paste)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemovePaste<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IPasswordBox2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemovePaste)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PasswordRevealMode(&self) -> ::windows::core::Result<PasswordRevealMode> {
        let this = &::windows::core::Interface::cast::<IPasswordBox3>(self)?;
        unsafe {
            let mut result__: PasswordRevealMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PasswordRevealMode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<PasswordRevealMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPasswordRevealMode(&self, value: PasswordRevealMode) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IPasswordBox3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetPasswordRevealMode)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextReadingOrder(&self) -> ::windows::core::Result<super::TextReadingOrder> {
        let this = &::windows::core::Interface::cast::<IPasswordBox3>(self)?;
        unsafe {
            let mut result__: super::TextReadingOrder = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextReadingOrder)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::TextReadingOrder>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTextReadingOrder(&self, value: super::TextReadingOrder) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IPasswordBox3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetTextReadingOrder)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Input'*"]
    #[cfg(feature = "UI_Xaml_Input")]
    pub fn InputScope(&self) -> ::windows::core::Result<super::Input::InputScope> {
        let this = &::windows::core::Interface::cast::<IPasswordBox3>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).InputScope)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Input::InputScope>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Input'*"]
    #[cfg(feature = "UI_Xaml_Input")]
    pub fn SetInputScope<'a, Param0: ::windows::core::IntoParam<'a, super::Input::InputScope>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IPasswordBox3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetInputScope)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn PasswordChanging<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<PasswordBox, PasswordBoxPasswordChangingEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IPasswordBox4>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PasswordChanging)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemovePasswordChanging<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IPasswordBox4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemovePasswordChanging)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanPasteClipboardContent(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IPasswordBox5>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanPasteClipboardContent)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn SelectionFlyout(&self) -> ::windows::core::Result<Primitives::FlyoutBase> {
        let this = &::windows::core::Interface::cast::<IPasswordBox5>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionFlyout)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::FlyoutBase>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn SetSelectionFlyout<'a, Param0: ::windows::core::IntoParam<'a, Primitives::FlyoutBase>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IPasswordBox5>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectionFlyout)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Description(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = &::windows::core::Interface::cast::<IPasswordBox5>(self)?;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Description)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDescription<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IPasswordBox5>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetDescription)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PasteFromClipboard(&self) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IPasswordBox5>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).PasteFromClipboard)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PasswordProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPasswordBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PasswordProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PasswordCharProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPasswordBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PasswordCharProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'deprecated'*"]
    #[cfg(feature = "deprecated")]
    pub fn IsPasswordRevealButtonEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPasswordBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsPasswordRevealButtonEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxLengthProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPasswordBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxLengthProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPasswordBoxStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTemplateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPasswordBoxStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTemplateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PlaceholderTextProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPasswordBoxStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlaceholderTextProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionHighlightColorProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPasswordBoxStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionHighlightColorProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PreventKeyboardDisplayOnProgrammaticFocusProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPasswordBoxStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PreventKeyboardDisplayOnProgrammaticFocusProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PasswordRevealModeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPasswordBoxStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PasswordRevealModeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextReadingOrderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPasswordBoxStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextReadingOrderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn InputScopeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPasswordBoxStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).InputScopeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanPasteClipboardContentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPasswordBoxStatics5(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanPasteClipboardContentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionFlyoutProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPasswordBoxStatics5(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionFlyoutProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DescriptionProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPasswordBoxStatics5(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DescriptionProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IPasswordBoxStatics<R, F: FnOnce(&IPasswordBoxStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<PasswordBox, IPasswordBoxStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IPasswordBoxStatics2<R, F: FnOnce(&IPasswordBoxStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<PasswordBox, IPasswordBoxStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IPasswordBoxStatics3<R, F: FnOnce(&IPasswordBoxStatics3) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<PasswordBox, IPasswordBoxStatics3> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IPasswordBoxStatics5<R, F: FnOnce(&IPasswordBoxStatics5) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<PasswordBox, IPasswordBoxStatics5> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for PasswordBox {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for PasswordBox {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for PasswordBox {}
impl ::core::fmt::Debug for PasswordBox {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("PasswordBox").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for PasswordBox {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.PasswordBox;{02b9aa11-0b47-4e7d-ad91-3a4168ed230d})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for PasswordBox {
    type Vtable = IPasswordBox_Vtbl;
    const IID: ::windows::core::GUID = <IPasswordBox as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for PasswordBox {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.PasswordBox";
}
impl ::core::convert::From<PasswordBox> for ::windows::core::IUnknown {
    fn from(value: PasswordBox) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&PasswordBox> for ::windows::core::IUnknown {
    fn from(value: &PasswordBox) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for PasswordBox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a PasswordBox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<PasswordBox> for ::windows::core::IInspectable {
    fn from(value: PasswordBox) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&PasswordBox> for ::windows::core::IInspectable {
    fn from(value: &PasswordBox) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for PasswordBox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a PasswordBox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<PasswordBox> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: PasswordBox) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&PasswordBox> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &PasswordBox) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for PasswordBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &PasswordBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<PasswordBox> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: PasswordBox) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&PasswordBox> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &PasswordBox) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for PasswordBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &PasswordBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<PasswordBox> for Control {
    fn from(value: PasswordBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&PasswordBox> for Control {
    fn from(value: &PasswordBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for PasswordBox {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &PasswordBox {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<PasswordBox> for super::FrameworkElement {
    fn from(value: PasswordBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&PasswordBox> for super::FrameworkElement {
    fn from(value: &PasswordBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for PasswordBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &PasswordBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<PasswordBox> for super::UIElement {
    fn from(value: PasswordBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&PasswordBox> for super::UIElement {
    fn from(value: &PasswordBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for PasswordBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &PasswordBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<PasswordBox> for super::DependencyObject {
    fn from(value: PasswordBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&PasswordBox> for super::DependencyObject {
    fn from(value: &PasswordBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for PasswordBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &PasswordBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for PasswordBox {}
unsafe impl ::core::marker::Sync for PasswordBox {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct PasswordBoxPasswordChangingEventArgs(::windows::core::IUnknown);
impl PasswordBoxPasswordChangingEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsContentChanging(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsContentChanging)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
}
impl ::core::clone::Clone for PasswordBoxPasswordChangingEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for PasswordBoxPasswordChangingEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for PasswordBoxPasswordChangingEventArgs {}
impl ::core::fmt::Debug for PasswordBoxPasswordChangingEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("PasswordBoxPasswordChangingEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for PasswordBoxPasswordChangingEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.PasswordBoxPasswordChangingEventArgs;{142eda22-3552-4ab8-81a6-a48620ee9c53})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for PasswordBoxPasswordChangingEventArgs {
    type Vtable = IPasswordBoxPasswordChangingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IPasswordBoxPasswordChangingEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for PasswordBoxPasswordChangingEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.PasswordBoxPasswordChangingEventArgs";
}
impl ::core::convert::From<PasswordBoxPasswordChangingEventArgs> for ::windows::core::IUnknown {
    fn from(value: PasswordBoxPasswordChangingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&PasswordBoxPasswordChangingEventArgs> for ::windows::core::IUnknown {
    fn from(value: &PasswordBoxPasswordChangingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for PasswordBoxPasswordChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a PasswordBoxPasswordChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<PasswordBoxPasswordChangingEventArgs> for ::windows::core::IInspectable {
    fn from(value: PasswordBoxPasswordChangingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&PasswordBoxPasswordChangingEventArgs> for ::windows::core::IInspectable {
    fn from(value: &PasswordBoxPasswordChangingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for PasswordBoxPasswordChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a PasswordBoxPasswordChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for PasswordBoxPasswordChangingEventArgs {}
unsafe impl ::core::marker::Sync for PasswordBoxPasswordChangingEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct PasswordRevealMode(pub i32);
impl PasswordRevealMode {
    pub const Peek: Self = Self(0i32);
    pub const Hidden: Self = Self(1i32);
    pub const Visible: Self = Self(2i32);
}
impl ::core::marker::Copy for PasswordRevealMode {}
impl ::core::clone::Clone for PasswordRevealMode {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for PasswordRevealMode {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for PasswordRevealMode {
    type Abi = Self;
}
impl ::core::fmt::Debug for PasswordRevealMode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("PasswordRevealMode").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for PasswordRevealMode {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.PasswordRevealMode;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct PathIcon(::windows::core::IUnknown);
impl PathIcon {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn Data(&self) -> ::windows::core::Result<super::Media::Geometry> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Data)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Geometry>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetData<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Geometry>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetData)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<PathIcon> {
        Self::IPathIconFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<PathIcon>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<PathIcon> {
        Self::IPathIconFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<PathIcon>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DataProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPathIconStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DataProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IPathIconFactory<R, F: FnOnce(&IPathIconFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<PathIcon, IPathIconFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IPathIconStatics<R, F: FnOnce(&IPathIconStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<PathIcon, IPathIconStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for PathIcon {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for PathIcon {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for PathIcon {}
impl ::core::fmt::Debug for PathIcon {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("PathIcon").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for PathIcon {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.PathIcon;{214c62db-c366-4a0e-b9ad-dcf168d7ec0c})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for PathIcon {
    type Vtable = IPathIcon_Vtbl;
    const IID: ::windows::core::GUID = <IPathIcon as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for PathIcon {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.PathIcon";
}
impl ::core::convert::From<PathIcon> for ::windows::core::IUnknown {
    fn from(value: PathIcon) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&PathIcon> for ::windows::core::IUnknown {
    fn from(value: &PathIcon) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for PathIcon {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a PathIcon {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<PathIcon> for ::windows::core::IInspectable {
    fn from(value: PathIcon) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&PathIcon> for ::windows::core::IInspectable {
    fn from(value: &PathIcon) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for PathIcon {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a PathIcon {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<PathIcon> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: PathIcon) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&PathIcon> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &PathIcon) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for PathIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &PathIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<PathIcon> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: PathIcon) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&PathIcon> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &PathIcon) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for PathIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &PathIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<PathIcon> for IconElement {
    fn from(value: PathIcon) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&PathIcon> for IconElement {
    fn from(value: &PathIcon) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, IconElement> for PathIcon {
    fn into_param(self) -> ::windows::core::Param<'a, IconElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IconElement> for &PathIcon {
    fn into_param(self) -> ::windows::core::Param<'a, IconElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<IconElement>::into(self))
    }
}
impl ::core::convert::From<PathIcon> for super::FrameworkElement {
    fn from(value: PathIcon) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&PathIcon> for super::FrameworkElement {
    fn from(value: &PathIcon) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for PathIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &PathIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<PathIcon> for super::UIElement {
    fn from(value: PathIcon) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&PathIcon> for super::UIElement {
    fn from(value: &PathIcon) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for PathIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &PathIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<PathIcon> for super::DependencyObject {
    fn from(value: PathIcon) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&PathIcon> for super::DependencyObject {
    fn from(value: &PathIcon) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for PathIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &PathIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for PathIcon {}
unsafe impl ::core::marker::Sync for PathIcon {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct PathIconSource(::windows::core::IUnknown);
impl PathIconSource {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn Data(&self) -> ::windows::core::Result<super::Media::Geometry> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Data)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Geometry>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetData<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Geometry>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetData)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<PathIconSource> {
        Self::IPathIconSourceFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<PathIconSource>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<PathIconSource> {
        Self::IPathIconSourceFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<PathIconSource>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DataProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPathIconSourceStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DataProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IPathIconSourceFactory<R, F: FnOnce(&IPathIconSourceFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<PathIconSource, IPathIconSourceFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IPathIconSourceStatics<R, F: FnOnce(&IPathIconSourceStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<PathIconSource, IPathIconSourceStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for PathIconSource {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for PathIconSource {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for PathIconSource {}
impl ::core::fmt::Debug for PathIconSource {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("PathIconSource").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for PathIconSource {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.PathIconSource;{1f47010e-b305-4863-8b7a-15d08d633c7a})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for PathIconSource {
    type Vtable = IPathIconSource_Vtbl;
    const IID: ::windows::core::GUID = <IPathIconSource as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for PathIconSource {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.PathIconSource";
}
impl ::core::convert::From<PathIconSource> for ::windows::core::IUnknown {
    fn from(value: PathIconSource) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&PathIconSource> for ::windows::core::IUnknown {
    fn from(value: &PathIconSource) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for PathIconSource {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a PathIconSource {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<PathIconSource> for ::windows::core::IInspectable {
    fn from(value: PathIconSource) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&PathIconSource> for ::windows::core::IInspectable {
    fn from(value: &PathIconSource) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for PathIconSource {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a PathIconSource {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<PathIconSource> for IconSource {
    fn from(value: PathIconSource) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&PathIconSource> for IconSource {
    fn from(value: &PathIconSource) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, IconSource> for PathIconSource {
    fn into_param(self) -> ::windows::core::Param<'a, IconSource> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IconSource> for &PathIconSource {
    fn into_param(self) -> ::windows::core::Param<'a, IconSource> {
        ::windows::core::Param::Owned(::core::convert::Into::<IconSource>::into(self))
    }
}
impl ::core::convert::From<PathIconSource> for super::DependencyObject {
    fn from(value: PathIconSource) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&PathIconSource> for super::DependencyObject {
    fn from(value: &PathIconSource) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for PathIconSource {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &PathIconSource {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for PathIconSource {}
unsafe impl ::core::marker::Sync for PathIconSource {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct PersonPicture(::windows::core::IUnknown);
impl PersonPicture {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BadgeNumber(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BadgeNumber)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetBadgeNumber(&self, value: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetBadgeNumber)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BadgeGlyph(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BadgeGlyph)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetBadgeGlyph<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetBadgeGlyph)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn BadgeImageSource(&self) -> ::windows::core::Result<super::Media::ImageSource> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BadgeImageSource)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::ImageSource>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetBadgeImageSource<'a, Param0: ::windows::core::IntoParam<'a, super::Media::ImageSource>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetBadgeImageSource)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BadgeText(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BadgeText)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetBadgeText<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetBadgeText)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsGroup(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsGroup)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsGroup(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsGroup)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'ApplicationModel_Contacts'*"]
    #[cfg(feature = "ApplicationModel_Contacts")]
    pub fn Contact(&self) -> ::windows::core::Result<super::super::super::ApplicationModel::Contacts::Contact> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Contact)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::ApplicationModel::Contacts::Contact>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'ApplicationModel_Contacts'*"]
    #[cfg(feature = "ApplicationModel_Contacts")]
    pub fn SetContact<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::ApplicationModel::Contacts::Contact>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetContact)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DisplayName(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DisplayName)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDisplayName<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetDisplayName)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Initials(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Initials)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetInitials<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetInitials)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PreferSmallImage(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PreferSmallImage)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPreferSmallImage(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPreferSmallImage)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn ProfilePicture(&self) -> ::windows::core::Result<super::Media::ImageSource> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ProfilePicture)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::ImageSource>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetProfilePicture<'a, Param0: ::windows::core::IntoParam<'a, super::Media::ImageSource>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetProfilePicture)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<PersonPicture> {
        Self::IPersonPictureFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<PersonPicture>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<PersonPicture> {
        Self::IPersonPictureFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<PersonPicture>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BadgeNumberProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPersonPictureStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BadgeNumberProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BadgeGlyphProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPersonPictureStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BadgeGlyphProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BadgeImageSourceProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPersonPictureStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BadgeImageSourceProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BadgeTextProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPersonPictureStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BadgeTextProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsGroupProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPersonPictureStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsGroupProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContactProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPersonPictureStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContactProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DisplayNameProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPersonPictureStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DisplayNameProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn InitialsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPersonPictureStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).InitialsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PreferSmallImageProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPersonPictureStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PreferSmallImageProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ProfilePictureProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPersonPictureStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ProfilePictureProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IPersonPictureFactory<R, F: FnOnce(&IPersonPictureFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<PersonPicture, IPersonPictureFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IPersonPictureStatics<R, F: FnOnce(&IPersonPictureStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<PersonPicture, IPersonPictureStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for PersonPicture {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for PersonPicture {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for PersonPicture {}
impl ::core::fmt::Debug for PersonPicture {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("PersonPicture").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for PersonPicture {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.PersonPicture;{6c230b6d-0d75-4059-91bc-7b174d1d7315})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for PersonPicture {
    type Vtable = IPersonPicture_Vtbl;
    const IID: ::windows::core::GUID = <IPersonPicture as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for PersonPicture {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.PersonPicture";
}
impl ::core::convert::From<PersonPicture> for ::windows::core::IUnknown {
    fn from(value: PersonPicture) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&PersonPicture> for ::windows::core::IUnknown {
    fn from(value: &PersonPicture) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for PersonPicture {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a PersonPicture {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<PersonPicture> for ::windows::core::IInspectable {
    fn from(value: PersonPicture) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&PersonPicture> for ::windows::core::IInspectable {
    fn from(value: &PersonPicture) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for PersonPicture {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a PersonPicture {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<PersonPicture> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: PersonPicture) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&PersonPicture> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &PersonPicture) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for PersonPicture {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &PersonPicture {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<PersonPicture> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: PersonPicture) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&PersonPicture> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &PersonPicture) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for PersonPicture {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &PersonPicture {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<PersonPicture> for Control {
    fn from(value: PersonPicture) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&PersonPicture> for Control {
    fn from(value: &PersonPicture) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for PersonPicture {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &PersonPicture {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<PersonPicture> for super::FrameworkElement {
    fn from(value: PersonPicture) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&PersonPicture> for super::FrameworkElement {
    fn from(value: &PersonPicture) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for PersonPicture {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &PersonPicture {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<PersonPicture> for super::UIElement {
    fn from(value: PersonPicture) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&PersonPicture> for super::UIElement {
    fn from(value: &PersonPicture) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for PersonPicture {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &PersonPicture {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<PersonPicture> for super::DependencyObject {
    fn from(value: PersonPicture) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&PersonPicture> for super::DependencyObject {
    fn from(value: &PersonPicture) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for PersonPicture {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &PersonPicture {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for PersonPicture {}
unsafe impl ::core::marker::Sync for PersonPicture {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct PickerConfirmedEventArgs(::windows::core::IUnknown);
impl PickerConfirmedEventArgs {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<PickerConfirmedEventArgs, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for PickerConfirmedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for PickerConfirmedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for PickerConfirmedEventArgs {}
impl ::core::fmt::Debug for PickerConfirmedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("PickerConfirmedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for PickerConfirmedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.PickerConfirmedEventArgs;{447a9b51-1e23-4779-992b-986849713941})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for PickerConfirmedEventArgs {
    type Vtable = IPickerConfirmedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IPickerConfirmedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for PickerConfirmedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.PickerConfirmedEventArgs";
}
impl ::core::convert::From<PickerConfirmedEventArgs> for ::windows::core::IUnknown {
    fn from(value: PickerConfirmedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&PickerConfirmedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &PickerConfirmedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for PickerConfirmedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a PickerConfirmedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<PickerConfirmedEventArgs> for ::windows::core::IInspectable {
    fn from(value: PickerConfirmedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&PickerConfirmedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &PickerConfirmedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for PickerConfirmedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a PickerConfirmedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<PickerConfirmedEventArgs> for super::DependencyObject {
    fn from(value: PickerConfirmedEventArgs) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&PickerConfirmedEventArgs> for super::DependencyObject {
    fn from(value: &PickerConfirmedEventArgs) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for PickerConfirmedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &PickerConfirmedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for PickerConfirmedEventArgs {}
unsafe impl ::core::marker::Sync for PickerConfirmedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct PickerFlyout(::windows::core::IUnknown);
impl PickerFlyout {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<PickerFlyout, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Content(&self) -> ::windows::core::Result<super::UIElement> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Content)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::UIElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetContent<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetContent)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ConfirmationButtonsVisible(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ConfirmationButtonsVisible)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetConfirmationButtonsVisible(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetConfirmationButtonsVisible)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Confirmed<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<PickerFlyout, PickerConfirmedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Confirmed)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveConfirmed<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveConfirmed)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ShowAtAsync<'a, Param0: ::windows::core::IntoParam<'a, super::FrameworkElement>>(&self, target: Param0) -> ::windows::core::Result<super::super::super::Foundation::IAsyncOperation<bool>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ShowAtAsync)(::core::mem::transmute_copy(this), target.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::IAsyncOperation<bool>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPickerFlyoutStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ConfirmationButtonsVisibleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPickerFlyoutStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ConfirmationButtonsVisibleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IPickerFlyoutStatics<R, F: FnOnce(&IPickerFlyoutStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<PickerFlyout, IPickerFlyoutStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for PickerFlyout {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for PickerFlyout {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for PickerFlyout {}
impl ::core::fmt::Debug for PickerFlyout {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("PickerFlyout").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for PickerFlyout {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.PickerFlyout;{a336ffdb-08d9-43e6-944e-f2e5c7cee630})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for PickerFlyout {
    type Vtable = IPickerFlyout_Vtbl;
    const IID: ::windows::core::GUID = <IPickerFlyout as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for PickerFlyout {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.PickerFlyout";
}
impl ::core::convert::From<PickerFlyout> for ::windows::core::IUnknown {
    fn from(value: PickerFlyout) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&PickerFlyout> for ::windows::core::IUnknown {
    fn from(value: &PickerFlyout) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for PickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a PickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<PickerFlyout> for ::windows::core::IInspectable {
    fn from(value: PickerFlyout) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&PickerFlyout> for ::windows::core::IInspectable {
    fn from(value: &PickerFlyout) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for PickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a PickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<PickerFlyout> for Primitives::PickerFlyoutBase {
    fn from(value: PickerFlyout) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&PickerFlyout> for Primitives::PickerFlyoutBase {
    fn from(value: &PickerFlyout) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::PickerFlyoutBase> for PickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::PickerFlyoutBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::PickerFlyoutBase> for &PickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::PickerFlyoutBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::PickerFlyoutBase>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<PickerFlyout> for Primitives::FlyoutBase {
    fn from(value: PickerFlyout) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&PickerFlyout> for Primitives::FlyoutBase {
    fn from(value: &PickerFlyout) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::FlyoutBase> for PickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::FlyoutBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::FlyoutBase> for &PickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::FlyoutBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::FlyoutBase>::into(self))
    }
}
impl ::core::convert::From<PickerFlyout> for super::DependencyObject {
    fn from(value: PickerFlyout) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&PickerFlyout> for super::DependencyObject {
    fn from(value: &PickerFlyout) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for PickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &PickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for PickerFlyout {}
unsafe impl ::core::marker::Sync for PickerFlyout {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct PickerFlyoutPresenter(::windows::core::IUnknown);
impl PickerFlyoutPresenter {}
impl ::core::clone::Clone for PickerFlyoutPresenter {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for PickerFlyoutPresenter {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for PickerFlyoutPresenter {}
impl ::core::fmt::Debug for PickerFlyoutPresenter {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("PickerFlyoutPresenter").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for PickerFlyoutPresenter {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.PickerFlyoutPresenter;{5884c978-6b27-4b38-a9ae-677c2994652e})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for PickerFlyoutPresenter {
    type Vtable = IPickerFlyoutPresenter_Vtbl;
    const IID: ::windows::core::GUID = <IPickerFlyoutPresenter as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for PickerFlyoutPresenter {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.PickerFlyoutPresenter";
}
impl ::core::convert::From<PickerFlyoutPresenter> for ::windows::core::IUnknown {
    fn from(value: PickerFlyoutPresenter) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&PickerFlyoutPresenter> for ::windows::core::IUnknown {
    fn from(value: &PickerFlyoutPresenter) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for PickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a PickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<PickerFlyoutPresenter> for ::windows::core::IInspectable {
    fn from(value: PickerFlyoutPresenter) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&PickerFlyoutPresenter> for ::windows::core::IInspectable {
    fn from(value: &PickerFlyoutPresenter) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for PickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a PickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<PickerFlyoutPresenter> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: PickerFlyoutPresenter) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&PickerFlyoutPresenter> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &PickerFlyoutPresenter) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for PickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &PickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<PickerFlyoutPresenter> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: PickerFlyoutPresenter) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&PickerFlyoutPresenter> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &PickerFlyoutPresenter) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for PickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &PickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<PickerFlyoutPresenter> for ContentControl {
    fn from(value: PickerFlyoutPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&PickerFlyoutPresenter> for ContentControl {
    fn from(value: &PickerFlyoutPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for PickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &PickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<PickerFlyoutPresenter> for Control {
    fn from(value: PickerFlyoutPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&PickerFlyoutPresenter> for Control {
    fn from(value: &PickerFlyoutPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for PickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &PickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<PickerFlyoutPresenter> for super::FrameworkElement {
    fn from(value: PickerFlyoutPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&PickerFlyoutPresenter> for super::FrameworkElement {
    fn from(value: &PickerFlyoutPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for PickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &PickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<PickerFlyoutPresenter> for super::UIElement {
    fn from(value: PickerFlyoutPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&PickerFlyoutPresenter> for super::UIElement {
    fn from(value: &PickerFlyoutPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for PickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &PickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<PickerFlyoutPresenter> for super::DependencyObject {
    fn from(value: PickerFlyoutPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&PickerFlyoutPresenter> for super::DependencyObject {
    fn from(value: &PickerFlyoutPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for PickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &PickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for PickerFlyoutPresenter {}
unsafe impl ::core::marker::Sync for PickerFlyoutPresenter {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct Pivot(::windows::core::IUnknown);
impl Pivot {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Title(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Title)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTitle<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTitle)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TitleTemplate(&self) -> ::windows::core::Result<super::DataTemplate> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TitleTemplate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTitleTemplate<'a, Param0: ::windows::core::IntoParam<'a, super::DataTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTitleTemplate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTemplate(&self) -> ::windows::core::Result<super::DataTemplate> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTemplate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeaderTemplate<'a, Param0: ::windows::core::IntoParam<'a, super::DataTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHeaderTemplate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedIndex(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedIndex)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSelectedIndex(&self, value: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectedIndex)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedItem(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedItem)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSelectedItem<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectedItem)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsLocked(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsLocked)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsLocked(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsLocked)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SelectionChanged<'a, Param0: ::windows::core::IntoParam<'a, SelectionChangedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveSelectionChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveSelectionChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn PivotItemLoading<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<Pivot, PivotItemEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PivotItemLoading)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemovePivotItemLoading<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemovePivotItemLoading)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn PivotItemLoaded<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<Pivot, PivotItemEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PivotItemLoaded)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemovePivotItemLoaded<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemovePivotItemLoaded)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn PivotItemUnloading<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<Pivot, PivotItemEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PivotItemUnloading)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemovePivotItemUnloading<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemovePivotItemUnloading)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn PivotItemUnloaded<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<Pivot, PivotItemEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PivotItemUnloaded)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemovePivotItemUnloaded<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemovePivotItemUnloaded)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LeftHeader(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = &::windows::core::Interface::cast::<IPivot2>(self)?;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LeftHeader)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetLeftHeader<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IPivot2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetLeftHeader)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LeftHeaderTemplate(&self) -> ::windows::core::Result<super::DataTemplate> {
        let this = &::windows::core::Interface::cast::<IPivot2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LeftHeaderTemplate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetLeftHeaderTemplate<'a, Param0: ::windows::core::IntoParam<'a, super::DataTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IPivot2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetLeftHeaderTemplate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn RightHeader(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = &::windows::core::Interface::cast::<IPivot2>(self)?;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).RightHeader)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetRightHeader<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IPivot2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetRightHeader)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn RightHeaderTemplate(&self) -> ::windows::core::Result<super::DataTemplate> {
        let this = &::windows::core::Interface::cast::<IPivot2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).RightHeaderTemplate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetRightHeaderTemplate<'a, Param0: ::windows::core::IntoParam<'a, super::DataTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IPivot2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetRightHeaderTemplate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderFocusVisualPlacement(&self) -> ::windows::core::Result<PivotHeaderFocusVisualPlacement> {
        let this = &::windows::core::Interface::cast::<IPivot3>(self)?;
        unsafe {
            let mut result__: PivotHeaderFocusVisualPlacement = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderFocusVisualPlacement)(::core::mem::transmute_copy(this), &mut result__).from_abi::<PivotHeaderFocusVisualPlacement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeaderFocusVisualPlacement(&self, value: PivotHeaderFocusVisualPlacement) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IPivot3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetHeaderFocusVisualPlacement)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsHeaderItemsCarouselEnabled(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IPivot3>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsHeaderItemsCarouselEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsHeaderItemsCarouselEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IPivot3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsHeaderItemsCarouselEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<Pivot> {
        Self::IPivotFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<Pivot>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<Pivot> {
        Self::IPivotFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<Pivot>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TitleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPivotStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TitleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TitleTemplateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPivotStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TitleTemplateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTemplateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPivotStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTemplateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedIndexProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPivotStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedIndexProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedItemProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPivotStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedItemProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsLockedProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPivotStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsLockedProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SlideInAnimationGroupProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPivotStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SlideInAnimationGroupProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetSlideInAnimationGroup<'a, Param0: ::windows::core::IntoParam<'a, super::FrameworkElement>>(element: Param0) -> ::windows::core::Result<PivotSlideInAnimationGroup> {
        Self::IPivotStatics(|this| unsafe {
            let mut result__: PivotSlideInAnimationGroup = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetSlideInAnimationGroup)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<PivotSlideInAnimationGroup>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSlideInAnimationGroup<'a, Param0: ::windows::core::IntoParam<'a, super::FrameworkElement>>(element: Param0, value: PivotSlideInAnimationGroup) -> ::windows::core::Result<()> {
        Self::IPivotStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetSlideInAnimationGroup)(::core::mem::transmute_copy(this), element.into_param().abi(), value).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LeftHeaderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPivotStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LeftHeaderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LeftHeaderTemplateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPivotStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LeftHeaderTemplateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn RightHeaderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPivotStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).RightHeaderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn RightHeaderTemplateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPivotStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).RightHeaderTemplateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderFocusVisualPlacementProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPivotStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderFocusVisualPlacementProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsHeaderItemsCarouselEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPivotStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsHeaderItemsCarouselEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IPivotFactory<R, F: FnOnce(&IPivotFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Pivot, IPivotFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IPivotStatics<R, F: FnOnce(&IPivotStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Pivot, IPivotStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IPivotStatics2<R, F: FnOnce(&IPivotStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Pivot, IPivotStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IPivotStatics3<R, F: FnOnce(&IPivotStatics3) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Pivot, IPivotStatics3> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for Pivot {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for Pivot {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for Pivot {}
impl ::core::fmt::Debug for Pivot {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("Pivot").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for Pivot {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.Pivot;{103e9b13-3400-4a16-90b9-6912bf06974e})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for Pivot {
    type Vtable = IPivot_Vtbl;
    const IID: ::windows::core::GUID = <IPivot as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for Pivot {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.Pivot";
}
impl ::core::convert::From<Pivot> for ::windows::core::IUnknown {
    fn from(value: Pivot) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&Pivot> for ::windows::core::IUnknown {
    fn from(value: &Pivot) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for Pivot {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a Pivot {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<Pivot> for ::windows::core::IInspectable {
    fn from(value: Pivot) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&Pivot> for ::windows::core::IInspectable {
    fn from(value: &Pivot) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for Pivot {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a Pivot {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<Pivot> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: Pivot) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&Pivot> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &Pivot) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for Pivot {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &Pivot {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::TryFrom<Pivot> for IItemContainerMapping {
    type Error = ::windows::core::Error;
    fn try_from(value: Pivot) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
impl ::core::convert::TryFrom<&Pivot> for IItemContainerMapping {
    type Error = ::windows::core::Error;
    fn try_from(value: &Pivot) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IItemContainerMapping> for Pivot {
    fn into_param(self) -> ::windows::core::Param<'a, IItemContainerMapping> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IItemContainerMapping> for &Pivot {
    fn into_param(self) -> ::windows::core::Param<'a, IItemContainerMapping> {
        ::core::convert::TryInto::<IItemContainerMapping>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<Pivot> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: Pivot) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&Pivot> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &Pivot) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for Pivot {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &Pivot {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<Pivot> for ItemsControl {
    fn from(value: Pivot) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Pivot> for ItemsControl {
    fn from(value: &Pivot) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ItemsControl> for Pivot {
    fn into_param(self) -> ::windows::core::Param<'a, ItemsControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ItemsControl> for &Pivot {
    fn into_param(self) -> ::windows::core::Param<'a, ItemsControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ItemsControl>::into(self))
    }
}
impl ::core::convert::From<Pivot> for Control {
    fn from(value: Pivot) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Pivot> for Control {
    fn from(value: &Pivot) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for Pivot {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &Pivot {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<Pivot> for super::FrameworkElement {
    fn from(value: Pivot) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Pivot> for super::FrameworkElement {
    fn from(value: &Pivot) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for Pivot {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &Pivot {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<Pivot> for super::UIElement {
    fn from(value: Pivot) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Pivot> for super::UIElement {
    fn from(value: &Pivot) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for Pivot {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &Pivot {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<Pivot> for super::DependencyObject {
    fn from(value: Pivot) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Pivot> for super::DependencyObject {
    fn from(value: &Pivot) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for Pivot {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &Pivot {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for Pivot {}
unsafe impl ::core::marker::Sync for Pivot {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct PivotHeaderFocusVisualPlacement(pub i32);
impl PivotHeaderFocusVisualPlacement {
    pub const ItemHeaders: Self = Self(0i32);
    pub const SelectedItemHeader: Self = Self(1i32);
}
impl ::core::marker::Copy for PivotHeaderFocusVisualPlacement {}
impl ::core::clone::Clone for PivotHeaderFocusVisualPlacement {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for PivotHeaderFocusVisualPlacement {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for PivotHeaderFocusVisualPlacement {
    type Abi = Self;
}
impl ::core::fmt::Debug for PivotHeaderFocusVisualPlacement {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("PivotHeaderFocusVisualPlacement").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for PivotHeaderFocusVisualPlacement {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.PivotHeaderFocusVisualPlacement;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct PivotItem(::windows::core::IUnknown);
impl PivotItem {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Header(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Header)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeader<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHeader)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<PivotItem> {
        Self::IPivotItemFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<PivotItem>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<PivotItem> {
        Self::IPivotItemFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<PivotItem>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IPivotItemStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IPivotItemFactory<R, F: FnOnce(&IPivotItemFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<PivotItem, IPivotItemFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IPivotItemStatics<R, F: FnOnce(&IPivotItemStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<PivotItem, IPivotItemStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for PivotItem {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for PivotItem {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for PivotItem {}
impl ::core::fmt::Debug for PivotItem {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("PivotItem").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for PivotItem {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.PivotItem;{a4764371-a502-47a3-915e-4aa096daf87f})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for PivotItem {
    type Vtable = IPivotItem_Vtbl;
    const IID: ::windows::core::GUID = <IPivotItem as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for PivotItem {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.PivotItem";
}
impl ::core::convert::From<PivotItem> for ::windows::core::IUnknown {
    fn from(value: PivotItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&PivotItem> for ::windows::core::IUnknown {
    fn from(value: &PivotItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for PivotItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a PivotItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<PivotItem> for ::windows::core::IInspectable {
    fn from(value: PivotItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&PivotItem> for ::windows::core::IInspectable {
    fn from(value: &PivotItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for PivotItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a PivotItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<PivotItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: PivotItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&PivotItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &PivotItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for PivotItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &PivotItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<PivotItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: PivotItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&PivotItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &PivotItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for PivotItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &PivotItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<PivotItem> for ContentControl {
    fn from(value: PivotItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&PivotItem> for ContentControl {
    fn from(value: &PivotItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for PivotItem {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &PivotItem {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<PivotItem> for Control {
    fn from(value: PivotItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&PivotItem> for Control {
    fn from(value: &PivotItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for PivotItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &PivotItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<PivotItem> for super::FrameworkElement {
    fn from(value: PivotItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&PivotItem> for super::FrameworkElement {
    fn from(value: &PivotItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for PivotItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &PivotItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<PivotItem> for super::UIElement {
    fn from(value: PivotItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&PivotItem> for super::UIElement {
    fn from(value: &PivotItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for PivotItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &PivotItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<PivotItem> for super::DependencyObject {
    fn from(value: PivotItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&PivotItem> for super::DependencyObject {
    fn from(value: &PivotItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for PivotItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &PivotItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for PivotItem {}
unsafe impl ::core::marker::Sync for PivotItem {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct PivotItemEventArgs(::windows::core::IUnknown);
impl PivotItemEventArgs {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<PivotItemEventArgs, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Item(&self) -> ::windows::core::Result<PivotItem> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Item)(::core::mem::transmute_copy(this), &mut result__).from_abi::<PivotItem>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetItem<'a, Param0: ::windows::core::IntoParam<'a, PivotItem>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetItem)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
}
impl ::core::clone::Clone for PivotItemEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for PivotItemEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for PivotItemEventArgs {}
impl ::core::fmt::Debug for PivotItemEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("PivotItemEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for PivotItemEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.PivotItemEventArgs;{1a6f7254-1ed5-4bc5-a060-655530bca6ba})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for PivotItemEventArgs {
    type Vtable = IPivotItemEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IPivotItemEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for PivotItemEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.PivotItemEventArgs";
}
impl ::core::convert::From<PivotItemEventArgs> for ::windows::core::IUnknown {
    fn from(value: PivotItemEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&PivotItemEventArgs> for ::windows::core::IUnknown {
    fn from(value: &PivotItemEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for PivotItemEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a PivotItemEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<PivotItemEventArgs> for ::windows::core::IInspectable {
    fn from(value: PivotItemEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&PivotItemEventArgs> for ::windows::core::IInspectable {
    fn from(value: &PivotItemEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for PivotItemEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a PivotItemEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for PivotItemEventArgs {}
unsafe impl ::core::marker::Sync for PivotItemEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct PivotSlideInAnimationGroup(pub i32);
impl PivotSlideInAnimationGroup {
    pub const Default: Self = Self(0i32);
    pub const GroupOne: Self = Self(1i32);
    pub const GroupTwo: Self = Self(2i32);
    pub const GroupThree: Self = Self(3i32);
}
impl ::core::marker::Copy for PivotSlideInAnimationGroup {}
impl ::core::clone::Clone for PivotSlideInAnimationGroup {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for PivotSlideInAnimationGroup {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for PivotSlideInAnimationGroup {
    type Abi = Self;
}
impl ::core::fmt::Debug for PivotSlideInAnimationGroup {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("PivotSlideInAnimationGroup").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for PivotSlideInAnimationGroup {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.PivotSlideInAnimationGroup;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ProgressBar(::windows::core::IUnknown);
impl ProgressBar {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsIndeterminate(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsIndeterminate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsIndeterminate(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsIndeterminate)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ShowError(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ShowError)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetShowError(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetShowError)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ShowPaused(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ShowPaused)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetShowPaused(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetShowPaused)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn TemplateSettings(&self) -> ::windows::core::Result<Primitives::ProgressBarTemplateSettings> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TemplateSettings)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::ProgressBarTemplateSettings>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<ProgressBar> {
        Self::IProgressBarFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<ProgressBar>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<ProgressBar> {
        Self::IProgressBarFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<ProgressBar>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsIndeterminateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IProgressBarStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsIndeterminateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ShowErrorProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IProgressBarStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ShowErrorProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ShowPausedProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IProgressBarStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ShowPausedProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IProgressBarFactory<R, F: FnOnce(&IProgressBarFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ProgressBar, IProgressBarFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IProgressBarStatics<R, F: FnOnce(&IProgressBarStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ProgressBar, IProgressBarStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for ProgressBar {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ProgressBar {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ProgressBar {}
impl ::core::fmt::Debug for ProgressBar {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ProgressBar").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ProgressBar {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ProgressBar;{ae752c89-0067-4963-bf4c-29db0c4a507e})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ProgressBar {
    type Vtable = IProgressBar_Vtbl;
    const IID: ::windows::core::GUID = <IProgressBar as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ProgressBar {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ProgressBar";
}
impl ::core::convert::From<ProgressBar> for ::windows::core::IUnknown {
    fn from(value: ProgressBar) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ProgressBar> for ::windows::core::IUnknown {
    fn from(value: &ProgressBar) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ProgressBar {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ProgressBar {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ProgressBar> for ::windows::core::IInspectable {
    fn from(value: ProgressBar) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ProgressBar> for ::windows::core::IInspectable {
    fn from(value: &ProgressBar) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ProgressBar {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ProgressBar {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ProgressBar> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: ProgressBar) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ProgressBar> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &ProgressBar) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for ProgressBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &ProgressBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ProgressBar> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: ProgressBar) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ProgressBar> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &ProgressBar) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for ProgressBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &ProgressBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<ProgressBar> for Primitives::RangeBase {
    fn from(value: ProgressBar) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&ProgressBar> for Primitives::RangeBase {
    fn from(value: &ProgressBar) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::RangeBase> for ProgressBar {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::RangeBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::RangeBase> for &ProgressBar {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::RangeBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::RangeBase>::into(self))
    }
}
impl ::core::convert::From<ProgressBar> for Control {
    fn from(value: ProgressBar) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ProgressBar> for Control {
    fn from(value: &ProgressBar) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for ProgressBar {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &ProgressBar {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<ProgressBar> for super::FrameworkElement {
    fn from(value: ProgressBar) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ProgressBar> for super::FrameworkElement {
    fn from(value: &ProgressBar) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for ProgressBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &ProgressBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<ProgressBar> for super::UIElement {
    fn from(value: ProgressBar) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ProgressBar> for super::UIElement {
    fn from(value: &ProgressBar) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for ProgressBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &ProgressBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<ProgressBar> for super::DependencyObject {
    fn from(value: ProgressBar) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ProgressBar> for super::DependencyObject {
    fn from(value: &ProgressBar) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for ProgressBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &ProgressBar {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for ProgressBar {}
unsafe impl ::core::marker::Sync for ProgressBar {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ProgressRing(::windows::core::IUnknown);
impl ProgressRing {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ProgressRing, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsActive(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsActive)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsActive(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsActive)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn TemplateSettings(&self) -> ::windows::core::Result<Primitives::ProgressRingTemplateSettings> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TemplateSettings)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::ProgressRingTemplateSettings>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsActiveProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IProgressRingStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsActiveProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IProgressRingStatics<R, F: FnOnce(&IProgressRingStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ProgressRing, IProgressRingStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for ProgressRing {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ProgressRing {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ProgressRing {}
impl ::core::fmt::Debug for ProgressRing {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ProgressRing").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ProgressRing {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ProgressRing;{6da5e49e-6e9d-425c-bd7c-02173e39763f})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ProgressRing {
    type Vtable = IProgressRing_Vtbl;
    const IID: ::windows::core::GUID = <IProgressRing as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ProgressRing {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ProgressRing";
}
impl ::core::convert::From<ProgressRing> for ::windows::core::IUnknown {
    fn from(value: ProgressRing) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ProgressRing> for ::windows::core::IUnknown {
    fn from(value: &ProgressRing) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ProgressRing {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ProgressRing {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ProgressRing> for ::windows::core::IInspectable {
    fn from(value: ProgressRing) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ProgressRing> for ::windows::core::IInspectable {
    fn from(value: &ProgressRing) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ProgressRing {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ProgressRing {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ProgressRing> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: ProgressRing) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ProgressRing> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &ProgressRing) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for ProgressRing {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &ProgressRing {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ProgressRing> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: ProgressRing) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ProgressRing> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &ProgressRing) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for ProgressRing {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &ProgressRing {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<ProgressRing> for Control {
    fn from(value: ProgressRing) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ProgressRing> for Control {
    fn from(value: &ProgressRing) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for ProgressRing {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &ProgressRing {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<ProgressRing> for super::FrameworkElement {
    fn from(value: ProgressRing) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ProgressRing> for super::FrameworkElement {
    fn from(value: &ProgressRing) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for ProgressRing {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &ProgressRing {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<ProgressRing> for super::UIElement {
    fn from(value: ProgressRing) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ProgressRing> for super::UIElement {
    fn from(value: &ProgressRing) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for ProgressRing {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &ProgressRing {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<ProgressRing> for super::DependencyObject {
    fn from(value: ProgressRing) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ProgressRing> for super::DependencyObject {
    fn from(value: &ProgressRing) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for ProgressRing {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &ProgressRing {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for ProgressRing {}
unsafe impl ::core::marker::Sync for ProgressRing {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct RadioButton(::windows::core::IUnknown);
impl RadioButton {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GroupName(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GroupName)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetGroupName<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetGroupName)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<RadioButton> {
        Self::IRadioButtonFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<RadioButton>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<RadioButton> {
        Self::IRadioButtonFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<RadioButton>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GroupNameProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRadioButtonStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GroupNameProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IRadioButtonFactory<R, F: FnOnce(&IRadioButtonFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RadioButton, IRadioButtonFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IRadioButtonStatics<R, F: FnOnce(&IRadioButtonStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RadioButton, IRadioButtonStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for RadioButton {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for RadioButton {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for RadioButton {}
impl ::core::fmt::Debug for RadioButton {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("RadioButton").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for RadioButton {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.RadioButton;{325c44e0-9a03-4bf3-abd6-6fbb46c9a486})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for RadioButton {
    type Vtable = IRadioButton_Vtbl;
    const IID: ::windows::core::GUID = <IRadioButton as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for RadioButton {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.RadioButton";
}
impl ::core::convert::From<RadioButton> for ::windows::core::IUnknown {
    fn from(value: RadioButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RadioButton> for ::windows::core::IUnknown {
    fn from(value: &RadioButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for RadioButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a RadioButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<RadioButton> for ::windows::core::IInspectable {
    fn from(value: RadioButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RadioButton> for ::windows::core::IInspectable {
    fn from(value: &RadioButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for RadioButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a RadioButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<RadioButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: RadioButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&RadioButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &RadioButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for RadioButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &RadioButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<RadioButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: RadioButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&RadioButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &RadioButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for RadioButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &RadioButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<RadioButton> for Primitives::ToggleButton {
    fn from(value: RadioButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&RadioButton> for Primitives::ToggleButton {
    fn from(value: &RadioButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ToggleButton> for RadioButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ToggleButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ToggleButton> for &RadioButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ToggleButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ToggleButton>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<RadioButton> for Primitives::ButtonBase {
    fn from(value: RadioButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&RadioButton> for Primitives::ButtonBase {
    fn from(value: &RadioButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for RadioButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::ButtonBase> for &RadioButton {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::ButtonBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::ButtonBase>::into(self))
    }
}
impl ::core::convert::From<RadioButton> for ContentControl {
    fn from(value: RadioButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RadioButton> for ContentControl {
    fn from(value: &RadioButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for RadioButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &RadioButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<RadioButton> for Control {
    fn from(value: RadioButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RadioButton> for Control {
    fn from(value: &RadioButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for RadioButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &RadioButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<RadioButton> for super::FrameworkElement {
    fn from(value: RadioButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RadioButton> for super::FrameworkElement {
    fn from(value: &RadioButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for RadioButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &RadioButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<RadioButton> for super::UIElement {
    fn from(value: RadioButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RadioButton> for super::UIElement {
    fn from(value: &RadioButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for RadioButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &RadioButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<RadioButton> for super::DependencyObject {
    fn from(value: RadioButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RadioButton> for super::DependencyObject {
    fn from(value: &RadioButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for RadioButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &RadioButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for RadioButton {}
unsafe impl ::core::marker::Sync for RadioButton {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct RatingControl(::windows::core::IUnknown);
impl RatingControl {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Caption(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Caption)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCaption<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCaption)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn InitialSetValue(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).InitialSetValue)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetInitialSetValue(&self, value: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetInitialSetValue)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsClearEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsClearEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsClearEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsClearEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsReadOnly(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsReadOnly)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsReadOnly(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsReadOnly)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxRating(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxRating)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMaxRating(&self, value: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMaxRating)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PlaceholderValue(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlaceholderValue)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPlaceholderValue(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPlaceholderValue)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemInfo(&self) -> ::windows::core::Result<RatingItemInfo> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemInfo)(::core::mem::transmute_copy(this), &mut result__).from_abi::<RatingItemInfo>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetItemInfo<'a, Param0: ::windows::core::IntoParam<'a, RatingItemInfo>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetItemInfo)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Value(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Value)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetValue(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetValue)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ValueChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<RatingControl, ::windows::core::IInspectable>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ValueChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveValueChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveValueChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<RatingControl> {
        Self::IRatingControlFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<RatingControl>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<RatingControl> {
        Self::IRatingControlFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<RatingControl>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CaptionProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRatingControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CaptionProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn InitialSetValueProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRatingControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).InitialSetValueProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsClearEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRatingControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsClearEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsReadOnlyProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRatingControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsReadOnlyProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxRatingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRatingControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxRatingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PlaceholderValueProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRatingControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlaceholderValueProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemInfoProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRatingControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemInfoProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ValueProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRatingControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ValueProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IRatingControlFactory<R, F: FnOnce(&IRatingControlFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RatingControl, IRatingControlFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IRatingControlStatics<R, F: FnOnce(&IRatingControlStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RatingControl, IRatingControlStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for RatingControl {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for RatingControl {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for RatingControl {}
impl ::core::fmt::Debug for RatingControl {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("RatingControl").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for RatingControl {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.RatingControl;{a7d91ca7-e5cf-4963-a24e-9673fe5ffdd5})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for RatingControl {
    type Vtable = IRatingControl_Vtbl;
    const IID: ::windows::core::GUID = <IRatingControl as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for RatingControl {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.RatingControl";
}
impl ::core::convert::From<RatingControl> for ::windows::core::IUnknown {
    fn from(value: RatingControl) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RatingControl> for ::windows::core::IUnknown {
    fn from(value: &RatingControl) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for RatingControl {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a RatingControl {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<RatingControl> for ::windows::core::IInspectable {
    fn from(value: RatingControl) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RatingControl> for ::windows::core::IInspectable {
    fn from(value: &RatingControl) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for RatingControl {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a RatingControl {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<RatingControl> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: RatingControl) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&RatingControl> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &RatingControl) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for RatingControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &RatingControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<RatingControl> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: RatingControl) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&RatingControl> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &RatingControl) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for RatingControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &RatingControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<RatingControl> for Control {
    fn from(value: RatingControl) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RatingControl> for Control {
    fn from(value: &RatingControl) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for RatingControl {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &RatingControl {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<RatingControl> for super::FrameworkElement {
    fn from(value: RatingControl) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RatingControl> for super::FrameworkElement {
    fn from(value: &RatingControl) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for RatingControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &RatingControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<RatingControl> for super::UIElement {
    fn from(value: RatingControl) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RatingControl> for super::UIElement {
    fn from(value: &RatingControl) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for RatingControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &RatingControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<RatingControl> for super::DependencyObject {
    fn from(value: RatingControl) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RatingControl> for super::DependencyObject {
    fn from(value: &RatingControl) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for RatingControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &RatingControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for RatingControl {}
unsafe impl ::core::marker::Sync for RatingControl {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct RatingItemFontInfo(::windows::core::IUnknown);
impl RatingItemFontInfo {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DisabledGlyph(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DisabledGlyph)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDisabledGlyph<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetDisabledGlyph)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Glyph(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Glyph)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetGlyph<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetGlyph)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PointerOverGlyph(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PointerOverGlyph)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPointerOverGlyph<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPointerOverGlyph)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PointerOverPlaceholderGlyph(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PointerOverPlaceholderGlyph)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPointerOverPlaceholderGlyph<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPointerOverPlaceholderGlyph)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PlaceholderGlyph(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlaceholderGlyph)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPlaceholderGlyph<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPlaceholderGlyph)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn UnsetGlyph(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).UnsetGlyph)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetUnsetGlyph<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetUnsetGlyph)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<RatingItemFontInfo> {
        Self::IRatingItemFontInfoFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<RatingItemFontInfo>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<RatingItemFontInfo> {
        Self::IRatingItemFontInfoFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<RatingItemFontInfo>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DisabledGlyphProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRatingItemFontInfoStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DisabledGlyphProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GlyphProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRatingItemFontInfoStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GlyphProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PlaceholderGlyphProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRatingItemFontInfoStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlaceholderGlyphProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PointerOverGlyphProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRatingItemFontInfoStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PointerOverGlyphProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PointerOverPlaceholderGlyphProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRatingItemFontInfoStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PointerOverPlaceholderGlyphProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn UnsetGlyphProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRatingItemFontInfoStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).UnsetGlyphProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IRatingItemFontInfoFactory<R, F: FnOnce(&IRatingItemFontInfoFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RatingItemFontInfo, IRatingItemFontInfoFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IRatingItemFontInfoStatics<R, F: FnOnce(&IRatingItemFontInfoStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RatingItemFontInfo, IRatingItemFontInfoStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for RatingItemFontInfo {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for RatingItemFontInfo {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for RatingItemFontInfo {}
impl ::core::fmt::Debug for RatingItemFontInfo {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("RatingItemFontInfo").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for RatingItemFontInfo {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.RatingItemFontInfo;{054723e9-7989-4d5c-9d01-a7eb876f1071})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for RatingItemFontInfo {
    type Vtable = IRatingItemFontInfo_Vtbl;
    const IID: ::windows::core::GUID = <IRatingItemFontInfo as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for RatingItemFontInfo {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.RatingItemFontInfo";
}
impl ::core::convert::From<RatingItemFontInfo> for ::windows::core::IUnknown {
    fn from(value: RatingItemFontInfo) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RatingItemFontInfo> for ::windows::core::IUnknown {
    fn from(value: &RatingItemFontInfo) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for RatingItemFontInfo {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a RatingItemFontInfo {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<RatingItemFontInfo> for ::windows::core::IInspectable {
    fn from(value: RatingItemFontInfo) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RatingItemFontInfo> for ::windows::core::IInspectable {
    fn from(value: &RatingItemFontInfo) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for RatingItemFontInfo {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a RatingItemFontInfo {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<RatingItemFontInfo> for RatingItemInfo {
    fn from(value: RatingItemFontInfo) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RatingItemFontInfo> for RatingItemInfo {
    fn from(value: &RatingItemFontInfo) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, RatingItemInfo> for RatingItemFontInfo {
    fn into_param(self) -> ::windows::core::Param<'a, RatingItemInfo> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, RatingItemInfo> for &RatingItemFontInfo {
    fn into_param(self) -> ::windows::core::Param<'a, RatingItemInfo> {
        ::windows::core::Param::Owned(::core::convert::Into::<RatingItemInfo>::into(self))
    }
}
impl ::core::convert::From<RatingItemFontInfo> for super::DependencyObject {
    fn from(value: RatingItemFontInfo) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RatingItemFontInfo> for super::DependencyObject {
    fn from(value: &RatingItemFontInfo) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for RatingItemFontInfo {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &RatingItemFontInfo {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for RatingItemFontInfo {}
unsafe impl ::core::marker::Sync for RatingItemFontInfo {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct RatingItemImageInfo(::windows::core::IUnknown);
impl RatingItemImageInfo {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn DisabledImage(&self) -> ::windows::core::Result<super::Media::ImageSource> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DisabledImage)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::ImageSource>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetDisabledImage<'a, Param0: ::windows::core::IntoParam<'a, super::Media::ImageSource>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetDisabledImage)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn Image(&self) -> ::windows::core::Result<super::Media::ImageSource> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Image)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::ImageSource>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetImage<'a, Param0: ::windows::core::IntoParam<'a, super::Media::ImageSource>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetImage)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn PlaceholderImage(&self) -> ::windows::core::Result<super::Media::ImageSource> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlaceholderImage)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::ImageSource>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetPlaceholderImage<'a, Param0: ::windows::core::IntoParam<'a, super::Media::ImageSource>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPlaceholderImage)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn PointerOverImage(&self) -> ::windows::core::Result<super::Media::ImageSource> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PointerOverImage)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::ImageSource>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetPointerOverImage<'a, Param0: ::windows::core::IntoParam<'a, super::Media::ImageSource>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPointerOverImage)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn PointerOverPlaceholderImage(&self) -> ::windows::core::Result<super::Media::ImageSource> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PointerOverPlaceholderImage)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::ImageSource>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetPointerOverPlaceholderImage<'a, Param0: ::windows::core::IntoParam<'a, super::Media::ImageSource>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPointerOverPlaceholderImage)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn UnsetImage(&self) -> ::windows::core::Result<super::Media::ImageSource> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).UnsetImage)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::ImageSource>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetUnsetImage<'a, Param0: ::windows::core::IntoParam<'a, super::Media::ImageSource>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetUnsetImage)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<RatingItemImageInfo> {
        Self::IRatingItemImageInfoFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<RatingItemImageInfo>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<RatingItemImageInfo> {
        Self::IRatingItemImageInfoFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<RatingItemImageInfo>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DisabledImageProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRatingItemImageInfoStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DisabledImageProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ImageProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRatingItemImageInfoStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ImageProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PlaceholderImageProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRatingItemImageInfoStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlaceholderImageProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PointerOverImageProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRatingItemImageInfoStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PointerOverImageProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PointerOverPlaceholderImageProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRatingItemImageInfoStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PointerOverPlaceholderImageProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn UnsetImageProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRatingItemImageInfoStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).UnsetImageProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IRatingItemImageInfoFactory<R, F: FnOnce(&IRatingItemImageInfoFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RatingItemImageInfo, IRatingItemImageInfoFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IRatingItemImageInfoStatics<R, F: FnOnce(&IRatingItemImageInfoStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RatingItemImageInfo, IRatingItemImageInfoStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for RatingItemImageInfo {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for RatingItemImageInfo {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for RatingItemImageInfo {}
impl ::core::fmt::Debug for RatingItemImageInfo {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("RatingItemImageInfo").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for RatingItemImageInfo {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.RatingItemImageInfo;{25240e8c-e0d2-490e-b8f8-96c8ee0512b9})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for RatingItemImageInfo {
    type Vtable = IRatingItemImageInfo_Vtbl;
    const IID: ::windows::core::GUID = <IRatingItemImageInfo as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for RatingItemImageInfo {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.RatingItemImageInfo";
}
impl ::core::convert::From<RatingItemImageInfo> for ::windows::core::IUnknown {
    fn from(value: RatingItemImageInfo) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RatingItemImageInfo> for ::windows::core::IUnknown {
    fn from(value: &RatingItemImageInfo) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for RatingItemImageInfo {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a RatingItemImageInfo {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<RatingItemImageInfo> for ::windows::core::IInspectable {
    fn from(value: RatingItemImageInfo) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RatingItemImageInfo> for ::windows::core::IInspectable {
    fn from(value: &RatingItemImageInfo) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for RatingItemImageInfo {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a RatingItemImageInfo {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<RatingItemImageInfo> for RatingItemInfo {
    fn from(value: RatingItemImageInfo) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RatingItemImageInfo> for RatingItemInfo {
    fn from(value: &RatingItemImageInfo) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, RatingItemInfo> for RatingItemImageInfo {
    fn into_param(self) -> ::windows::core::Param<'a, RatingItemInfo> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, RatingItemInfo> for &RatingItemImageInfo {
    fn into_param(self) -> ::windows::core::Param<'a, RatingItemInfo> {
        ::windows::core::Param::Owned(::core::convert::Into::<RatingItemInfo>::into(self))
    }
}
impl ::core::convert::From<RatingItemImageInfo> for super::DependencyObject {
    fn from(value: RatingItemImageInfo) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RatingItemImageInfo> for super::DependencyObject {
    fn from(value: &RatingItemImageInfo) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for RatingItemImageInfo {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &RatingItemImageInfo {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for RatingItemImageInfo {}
unsafe impl ::core::marker::Sync for RatingItemImageInfo {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct RatingItemInfo(::windows::core::IUnknown);
impl RatingItemInfo {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<RatingItemInfo> {
        Self::IRatingItemInfoFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<RatingItemInfo>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<RatingItemInfo> {
        Self::IRatingItemInfoFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<RatingItemInfo>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IRatingItemInfoFactory<R, F: FnOnce(&IRatingItemInfoFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RatingItemInfo, IRatingItemInfoFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for RatingItemInfo {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for RatingItemInfo {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for RatingItemInfo {}
impl ::core::fmt::Debug for RatingItemInfo {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("RatingItemInfo").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for RatingItemInfo {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.RatingItemInfo;{9ccbe6a2-591e-47a0-a318-6a1f7947da2d})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for RatingItemInfo {
    type Vtable = IRatingItemInfo_Vtbl;
    const IID: ::windows::core::GUID = <IRatingItemInfo as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for RatingItemInfo {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.RatingItemInfo";
}
impl ::core::convert::From<RatingItemInfo> for ::windows::core::IUnknown {
    fn from(value: RatingItemInfo) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RatingItemInfo> for ::windows::core::IUnknown {
    fn from(value: &RatingItemInfo) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for RatingItemInfo {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a RatingItemInfo {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<RatingItemInfo> for ::windows::core::IInspectable {
    fn from(value: RatingItemInfo) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RatingItemInfo> for ::windows::core::IInspectable {
    fn from(value: &RatingItemInfo) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for RatingItemInfo {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a RatingItemInfo {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<RatingItemInfo> for super::DependencyObject {
    fn from(value: RatingItemInfo) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RatingItemInfo> for super::DependencyObject {
    fn from(value: &RatingItemInfo) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for RatingItemInfo {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &RatingItemInfo {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for RatingItemInfo {}
unsafe impl ::core::marker::Sync for RatingItemInfo {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct RefreshContainer(::windows::core::IUnknown);
impl RefreshContainer {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Visualizer(&self) -> ::windows::core::Result<RefreshVisualizer> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Visualizer)(::core::mem::transmute_copy(this), &mut result__).from_abi::<RefreshVisualizer>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetVisualizer<'a, Param0: ::windows::core::IntoParam<'a, RefreshVisualizer>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetVisualizer)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PullDirection(&self) -> ::windows::core::Result<RefreshPullDirection> {
        let this = self;
        unsafe {
            let mut result__: RefreshPullDirection = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PullDirection)(::core::mem::transmute_copy(this), &mut result__).from_abi::<RefreshPullDirection>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPullDirection(&self, value: RefreshPullDirection) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPullDirection)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RefreshRequested<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<RefreshContainer, RefreshRequestedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).RefreshRequested)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveRefreshRequested<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveRefreshRequested)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn RequestRefresh(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RequestRefresh)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<RefreshContainer> {
        Self::IRefreshContainerFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<RefreshContainer>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<RefreshContainer> {
        Self::IRefreshContainerFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<RefreshContainer>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VisualizerProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRefreshContainerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VisualizerProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PullDirectionProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRefreshContainerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PullDirectionProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IRefreshContainerFactory<R, F: FnOnce(&IRefreshContainerFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RefreshContainer, IRefreshContainerFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IRefreshContainerStatics<R, F: FnOnce(&IRefreshContainerStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RefreshContainer, IRefreshContainerStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for RefreshContainer {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for RefreshContainer {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for RefreshContainer {}
impl ::core::fmt::Debug for RefreshContainer {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("RefreshContainer").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for RefreshContainer {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.RefreshContainer;{535dc413-b1d5-43c1-b057-8658ce1e0ba2})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for RefreshContainer {
    type Vtable = IRefreshContainer_Vtbl;
    const IID: ::windows::core::GUID = <IRefreshContainer as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for RefreshContainer {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.RefreshContainer";
}
impl ::core::convert::From<RefreshContainer> for ::windows::core::IUnknown {
    fn from(value: RefreshContainer) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RefreshContainer> for ::windows::core::IUnknown {
    fn from(value: &RefreshContainer) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for RefreshContainer {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a RefreshContainer {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<RefreshContainer> for ::windows::core::IInspectable {
    fn from(value: RefreshContainer) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RefreshContainer> for ::windows::core::IInspectable {
    fn from(value: &RefreshContainer) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for RefreshContainer {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a RefreshContainer {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<RefreshContainer> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: RefreshContainer) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&RefreshContainer> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &RefreshContainer) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for RefreshContainer {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &RefreshContainer {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<RefreshContainer> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: RefreshContainer) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&RefreshContainer> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &RefreshContainer) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for RefreshContainer {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &RefreshContainer {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<RefreshContainer> for ContentControl {
    fn from(value: RefreshContainer) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RefreshContainer> for ContentControl {
    fn from(value: &RefreshContainer) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for RefreshContainer {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &RefreshContainer {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<RefreshContainer> for Control {
    fn from(value: RefreshContainer) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RefreshContainer> for Control {
    fn from(value: &RefreshContainer) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for RefreshContainer {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &RefreshContainer {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<RefreshContainer> for super::FrameworkElement {
    fn from(value: RefreshContainer) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RefreshContainer> for super::FrameworkElement {
    fn from(value: &RefreshContainer) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for RefreshContainer {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &RefreshContainer {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<RefreshContainer> for super::UIElement {
    fn from(value: RefreshContainer) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RefreshContainer> for super::UIElement {
    fn from(value: &RefreshContainer) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for RefreshContainer {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &RefreshContainer {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<RefreshContainer> for super::DependencyObject {
    fn from(value: RefreshContainer) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RefreshContainer> for super::DependencyObject {
    fn from(value: &RefreshContainer) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for RefreshContainer {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &RefreshContainer {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for RefreshContainer {}
unsafe impl ::core::marker::Sync for RefreshContainer {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct RefreshInteractionRatioChangedEventArgs(::windows::core::IUnknown);
impl RefreshInteractionRatioChangedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn InteractionRatio(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).InteractionRatio)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
}
impl ::core::clone::Clone for RefreshInteractionRatioChangedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for RefreshInteractionRatioChangedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for RefreshInteractionRatioChangedEventArgs {}
impl ::core::fmt::Debug for RefreshInteractionRatioChangedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("RefreshInteractionRatioChangedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for RefreshInteractionRatioChangedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.RefreshInteractionRatioChangedEventArgs;{d7e47820-dc47-4b8e-bb27-7f0a83f29a07})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for RefreshInteractionRatioChangedEventArgs {
    type Vtable = IRefreshInteractionRatioChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IRefreshInteractionRatioChangedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for RefreshInteractionRatioChangedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.RefreshInteractionRatioChangedEventArgs";
}
impl ::core::convert::From<RefreshInteractionRatioChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: RefreshInteractionRatioChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RefreshInteractionRatioChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &RefreshInteractionRatioChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for RefreshInteractionRatioChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a RefreshInteractionRatioChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<RefreshInteractionRatioChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: RefreshInteractionRatioChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RefreshInteractionRatioChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &RefreshInteractionRatioChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for RefreshInteractionRatioChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a RefreshInteractionRatioChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for RefreshInteractionRatioChangedEventArgs {}
unsafe impl ::core::marker::Sync for RefreshInteractionRatioChangedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct RefreshPullDirection(pub i32);
impl RefreshPullDirection {
    pub const LeftToRight: Self = Self(0i32);
    pub const TopToBottom: Self = Self(1i32);
    pub const RightToLeft: Self = Self(2i32);
    pub const BottomToTop: Self = Self(3i32);
}
impl ::core::marker::Copy for RefreshPullDirection {}
impl ::core::clone::Clone for RefreshPullDirection {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for RefreshPullDirection {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for RefreshPullDirection {
    type Abi = Self;
}
impl ::core::fmt::Debug for RefreshPullDirection {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("RefreshPullDirection").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for RefreshPullDirection {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.RefreshPullDirection;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct RefreshRequestedEventArgs(::windows::core::IUnknown);
impl RefreshRequestedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn GetDeferral(&self) -> ::windows::core::Result<super::super::super::Foundation::Deferral> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetDeferral)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Deferral>(result__)
        }
    }
}
impl ::core::clone::Clone for RefreshRequestedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for RefreshRequestedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for RefreshRequestedEventArgs {}
impl ::core::fmt::Debug for RefreshRequestedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("RefreshRequestedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for RefreshRequestedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.RefreshRequestedEventArgs;{1b089f43-cfcf-4ac6-b31f-8dab6eefdd93})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for RefreshRequestedEventArgs {
    type Vtable = IRefreshRequestedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IRefreshRequestedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for RefreshRequestedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.RefreshRequestedEventArgs";
}
impl ::core::convert::From<RefreshRequestedEventArgs> for ::windows::core::IUnknown {
    fn from(value: RefreshRequestedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RefreshRequestedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &RefreshRequestedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for RefreshRequestedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a RefreshRequestedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<RefreshRequestedEventArgs> for ::windows::core::IInspectable {
    fn from(value: RefreshRequestedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RefreshRequestedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &RefreshRequestedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for RefreshRequestedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a RefreshRequestedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for RefreshRequestedEventArgs {}
unsafe impl ::core::marker::Sync for RefreshRequestedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct RefreshStateChangedEventArgs(::windows::core::IUnknown);
impl RefreshStateChangedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OldState(&self) -> ::windows::core::Result<RefreshVisualizerState> {
        let this = self;
        unsafe {
            let mut result__: RefreshVisualizerState = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OldState)(::core::mem::transmute_copy(this), &mut result__).from_abi::<RefreshVisualizerState>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn NewState(&self) -> ::windows::core::Result<RefreshVisualizerState> {
        let this = self;
        unsafe {
            let mut result__: RefreshVisualizerState = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).NewState)(::core::mem::transmute_copy(this), &mut result__).from_abi::<RefreshVisualizerState>(result__)
        }
    }
}
impl ::core::clone::Clone for RefreshStateChangedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for RefreshStateChangedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for RefreshStateChangedEventArgs {}
impl ::core::fmt::Debug for RefreshStateChangedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("RefreshStateChangedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for RefreshStateChangedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.RefreshStateChangedEventArgs;{bb6c901e-21fe-4109-af80-73ec661b678a})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for RefreshStateChangedEventArgs {
    type Vtable = IRefreshStateChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IRefreshStateChangedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for RefreshStateChangedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.RefreshStateChangedEventArgs";
}
impl ::core::convert::From<RefreshStateChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: RefreshStateChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RefreshStateChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &RefreshStateChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for RefreshStateChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a RefreshStateChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<RefreshStateChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: RefreshStateChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RefreshStateChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &RefreshStateChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for RefreshStateChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a RefreshStateChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for RefreshStateChangedEventArgs {}
unsafe impl ::core::marker::Sync for RefreshStateChangedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct RefreshVisualizer(::windows::core::IUnknown);
impl RefreshVisualizer {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn RequestRefresh(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RequestRefresh)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Orientation(&self) -> ::windows::core::Result<RefreshVisualizerOrientation> {
        let this = self;
        unsafe {
            let mut result__: RefreshVisualizerOrientation = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Orientation)(::core::mem::transmute_copy(this), &mut result__).from_abi::<RefreshVisualizerOrientation>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetOrientation(&self, value: RefreshVisualizerOrientation) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetOrientation)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Content(&self) -> ::windows::core::Result<super::UIElement> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Content)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::UIElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetContent<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetContent)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn State(&self) -> ::windows::core::Result<RefreshVisualizerState> {
        let this = self;
        unsafe {
            let mut result__: RefreshVisualizerState = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).State)(::core::mem::transmute_copy(this), &mut result__).from_abi::<RefreshVisualizerState>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RefreshRequested<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<RefreshVisualizer, RefreshRequestedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).RefreshRequested)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveRefreshRequested<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveRefreshRequested)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RefreshStateChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<RefreshVisualizer, RefreshStateChangedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).RefreshStateChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveRefreshStateChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveRefreshStateChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<RefreshVisualizer> {
        Self::IRefreshVisualizerFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<RefreshVisualizer>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<RefreshVisualizer> {
        Self::IRefreshVisualizerFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<RefreshVisualizer>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn InfoProviderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRefreshVisualizerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).InfoProviderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OrientationProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRefreshVisualizerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OrientationProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRefreshVisualizerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn StateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRefreshVisualizerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).StateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IRefreshVisualizerFactory<R, F: FnOnce(&IRefreshVisualizerFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RefreshVisualizer, IRefreshVisualizerFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IRefreshVisualizerStatics<R, F: FnOnce(&IRefreshVisualizerStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RefreshVisualizer, IRefreshVisualizerStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for RefreshVisualizer {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for RefreshVisualizer {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for RefreshVisualizer {}
impl ::core::fmt::Debug for RefreshVisualizer {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("RefreshVisualizer").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for RefreshVisualizer {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.RefreshVisualizer;{c0e30122-f3eb-4baa-a11f-c3f87342cbf4})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for RefreshVisualizer {
    type Vtable = IRefreshVisualizer_Vtbl;
    const IID: ::windows::core::GUID = <IRefreshVisualizer as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for RefreshVisualizer {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.RefreshVisualizer";
}
impl ::core::convert::From<RefreshVisualizer> for ::windows::core::IUnknown {
    fn from(value: RefreshVisualizer) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RefreshVisualizer> for ::windows::core::IUnknown {
    fn from(value: &RefreshVisualizer) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for RefreshVisualizer {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a RefreshVisualizer {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<RefreshVisualizer> for ::windows::core::IInspectable {
    fn from(value: RefreshVisualizer) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RefreshVisualizer> for ::windows::core::IInspectable {
    fn from(value: &RefreshVisualizer) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for RefreshVisualizer {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a RefreshVisualizer {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<RefreshVisualizer> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: RefreshVisualizer) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&RefreshVisualizer> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &RefreshVisualizer) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for RefreshVisualizer {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &RefreshVisualizer {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<RefreshVisualizer> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: RefreshVisualizer) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&RefreshVisualizer> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &RefreshVisualizer) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for RefreshVisualizer {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &RefreshVisualizer {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<RefreshVisualizer> for Control {
    fn from(value: RefreshVisualizer) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RefreshVisualizer> for Control {
    fn from(value: &RefreshVisualizer) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for RefreshVisualizer {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &RefreshVisualizer {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<RefreshVisualizer> for super::FrameworkElement {
    fn from(value: RefreshVisualizer) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RefreshVisualizer> for super::FrameworkElement {
    fn from(value: &RefreshVisualizer) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for RefreshVisualizer {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &RefreshVisualizer {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<RefreshVisualizer> for super::UIElement {
    fn from(value: RefreshVisualizer) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RefreshVisualizer> for super::UIElement {
    fn from(value: &RefreshVisualizer) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for RefreshVisualizer {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &RefreshVisualizer {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<RefreshVisualizer> for super::DependencyObject {
    fn from(value: RefreshVisualizer) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RefreshVisualizer> for super::DependencyObject {
    fn from(value: &RefreshVisualizer) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for RefreshVisualizer {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &RefreshVisualizer {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for RefreshVisualizer {}
unsafe impl ::core::marker::Sync for RefreshVisualizer {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct RefreshVisualizerOrientation(pub i32);
impl RefreshVisualizerOrientation {
    pub const Auto: Self = Self(0i32);
    pub const Normal: Self = Self(1i32);
    pub const Rotate90DegreesCounterclockwise: Self = Self(2i32);
    pub const Rotate270DegreesCounterclockwise: Self = Self(3i32);
}
impl ::core::marker::Copy for RefreshVisualizerOrientation {}
impl ::core::clone::Clone for RefreshVisualizerOrientation {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for RefreshVisualizerOrientation {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for RefreshVisualizerOrientation {
    type Abi = Self;
}
impl ::core::fmt::Debug for RefreshVisualizerOrientation {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("RefreshVisualizerOrientation").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for RefreshVisualizerOrientation {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.RefreshVisualizerOrientation;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct RefreshVisualizerState(pub i32);
impl RefreshVisualizerState {
    pub const Idle: Self = Self(0i32);
    pub const Peeking: Self = Self(1i32);
    pub const Interacting: Self = Self(2i32);
    pub const Pending: Self = Self(3i32);
    pub const Refreshing: Self = Self(4i32);
}
impl ::core::marker::Copy for RefreshVisualizerState {}
impl ::core::clone::Clone for RefreshVisualizerState {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for RefreshVisualizerState {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for RefreshVisualizerState {
    type Abi = Self;
}
impl ::core::fmt::Debug for RefreshVisualizerState {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("RefreshVisualizerState").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for RefreshVisualizerState {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.RefreshVisualizerState;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct RelativePanel(::windows::core::IUnknown);
impl RelativePanel {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn BorderBrush(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BorderBrush)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetBorderBrush<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetBorderBrush)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BorderThickness(&self) -> ::windows::core::Result<super::Thickness> {
        let this = self;
        unsafe {
            let mut result__: super::Thickness = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BorderThickness)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Thickness>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetBorderThickness<'a, Param0: ::windows::core::IntoParam<'a, super::Thickness>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetBorderThickness)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CornerRadius(&self) -> ::windows::core::Result<super::CornerRadius> {
        let this = self;
        unsafe {
            let mut result__: super::CornerRadius = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CornerRadius)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::CornerRadius>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCornerRadius<'a, Param0: ::windows::core::IntoParam<'a, super::CornerRadius>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCornerRadius)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Padding(&self) -> ::windows::core::Result<super::Thickness> {
        let this = self;
        unsafe {
            let mut result__: super::Thickness = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Padding)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Thickness>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPadding<'a, Param0: ::windows::core::IntoParam<'a, super::Thickness>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPadding)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BackgroundSizing(&self) -> ::windows::core::Result<BackgroundSizing> {
        let this = &::windows::core::Interface::cast::<IRelativePanel2>(self)?;
        unsafe {
            let mut result__: BackgroundSizing = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BackgroundSizing)(::core::mem::transmute_copy(this), &mut result__).from_abi::<BackgroundSizing>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetBackgroundSizing(&self, value: BackgroundSizing) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRelativePanel2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetBackgroundSizing)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<RelativePanel> {
        Self::IRelativePanelFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<RelativePanel>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<RelativePanel> {
        Self::IRelativePanelFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<RelativePanel>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LeftOfProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LeftOfProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetLeftOf<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0) -> ::windows::core::Result<::windows::core::IInspectable> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetLeftOf)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetLeftOf<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>, Param1: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(element: Param0, value: Param1) -> ::windows::core::Result<()> {
        Self::IRelativePanelStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetLeftOf)(::core::mem::transmute_copy(this), element.into_param().abi(), value.into_param().abi()).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AboveProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AboveProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetAbove<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0) -> ::windows::core::Result<::windows::core::IInspectable> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetAbove)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetAbove<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>, Param1: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(element: Param0, value: Param1) -> ::windows::core::Result<()> {
        Self::IRelativePanelStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetAbove)(::core::mem::transmute_copy(this), element.into_param().abi(), value.into_param().abi()).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn RightOfProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).RightOfProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetRightOf<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0) -> ::windows::core::Result<::windows::core::IInspectable> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetRightOf)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetRightOf<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>, Param1: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(element: Param0, value: Param1) -> ::windows::core::Result<()> {
        Self::IRelativePanelStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetRightOf)(::core::mem::transmute_copy(this), element.into_param().abi(), value.into_param().abi()).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BelowProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BelowProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetBelow<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0) -> ::windows::core::Result<::windows::core::IInspectable> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetBelow)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetBelow<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>, Param1: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(element: Param0, value: Param1) -> ::windows::core::Result<()> {
        Self::IRelativePanelStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetBelow)(::core::mem::transmute_copy(this), element.into_param().abi(), value.into_param().abi()).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AlignHorizontalCenterWithProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AlignHorizontalCenterWithProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetAlignHorizontalCenterWith<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0) -> ::windows::core::Result<::windows::core::IInspectable> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetAlignHorizontalCenterWith)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetAlignHorizontalCenterWith<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>, Param1: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(element: Param0, value: Param1) -> ::windows::core::Result<()> {
        Self::IRelativePanelStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetAlignHorizontalCenterWith)(::core::mem::transmute_copy(this), element.into_param().abi(), value.into_param().abi()).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AlignVerticalCenterWithProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AlignVerticalCenterWithProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetAlignVerticalCenterWith<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0) -> ::windows::core::Result<::windows::core::IInspectable> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetAlignVerticalCenterWith)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetAlignVerticalCenterWith<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>, Param1: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(element: Param0, value: Param1) -> ::windows::core::Result<()> {
        Self::IRelativePanelStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetAlignVerticalCenterWith)(::core::mem::transmute_copy(this), element.into_param().abi(), value.into_param().abi()).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AlignLeftWithProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AlignLeftWithProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetAlignLeftWith<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0) -> ::windows::core::Result<::windows::core::IInspectable> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetAlignLeftWith)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetAlignLeftWith<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>, Param1: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(element: Param0, value: Param1) -> ::windows::core::Result<()> {
        Self::IRelativePanelStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetAlignLeftWith)(::core::mem::transmute_copy(this), element.into_param().abi(), value.into_param().abi()).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AlignTopWithProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AlignTopWithProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetAlignTopWith<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0) -> ::windows::core::Result<::windows::core::IInspectable> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetAlignTopWith)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetAlignTopWith<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>, Param1: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(element: Param0, value: Param1) -> ::windows::core::Result<()> {
        Self::IRelativePanelStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetAlignTopWith)(::core::mem::transmute_copy(this), element.into_param().abi(), value.into_param().abi()).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AlignRightWithProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AlignRightWithProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetAlignRightWith<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0) -> ::windows::core::Result<::windows::core::IInspectable> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetAlignRightWith)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetAlignRightWith<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>, Param1: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(element: Param0, value: Param1) -> ::windows::core::Result<()> {
        Self::IRelativePanelStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetAlignRightWith)(::core::mem::transmute_copy(this), element.into_param().abi(), value.into_param().abi()).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AlignBottomWithProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AlignBottomWithProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetAlignBottomWith<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0) -> ::windows::core::Result<::windows::core::IInspectable> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetAlignBottomWith)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetAlignBottomWith<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>, Param1: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(element: Param0, value: Param1) -> ::windows::core::Result<()> {
        Self::IRelativePanelStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetAlignBottomWith)(::core::mem::transmute_copy(this), element.into_param().abi(), value.into_param().abi()).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AlignLeftWithPanelProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AlignLeftWithPanelProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetAlignLeftWithPanel<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0) -> ::windows::core::Result<bool> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetAlignLeftWithPanel)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<bool>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetAlignLeftWithPanel<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0, value: bool) -> ::windows::core::Result<()> {
        Self::IRelativePanelStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetAlignLeftWithPanel)(::core::mem::transmute_copy(this), element.into_param().abi(), value).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AlignTopWithPanelProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AlignTopWithPanelProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetAlignTopWithPanel<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0) -> ::windows::core::Result<bool> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetAlignTopWithPanel)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<bool>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetAlignTopWithPanel<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0, value: bool) -> ::windows::core::Result<()> {
        Self::IRelativePanelStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetAlignTopWithPanel)(::core::mem::transmute_copy(this), element.into_param().abi(), value).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AlignRightWithPanelProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AlignRightWithPanelProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetAlignRightWithPanel<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0) -> ::windows::core::Result<bool> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetAlignRightWithPanel)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<bool>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetAlignRightWithPanel<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0, value: bool) -> ::windows::core::Result<()> {
        Self::IRelativePanelStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetAlignRightWithPanel)(::core::mem::transmute_copy(this), element.into_param().abi(), value).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AlignBottomWithPanelProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AlignBottomWithPanelProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetAlignBottomWithPanel<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0) -> ::windows::core::Result<bool> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetAlignBottomWithPanel)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<bool>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetAlignBottomWithPanel<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0, value: bool) -> ::windows::core::Result<()> {
        Self::IRelativePanelStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetAlignBottomWithPanel)(::core::mem::transmute_copy(this), element.into_param().abi(), value).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AlignHorizontalCenterWithPanelProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AlignHorizontalCenterWithPanelProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetAlignHorizontalCenterWithPanel<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0) -> ::windows::core::Result<bool> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetAlignHorizontalCenterWithPanel)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<bool>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetAlignHorizontalCenterWithPanel<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0, value: bool) -> ::windows::core::Result<()> {
        Self::IRelativePanelStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetAlignHorizontalCenterWithPanel)(::core::mem::transmute_copy(this), element.into_param().abi(), value).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AlignVerticalCenterWithPanelProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AlignVerticalCenterWithPanelProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetAlignVerticalCenterWithPanel<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0) -> ::windows::core::Result<bool> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetAlignVerticalCenterWithPanel)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<bool>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetAlignVerticalCenterWithPanel<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0, value: bool) -> ::windows::core::Result<()> {
        Self::IRelativePanelStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetAlignVerticalCenterWithPanel)(::core::mem::transmute_copy(this), element.into_param().abi(), value).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BorderBrushProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BorderBrushProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BorderThicknessProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BorderThicknessProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CornerRadiusProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CornerRadiusProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PaddingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRelativePanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaddingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BackgroundSizingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRelativePanelStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BackgroundSizingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IRelativePanelFactory<R, F: FnOnce(&IRelativePanelFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RelativePanel, IRelativePanelFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IRelativePanelStatics<R, F: FnOnce(&IRelativePanelStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RelativePanel, IRelativePanelStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IRelativePanelStatics2<R, F: FnOnce(&IRelativePanelStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RelativePanel, IRelativePanelStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for RelativePanel {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for RelativePanel {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for RelativePanel {}
impl ::core::fmt::Debug for RelativePanel {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("RelativePanel").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for RelativePanel {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.RelativePanel;{2eabfaeb-b35a-4035-acea-3c4a3730683f})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for RelativePanel {
    type Vtable = IRelativePanel_Vtbl;
    const IID: ::windows::core::GUID = <IRelativePanel as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for RelativePanel {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.RelativePanel";
}
impl ::core::convert::From<RelativePanel> for ::windows::core::IUnknown {
    fn from(value: RelativePanel) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RelativePanel> for ::windows::core::IUnknown {
    fn from(value: &RelativePanel) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for RelativePanel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a RelativePanel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<RelativePanel> for ::windows::core::IInspectable {
    fn from(value: RelativePanel) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RelativePanel> for ::windows::core::IInspectable {
    fn from(value: &RelativePanel) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for RelativePanel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a RelativePanel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<RelativePanel> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: RelativePanel) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&RelativePanel> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &RelativePanel) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for RelativePanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &RelativePanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<RelativePanel> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: RelativePanel) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&RelativePanel> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &RelativePanel) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for RelativePanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &RelativePanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<RelativePanel> for Panel {
    fn from(value: RelativePanel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RelativePanel> for Panel {
    fn from(value: &RelativePanel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Panel> for RelativePanel {
    fn into_param(self) -> ::windows::core::Param<'a, Panel> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Panel> for &RelativePanel {
    fn into_param(self) -> ::windows::core::Param<'a, Panel> {
        ::windows::core::Param::Owned(::core::convert::Into::<Panel>::into(self))
    }
}
impl ::core::convert::From<RelativePanel> for super::FrameworkElement {
    fn from(value: RelativePanel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RelativePanel> for super::FrameworkElement {
    fn from(value: &RelativePanel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for RelativePanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &RelativePanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<RelativePanel> for super::UIElement {
    fn from(value: RelativePanel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RelativePanel> for super::UIElement {
    fn from(value: &RelativePanel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for RelativePanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &RelativePanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<RelativePanel> for super::DependencyObject {
    fn from(value: RelativePanel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RelativePanel> for super::DependencyObject {
    fn from(value: &RelativePanel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for RelativePanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &RelativePanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for RelativePanel {}
unsafe impl ::core::marker::Sync for RelativePanel {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct RequiresPointer(pub i32);
impl RequiresPointer {
    pub const Never: Self = Self(0i32);
    pub const WhenEngaged: Self = Self(1i32);
    pub const WhenFocused: Self = Self(2i32);
}
impl ::core::marker::Copy for RequiresPointer {}
impl ::core::clone::Clone for RequiresPointer {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for RequiresPointer {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for RequiresPointer {
    type Abi = Self;
}
impl ::core::fmt::Debug for RequiresPointer {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("RequiresPointer").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for RequiresPointer {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.RequiresPointer;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct RichEditBox(::windows::core::IUnknown);
impl RichEditBox {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsReadOnly(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsReadOnly)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsReadOnly(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsReadOnly)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AcceptsReturn(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AcceptsReturn)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetAcceptsReturn(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetAcceptsReturn)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextAlignment(&self) -> ::windows::core::Result<super::TextAlignment> {
        let this = self;
        unsafe {
            let mut result__: super::TextAlignment = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextAlignment)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::TextAlignment>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTextAlignment(&self, value: super::TextAlignment) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTextAlignment)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextWrapping(&self) -> ::windows::core::Result<super::TextWrapping> {
        let this = self;
        unsafe {
            let mut result__: super::TextWrapping = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextWrapping)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::TextWrapping>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTextWrapping(&self, value: super::TextWrapping) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTextWrapping)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsSpellCheckEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsSpellCheckEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsSpellCheckEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsSpellCheckEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTextPredictionEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTextPredictionEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsTextPredictionEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsTextPredictionEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn Document(&self) -> ::windows::core::Result<super::super::Text::ITextDocument> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Document)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Text::ITextDocument>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Input'*"]
    #[cfg(feature = "UI_Xaml_Input")]
    pub fn InputScope(&self) -> ::windows::core::Result<super::Input::InputScope> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).InputScope)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Input::InputScope>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Input'*"]
    #[cfg(feature = "UI_Xaml_Input")]
    pub fn SetInputScope<'a, Param0: ::windows::core::IntoParam<'a, super::Input::InputScope>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetInputScope)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn TextChanged<'a, Param0: ::windows::core::IntoParam<'a, super::RoutedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveTextChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveTextChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SelectionChanged<'a, Param0: ::windows::core::IntoParam<'a, super::RoutedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveSelectionChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveSelectionChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ContextMenuOpening<'a, Param0: ::windows::core::IntoParam<'a, ContextMenuOpeningEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContextMenuOpening)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveContextMenuOpening<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveContextMenuOpening)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Header(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = &::windows::core::Interface::cast::<IRichEditBox2>(self)?;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Header)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeader<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichEditBox2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetHeader)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTemplate(&self) -> ::windows::core::Result<super::DataTemplate> {
        let this = &::windows::core::Interface::cast::<IRichEditBox2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTemplate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeaderTemplate<'a, Param0: ::windows::core::IntoParam<'a, super::DataTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichEditBox2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetHeaderTemplate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PlaceholderText(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = &::windows::core::Interface::cast::<IRichEditBox2>(self)?;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlaceholderText)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPlaceholderText<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichEditBox2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetPlaceholderText)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SelectionHighlightColor(&self) -> ::windows::core::Result<super::Media::SolidColorBrush> {
        let this = &::windows::core::Interface::cast::<IRichEditBox2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionHighlightColor)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::SolidColorBrush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetSelectionHighlightColor<'a, Param0: ::windows::core::IntoParam<'a, super::Media::SolidColorBrush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichEditBox2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectionHighlightColor)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PreventKeyboardDisplayOnProgrammaticFocus(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IRichEditBox2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PreventKeyboardDisplayOnProgrammaticFocus)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPreventKeyboardDisplayOnProgrammaticFocus(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichEditBox2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetPreventKeyboardDisplayOnProgrammaticFocus)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsColorFontEnabled(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IRichEditBox2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsColorFontEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsColorFontEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichEditBox2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsColorFontEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Paste<'a, Param0: ::windows::core::IntoParam<'a, TextControlPasteEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IRichEditBox2>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Paste)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemovePaste<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichEditBox2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemovePaste)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn TextCompositionStarted<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<RichEditBox, TextCompositionStartedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IRichEditBox3>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextCompositionStarted)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveTextCompositionStarted<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichEditBox3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveTextCompositionStarted)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn TextCompositionChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<RichEditBox, TextCompositionChangedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IRichEditBox3>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextCompositionChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveTextCompositionChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichEditBox3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveTextCompositionChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn TextCompositionEnded<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<RichEditBox, TextCompositionEndedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IRichEditBox3>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextCompositionEnded)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveTextCompositionEnded<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichEditBox3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveTextCompositionEnded)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextReadingOrder(&self) -> ::windows::core::Result<super::TextReadingOrder> {
        let this = &::windows::core::Interface::cast::<IRichEditBox3>(self)?;
        unsafe {
            let mut result__: super::TextReadingOrder = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextReadingOrder)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::TextReadingOrder>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTextReadingOrder(&self, value: super::TextReadingOrder) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichEditBox3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetTextReadingOrder)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DesiredCandidateWindowAlignment(&self) -> ::windows::core::Result<CandidateWindowAlignment> {
        let this = &::windows::core::Interface::cast::<IRichEditBox3>(self)?;
        unsafe {
            let mut result__: CandidateWindowAlignment = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DesiredCandidateWindowAlignment)(::core::mem::transmute_copy(this), &mut result__).from_abi::<CandidateWindowAlignment>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDesiredCandidateWindowAlignment(&self, value: CandidateWindowAlignment) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichEditBox3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetDesiredCandidateWindowAlignment)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn CandidateWindowBoundsChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<RichEditBox, CandidateWindowBoundsChangedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IRichEditBox3>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CandidateWindowBoundsChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveCandidateWindowBoundsChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichEditBox3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveCandidateWindowBoundsChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn TextChanging<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<RichEditBox, RichEditBoxTextChangingEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IRichEditBox3>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextChanging)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveTextChanging<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichEditBox3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveTextChanging)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn GetLinguisticAlternativesAsync(&self) -> ::windows::core::Result<super::super::super::Foundation::IAsyncOperation<super::super::super::Foundation::Collections::IVectorView<::windows::core::HSTRING>>> {
        let this = &::windows::core::Interface::cast::<IRichEditBox4>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetLinguisticAlternativesAsync)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::IAsyncOperation<super::super::super::Foundation::Collections::IVectorView<::windows::core::HSTRING>>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ClipboardCopyFormat(&self) -> ::windows::core::Result<RichEditClipboardFormat> {
        let this = &::windows::core::Interface::cast::<IRichEditBox4>(self)?;
        unsafe {
            let mut result__: RichEditClipboardFormat = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ClipboardCopyFormat)(::core::mem::transmute_copy(this), &mut result__).from_abi::<RichEditClipboardFormat>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetClipboardCopyFormat(&self, value: RichEditClipboardFormat) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichEditBox4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetClipboardCopyFormat)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SelectionHighlightColorWhenNotFocused(&self) -> ::windows::core::Result<super::Media::SolidColorBrush> {
        let this = &::windows::core::Interface::cast::<IRichEditBox5>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionHighlightColorWhenNotFocused)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::SolidColorBrush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetSelectionHighlightColorWhenNotFocused<'a, Param0: ::windows::core::IntoParam<'a, super::Media::SolidColorBrush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichEditBox5>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectionHighlightColorWhenNotFocused)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxLength(&self) -> ::windows::core::Result<i32> {
        let this = &::windows::core::Interface::cast::<IRichEditBox5>(self)?;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxLength)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMaxLength(&self, value: i32) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichEditBox5>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetMaxLength)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalTextAlignment(&self) -> ::windows::core::Result<super::TextAlignment> {
        let this = &::windows::core::Interface::cast::<IRichEditBox6>(self)?;
        unsafe {
            let mut result__: super::TextAlignment = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalTextAlignment)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::TextAlignment>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHorizontalTextAlignment(&self, value: super::TextAlignment) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichEditBox6>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetHorizontalTextAlignment)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CharacterCasing(&self) -> ::windows::core::Result<CharacterCasing> {
        let this = &::windows::core::Interface::cast::<IRichEditBox6>(self)?;
        unsafe {
            let mut result__: CharacterCasing = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CharacterCasing)(::core::mem::transmute_copy(this), &mut result__).from_abi::<CharacterCasing>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCharacterCasing(&self, value: CharacterCasing) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichEditBox6>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetCharacterCasing)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DisabledFormattingAccelerators(&self) -> ::windows::core::Result<DisabledFormattingAccelerators> {
        let this = &::windows::core::Interface::cast::<IRichEditBox6>(self)?;
        unsafe {
            let mut result__: DisabledFormattingAccelerators = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DisabledFormattingAccelerators)(::core::mem::transmute_copy(this), &mut result__).from_abi::<DisabledFormattingAccelerators>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDisabledFormattingAccelerators(&self, value: DisabledFormattingAccelerators) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichEditBox6>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetDisabledFormattingAccelerators)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn CopyingToClipboard<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<RichEditBox, TextControlCopyingToClipboardEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IRichEditBox6>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CopyingToClipboard)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveCopyingToClipboard<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichEditBox6>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveCopyingToClipboard)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn CuttingToClipboard<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<RichEditBox, TextControlCuttingToClipboardEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IRichEditBox6>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CuttingToClipboard)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveCuttingToClipboard<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichEditBox6>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveCuttingToClipboard)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn ContentLinkForegroundColor(&self) -> ::windows::core::Result<super::Media::SolidColorBrush> {
        let this = &::windows::core::Interface::cast::<IRichEditBox7>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentLinkForegroundColor)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::SolidColorBrush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetContentLinkForegroundColor<'a, Param0: ::windows::core::IntoParam<'a, super::Media::SolidColorBrush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichEditBox7>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetContentLinkForegroundColor)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn ContentLinkBackgroundColor(&self) -> ::windows::core::Result<super::Media::SolidColorBrush> {
        let this = &::windows::core::Interface::cast::<IRichEditBox7>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentLinkBackgroundColor)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::SolidColorBrush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetContentLinkBackgroundColor<'a, Param0: ::windows::core::IntoParam<'a, super::Media::SolidColorBrush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichEditBox7>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetContentLinkBackgroundColor)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Documents'*"]
    #[cfg(feature = "UI_Xaml_Documents")]
    pub fn ContentLinkProviders(&self) -> ::windows::core::Result<super::Documents::ContentLinkProviderCollection> {
        let this = &::windows::core::Interface::cast::<IRichEditBox7>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentLinkProviders)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Documents::ContentLinkProviderCollection>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Documents'*"]
    #[cfg(feature = "UI_Xaml_Documents")]
    pub fn SetContentLinkProviders<'a, Param0: ::windows::core::IntoParam<'a, super::Documents::ContentLinkProviderCollection>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichEditBox7>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetContentLinkProviders)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HandwritingView(&self) -> ::windows::core::Result<HandwritingView> {
        let this = &::windows::core::Interface::cast::<IRichEditBox7>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HandwritingView)(::core::mem::transmute_copy(this), &mut result__).from_abi::<HandwritingView>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHandwritingView<'a, Param0: ::windows::core::IntoParam<'a, HandwritingView>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichEditBox7>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetHandwritingView)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsHandwritingViewEnabled(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IRichEditBox7>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsHandwritingViewEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsHandwritingViewEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichEditBox7>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsHandwritingViewEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ContentLinkChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<RichEditBox, ContentLinkChangedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IRichEditBox7>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentLinkChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveContentLinkChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichEditBox7>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveContentLinkChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'UI_Xaml_Documents'*"]
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Documents"))]
    pub fn ContentLinkInvoked<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<RichEditBox, super::Documents::ContentLinkInvokedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IRichEditBox7>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentLinkInvoked)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveContentLinkInvoked<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichEditBox7>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveContentLinkInvoked)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn TextDocument(&self) -> ::windows::core::Result<super::super::Text::RichEditTextDocument> {
        let this = &::windows::core::Interface::cast::<IRichEditBox8>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextDocument)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Text::RichEditTextDocument>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn SelectionFlyout(&self) -> ::windows::core::Result<Primitives::FlyoutBase> {
        let this = &::windows::core::Interface::cast::<IRichEditBox8>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionFlyout)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::FlyoutBase>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn SetSelectionFlyout<'a, Param0: ::windows::core::IntoParam<'a, Primitives::FlyoutBase>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichEditBox8>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectionFlyout)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn ProofingMenuFlyout(&self) -> ::windows::core::Result<Primitives::FlyoutBase> {
        let this = &::windows::core::Interface::cast::<IRichEditBox8>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ProofingMenuFlyout)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::FlyoutBase>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Description(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = &::windows::core::Interface::cast::<IRichEditBox8>(self)?;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Description)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDescription<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichEditBox8>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetDescription)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SelectionChanging<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<RichEditBox, RichEditBoxSelectionChangingEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IRichEditBox8>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionChanging)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveSelectionChanging<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichEditBox8>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveSelectionChanging)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<RichEditBox> {
        Self::IRichEditBoxFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<RichEditBox>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<RichEditBox> {
        Self::IRichEditBoxFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<RichEditBox>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsReadOnlyProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichEditBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsReadOnlyProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AcceptsReturnProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichEditBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AcceptsReturnProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextAlignmentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichEditBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextAlignmentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextWrappingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichEditBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextWrappingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsSpellCheckEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichEditBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsSpellCheckEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTextPredictionEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichEditBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTextPredictionEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn InputScopeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichEditBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).InputScopeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichEditBoxStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTemplateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichEditBoxStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTemplateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PlaceholderTextProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichEditBoxStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlaceholderTextProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionHighlightColorProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichEditBoxStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionHighlightColorProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PreventKeyboardDisplayOnProgrammaticFocusProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichEditBoxStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PreventKeyboardDisplayOnProgrammaticFocusProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsColorFontEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichEditBoxStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsColorFontEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DesiredCandidateWindowAlignmentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichEditBoxStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DesiredCandidateWindowAlignmentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextReadingOrderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichEditBoxStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextReadingOrderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ClipboardCopyFormatProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichEditBoxStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ClipboardCopyFormatProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionHighlightColorWhenNotFocusedProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichEditBoxStatics5(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionHighlightColorWhenNotFocusedProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxLengthProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichEditBoxStatics5(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxLengthProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalTextAlignmentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichEditBoxStatics6(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalTextAlignmentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CharacterCasingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichEditBoxStatics6(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CharacterCasingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DisabledFormattingAcceleratorsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichEditBoxStatics6(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DisabledFormattingAcceleratorsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContentLinkForegroundColorProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichEditBoxStatics7(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentLinkForegroundColorProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContentLinkBackgroundColorProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichEditBoxStatics7(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentLinkBackgroundColorProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContentLinkProvidersProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichEditBoxStatics7(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentLinkProvidersProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HandwritingViewProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichEditBoxStatics7(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HandwritingViewProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsHandwritingViewEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichEditBoxStatics7(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsHandwritingViewEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionFlyoutProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichEditBoxStatics8(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionFlyoutProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ProofingMenuFlyoutProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichEditBoxStatics8(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ProofingMenuFlyoutProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DescriptionProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichEditBoxStatics8(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DescriptionProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IRichEditBoxFactory<R, F: FnOnce(&IRichEditBoxFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RichEditBox, IRichEditBoxFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IRichEditBoxStatics<R, F: FnOnce(&IRichEditBoxStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RichEditBox, IRichEditBoxStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IRichEditBoxStatics2<R, F: FnOnce(&IRichEditBoxStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RichEditBox, IRichEditBoxStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IRichEditBoxStatics3<R, F: FnOnce(&IRichEditBoxStatics3) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RichEditBox, IRichEditBoxStatics3> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IRichEditBoxStatics4<R, F: FnOnce(&IRichEditBoxStatics4) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RichEditBox, IRichEditBoxStatics4> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IRichEditBoxStatics5<R, F: FnOnce(&IRichEditBoxStatics5) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RichEditBox, IRichEditBoxStatics5> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IRichEditBoxStatics6<R, F: FnOnce(&IRichEditBoxStatics6) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RichEditBox, IRichEditBoxStatics6> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IRichEditBoxStatics7<R, F: FnOnce(&IRichEditBoxStatics7) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RichEditBox, IRichEditBoxStatics7> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IRichEditBoxStatics8<R, F: FnOnce(&IRichEditBoxStatics8) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RichEditBox, IRichEditBoxStatics8> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for RichEditBox {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for RichEditBox {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for RichEditBox {}
impl ::core::fmt::Debug for RichEditBox {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("RichEditBox").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for RichEditBox {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.RichEditBox;{90a57a40-80b6-4fce-b1ec-e3c616284b6a})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for RichEditBox {
    type Vtable = IRichEditBox_Vtbl;
    const IID: ::windows::core::GUID = <IRichEditBox as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for RichEditBox {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.RichEditBox";
}
impl ::core::convert::From<RichEditBox> for ::windows::core::IUnknown {
    fn from(value: RichEditBox) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RichEditBox> for ::windows::core::IUnknown {
    fn from(value: &RichEditBox) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for RichEditBox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a RichEditBox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<RichEditBox> for ::windows::core::IInspectable {
    fn from(value: RichEditBox) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RichEditBox> for ::windows::core::IInspectable {
    fn from(value: &RichEditBox) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for RichEditBox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a RichEditBox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<RichEditBox> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: RichEditBox) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&RichEditBox> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &RichEditBox) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for RichEditBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &RichEditBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<RichEditBox> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: RichEditBox) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&RichEditBox> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &RichEditBox) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for RichEditBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &RichEditBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<RichEditBox> for Control {
    fn from(value: RichEditBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RichEditBox> for Control {
    fn from(value: &RichEditBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for RichEditBox {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &RichEditBox {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<RichEditBox> for super::FrameworkElement {
    fn from(value: RichEditBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RichEditBox> for super::FrameworkElement {
    fn from(value: &RichEditBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for RichEditBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &RichEditBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<RichEditBox> for super::UIElement {
    fn from(value: RichEditBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RichEditBox> for super::UIElement {
    fn from(value: &RichEditBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for RichEditBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &RichEditBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<RichEditBox> for super::DependencyObject {
    fn from(value: RichEditBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RichEditBox> for super::DependencyObject {
    fn from(value: &RichEditBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for RichEditBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &RichEditBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for RichEditBox {}
unsafe impl ::core::marker::Sync for RichEditBox {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct RichEditBoxSelectionChangingEventArgs(::windows::core::IUnknown);
impl RichEditBoxSelectionChangingEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionStart(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionStart)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionLength(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionLength)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Cancel(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Cancel)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCancel(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCancel)(::core::mem::transmute_copy(this), value).ok() }
    }
}
impl ::core::clone::Clone for RichEditBoxSelectionChangingEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for RichEditBoxSelectionChangingEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for RichEditBoxSelectionChangingEventArgs {}
impl ::core::fmt::Debug for RichEditBoxSelectionChangingEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("RichEditBoxSelectionChangingEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for RichEditBoxSelectionChangingEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.RichEditBoxSelectionChangingEventArgs;{90e0035c-e8b8-5c33-9896-4e989d65829c})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for RichEditBoxSelectionChangingEventArgs {
    type Vtable = IRichEditBoxSelectionChangingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IRichEditBoxSelectionChangingEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for RichEditBoxSelectionChangingEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.RichEditBoxSelectionChangingEventArgs";
}
impl ::core::convert::From<RichEditBoxSelectionChangingEventArgs> for ::windows::core::IUnknown {
    fn from(value: RichEditBoxSelectionChangingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RichEditBoxSelectionChangingEventArgs> for ::windows::core::IUnknown {
    fn from(value: &RichEditBoxSelectionChangingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for RichEditBoxSelectionChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a RichEditBoxSelectionChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<RichEditBoxSelectionChangingEventArgs> for ::windows::core::IInspectable {
    fn from(value: RichEditBoxSelectionChangingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RichEditBoxSelectionChangingEventArgs> for ::windows::core::IInspectable {
    fn from(value: &RichEditBoxSelectionChangingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for RichEditBoxSelectionChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a RichEditBoxSelectionChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for RichEditBoxSelectionChangingEventArgs {}
unsafe impl ::core::marker::Sync for RichEditBoxSelectionChangingEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct RichEditBoxTextChangingEventArgs(::windows::core::IUnknown);
impl RichEditBoxTextChangingEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsContentChanging(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IRichEditBoxTextChangingEventArgs2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsContentChanging)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
}
impl ::core::clone::Clone for RichEditBoxTextChangingEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for RichEditBoxTextChangingEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for RichEditBoxTextChangingEventArgs {}
impl ::core::fmt::Debug for RichEditBoxTextChangingEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("RichEditBoxTextChangingEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for RichEditBoxTextChangingEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.RichEditBoxTextChangingEventArgs;{54065018-2813-4922-9f8e-b6bbafd995d8})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for RichEditBoxTextChangingEventArgs {
    type Vtable = IRichEditBoxTextChangingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IRichEditBoxTextChangingEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for RichEditBoxTextChangingEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.RichEditBoxTextChangingEventArgs";
}
impl ::core::convert::From<RichEditBoxTextChangingEventArgs> for ::windows::core::IUnknown {
    fn from(value: RichEditBoxTextChangingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RichEditBoxTextChangingEventArgs> for ::windows::core::IUnknown {
    fn from(value: &RichEditBoxTextChangingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for RichEditBoxTextChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a RichEditBoxTextChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<RichEditBoxTextChangingEventArgs> for ::windows::core::IInspectable {
    fn from(value: RichEditBoxTextChangingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RichEditBoxTextChangingEventArgs> for ::windows::core::IInspectable {
    fn from(value: &RichEditBoxTextChangingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for RichEditBoxTextChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a RichEditBoxTextChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for RichEditBoxTextChangingEventArgs {}
unsafe impl ::core::marker::Sync for RichEditBoxTextChangingEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct RichEditClipboardFormat(pub i32);
impl RichEditClipboardFormat {
    pub const AllFormats: Self = Self(0i32);
    pub const PlainText: Self = Self(1i32);
}
impl ::core::marker::Copy for RichEditClipboardFormat {}
impl ::core::clone::Clone for RichEditClipboardFormat {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for RichEditClipboardFormat {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for RichEditClipboardFormat {
    type Abi = Self;
}
impl ::core::fmt::Debug for RichEditClipboardFormat {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("RichEditClipboardFormat").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for RichEditClipboardFormat {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.RichEditClipboardFormat;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct RichTextBlock(::windows::core::IUnknown);
impl RichTextBlock {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RichTextBlock, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontSize(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontSize)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetFontSize(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFontSize)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn FontFamily(&self) -> ::windows::core::Result<super::Media::FontFamily> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontFamily)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::FontFamily>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetFontFamily<'a, Param0: ::windows::core::IntoParam<'a, super::Media::FontFamily>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFontFamily)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn FontWeight(&self) -> ::windows::core::Result<super::super::Text::FontWeight> {
        let this = self;
        unsafe {
            let mut result__: super::super::Text::FontWeight = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontWeight)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Text::FontWeight>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn SetFontWeight<'a, Param0: ::windows::core::IntoParam<'a, super::super::Text::FontWeight>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFontWeight)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn FontStyle(&self) -> ::windows::core::Result<super::super::Text::FontStyle> {
        let this = self;
        unsafe {
            let mut result__: super::super::Text::FontStyle = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontStyle)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Text::FontStyle>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn SetFontStyle(&self, value: super::super::Text::FontStyle) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFontStyle)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn FontStretch(&self) -> ::windows::core::Result<super::super::Text::FontStretch> {
        let this = self;
        unsafe {
            let mut result__: super::super::Text::FontStretch = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontStretch)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Text::FontStretch>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn SetFontStretch(&self, value: super::super::Text::FontStretch) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFontStretch)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn Foreground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Foreground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetForeground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetForeground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextWrapping(&self) -> ::windows::core::Result<super::TextWrapping> {
        let this = self;
        unsafe {
            let mut result__: super::TextWrapping = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextWrapping)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::TextWrapping>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTextWrapping(&self, value: super::TextWrapping) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTextWrapping)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextTrimming(&self) -> ::windows::core::Result<super::TextTrimming> {
        let this = self;
        unsafe {
            let mut result__: super::TextTrimming = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextTrimming)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::TextTrimming>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTextTrimming(&self, value: super::TextTrimming) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTextTrimming)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextAlignment(&self) -> ::windows::core::Result<super::TextAlignment> {
        let this = self;
        unsafe {
            let mut result__: super::TextAlignment = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextAlignment)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::TextAlignment>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTextAlignment(&self, value: super::TextAlignment) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTextAlignment)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'UI_Xaml_Documents'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Documents"))]
    pub fn Blocks(&self) -> ::windows::core::Result<super::Documents::BlockCollection> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Blocks)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Documents::BlockCollection>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Padding(&self) -> ::windows::core::Result<super::Thickness> {
        let this = self;
        unsafe {
            let mut result__: super::Thickness = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Padding)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Thickness>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPadding<'a, Param0: ::windows::core::IntoParam<'a, super::Thickness>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPadding)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LineHeight(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LineHeight)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetLineHeight(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetLineHeight)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LineStackingStrategy(&self) -> ::windows::core::Result<super::LineStackingStrategy> {
        let this = self;
        unsafe {
            let mut result__: super::LineStackingStrategy = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LineStackingStrategy)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::LineStackingStrategy>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetLineStackingStrategy(&self, value: super::LineStackingStrategy) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetLineStackingStrategy)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CharacterSpacing(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CharacterSpacing)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCharacterSpacing(&self, value: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCharacterSpacing)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OverflowContentTarget(&self) -> ::windows::core::Result<RichTextBlockOverflow> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OverflowContentTarget)(::core::mem::transmute_copy(this), &mut result__).from_abi::<RichTextBlockOverflow>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetOverflowContentTarget<'a, Param0: ::windows::core::IntoParam<'a, RichTextBlockOverflow>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetOverflowContentTarget)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTextSelectionEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTextSelectionEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsTextSelectionEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsTextSelectionEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HasOverflowContent(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HasOverflowContent)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedText(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedText)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Documents'*"]
    #[cfg(feature = "UI_Xaml_Documents")]
    pub fn ContentStart(&self) -> ::windows::core::Result<super::Documents::TextPointer> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentStart)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Documents::TextPointer>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Documents'*"]
    #[cfg(feature = "UI_Xaml_Documents")]
    pub fn ContentEnd(&self) -> ::windows::core::Result<super::Documents::TextPointer> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentEnd)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Documents::TextPointer>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Documents'*"]
    #[cfg(feature = "UI_Xaml_Documents")]
    pub fn SelectionStart(&self) -> ::windows::core::Result<super::Documents::TextPointer> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionStart)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Documents::TextPointer>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Documents'*"]
    #[cfg(feature = "UI_Xaml_Documents")]
    pub fn SelectionEnd(&self) -> ::windows::core::Result<super::Documents::TextPointer> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionEnd)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Documents::TextPointer>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BaselineOffset(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BaselineOffset)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SelectionChanged<'a, Param0: ::windows::core::IntoParam<'a, super::RoutedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveSelectionChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveSelectionChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ContextMenuOpening<'a, Param0: ::windows::core::IntoParam<'a, ContextMenuOpeningEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContextMenuOpening)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveContextMenuOpening<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveContextMenuOpening)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectAll(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SelectAll)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Documents'*"]
    #[cfg(feature = "UI_Xaml_Documents")]
    pub fn Select<'a, Param0: ::windows::core::IntoParam<'a, super::Documents::TextPointer>, Param1: ::windows::core::IntoParam<'a, super::Documents::TextPointer>>(&self, start: Param0, end: Param1) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Select)(::core::mem::transmute_copy(this), start.into_param().abi(), end.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'UI_Xaml_Documents'*"]
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Documents"))]
    pub fn GetPositionFromPoint<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::Point>>(&self, point: Param0) -> ::windows::core::Result<super::Documents::TextPointer> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetPositionFromPoint)(::core::mem::transmute_copy(this), point.into_param().abi(), &mut result__).from_abi::<super::Documents::TextPointer>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Focus(&self, value: super::FocusState) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Focus)(::core::mem::transmute_copy(this), value, &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextIndent(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextIndent)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTextIndent(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTextIndent)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxLines(&self) -> ::windows::core::Result<i32> {
        let this = &::windows::core::Interface::cast::<IRichTextBlock2>(self)?;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxLines)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMaxLines(&self, value: i32) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichTextBlock2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetMaxLines)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextLineBounds(&self) -> ::windows::core::Result<super::TextLineBounds> {
        let this = &::windows::core::Interface::cast::<IRichTextBlock2>(self)?;
        unsafe {
            let mut result__: super::TextLineBounds = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextLineBounds)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::TextLineBounds>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTextLineBounds(&self, value: super::TextLineBounds) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichTextBlock2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetTextLineBounds)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SelectionHighlightColor(&self) -> ::windows::core::Result<super::Media::SolidColorBrush> {
        let this = &::windows::core::Interface::cast::<IRichTextBlock2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionHighlightColor)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::SolidColorBrush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetSelectionHighlightColor<'a, Param0: ::windows::core::IntoParam<'a, super::Media::SolidColorBrush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichTextBlock2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectionHighlightColor)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OpticalMarginAlignment(&self) -> ::windows::core::Result<super::OpticalMarginAlignment> {
        let this = &::windows::core::Interface::cast::<IRichTextBlock2>(self)?;
        unsafe {
            let mut result__: super::OpticalMarginAlignment = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OpticalMarginAlignment)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::OpticalMarginAlignment>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetOpticalMarginAlignment(&self, value: super::OpticalMarginAlignment) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichTextBlock2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetOpticalMarginAlignment)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsColorFontEnabled(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IRichTextBlock2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsColorFontEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsColorFontEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichTextBlock2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsColorFontEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextReadingOrder(&self) -> ::windows::core::Result<super::TextReadingOrder> {
        let this = &::windows::core::Interface::cast::<IRichTextBlock2>(self)?;
        unsafe {
            let mut result__: super::TextReadingOrder = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextReadingOrder)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::TextReadingOrder>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTextReadingOrder(&self, value: super::TextReadingOrder) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichTextBlock2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetTextReadingOrder)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTextScaleFactorEnabled(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IRichTextBlock3>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTextScaleFactorEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsTextScaleFactorEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichTextBlock3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsTextScaleFactorEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn TextDecorations(&self) -> ::windows::core::Result<super::super::Text::TextDecorations> {
        let this = &::windows::core::Interface::cast::<IRichTextBlock4>(self)?;
        unsafe {
            let mut result__: super::super::Text::TextDecorations = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextDecorations)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Text::TextDecorations>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn SetTextDecorations(&self, value: super::super::Text::TextDecorations) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichTextBlock4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetTextDecorations)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTextTrimmed(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IRichTextBlock5>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTextTrimmed)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalTextAlignment(&self) -> ::windows::core::Result<super::TextAlignment> {
        let this = &::windows::core::Interface::cast::<IRichTextBlock5>(self)?;
        unsafe {
            let mut result__: super::TextAlignment = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalTextAlignment)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::TextAlignment>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHorizontalTextAlignment(&self, value: super::TextAlignment) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichTextBlock5>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetHorizontalTextAlignment)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'UI_Xaml_Documents'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Documents"))]
    pub fn TextHighlighters(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVector<super::Documents::TextHighlighter>> {
        let this = &::windows::core::Interface::cast::<IRichTextBlock5>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextHighlighters)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<super::Documents::TextHighlighter>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn IsTextTrimmedChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<RichTextBlock, IsTextTrimmedChangedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IRichTextBlock5>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTextTrimmedChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveIsTextTrimmedChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichTextBlock5>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveIsTextTrimmedChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn SelectionFlyout(&self) -> ::windows::core::Result<Primitives::FlyoutBase> {
        let this = &::windows::core::Interface::cast::<IRichTextBlock6>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionFlyout)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::FlyoutBase>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn SetSelectionFlyout<'a, Param0: ::windows::core::IntoParam<'a, Primitives::FlyoutBase>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichTextBlock6>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectionFlyout)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CopySelectionToClipboard(&self) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichTextBlock6>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).CopySelectionToClipboard)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontSizeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontSizeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontFamilyProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontFamilyProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontWeightProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontWeightProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontStyleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontStyleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontStretchProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontStretchProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ForegroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ForegroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextWrappingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextWrappingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextTrimmingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextTrimmingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextAlignmentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextAlignmentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PaddingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaddingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LineHeightProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LineHeightProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LineStackingStrategyProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LineStackingStrategyProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CharacterSpacingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CharacterSpacingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OverflowContentTargetProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OverflowContentTargetProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTextSelectionEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTextSelectionEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HasOverflowContentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HasOverflowContentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedTextProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedTextProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextIndentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextIndentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxLinesProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxLinesProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextLineBoundsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextLineBoundsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionHighlightColorProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionHighlightColorProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OpticalMarginAlignmentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OpticalMarginAlignmentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsColorFontEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsColorFontEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextReadingOrderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextReadingOrderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTextScaleFactorEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTextScaleFactorEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextDecorationsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextDecorationsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTextTrimmedProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockStatics5(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTextTrimmedProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalTextAlignmentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockStatics5(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalTextAlignmentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionFlyoutProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockStatics6(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionFlyoutProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IRichTextBlockStatics<R, F: FnOnce(&IRichTextBlockStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RichTextBlock, IRichTextBlockStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IRichTextBlockStatics2<R, F: FnOnce(&IRichTextBlockStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RichTextBlock, IRichTextBlockStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IRichTextBlockStatics3<R, F: FnOnce(&IRichTextBlockStatics3) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RichTextBlock, IRichTextBlockStatics3> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IRichTextBlockStatics4<R, F: FnOnce(&IRichTextBlockStatics4) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RichTextBlock, IRichTextBlockStatics4> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IRichTextBlockStatics5<R, F: FnOnce(&IRichTextBlockStatics5) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RichTextBlock, IRichTextBlockStatics5> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IRichTextBlockStatics6<R, F: FnOnce(&IRichTextBlockStatics6) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RichTextBlock, IRichTextBlockStatics6> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for RichTextBlock {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for RichTextBlock {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for RichTextBlock {}
impl ::core::fmt::Debug for RichTextBlock {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("RichTextBlock").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for RichTextBlock {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.RichTextBlock;{e5fff9e2-b968-49e7-97d4-8cca2ac3ae7c})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for RichTextBlock {
    type Vtable = IRichTextBlock_Vtbl;
    const IID: ::windows::core::GUID = <IRichTextBlock as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for RichTextBlock {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.RichTextBlock";
}
impl ::core::convert::From<RichTextBlock> for ::windows::core::IUnknown {
    fn from(value: RichTextBlock) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RichTextBlock> for ::windows::core::IUnknown {
    fn from(value: &RichTextBlock) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for RichTextBlock {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a RichTextBlock {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<RichTextBlock> for ::windows::core::IInspectable {
    fn from(value: RichTextBlock) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RichTextBlock> for ::windows::core::IInspectable {
    fn from(value: &RichTextBlock) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for RichTextBlock {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a RichTextBlock {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<RichTextBlock> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: RichTextBlock) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&RichTextBlock> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &RichTextBlock) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for RichTextBlock {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &RichTextBlock {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<RichTextBlock> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: RichTextBlock) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&RichTextBlock> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &RichTextBlock) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for RichTextBlock {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &RichTextBlock {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<RichTextBlock> for super::FrameworkElement {
    fn from(value: RichTextBlock) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RichTextBlock> for super::FrameworkElement {
    fn from(value: &RichTextBlock) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for RichTextBlock {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &RichTextBlock {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<RichTextBlock> for super::UIElement {
    fn from(value: RichTextBlock) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RichTextBlock> for super::UIElement {
    fn from(value: &RichTextBlock) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for RichTextBlock {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &RichTextBlock {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<RichTextBlock> for super::DependencyObject {
    fn from(value: RichTextBlock) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RichTextBlock> for super::DependencyObject {
    fn from(value: &RichTextBlock) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for RichTextBlock {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &RichTextBlock {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for RichTextBlock {}
unsafe impl ::core::marker::Sync for RichTextBlock {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct RichTextBlockOverflow(::windows::core::IUnknown);
impl RichTextBlockOverflow {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RichTextBlockOverflow, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OverflowContentTarget(&self) -> ::windows::core::Result<RichTextBlockOverflow> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OverflowContentTarget)(::core::mem::transmute_copy(this), &mut result__).from_abi::<RichTextBlockOverflow>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetOverflowContentTarget<'a, Param0: ::windows::core::IntoParam<'a, RichTextBlockOverflow>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetOverflowContentTarget)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Padding(&self) -> ::windows::core::Result<super::Thickness> {
        let this = self;
        unsafe {
            let mut result__: super::Thickness = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Padding)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Thickness>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPadding<'a, Param0: ::windows::core::IntoParam<'a, super::Thickness>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPadding)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContentSource(&self) -> ::windows::core::Result<RichTextBlock> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentSource)(::core::mem::transmute_copy(this), &mut result__).from_abi::<RichTextBlock>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HasOverflowContent(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HasOverflowContent)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Documents'*"]
    #[cfg(feature = "UI_Xaml_Documents")]
    pub fn ContentStart(&self) -> ::windows::core::Result<super::Documents::TextPointer> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentStart)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Documents::TextPointer>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Documents'*"]
    #[cfg(feature = "UI_Xaml_Documents")]
    pub fn ContentEnd(&self) -> ::windows::core::Result<super::Documents::TextPointer> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentEnd)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Documents::TextPointer>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BaselineOffset(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BaselineOffset)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'UI_Xaml_Documents'*"]
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Documents"))]
    pub fn GetPositionFromPoint<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::Point>>(&self, point: Param0) -> ::windows::core::Result<super::Documents::TextPointer> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetPositionFromPoint)(::core::mem::transmute_copy(this), point.into_param().abi(), &mut result__).from_abi::<super::Documents::TextPointer>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Focus(&self, value: super::FocusState) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Focus)(::core::mem::transmute_copy(this), value, &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxLines(&self) -> ::windows::core::Result<i32> {
        let this = &::windows::core::Interface::cast::<IRichTextBlockOverflow2>(self)?;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxLines)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMaxLines(&self, value: i32) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichTextBlockOverflow2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetMaxLines)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTextTrimmed(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IRichTextBlockOverflow3>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTextTrimmed)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn IsTextTrimmedChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<RichTextBlockOverflow, IsTextTrimmedChangedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IRichTextBlockOverflow3>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTextTrimmedChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveIsTextTrimmedChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IRichTextBlockOverflow3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveIsTextTrimmedChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OverflowContentTargetProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockOverflowStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OverflowContentTargetProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PaddingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockOverflowStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaddingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HasOverflowContentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockOverflowStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HasOverflowContentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxLinesProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockOverflowStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxLinesProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTextTrimmedProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRichTextBlockOverflowStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTextTrimmedProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IRichTextBlockOverflowStatics<R, F: FnOnce(&IRichTextBlockOverflowStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RichTextBlockOverflow, IRichTextBlockOverflowStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IRichTextBlockOverflowStatics2<R, F: FnOnce(&IRichTextBlockOverflowStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RichTextBlockOverflow, IRichTextBlockOverflowStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IRichTextBlockOverflowStatics3<R, F: FnOnce(&IRichTextBlockOverflowStatics3) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RichTextBlockOverflow, IRichTextBlockOverflowStatics3> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for RichTextBlockOverflow {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for RichTextBlockOverflow {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for RichTextBlockOverflow {}
impl ::core::fmt::Debug for RichTextBlockOverflow {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("RichTextBlockOverflow").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for RichTextBlockOverflow {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.RichTextBlockOverflow;{4f93749b-dac3-4a42-9cbb-99f0de37c071})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for RichTextBlockOverflow {
    type Vtable = IRichTextBlockOverflow_Vtbl;
    const IID: ::windows::core::GUID = <IRichTextBlockOverflow as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for RichTextBlockOverflow {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.RichTextBlockOverflow";
}
impl ::core::convert::From<RichTextBlockOverflow> for ::windows::core::IUnknown {
    fn from(value: RichTextBlockOverflow) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RichTextBlockOverflow> for ::windows::core::IUnknown {
    fn from(value: &RichTextBlockOverflow) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for RichTextBlockOverflow {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a RichTextBlockOverflow {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<RichTextBlockOverflow> for ::windows::core::IInspectable {
    fn from(value: RichTextBlockOverflow) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RichTextBlockOverflow> for ::windows::core::IInspectable {
    fn from(value: &RichTextBlockOverflow) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for RichTextBlockOverflow {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a RichTextBlockOverflow {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<RichTextBlockOverflow> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: RichTextBlockOverflow) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&RichTextBlockOverflow> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &RichTextBlockOverflow) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for RichTextBlockOverflow {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &RichTextBlockOverflow {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<RichTextBlockOverflow> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: RichTextBlockOverflow) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&RichTextBlockOverflow> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &RichTextBlockOverflow) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for RichTextBlockOverflow {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &RichTextBlockOverflow {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<RichTextBlockOverflow> for super::FrameworkElement {
    fn from(value: RichTextBlockOverflow) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RichTextBlockOverflow> for super::FrameworkElement {
    fn from(value: &RichTextBlockOverflow) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for RichTextBlockOverflow {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &RichTextBlockOverflow {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<RichTextBlockOverflow> for super::UIElement {
    fn from(value: RichTextBlockOverflow) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RichTextBlockOverflow> for super::UIElement {
    fn from(value: &RichTextBlockOverflow) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for RichTextBlockOverflow {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &RichTextBlockOverflow {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<RichTextBlockOverflow> for super::DependencyObject {
    fn from(value: RichTextBlockOverflow) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RichTextBlockOverflow> for super::DependencyObject {
    fn from(value: &RichTextBlockOverflow) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for RichTextBlockOverflow {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &RichTextBlockOverflow {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for RichTextBlockOverflow {}
unsafe impl ::core::marker::Sync for RichTextBlockOverflow {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct RowDefinition(::windows::core::IUnknown);
impl RowDefinition {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RowDefinition, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Height(&self) -> ::windows::core::Result<super::GridLength> {
        let this = self;
        unsafe {
            let mut result__: super::GridLength = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Height)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::GridLength>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeight<'a, Param0: ::windows::core::IntoParam<'a, super::GridLength>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHeight)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxHeight(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxHeight)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMaxHeight(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMaxHeight)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MinHeight(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MinHeight)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMinHeight(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMinHeight)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ActualHeight(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ActualHeight)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeightProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRowDefinitionStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeightProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxHeightProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRowDefinitionStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxHeightProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MinHeightProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IRowDefinitionStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MinHeightProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IRowDefinitionStatics<R, F: FnOnce(&IRowDefinitionStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<RowDefinition, IRowDefinitionStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for RowDefinition {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for RowDefinition {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for RowDefinition {}
impl ::core::fmt::Debug for RowDefinition {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("RowDefinition").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for RowDefinition {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.RowDefinition;{4abae829-d80c-4a5e-a48c-f8b3d3b6533d})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for RowDefinition {
    type Vtable = IRowDefinition_Vtbl;
    const IID: ::windows::core::GUID = <IRowDefinition as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for RowDefinition {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.RowDefinition";
}
impl ::core::convert::From<RowDefinition> for ::windows::core::IUnknown {
    fn from(value: RowDefinition) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RowDefinition> for ::windows::core::IUnknown {
    fn from(value: &RowDefinition) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for RowDefinition {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a RowDefinition {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<RowDefinition> for ::windows::core::IInspectable {
    fn from(value: RowDefinition) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&RowDefinition> for ::windows::core::IInspectable {
    fn from(value: &RowDefinition) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for RowDefinition {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a RowDefinition {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<RowDefinition> for super::DependencyObject {
    fn from(value: RowDefinition) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&RowDefinition> for super::DependencyObject {
    fn from(value: &RowDefinition) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for RowDefinition {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &RowDefinition {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for RowDefinition {}
unsafe impl ::core::marker::Sync for RowDefinition {}
#[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
#[cfg(feature = "Foundation_Collections")]
#[repr(transparent)]
pub struct RowDefinitionCollection(::windows::core::IUnknown);
#[cfg(feature = "Foundation_Collections")]
impl RowDefinitionCollection {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn First(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IIterator<RowDefinition>> {
        let this = &::windows::core::Interface::cast::<super::super::super::Foundation::Collections::IIterable<RowDefinition>>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).First)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IIterator<RowDefinition>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn GetAt(&self, index: u32) -> ::windows::core::Result<RowDefinition> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetAt)(::core::mem::transmute_copy(this), index, &mut result__).from_abi::<RowDefinition>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn Size(&self) -> ::windows::core::Result<u32> {
        let this = self;
        unsafe {
            let mut result__: u32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Size)(::core::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn GetView(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVectorView<RowDefinition>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetView)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVectorView<RowDefinition>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn IndexOf<'a, Param0: ::windows::core::IntoParam<'a, RowDefinition>>(&self, value: Param0, index: &mut u32) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IndexOf)(::core::mem::transmute_copy(this), value.into_param().abi(), index, &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn SetAt<'a, Param1: ::windows::core::IntoParam<'a, RowDefinition>>(&self, index: u32, value: Param1) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetAt)(::core::mem::transmute_copy(this), index, value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn InsertAt<'a, Param1: ::windows::core::IntoParam<'a, RowDefinition>>(&self, index: u32, value: Param1) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).InsertAt)(::core::mem::transmute_copy(this), index, value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn RemoveAt(&self, index: u32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveAt)(::core::mem::transmute_copy(this), index).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn Append<'a, Param0: ::windows::core::IntoParam<'a, RowDefinition>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Append)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn RemoveAtEnd(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveAtEnd)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn Clear(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Clear)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn GetMany(&self, startindex: u32, items: &mut [::core::option::Option<RowDefinition>]) -> ::windows::core::Result<u32> {
        let this = self;
        unsafe {
            let mut result__: u32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetMany)(::core::mem::transmute_copy(this), startindex, items.len() as u32, ::core::mem::transmute_copy(&items), &mut result__).from_abi::<u32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn ReplaceAll(&self, items: &[::core::option::Option<RowDefinition>]) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).ReplaceAll)(::core::mem::transmute_copy(this), items.len() as u32, ::core::mem::transmute(items.as_ptr())).ok() }
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::clone::Clone for RowDefinitionCollection {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::cmp::PartialEq for RowDefinitionCollection {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::cmp::Eq for RowDefinitionCollection {}
#[cfg(feature = "Foundation_Collections")]
impl ::core::fmt::Debug for RowDefinitionCollection {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("RowDefinitionCollection").field(&self.0).finish()
    }
}
#[cfg(feature = "Foundation_Collections")]
unsafe impl ::windows::core::RuntimeType for RowDefinitionCollection {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.RowDefinitionCollection;pinterface({913337e9-11a1-4345-a3a2-4e7f956e222d};rc(Windows.UI.Xaml.Controls.RowDefinition;{4abae829-d80c-4a5e-a48c-f8b3d3b6533d})))");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
#[cfg(feature = "Foundation_Collections")]
unsafe impl ::windows::core::Interface for RowDefinitionCollection {
    type Vtable = super::super::super::Foundation::Collections::IVector_Vtbl<RowDefinition>;
    const IID: ::windows::core::GUID = <super::super::super::Foundation::Collections::IVector<RowDefinition> as ::windows::core::Interface>::IID;
}
#[cfg(feature = "Foundation_Collections")]
impl ::windows::core::RuntimeName for RowDefinitionCollection {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.RowDefinitionCollection";
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::iter::IntoIterator for RowDefinitionCollection {
    type Item = RowDefinition;
    type IntoIter = super::super::super::Foundation::Collections::VectorIterator<Self::Item>;
    fn into_iter(self) -> Self::IntoIter {
        ::core::iter::IntoIterator::into_iter(&self)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::iter::IntoIterator for &RowDefinitionCollection {
    type Item = RowDefinition;
    type IntoIter = super::super::super::Foundation::Collections::VectorIterator<Self::Item>;
    fn into_iter(self) -> Self::IntoIter {
        super::super::super::Foundation::Collections::VectorIterator::new(::core::convert::TryInto::try_into(self).ok())
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::From<RowDefinitionCollection> for ::windows::core::IUnknown {
    fn from(value: RowDefinitionCollection) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::From<&RowDefinitionCollection> for ::windows::core::IUnknown {
    fn from(value: &RowDefinitionCollection) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for RowDefinitionCollection {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a RowDefinitionCollection {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::From<RowDefinitionCollection> for ::windows::core::IInspectable {
    fn from(value: RowDefinitionCollection) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::From<&RowDefinitionCollection> for ::windows::core::IInspectable {
    fn from(value: &RowDefinitionCollection) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for RowDefinitionCollection {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a RowDefinitionCollection {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::TryFrom<RowDefinitionCollection> for super::super::super::Foundation::Collections::IIterable<RowDefinition> {
    type Error = ::windows::core::Error;
    fn try_from(value: RowDefinitionCollection) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::TryFrom<&RowDefinitionCollection> for super::super::super::Foundation::Collections::IIterable<RowDefinition> {
    type Error = ::windows::core::Error;
    fn try_from(value: &RowDefinitionCollection) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IIterable<RowDefinition>> for RowDefinitionCollection {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::super::Foundation::Collections::IIterable<RowDefinition>> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IIterable<RowDefinition>> for &RowDefinitionCollection {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::super::Foundation::Collections::IIterable<RowDefinition>> {
        ::core::convert::TryInto::<super::super::super::Foundation::Collections::IIterable<RowDefinition>>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::TryFrom<RowDefinitionCollection> for super::super::super::Foundation::Collections::IVector<RowDefinition> {
    type Error = ::windows::core::Error;
    fn try_from(value: RowDefinitionCollection) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::TryFrom<&RowDefinitionCollection> for super::super::super::Foundation::Collections::IVector<RowDefinition> {
    type Error = ::windows::core::Error;
    fn try_from(value: &RowDefinitionCollection) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IVector<RowDefinition>> for RowDefinitionCollection {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::super::Foundation::Collections::IVector<RowDefinition>> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IVector<RowDefinition>> for &RowDefinitionCollection {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::super::Foundation::Collections::IVector<RowDefinition>> {
        ::core::convert::TryInto::<super::super::super::Foundation::Collections::IVector<RowDefinition>>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "Foundation_Collections")]
unsafe impl ::core::marker::Send for RowDefinitionCollection {}
#[cfg(feature = "Foundation_Collections")]
unsafe impl ::core::marker::Sync for RowDefinitionCollection {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct ScrollBarVisibility(pub i32);
impl ScrollBarVisibility {
    pub const Disabled: Self = Self(0i32);
    pub const Auto: Self = Self(1i32);
    pub const Hidden: Self = Self(2i32);
    pub const Visible: Self = Self(3i32);
}
impl ::core::marker::Copy for ScrollBarVisibility {}
impl ::core::clone::Clone for ScrollBarVisibility {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ScrollBarVisibility {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ScrollBarVisibility {
    type Abi = Self;
}
impl ::core::fmt::Debug for ScrollBarVisibility {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ScrollBarVisibility").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ScrollBarVisibility {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.ScrollBarVisibility;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ScrollContentPresenter(::windows::core::IUnknown);
impl ScrollContentPresenter {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ScrollContentPresenter, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanVerticallyScroll(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanVerticallyScroll)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCanVerticallyScroll(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCanVerticallyScroll)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanHorizontallyScroll(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanHorizontallyScroll)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCanHorizontallyScroll(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCanHorizontallyScroll)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ExtentWidth(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ExtentWidth)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ExtentHeight(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ExtentHeight)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ViewportWidth(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ViewportWidth)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ViewportHeight(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ViewportHeight)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalOffset(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalOffset)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalOffset(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalOffset)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ScrollOwner(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ScrollOwner)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetScrollOwner<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetScrollOwner)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LineUp(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).LineUp)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LineDown(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).LineDown)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LineLeft(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).LineLeft)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LineRight(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).LineRight)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PageUp(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).PageUp)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PageDown(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).PageDown)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PageLeft(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).PageLeft)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PageRight(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).PageRight)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MouseWheelUp(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).MouseWheelUp)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MouseWheelDown(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).MouseWheelDown)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MouseWheelLeft(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).MouseWheelLeft)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MouseWheelRight(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).MouseWheelRight)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHorizontalOffset(&self, offset: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHorizontalOffset)(::core::mem::transmute_copy(this), offset).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetVerticalOffset(&self, offset: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetVerticalOffset)(::core::mem::transmute_copy(this), offset).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn MakeVisible<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>, Param1: ::windows::core::IntoParam<'a, super::super::super::Foundation::Rect>>(&self, visual: Param0, rectangle: Param1) -> ::windows::core::Result<super::super::super::Foundation::Rect> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::Rect = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MakeVisible)(::core::mem::transmute_copy(this), visual.into_param().abi(), rectangle.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::Rect>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanContentRenderOutsideBounds(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IScrollContentPresenter2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanContentRenderOutsideBounds)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCanContentRenderOutsideBounds(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IScrollContentPresenter2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetCanContentRenderOutsideBounds)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SizesContentToTemplatedParent(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IScrollContentPresenter2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SizesContentToTemplatedParent)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSizesContentToTemplatedParent(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IScrollContentPresenter2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetSizesContentToTemplatedParent)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanContentRenderOutsideBoundsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollContentPresenterStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanContentRenderOutsideBoundsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SizesContentToTemplatedParentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollContentPresenterStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SizesContentToTemplatedParentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IScrollContentPresenterStatics2<R, F: FnOnce(&IScrollContentPresenterStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ScrollContentPresenter, IScrollContentPresenterStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for ScrollContentPresenter {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ScrollContentPresenter {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ScrollContentPresenter {}
impl ::core::fmt::Debug for ScrollContentPresenter {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ScrollContentPresenter").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ScrollContentPresenter {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ScrollContentPresenter;{5712ee2b-0eeb-46d3-aa31-5f6801b8de20})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ScrollContentPresenter {
    type Vtable = IScrollContentPresenter_Vtbl;
    const IID: ::windows::core::GUID = <IScrollContentPresenter as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ScrollContentPresenter {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ScrollContentPresenter";
}
impl ::core::convert::From<ScrollContentPresenter> for ::windows::core::IUnknown {
    fn from(value: ScrollContentPresenter) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ScrollContentPresenter> for ::windows::core::IUnknown {
    fn from(value: &ScrollContentPresenter) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ScrollContentPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ScrollContentPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ScrollContentPresenter> for ::windows::core::IInspectable {
    fn from(value: ScrollContentPresenter) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ScrollContentPresenter> for ::windows::core::IInspectable {
    fn from(value: &ScrollContentPresenter) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ScrollContentPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ScrollContentPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ScrollContentPresenter> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: ScrollContentPresenter) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ScrollContentPresenter> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &ScrollContentPresenter) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for ScrollContentPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &ScrollContentPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ScrollContentPresenter> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: ScrollContentPresenter) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ScrollContentPresenter> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &ScrollContentPresenter) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for ScrollContentPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &ScrollContentPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<ScrollContentPresenter> for ContentPresenter {
    fn from(value: ScrollContentPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ScrollContentPresenter> for ContentPresenter {
    fn from(value: &ScrollContentPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentPresenter> for ScrollContentPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ContentPresenter> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentPresenter> for &ScrollContentPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ContentPresenter> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentPresenter>::into(self))
    }
}
impl ::core::convert::From<ScrollContentPresenter> for super::FrameworkElement {
    fn from(value: ScrollContentPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ScrollContentPresenter> for super::FrameworkElement {
    fn from(value: &ScrollContentPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for ScrollContentPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &ScrollContentPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<ScrollContentPresenter> for super::UIElement {
    fn from(value: ScrollContentPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ScrollContentPresenter> for super::UIElement {
    fn from(value: &ScrollContentPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for ScrollContentPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &ScrollContentPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<ScrollContentPresenter> for super::DependencyObject {
    fn from(value: ScrollContentPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ScrollContentPresenter> for super::DependencyObject {
    fn from(value: &ScrollContentPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for ScrollContentPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &ScrollContentPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for ScrollContentPresenter {}
unsafe impl ::core::marker::Sync for ScrollContentPresenter {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct ScrollIntoViewAlignment(pub i32);
impl ScrollIntoViewAlignment {
    pub const Default: Self = Self(0i32);
    pub const Leading: Self = Self(1i32);
}
impl ::core::marker::Copy for ScrollIntoViewAlignment {}
impl ::core::clone::Clone for ScrollIntoViewAlignment {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ScrollIntoViewAlignment {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ScrollIntoViewAlignment {
    type Abi = Self;
}
impl ::core::fmt::Debug for ScrollIntoViewAlignment {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ScrollIntoViewAlignment").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ScrollIntoViewAlignment {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.ScrollIntoViewAlignment;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct ScrollMode(pub i32);
impl ScrollMode {
    pub const Disabled: Self = Self(0i32);
    pub const Enabled: Self = Self(1i32);
    pub const Auto: Self = Self(2i32);
}
impl ::core::marker::Copy for ScrollMode {}
impl ::core::clone::Clone for ScrollMode {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ScrollMode {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ScrollMode {
    type Abi = Self;
}
impl ::core::fmt::Debug for ScrollMode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ScrollMode").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ScrollMode {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.ScrollMode;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ScrollViewer(::windows::core::IUnknown);
impl ScrollViewer {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ScrollViewer, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CurrentAnchor(&self) -> ::windows::core::Result<super::UIElement> {
        let this = &::windows::core::Interface::cast::<IScrollAnchorProvider>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CurrentAnchor)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::UIElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn RegisterAnchorCandidate<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(&self, element: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IScrollAnchorProvider>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RegisterAnchorCandidate)(::core::mem::transmute_copy(this), element.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn UnregisterAnchorCandidate<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(&self, element: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IScrollAnchorProvider>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).UnregisterAnchorCandidate)(::core::mem::transmute_copy(this), element.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalScrollBarVisibility(&self) -> ::windows::core::Result<ScrollBarVisibility> {
        let this = self;
        unsafe {
            let mut result__: ScrollBarVisibility = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalScrollBarVisibility)(::core::mem::transmute_copy(this), &mut result__).from_abi::<ScrollBarVisibility>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHorizontalScrollBarVisibility(&self, value: ScrollBarVisibility) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHorizontalScrollBarVisibility)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalScrollBarVisibility(&self) -> ::windows::core::Result<ScrollBarVisibility> {
        let this = self;
        unsafe {
            let mut result__: ScrollBarVisibility = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalScrollBarVisibility)(::core::mem::transmute_copy(this), &mut result__).from_abi::<ScrollBarVisibility>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetVerticalScrollBarVisibility(&self, value: ScrollBarVisibility) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetVerticalScrollBarVisibility)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsHorizontalRailEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsHorizontalRailEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsHorizontalRailEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsHorizontalRailEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsVerticalRailEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsVerticalRailEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsVerticalRailEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsVerticalRailEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsHorizontalScrollChainingEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsHorizontalScrollChainingEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsHorizontalScrollChainingEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsHorizontalScrollChainingEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsVerticalScrollChainingEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsVerticalScrollChainingEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsVerticalScrollChainingEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsVerticalScrollChainingEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsZoomChainingEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsZoomChainingEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsZoomChainingEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsZoomChainingEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsScrollInertiaEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsScrollInertiaEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsScrollInertiaEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsScrollInertiaEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsZoomInertiaEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsZoomInertiaEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsZoomInertiaEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsZoomInertiaEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalScrollMode(&self) -> ::windows::core::Result<ScrollMode> {
        let this = self;
        unsafe {
            let mut result__: ScrollMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalScrollMode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<ScrollMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHorizontalScrollMode(&self, value: ScrollMode) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHorizontalScrollMode)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalScrollMode(&self) -> ::windows::core::Result<ScrollMode> {
        let this = self;
        unsafe {
            let mut result__: ScrollMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalScrollMode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<ScrollMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetVerticalScrollMode(&self, value: ScrollMode) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetVerticalScrollMode)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ZoomMode(&self) -> ::windows::core::Result<ZoomMode> {
        let this = self;
        unsafe {
            let mut result__: ZoomMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ZoomMode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<ZoomMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetZoomMode(&self, value: ZoomMode) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetZoomMode)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn HorizontalSnapPointsAlignment(&self) -> ::windows::core::Result<Primitives::SnapPointsAlignment> {
        let this = self;
        unsafe {
            let mut result__: Primitives::SnapPointsAlignment = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalSnapPointsAlignment)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::SnapPointsAlignment>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn SetHorizontalSnapPointsAlignment(&self, value: Primitives::SnapPointsAlignment) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHorizontalSnapPointsAlignment)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn VerticalSnapPointsAlignment(&self) -> ::windows::core::Result<Primitives::SnapPointsAlignment> {
        let this = self;
        unsafe {
            let mut result__: Primitives::SnapPointsAlignment = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalSnapPointsAlignment)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::SnapPointsAlignment>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn SetVerticalSnapPointsAlignment(&self, value: Primitives::SnapPointsAlignment) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetVerticalSnapPointsAlignment)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalSnapPointsType(&self) -> ::windows::core::Result<SnapPointsType> {
        let this = self;
        unsafe {
            let mut result__: SnapPointsType = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalSnapPointsType)(::core::mem::transmute_copy(this), &mut result__).from_abi::<SnapPointsType>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHorizontalSnapPointsType(&self, value: SnapPointsType) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHorizontalSnapPointsType)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalSnapPointsType(&self) -> ::windows::core::Result<SnapPointsType> {
        let this = self;
        unsafe {
            let mut result__: SnapPointsType = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalSnapPointsType)(::core::mem::transmute_copy(this), &mut result__).from_abi::<SnapPointsType>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetVerticalSnapPointsType(&self, value: SnapPointsType) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetVerticalSnapPointsType)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ZoomSnapPointsType(&self) -> ::windows::core::Result<SnapPointsType> {
        let this = self;
        unsafe {
            let mut result__: SnapPointsType = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ZoomSnapPointsType)(::core::mem::transmute_copy(this), &mut result__).from_abi::<SnapPointsType>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetZoomSnapPointsType(&self, value: SnapPointsType) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetZoomSnapPointsType)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalOffset(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalOffset)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ViewportWidth(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ViewportWidth)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ScrollableWidth(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ScrollableWidth)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ComputedHorizontalScrollBarVisibility(&self) -> ::windows::core::Result<super::Visibility> {
        let this = self;
        unsafe {
            let mut result__: super::Visibility = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ComputedHorizontalScrollBarVisibility)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Visibility>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ExtentWidth(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ExtentWidth)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalOffset(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalOffset)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ViewportHeight(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ViewportHeight)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ScrollableHeight(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ScrollableHeight)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ComputedVerticalScrollBarVisibility(&self) -> ::windows::core::Result<super::Visibility> {
        let this = self;
        unsafe {
            let mut result__: super::Visibility = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ComputedVerticalScrollBarVisibility)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Visibility>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ExtentHeight(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ExtentHeight)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MinZoomFactor(&self) -> ::windows::core::Result<f32> {
        let this = self;
        unsafe {
            let mut result__: f32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MinZoomFactor)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMinZoomFactor(&self, value: f32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMinZoomFactor)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxZoomFactor(&self) -> ::windows::core::Result<f32> {
        let this = self;
        unsafe {
            let mut result__: f32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxZoomFactor)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMaxZoomFactor(&self, value: f32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMaxZoomFactor)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ZoomFactor(&self) -> ::windows::core::Result<f32> {
        let this = self;
        unsafe {
            let mut result__: f32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ZoomFactor)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn ZoomSnapPoints(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVector<f32>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ZoomSnapPoints)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<f32>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ViewChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventHandler<ScrollViewerViewChangedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ViewChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveViewChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveViewChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'deprecated'*"]
    #[cfg(feature = "deprecated")]
    pub fn ScrollToHorizontalOffset(&self, offset: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).ScrollToHorizontalOffset)(::core::mem::transmute_copy(this), offset).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'deprecated'*"]
    #[cfg(feature = "deprecated")]
    pub fn ScrollToVerticalOffset(&self, offset: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).ScrollToVerticalOffset)(::core::mem::transmute_copy(this), offset).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'deprecated'*"]
    #[cfg(feature = "deprecated")]
    pub fn ZoomToFactor(&self, factor: f32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).ZoomToFactor)(::core::mem::transmute_copy(this), factor).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn InvalidateScrollInfo(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).InvalidateScrollInfo)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsDeferredScrollingEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsDeferredScrollingEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsDeferredScrollingEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsDeferredScrollingEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BringIntoViewOnFocusChange(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BringIntoViewOnFocusChange)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetBringIntoViewOnFocusChange(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetBringIntoViewOnFocusChange)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TopLeftHeader(&self) -> ::windows::core::Result<super::UIElement> {
        let this = &::windows::core::Interface::cast::<IScrollViewer2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TopLeftHeader)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::UIElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTopLeftHeader<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IScrollViewer2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetTopLeftHeader)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LeftHeader(&self) -> ::windows::core::Result<super::UIElement> {
        let this = &::windows::core::Interface::cast::<IScrollViewer2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LeftHeader)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::UIElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetLeftHeader<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IScrollViewer2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetLeftHeader)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TopHeader(&self) -> ::windows::core::Result<super::UIElement> {
        let this = &::windows::core::Interface::cast::<IScrollViewer2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TopHeader)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::UIElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTopHeader<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IScrollViewer2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetTopHeader)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ViewChanging<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventHandler<ScrollViewerViewChangingEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IScrollViewer2>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ViewChanging)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveViewChanging<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IScrollViewer2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveViewChanging)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ChangeView<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::IReference<f64>>, Param1: ::windows::core::IntoParam<'a, super::super::super::Foundation::IReference<f64>>, Param2: ::windows::core::IntoParam<'a, super::super::super::Foundation::IReference<f32>>>(&self, horizontaloffset: Param0, verticaloffset: Param1, zoomfactor: Param2) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IScrollViewer2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ChangeView)(::core::mem::transmute_copy(this), horizontaloffset.into_param().abi(), verticaloffset.into_param().abi(), zoomfactor.into_param().abi(), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ChangeViewWithOptionalAnimation<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::IReference<f64>>, Param1: ::windows::core::IntoParam<'a, super::super::super::Foundation::IReference<f64>>, Param2: ::windows::core::IntoParam<'a, super::super::super::Foundation::IReference<f32>>>(&self, horizontaloffset: Param0, verticaloffset: Param1, zoomfactor: Param2, disableanimation: bool) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IScrollViewer2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ChangeViewWithOptionalAnimation)(::core::mem::transmute_copy(this), horizontaloffset.into_param().abi(), verticaloffset.into_param().abi(), zoomfactor.into_param().abi(), disableanimation, &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn DirectManipulationStarted<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventHandler<::windows::core::IInspectable>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IScrollViewer3>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DirectManipulationStarted)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveDirectManipulationStarted<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IScrollViewer3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveDirectManipulationStarted)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn DirectManipulationCompleted<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventHandler<::windows::core::IInspectable>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IScrollViewer3>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DirectManipulationCompleted)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveDirectManipulationCompleted<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IScrollViewer3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveDirectManipulationCompleted)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ReduceViewportForCoreInputViewOcclusions(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IScrollViewer4>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ReduceViewportForCoreInputViewOcclusions)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetReduceViewportForCoreInputViewOcclusions(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IScrollViewer4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetReduceViewportForCoreInputViewOcclusions)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalAnchorRatio(&self) -> ::windows::core::Result<f64> {
        let this = &::windows::core::Interface::cast::<IScrollViewer4>(self)?;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalAnchorRatio)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHorizontalAnchorRatio(&self, value: f64) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IScrollViewer4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetHorizontalAnchorRatio)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalAnchorRatio(&self) -> ::windows::core::Result<f64> {
        let this = &::windows::core::Interface::cast::<IScrollViewer4>(self)?;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalAnchorRatio)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetVerticalAnchorRatio(&self, value: f64) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IScrollViewer4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetVerticalAnchorRatio)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanContentRenderOutsideBounds(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IScrollViewer4>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanContentRenderOutsideBounds)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCanContentRenderOutsideBounds(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IScrollViewer4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetCanContentRenderOutsideBounds)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn AnchorRequested<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<ScrollViewer, AnchorRequestedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IScrollViewer4>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AnchorRequested)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveAnchorRequested<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IScrollViewer4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveAnchorRequested)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalSnapPointsAlignmentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalSnapPointsAlignmentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalSnapPointsAlignmentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalSnapPointsAlignmentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalSnapPointsTypeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalSnapPointsTypeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalSnapPointsTypeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalSnapPointsTypeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ZoomSnapPointsTypeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ZoomSnapPointsTypeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalOffsetProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalOffsetProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ViewportWidthProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ViewportWidthProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ScrollableWidthProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ScrollableWidthProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ComputedHorizontalScrollBarVisibilityProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ComputedHorizontalScrollBarVisibilityProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ExtentWidthProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ExtentWidthProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalOffsetProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalOffsetProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ViewportHeightProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ViewportHeightProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ScrollableHeightProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ScrollableHeightProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ComputedVerticalScrollBarVisibilityProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ComputedVerticalScrollBarVisibilityProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ExtentHeightProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ExtentHeightProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MinZoomFactorProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MinZoomFactorProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxZoomFactorProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxZoomFactorProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ZoomFactorProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ZoomFactorProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ZoomSnapPointsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ZoomSnapPointsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalScrollBarVisibilityProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalScrollBarVisibilityProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetHorizontalScrollBarVisibility<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0) -> ::windows::core::Result<ScrollBarVisibility> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ScrollBarVisibility = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetHorizontalScrollBarVisibility)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<ScrollBarVisibility>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHorizontalScrollBarVisibility2<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0, horizontalscrollbarvisibility: ScrollBarVisibility) -> ::windows::core::Result<()> {
        Self::IScrollViewerStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetHorizontalScrollBarVisibility)(::core::mem::transmute_copy(this), element.into_param().abi(), horizontalscrollbarvisibility).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalScrollBarVisibilityProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalScrollBarVisibilityProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetVerticalScrollBarVisibility<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0) -> ::windows::core::Result<ScrollBarVisibility> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ScrollBarVisibility = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetVerticalScrollBarVisibility)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<ScrollBarVisibility>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetVerticalScrollBarVisibility2<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0, verticalscrollbarvisibility: ScrollBarVisibility) -> ::windows::core::Result<()> {
        Self::IScrollViewerStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetVerticalScrollBarVisibility)(::core::mem::transmute_copy(this), element.into_param().abi(), verticalscrollbarvisibility).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsHorizontalRailEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsHorizontalRailEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetIsHorizontalRailEnabled<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0) -> ::windows::core::Result<bool> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetIsHorizontalRailEnabled)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<bool>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsHorizontalRailEnabled2<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0, ishorizontalrailenabled: bool) -> ::windows::core::Result<()> {
        Self::IScrollViewerStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetIsHorizontalRailEnabled)(::core::mem::transmute_copy(this), element.into_param().abi(), ishorizontalrailenabled).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsVerticalRailEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsVerticalRailEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetIsVerticalRailEnabled<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0) -> ::windows::core::Result<bool> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetIsVerticalRailEnabled)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<bool>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsVerticalRailEnabled2<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0, isverticalrailenabled: bool) -> ::windows::core::Result<()> {
        Self::IScrollViewerStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetIsVerticalRailEnabled)(::core::mem::transmute_copy(this), element.into_param().abi(), isverticalrailenabled).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsHorizontalScrollChainingEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsHorizontalScrollChainingEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetIsHorizontalScrollChainingEnabled<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0) -> ::windows::core::Result<bool> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetIsHorizontalScrollChainingEnabled)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<bool>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsHorizontalScrollChainingEnabled2<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0, ishorizontalscrollchainingenabled: bool) -> ::windows::core::Result<()> {
        Self::IScrollViewerStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetIsHorizontalScrollChainingEnabled)(::core::mem::transmute_copy(this), element.into_param().abi(), ishorizontalscrollchainingenabled).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsVerticalScrollChainingEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsVerticalScrollChainingEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetIsVerticalScrollChainingEnabled<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0) -> ::windows::core::Result<bool> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetIsVerticalScrollChainingEnabled)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<bool>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsVerticalScrollChainingEnabled2<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0, isverticalscrollchainingenabled: bool) -> ::windows::core::Result<()> {
        Self::IScrollViewerStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetIsVerticalScrollChainingEnabled)(::core::mem::transmute_copy(this), element.into_param().abi(), isverticalscrollchainingenabled).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsZoomChainingEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsZoomChainingEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetIsZoomChainingEnabled<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0) -> ::windows::core::Result<bool> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetIsZoomChainingEnabled)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<bool>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsZoomChainingEnabled2<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0, iszoomchainingenabled: bool) -> ::windows::core::Result<()> {
        Self::IScrollViewerStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetIsZoomChainingEnabled)(::core::mem::transmute_copy(this), element.into_param().abi(), iszoomchainingenabled).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsScrollInertiaEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsScrollInertiaEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetIsScrollInertiaEnabled<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0) -> ::windows::core::Result<bool> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetIsScrollInertiaEnabled)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<bool>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsScrollInertiaEnabled2<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0, isscrollinertiaenabled: bool) -> ::windows::core::Result<()> {
        Self::IScrollViewerStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetIsScrollInertiaEnabled)(::core::mem::transmute_copy(this), element.into_param().abi(), isscrollinertiaenabled).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsZoomInertiaEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsZoomInertiaEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetIsZoomInertiaEnabled<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0) -> ::windows::core::Result<bool> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetIsZoomInertiaEnabled)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<bool>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsZoomInertiaEnabled2<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0, iszoominertiaenabled: bool) -> ::windows::core::Result<()> {
        Self::IScrollViewerStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetIsZoomInertiaEnabled)(::core::mem::transmute_copy(this), element.into_param().abi(), iszoominertiaenabled).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalScrollModeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalScrollModeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetHorizontalScrollMode<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0) -> ::windows::core::Result<ScrollMode> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ScrollMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetHorizontalScrollMode)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<ScrollMode>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHorizontalScrollMode2<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0, horizontalscrollmode: ScrollMode) -> ::windows::core::Result<()> {
        Self::IScrollViewerStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetHorizontalScrollMode)(::core::mem::transmute_copy(this), element.into_param().abi(), horizontalscrollmode).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalScrollModeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalScrollModeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetVerticalScrollMode<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0) -> ::windows::core::Result<ScrollMode> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ScrollMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetVerticalScrollMode)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<ScrollMode>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetVerticalScrollMode2<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0, verticalscrollmode: ScrollMode) -> ::windows::core::Result<()> {
        Self::IScrollViewerStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetVerticalScrollMode)(::core::mem::transmute_copy(this), element.into_param().abi(), verticalscrollmode).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ZoomModeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ZoomModeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetZoomMode<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0) -> ::windows::core::Result<ZoomMode> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ZoomMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetZoomMode)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<ZoomMode>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetZoomMode2<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0, zoommode: ZoomMode) -> ::windows::core::Result<()> {
        Self::IScrollViewerStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetZoomMode)(::core::mem::transmute_copy(this), element.into_param().abi(), zoommode).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsDeferredScrollingEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsDeferredScrollingEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetIsDeferredScrollingEnabled<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0) -> ::windows::core::Result<bool> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetIsDeferredScrollingEnabled)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<bool>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsDeferredScrollingEnabled2<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0, isdeferredscrollingenabled: bool) -> ::windows::core::Result<()> {
        Self::IScrollViewerStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetIsDeferredScrollingEnabled)(::core::mem::transmute_copy(this), element.into_param().abi(), isdeferredscrollingenabled).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BringIntoViewOnFocusChangeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BringIntoViewOnFocusChangeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetBringIntoViewOnFocusChange<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0) -> ::windows::core::Result<bool> {
        Self::IScrollViewerStatics(|this| unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetBringIntoViewOnFocusChange)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<bool>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetBringIntoViewOnFocusChange2<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0, bringintoviewonfocuschange: bool) -> ::windows::core::Result<()> {
        Self::IScrollViewerStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetBringIntoViewOnFocusChange)(::core::mem::transmute_copy(this), element.into_param().abi(), bringintoviewonfocuschange).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TopLeftHeaderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TopLeftHeaderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LeftHeaderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LeftHeaderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TopHeaderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TopHeaderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ReduceViewportForCoreInputViewOcclusionsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ReduceViewportForCoreInputViewOcclusionsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalAnchorRatioProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalAnchorRatioProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalAnchorRatioProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalAnchorRatioProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanContentRenderOutsideBoundsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IScrollViewerStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanContentRenderOutsideBoundsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetCanContentRenderOutsideBounds<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0) -> ::windows::core::Result<bool> {
        Self::IScrollViewerStatics4(|this| unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetCanContentRenderOutsideBounds)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<bool>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCanContentRenderOutsideBounds2<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0, cancontentrenderoutsidebounds: bool) -> ::windows::core::Result<()> {
        Self::IScrollViewerStatics4(|this| unsafe { (::windows::core::Interface::vtable(this).SetCanContentRenderOutsideBounds)(::core::mem::transmute_copy(this), element.into_param().abi(), cancontentrenderoutsidebounds).ok() })
    }
    #[doc(hidden)]
    pub fn IScrollViewerStatics<R, F: FnOnce(&IScrollViewerStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ScrollViewer, IScrollViewerStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IScrollViewerStatics2<R, F: FnOnce(&IScrollViewerStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ScrollViewer, IScrollViewerStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IScrollViewerStatics4<R, F: FnOnce(&IScrollViewerStatics4) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ScrollViewer, IScrollViewerStatics4> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for ScrollViewer {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ScrollViewer {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ScrollViewer {}
impl ::core::fmt::Debug for ScrollViewer {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ScrollViewer").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ScrollViewer {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ScrollViewer;{64e9be00-4dc1-493d-abe7-cbd3c577490d})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ScrollViewer {
    type Vtable = IScrollViewer_Vtbl;
    const IID: ::windows::core::GUID = <IScrollViewer as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ScrollViewer {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ScrollViewer";
}
impl ::core::convert::From<ScrollViewer> for ::windows::core::IUnknown {
    fn from(value: ScrollViewer) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ScrollViewer> for ::windows::core::IUnknown {
    fn from(value: &ScrollViewer) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ScrollViewer {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ScrollViewer {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ScrollViewer> for ::windows::core::IInspectable {
    fn from(value: ScrollViewer) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ScrollViewer> for ::windows::core::IInspectable {
    fn from(value: &ScrollViewer) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ScrollViewer {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ScrollViewer {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ScrollViewer> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: ScrollViewer) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ScrollViewer> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &ScrollViewer) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for ScrollViewer {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &ScrollViewer {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::TryFrom<ScrollViewer> for IScrollAnchorProvider {
    type Error = ::windows::core::Error;
    fn try_from(value: ScrollViewer) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
impl ::core::convert::TryFrom<&ScrollViewer> for IScrollAnchorProvider {
    type Error = ::windows::core::Error;
    fn try_from(value: &ScrollViewer) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IScrollAnchorProvider> for ScrollViewer {
    fn into_param(self) -> ::windows::core::Param<'a, IScrollAnchorProvider> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IScrollAnchorProvider> for &ScrollViewer {
    fn into_param(self) -> ::windows::core::Param<'a, IScrollAnchorProvider> {
        ::core::convert::TryInto::<IScrollAnchorProvider>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ScrollViewer> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: ScrollViewer) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ScrollViewer> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &ScrollViewer) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for ScrollViewer {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &ScrollViewer {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<ScrollViewer> for ContentControl {
    fn from(value: ScrollViewer) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ScrollViewer> for ContentControl {
    fn from(value: &ScrollViewer) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for ScrollViewer {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &ScrollViewer {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<ScrollViewer> for Control {
    fn from(value: ScrollViewer) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ScrollViewer> for Control {
    fn from(value: &ScrollViewer) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for ScrollViewer {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &ScrollViewer {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<ScrollViewer> for super::FrameworkElement {
    fn from(value: ScrollViewer) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ScrollViewer> for super::FrameworkElement {
    fn from(value: &ScrollViewer) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for ScrollViewer {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &ScrollViewer {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<ScrollViewer> for super::UIElement {
    fn from(value: ScrollViewer) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ScrollViewer> for super::UIElement {
    fn from(value: &ScrollViewer) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for ScrollViewer {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &ScrollViewer {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<ScrollViewer> for super::DependencyObject {
    fn from(value: ScrollViewer) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ScrollViewer> for super::DependencyObject {
    fn from(value: &ScrollViewer) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for ScrollViewer {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &ScrollViewer {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for ScrollViewer {}
unsafe impl ::core::marker::Sync for ScrollViewer {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ScrollViewerView(::windows::core::IUnknown);
impl ScrollViewerView {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalOffset(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalOffset)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalOffset(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalOffset)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ZoomFactor(&self) -> ::windows::core::Result<f32> {
        let this = self;
        unsafe {
            let mut result__: f32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ZoomFactor)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f32>(result__)
        }
    }
}
impl ::core::clone::Clone for ScrollViewerView {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ScrollViewerView {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ScrollViewerView {}
impl ::core::fmt::Debug for ScrollViewerView {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ScrollViewerView").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ScrollViewerView {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ScrollViewerView;{64e9be01-4dc2-493e-abe8-cbd3c577490e})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ScrollViewerView {
    type Vtable = IScrollViewerView_Vtbl;
    const IID: ::windows::core::GUID = <IScrollViewerView as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ScrollViewerView {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ScrollViewerView";
}
impl ::core::convert::From<ScrollViewerView> for ::windows::core::IUnknown {
    fn from(value: ScrollViewerView) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ScrollViewerView> for ::windows::core::IUnknown {
    fn from(value: &ScrollViewerView) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ScrollViewerView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ScrollViewerView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ScrollViewerView> for ::windows::core::IInspectable {
    fn from(value: ScrollViewerView) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ScrollViewerView> for ::windows::core::IInspectable {
    fn from(value: &ScrollViewerView) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ScrollViewerView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ScrollViewerView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for ScrollViewerView {}
unsafe impl ::core::marker::Sync for ScrollViewerView {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ScrollViewerViewChangedEventArgs(::windows::core::IUnknown);
impl ScrollViewerViewChangedEventArgs {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ScrollViewerViewChangedEventArgs, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsIntermediate(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsIntermediate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
}
impl ::core::clone::Clone for ScrollViewerViewChangedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ScrollViewerViewChangedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ScrollViewerViewChangedEventArgs {}
impl ::core::fmt::Debug for ScrollViewerViewChangedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ScrollViewerViewChangedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ScrollViewerViewChangedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ScrollViewerViewChangedEventArgs;{4dd04f7e-7a11-4b2e-9933-577df39252b6})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ScrollViewerViewChangedEventArgs {
    type Vtable = IScrollViewerViewChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IScrollViewerViewChangedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ScrollViewerViewChangedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ScrollViewerViewChangedEventArgs";
}
impl ::core::convert::From<ScrollViewerViewChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: ScrollViewerViewChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ScrollViewerViewChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &ScrollViewerViewChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ScrollViewerViewChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ScrollViewerViewChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ScrollViewerViewChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: ScrollViewerViewChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ScrollViewerViewChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &ScrollViewerViewChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ScrollViewerViewChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ScrollViewerViewChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for ScrollViewerViewChangedEventArgs {}
unsafe impl ::core::marker::Sync for ScrollViewerViewChangedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ScrollViewerViewChangingEventArgs(::windows::core::IUnknown);
impl ScrollViewerViewChangingEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn NextView(&self) -> ::windows::core::Result<ScrollViewerView> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).NextView)(::core::mem::transmute_copy(this), &mut result__).from_abi::<ScrollViewerView>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FinalView(&self) -> ::windows::core::Result<ScrollViewerView> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FinalView)(::core::mem::transmute_copy(this), &mut result__).from_abi::<ScrollViewerView>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsInertial(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsInertial)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
}
impl ::core::clone::Clone for ScrollViewerViewChangingEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ScrollViewerViewChangingEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ScrollViewerViewChangingEventArgs {}
impl ::core::fmt::Debug for ScrollViewerViewChangingEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ScrollViewerViewChangingEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ScrollViewerViewChangingEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ScrollViewerViewChangingEventArgs;{4dd04f7f-7a11-4b2e-9933-577df39252b6})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ScrollViewerViewChangingEventArgs {
    type Vtable = IScrollViewerViewChangingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IScrollViewerViewChangingEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ScrollViewerViewChangingEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ScrollViewerViewChangingEventArgs";
}
impl ::core::convert::From<ScrollViewerViewChangingEventArgs> for ::windows::core::IUnknown {
    fn from(value: ScrollViewerViewChangingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ScrollViewerViewChangingEventArgs> for ::windows::core::IUnknown {
    fn from(value: &ScrollViewerViewChangingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ScrollViewerViewChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ScrollViewerViewChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ScrollViewerViewChangingEventArgs> for ::windows::core::IInspectable {
    fn from(value: ScrollViewerViewChangingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ScrollViewerViewChangingEventArgs> for ::windows::core::IInspectable {
    fn from(value: &ScrollViewerViewChangingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ScrollViewerViewChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ScrollViewerViewChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for ScrollViewerViewChangingEventArgs {}
unsafe impl ::core::marker::Sync for ScrollViewerViewChangingEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct SearchBox(::windows::core::IUnknown);
impl SearchBox {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SearchHistoryEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SearchHistoryEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSearchHistoryEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSearchHistoryEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SearchHistoryContext(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SearchHistoryContext)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSearchHistoryContext<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSearchHistoryContext)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PlaceholderText(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlaceholderText)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPlaceholderText<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPlaceholderText)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn QueryText(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).QueryText)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetQueryText<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetQueryText)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FocusOnKeyboardInput(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FocusOnKeyboardInput)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetFocusOnKeyboardInput(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFocusOnKeyboardInput)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ChooseSuggestionOnEnter(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ChooseSuggestionOnEnter)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetChooseSuggestionOnEnter(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetChooseSuggestionOnEnter)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn QueryChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<SearchBox, SearchBoxQueryChangedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).QueryChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveQueryChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveQueryChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SuggestionsRequested<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<SearchBox, SearchBoxSuggestionsRequestedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SuggestionsRequested)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveSuggestionsRequested<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveSuggestionsRequested)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn QuerySubmitted<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<SearchBox, SearchBoxQuerySubmittedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).QuerySubmitted)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveQuerySubmitted<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveQuerySubmitted)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ResultSuggestionChosen<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<SearchBox, SearchBoxResultSuggestionChosenEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ResultSuggestionChosen)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveResultSuggestionChosen<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveResultSuggestionChosen)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn PrepareForFocusOnKeyboardInput<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<SearchBox, super::RoutedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PrepareForFocusOnKeyboardInput)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemovePrepareForFocusOnKeyboardInput<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemovePrepareForFocusOnKeyboardInput)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'ApplicationModel_Search'*"]
    #[cfg(feature = "ApplicationModel_Search")]
    pub fn SetLocalContentSuggestionSettings<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::ApplicationModel::Search::LocalContentSuggestionSettings>>(&self, settings: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetLocalContentSuggestionSettings)(::core::mem::transmute_copy(this), settings.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<SearchBox> {
        Self::ISearchBoxFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<SearchBox>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<SearchBox> {
        Self::ISearchBoxFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<SearchBox>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SearchHistoryEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISearchBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SearchHistoryEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SearchHistoryContextProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISearchBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SearchHistoryContextProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PlaceholderTextProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISearchBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlaceholderTextProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn QueryTextProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISearchBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).QueryTextProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FocusOnKeyboardInputProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISearchBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FocusOnKeyboardInputProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ChooseSuggestionOnEnterProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISearchBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ChooseSuggestionOnEnterProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ISearchBoxFactory<R, F: FnOnce(&ISearchBoxFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<SearchBox, ISearchBoxFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ISearchBoxStatics<R, F: FnOnce(&ISearchBoxStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<SearchBox, ISearchBoxStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for SearchBox {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for SearchBox {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for SearchBox {}
impl ::core::fmt::Debug for SearchBox {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SearchBox").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for SearchBox {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.SearchBox;{f89ecc5a-99ba-4bd4-966c-f11fa443d13c})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for SearchBox {
    type Vtable = ISearchBox_Vtbl;
    const IID: ::windows::core::GUID = <ISearchBox as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for SearchBox {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.SearchBox";
}
impl ::core::convert::From<SearchBox> for ::windows::core::IUnknown {
    fn from(value: SearchBox) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SearchBox> for ::windows::core::IUnknown {
    fn from(value: &SearchBox) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for SearchBox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a SearchBox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<SearchBox> for ::windows::core::IInspectable {
    fn from(value: SearchBox) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SearchBox> for ::windows::core::IInspectable {
    fn from(value: &SearchBox) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for SearchBox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a SearchBox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<SearchBox> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: SearchBox) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&SearchBox> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &SearchBox) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for SearchBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &SearchBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<SearchBox> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: SearchBox) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&SearchBox> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &SearchBox) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for SearchBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &SearchBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<SearchBox> for Control {
    fn from(value: SearchBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SearchBox> for Control {
    fn from(value: &SearchBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for SearchBox {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &SearchBox {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<SearchBox> for super::FrameworkElement {
    fn from(value: SearchBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SearchBox> for super::FrameworkElement {
    fn from(value: &SearchBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for SearchBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &SearchBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<SearchBox> for super::UIElement {
    fn from(value: SearchBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SearchBox> for super::UIElement {
    fn from(value: &SearchBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for SearchBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &SearchBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<SearchBox> for super::DependencyObject {
    fn from(value: SearchBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SearchBox> for super::DependencyObject {
    fn from(value: &SearchBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for SearchBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &SearchBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for SearchBox {}
unsafe impl ::core::marker::Sync for SearchBox {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct SearchBoxQueryChangedEventArgs(::windows::core::IUnknown);
impl SearchBoxQueryChangedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn QueryText(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).QueryText)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Language(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Language)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'ApplicationModel_Search'*"]
    #[cfg(feature = "ApplicationModel_Search")]
    pub fn LinguisticDetails(&self) -> ::windows::core::Result<super::super::super::ApplicationModel::Search::SearchQueryLinguisticDetails> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LinguisticDetails)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::ApplicationModel::Search::SearchQueryLinguisticDetails>(result__)
        }
    }
}
impl ::core::clone::Clone for SearchBoxQueryChangedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for SearchBoxQueryChangedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for SearchBoxQueryChangedEventArgs {}
impl ::core::fmt::Debug for SearchBoxQueryChangedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SearchBoxQueryChangedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for SearchBoxQueryChangedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.SearchBoxQueryChangedEventArgs;{a9a70f8f-0cb0-4bd2-9998-2fb57ad5e731})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for SearchBoxQueryChangedEventArgs {
    type Vtable = ISearchBoxQueryChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <ISearchBoxQueryChangedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for SearchBoxQueryChangedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.SearchBoxQueryChangedEventArgs";
}
impl ::core::convert::From<SearchBoxQueryChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: SearchBoxQueryChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SearchBoxQueryChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &SearchBoxQueryChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for SearchBoxQueryChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a SearchBoxQueryChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<SearchBoxQueryChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: SearchBoxQueryChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SearchBoxQueryChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &SearchBoxQueryChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for SearchBoxQueryChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a SearchBoxQueryChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for SearchBoxQueryChangedEventArgs {}
unsafe impl ::core::marker::Sync for SearchBoxQueryChangedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct SearchBoxQuerySubmittedEventArgs(::windows::core::IUnknown);
impl SearchBoxQuerySubmittedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn QueryText(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).QueryText)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Language(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Language)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'ApplicationModel_Search'*"]
    #[cfg(feature = "ApplicationModel_Search")]
    pub fn LinguisticDetails(&self) -> ::windows::core::Result<super::super::super::ApplicationModel::Search::SearchQueryLinguisticDetails> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LinguisticDetails)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::ApplicationModel::Search::SearchQueryLinguisticDetails>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'System'*"]
    #[cfg(feature = "System")]
    pub fn KeyModifiers(&self) -> ::windows::core::Result<super::super::super::System::VirtualKeyModifiers> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::System::VirtualKeyModifiers = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).KeyModifiers)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::System::VirtualKeyModifiers>(result__)
        }
    }
}
impl ::core::clone::Clone for SearchBoxQuerySubmittedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for SearchBoxQuerySubmittedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for SearchBoxQuerySubmittedEventArgs {}
impl ::core::fmt::Debug for SearchBoxQuerySubmittedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SearchBoxQuerySubmittedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for SearchBoxQuerySubmittedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.SearchBoxQuerySubmittedEventArgs;{126e90fd-3c4e-4ccb-9aef-4705d19fe548})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for SearchBoxQuerySubmittedEventArgs {
    type Vtable = ISearchBoxQuerySubmittedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <ISearchBoxQuerySubmittedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for SearchBoxQuerySubmittedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.SearchBoxQuerySubmittedEventArgs";
}
impl ::core::convert::From<SearchBoxQuerySubmittedEventArgs> for ::windows::core::IUnknown {
    fn from(value: SearchBoxQuerySubmittedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SearchBoxQuerySubmittedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &SearchBoxQuerySubmittedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for SearchBoxQuerySubmittedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a SearchBoxQuerySubmittedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<SearchBoxQuerySubmittedEventArgs> for ::windows::core::IInspectable {
    fn from(value: SearchBoxQuerySubmittedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SearchBoxQuerySubmittedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &SearchBoxQuerySubmittedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for SearchBoxQuerySubmittedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a SearchBoxQuerySubmittedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for SearchBoxQuerySubmittedEventArgs {}
unsafe impl ::core::marker::Sync for SearchBoxQuerySubmittedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct SearchBoxResultSuggestionChosenEventArgs(::windows::core::IUnknown);
impl SearchBoxResultSuggestionChosenEventArgs {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<SearchBoxResultSuggestionChosenEventArgs, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Tag(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Tag)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'System'*"]
    #[cfg(feature = "System")]
    pub fn KeyModifiers(&self) -> ::windows::core::Result<super::super::super::System::VirtualKeyModifiers> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::System::VirtualKeyModifiers = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).KeyModifiers)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::System::VirtualKeyModifiers>(result__)
        }
    }
}
impl ::core::clone::Clone for SearchBoxResultSuggestionChosenEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for SearchBoxResultSuggestionChosenEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for SearchBoxResultSuggestionChosenEventArgs {}
impl ::core::fmt::Debug for SearchBoxResultSuggestionChosenEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SearchBoxResultSuggestionChosenEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for SearchBoxResultSuggestionChosenEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.SearchBoxResultSuggestionChosenEventArgs;{18918c23-e4c3-4662-a03b-d054ffd0f905})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for SearchBoxResultSuggestionChosenEventArgs {
    type Vtable = ISearchBoxResultSuggestionChosenEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <ISearchBoxResultSuggestionChosenEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for SearchBoxResultSuggestionChosenEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.SearchBoxResultSuggestionChosenEventArgs";
}
impl ::core::convert::From<SearchBoxResultSuggestionChosenEventArgs> for ::windows::core::IUnknown {
    fn from(value: SearchBoxResultSuggestionChosenEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SearchBoxResultSuggestionChosenEventArgs> for ::windows::core::IUnknown {
    fn from(value: &SearchBoxResultSuggestionChosenEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for SearchBoxResultSuggestionChosenEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a SearchBoxResultSuggestionChosenEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<SearchBoxResultSuggestionChosenEventArgs> for ::windows::core::IInspectable {
    fn from(value: SearchBoxResultSuggestionChosenEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SearchBoxResultSuggestionChosenEventArgs> for ::windows::core::IInspectable {
    fn from(value: &SearchBoxResultSuggestionChosenEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for SearchBoxResultSuggestionChosenEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a SearchBoxResultSuggestionChosenEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for SearchBoxResultSuggestionChosenEventArgs {}
unsafe impl ::core::marker::Sync for SearchBoxResultSuggestionChosenEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct SearchBoxSuggestionsRequestedEventArgs(::windows::core::IUnknown);
impl SearchBoxSuggestionsRequestedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn QueryText(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).QueryText)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Language(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Language)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'ApplicationModel_Search'*"]
    #[cfg(feature = "ApplicationModel_Search")]
    pub fn LinguisticDetails(&self) -> ::windows::core::Result<super::super::super::ApplicationModel::Search::SearchQueryLinguisticDetails> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LinguisticDetails)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::ApplicationModel::Search::SearchQueryLinguisticDetails>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'ApplicationModel_Search'*"]
    #[cfg(feature = "ApplicationModel_Search")]
    pub fn Request(&self) -> ::windows::core::Result<super::super::super::ApplicationModel::Search::SearchSuggestionsRequest> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Request)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::ApplicationModel::Search::SearchSuggestionsRequest>(result__)
        }
    }
}
impl ::core::clone::Clone for SearchBoxSuggestionsRequestedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for SearchBoxSuggestionsRequestedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for SearchBoxSuggestionsRequestedEventArgs {}
impl ::core::fmt::Debug for SearchBoxSuggestionsRequestedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SearchBoxSuggestionsRequestedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for SearchBoxSuggestionsRequestedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.SearchBoxSuggestionsRequestedEventArgs;{da15170e-e566-48cb-bd11-fe4b0f30a44d})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for SearchBoxSuggestionsRequestedEventArgs {
    type Vtable = ISearchBoxSuggestionsRequestedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <ISearchBoxSuggestionsRequestedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for SearchBoxSuggestionsRequestedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.SearchBoxSuggestionsRequestedEventArgs";
}
impl ::core::convert::From<SearchBoxSuggestionsRequestedEventArgs> for ::windows::core::IUnknown {
    fn from(value: SearchBoxSuggestionsRequestedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SearchBoxSuggestionsRequestedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &SearchBoxSuggestionsRequestedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for SearchBoxSuggestionsRequestedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a SearchBoxSuggestionsRequestedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<SearchBoxSuggestionsRequestedEventArgs> for ::windows::core::IInspectable {
    fn from(value: SearchBoxSuggestionsRequestedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SearchBoxSuggestionsRequestedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &SearchBoxSuggestionsRequestedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for SearchBoxSuggestionsRequestedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a SearchBoxSuggestionsRequestedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for SearchBoxSuggestionsRequestedEventArgs {}
unsafe impl ::core::marker::Sync for SearchBoxSuggestionsRequestedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct SectionsInViewChangedEventArgs(::windows::core::IUnknown);
impl SectionsInViewChangedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn AddedSections(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVector<HubSection>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AddedSections)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<HubSection>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn RemovedSections(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVector<HubSection>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).RemovedSections)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<HubSection>>(result__)
        }
    }
}
impl ::core::clone::Clone for SectionsInViewChangedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for SectionsInViewChangedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for SectionsInViewChangedEventArgs {}
impl ::core::fmt::Debug for SectionsInViewChangedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SectionsInViewChangedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for SectionsInViewChangedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.SectionsInViewChangedEventArgs;{dd49ee6b-d165-430f-a37d-b807064f85e1})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for SectionsInViewChangedEventArgs {
    type Vtable = ISectionsInViewChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <ISectionsInViewChangedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for SectionsInViewChangedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.SectionsInViewChangedEventArgs";
}
impl ::core::convert::From<SectionsInViewChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: SectionsInViewChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SectionsInViewChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &SectionsInViewChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for SectionsInViewChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a SectionsInViewChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<SectionsInViewChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: SectionsInViewChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SectionsInViewChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &SectionsInViewChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for SectionsInViewChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a SectionsInViewChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for SectionsInViewChangedEventArgs {}
unsafe impl ::core::marker::Sync for SectionsInViewChangedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct SectionsInViewChangedEventHandler(pub ::windows::core::IUnknown);
impl SectionsInViewChangedEventHandler {
    pub fn new<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<SectionsInViewChangedEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static>(invoke: F) -> Self {
        let com = SectionsInViewChangedEventHandlerBox::<F> { vtable: &SectionsInViewChangedEventHandlerBox::<F>::VTABLE, count: ::windows::core::RefCount::new(1), invoke };
        unsafe { ::core::mem::transmute(::windows::core::alloc::boxed::Box::new(com)) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Invoke<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>, Param1: ::windows::core::IntoParam<'a, SectionsInViewChangedEventArgs>>(&self, sender: Param0, e: Param1) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Invoke)(::core::mem::transmute_copy(this), sender.into_param().abi(), e.into_param().abi()).ok() }
    }
}
#[repr(C)]
struct SectionsInViewChangedEventHandlerBox<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<SectionsInViewChangedEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static> {
    vtable: *const SectionsInViewChangedEventHandler_Vtbl,
    invoke: F,
    count: ::windows::core::RefCount,
}
impl<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<SectionsInViewChangedEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static> SectionsInViewChangedEventHandlerBox<F> {
    const VTABLE: SectionsInViewChangedEventHandler_Vtbl = SectionsInViewChangedEventHandler_Vtbl { base: ::windows::core::IUnknownVtbl { QueryInterface: Self::QueryInterface, AddRef: Self::AddRef, Release: Self::Release }, Invoke: Self::Invoke };
    unsafe extern "system" fn QueryInterface(this: ::windows::core::RawPtr, iid: &::windows::core::GUID, interface: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        *interface = if iid == &<SectionsInViewChangedEventHandler as ::windows::core::Interface>::IID || iid == &<::windows::core::IUnknown as ::windows::core::Interface>::IID || iid == &<::windows::core::IAgileObject as ::windows::core::Interface>::IID { &mut (*this).vtable as *mut _ as _ } else { ::core::ptr::null_mut() };
        if (*interface).is_null() {
            ::windows::core::HRESULT(-2147467262)
        } else {
            (*this).count.add_ref();
            ::windows::core::HRESULT(0)
        }
    }
    unsafe extern "system" fn AddRef(this: ::windows::core::RawPtr) -> u32 {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        (*this).count.add_ref()
    }
    unsafe extern "system" fn Release(this: ::windows::core::RawPtr) -> u32 {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        let remaining = (*this).count.release();
        if remaining == 0 {
            ::windows::core::alloc::boxed::Box::from_raw(this);
        }
        remaining
    }
    unsafe extern "system" fn Invoke(this: *mut ::core::ffi::c_void, sender: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        ((*this).invoke)(::core::mem::transmute(&sender), ::core::mem::transmute(&e)).into()
    }
}
impl ::core::clone::Clone for SectionsInViewChangedEventHandler {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for SectionsInViewChangedEventHandler {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for SectionsInViewChangedEventHandler {}
impl ::core::fmt::Debug for SectionsInViewChangedEventHandler {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SectionsInViewChangedEventHandler").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for SectionsInViewChangedEventHandler {
    type Vtable = SectionsInViewChangedEventHandler_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6becaa6a_63f8_47ff_b6ac_76e7da247d67);
}
unsafe impl ::windows::core::RuntimeType for SectionsInViewChangedEventHandler {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"{6becaa6a-63f8-47ff-b6ac-76e7da247d67}");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
#[repr(C)]
#[doc(hidden)]
pub struct SectionsInViewChangedEventHandler_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    pub Invoke: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sender: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct SelectionChangedEventArgs(::windows::core::IUnknown);
impl SelectionChangedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn AddedItems(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AddedItems)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn RemovedItems(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).RemovedItems)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn CreateInstanceWithRemovedItemsAndAddedItems<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>>, Param1: ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>>>(removeditems: Param0, addeditems: Param1) -> ::windows::core::Result<SelectionChangedEventArgs> {
        Self::ISelectionChangedEventArgsFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstanceWithRemovedItemsAndAddedItems)(::core::mem::transmute_copy(this), removeditems.into_param().abi(), addeditems.into_param().abi(), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<SelectionChangedEventArgs>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn CreateInstanceWithRemovedItemsAndAddedItems_compose<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>>, Param1: ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>>, T: ::windows::core::Compose>(removeditems: Param0, addeditems: Param1, compose: T) -> ::windows::core::Result<SelectionChangedEventArgs> {
        Self::ISelectionChangedEventArgsFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstanceWithRemovedItemsAndAddedItems)(::core::mem::transmute_copy(this), removeditems.into_param().abi(), addeditems.into_param().abi(), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<SelectionChangedEventArgs>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ISelectionChangedEventArgsFactory<R, F: FnOnce(&ISelectionChangedEventArgsFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<SelectionChangedEventArgs, ISelectionChangedEventArgsFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for SelectionChangedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for SelectionChangedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for SelectionChangedEventArgs {}
impl ::core::fmt::Debug for SelectionChangedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SelectionChangedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for SelectionChangedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.SelectionChangedEventArgs;{c972d2dc-b609-4758-851e-a799c21de97d})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for SelectionChangedEventArgs {
    type Vtable = ISelectionChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <ISelectionChangedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for SelectionChangedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.SelectionChangedEventArgs";
}
impl ::core::convert::From<SelectionChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: SelectionChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SelectionChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &SelectionChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for SelectionChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a SelectionChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<SelectionChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: SelectionChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SelectionChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &SelectionChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for SelectionChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a SelectionChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<SelectionChangedEventArgs> for super::RoutedEventArgs {
    fn from(value: SelectionChangedEventArgs) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SelectionChangedEventArgs> for super::RoutedEventArgs {
    fn from(value: &SelectionChangedEventArgs) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::RoutedEventArgs> for SelectionChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, super::RoutedEventArgs> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::RoutedEventArgs> for &SelectionChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, super::RoutedEventArgs> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::RoutedEventArgs>::into(self))
    }
}
unsafe impl ::core::marker::Send for SelectionChangedEventArgs {}
unsafe impl ::core::marker::Sync for SelectionChangedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct SelectionChangedEventHandler(pub ::windows::core::IUnknown);
impl SelectionChangedEventHandler {
    pub fn new<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<SelectionChangedEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static>(invoke: F) -> Self {
        let com = SelectionChangedEventHandlerBox::<F> { vtable: &SelectionChangedEventHandlerBox::<F>::VTABLE, count: ::windows::core::RefCount::new(1), invoke };
        unsafe { ::core::mem::transmute(::windows::core::alloc::boxed::Box::new(com)) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Invoke<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>, Param1: ::windows::core::IntoParam<'a, SelectionChangedEventArgs>>(&self, sender: Param0, e: Param1) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Invoke)(::core::mem::transmute_copy(this), sender.into_param().abi(), e.into_param().abi()).ok() }
    }
}
#[repr(C)]
struct SelectionChangedEventHandlerBox<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<SelectionChangedEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static> {
    vtable: *const SelectionChangedEventHandler_Vtbl,
    invoke: F,
    count: ::windows::core::RefCount,
}
impl<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<SelectionChangedEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static> SelectionChangedEventHandlerBox<F> {
    const VTABLE: SelectionChangedEventHandler_Vtbl = SelectionChangedEventHandler_Vtbl { base: ::windows::core::IUnknownVtbl { QueryInterface: Self::QueryInterface, AddRef: Self::AddRef, Release: Self::Release }, Invoke: Self::Invoke };
    unsafe extern "system" fn QueryInterface(this: ::windows::core::RawPtr, iid: &::windows::core::GUID, interface: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        *interface = if iid == &<SelectionChangedEventHandler as ::windows::core::Interface>::IID || iid == &<::windows::core::IUnknown as ::windows::core::Interface>::IID || iid == &<::windows::core::IAgileObject as ::windows::core::Interface>::IID { &mut (*this).vtable as *mut _ as _ } else { ::core::ptr::null_mut() };
        if (*interface).is_null() {
            ::windows::core::HRESULT(-2147467262)
        } else {
            (*this).count.add_ref();
            ::windows::core::HRESULT(0)
        }
    }
    unsafe extern "system" fn AddRef(this: ::windows::core::RawPtr) -> u32 {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        (*this).count.add_ref()
    }
    unsafe extern "system" fn Release(this: ::windows::core::RawPtr) -> u32 {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        let remaining = (*this).count.release();
        if remaining == 0 {
            ::windows::core::alloc::boxed::Box::from_raw(this);
        }
        remaining
    }
    unsafe extern "system" fn Invoke(this: *mut ::core::ffi::c_void, sender: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        ((*this).invoke)(::core::mem::transmute(&sender), ::core::mem::transmute(&e)).into()
    }
}
impl ::core::clone::Clone for SelectionChangedEventHandler {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for SelectionChangedEventHandler {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for SelectionChangedEventHandler {}
impl ::core::fmt::Debug for SelectionChangedEventHandler {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SelectionChangedEventHandler").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for SelectionChangedEventHandler {
    type Vtable = SelectionChangedEventHandler_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe1a05352_5aa0_42ca_9cd9_068a14db6e68);
}
unsafe impl ::windows::core::RuntimeType for SelectionChangedEventHandler {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"{e1a05352-5aa0-42ca-9cd9-068a14db6e68}");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
#[repr(C)]
#[doc(hidden)]
pub struct SelectionChangedEventHandler_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    pub Invoke: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sender: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct SelectionMode(pub i32);
impl SelectionMode {
    pub const Single: Self = Self(0i32);
    pub const Multiple: Self = Self(1i32);
    pub const Extended: Self = Self(2i32);
}
impl ::core::marker::Copy for SelectionMode {}
impl ::core::clone::Clone for SelectionMode {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for SelectionMode {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for SelectionMode {
    type Abi = Self;
}
impl ::core::fmt::Debug for SelectionMode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SelectionMode").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for SelectionMode {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.SelectionMode;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct SemanticZoom(::windows::core::IUnknown);
impl SemanticZoom {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<SemanticZoom, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ZoomedInView(&self) -> ::windows::core::Result<ISemanticZoomInformation> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ZoomedInView)(::core::mem::transmute_copy(this), &mut result__).from_abi::<ISemanticZoomInformation>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetZoomedInView<'a, Param0: ::windows::core::IntoParam<'a, ISemanticZoomInformation>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetZoomedInView)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ZoomedOutView(&self) -> ::windows::core::Result<ISemanticZoomInformation> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ZoomedOutView)(::core::mem::transmute_copy(this), &mut result__).from_abi::<ISemanticZoomInformation>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetZoomedOutView<'a, Param0: ::windows::core::IntoParam<'a, ISemanticZoomInformation>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetZoomedOutView)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsZoomedInViewActive(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsZoomedInViewActive)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsZoomedInViewActive(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsZoomedInViewActive)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanChangeViews(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanChangeViews)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCanChangeViews(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCanChangeViews)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ViewChangeStarted<'a, Param0: ::windows::core::IntoParam<'a, SemanticZoomViewChangedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ViewChangeStarted)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveViewChangeStarted<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveViewChangeStarted)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ViewChangeCompleted<'a, Param0: ::windows::core::IntoParam<'a, SemanticZoomViewChangedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ViewChangeCompleted)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveViewChangeCompleted<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveViewChangeCompleted)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ToggleActiveView(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).ToggleActiveView)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsZoomOutButtonEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsZoomOutButtonEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsZoomOutButtonEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsZoomOutButtonEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ZoomedInViewProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISemanticZoomStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ZoomedInViewProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ZoomedOutViewProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISemanticZoomStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ZoomedOutViewProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsZoomedInViewActiveProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISemanticZoomStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsZoomedInViewActiveProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanChangeViewsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISemanticZoomStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanChangeViewsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsZoomOutButtonEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISemanticZoomStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsZoomOutButtonEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ISemanticZoomStatics<R, F: FnOnce(&ISemanticZoomStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<SemanticZoom, ISemanticZoomStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for SemanticZoom {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for SemanticZoom {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for SemanticZoom {}
impl ::core::fmt::Debug for SemanticZoom {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SemanticZoom").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for SemanticZoom {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.SemanticZoom;{019fff21-ece6-4fbc-bf40-8938d4813e27})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for SemanticZoom {
    type Vtable = ISemanticZoom_Vtbl;
    const IID: ::windows::core::GUID = <ISemanticZoom as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for SemanticZoom {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.SemanticZoom";
}
impl ::core::convert::From<SemanticZoom> for ::windows::core::IUnknown {
    fn from(value: SemanticZoom) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SemanticZoom> for ::windows::core::IUnknown {
    fn from(value: &SemanticZoom) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for SemanticZoom {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a SemanticZoom {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<SemanticZoom> for ::windows::core::IInspectable {
    fn from(value: SemanticZoom) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SemanticZoom> for ::windows::core::IInspectable {
    fn from(value: &SemanticZoom) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for SemanticZoom {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a SemanticZoom {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<SemanticZoom> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: SemanticZoom) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&SemanticZoom> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &SemanticZoom) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for SemanticZoom {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &SemanticZoom {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<SemanticZoom> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: SemanticZoom) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&SemanticZoom> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &SemanticZoom) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for SemanticZoom {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &SemanticZoom {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<SemanticZoom> for Control {
    fn from(value: SemanticZoom) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SemanticZoom> for Control {
    fn from(value: &SemanticZoom) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for SemanticZoom {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &SemanticZoom {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<SemanticZoom> for super::FrameworkElement {
    fn from(value: SemanticZoom) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SemanticZoom> for super::FrameworkElement {
    fn from(value: &SemanticZoom) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for SemanticZoom {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &SemanticZoom {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<SemanticZoom> for super::UIElement {
    fn from(value: SemanticZoom) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SemanticZoom> for super::UIElement {
    fn from(value: &SemanticZoom) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for SemanticZoom {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &SemanticZoom {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<SemanticZoom> for super::DependencyObject {
    fn from(value: SemanticZoom) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SemanticZoom> for super::DependencyObject {
    fn from(value: &SemanticZoom) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for SemanticZoom {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &SemanticZoom {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for SemanticZoom {}
unsafe impl ::core::marker::Sync for SemanticZoom {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct SemanticZoomLocation(::windows::core::IUnknown);
impl SemanticZoomLocation {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<SemanticZoomLocation, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Item(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Item)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetItem<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetItem)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Bounds(&self) -> ::windows::core::Result<super::super::super::Foundation::Rect> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::Rect = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Bounds)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Rect>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SetBounds<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::Rect>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetBounds)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
}
impl ::core::clone::Clone for SemanticZoomLocation {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for SemanticZoomLocation {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for SemanticZoomLocation {}
impl ::core::fmt::Debug for SemanticZoomLocation {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SemanticZoomLocation").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for SemanticZoomLocation {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.SemanticZoomLocation;{42011736-e3c2-496b-bc4e-d750d4375b9a})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for SemanticZoomLocation {
    type Vtable = ISemanticZoomLocation_Vtbl;
    const IID: ::windows::core::GUID = <ISemanticZoomLocation as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for SemanticZoomLocation {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.SemanticZoomLocation";
}
impl ::core::convert::From<SemanticZoomLocation> for ::windows::core::IUnknown {
    fn from(value: SemanticZoomLocation) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SemanticZoomLocation> for ::windows::core::IUnknown {
    fn from(value: &SemanticZoomLocation) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for SemanticZoomLocation {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a SemanticZoomLocation {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<SemanticZoomLocation> for ::windows::core::IInspectable {
    fn from(value: SemanticZoomLocation) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SemanticZoomLocation> for ::windows::core::IInspectable {
    fn from(value: &SemanticZoomLocation) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for SemanticZoomLocation {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a SemanticZoomLocation {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for SemanticZoomLocation {}
unsafe impl ::core::marker::Sync for SemanticZoomLocation {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct SemanticZoomViewChangedEventArgs(::windows::core::IUnknown);
impl SemanticZoomViewChangedEventArgs {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<SemanticZoomViewChangedEventArgs, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsSourceZoomedInView(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsSourceZoomedInView)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsSourceZoomedInView(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsSourceZoomedInView)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SourceItem(&self) -> ::windows::core::Result<SemanticZoomLocation> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SourceItem)(::core::mem::transmute_copy(this), &mut result__).from_abi::<SemanticZoomLocation>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSourceItem<'a, Param0: ::windows::core::IntoParam<'a, SemanticZoomLocation>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSourceItem)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DestinationItem(&self) -> ::windows::core::Result<SemanticZoomLocation> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DestinationItem)(::core::mem::transmute_copy(this), &mut result__).from_abi::<SemanticZoomLocation>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDestinationItem<'a, Param0: ::windows::core::IntoParam<'a, SemanticZoomLocation>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetDestinationItem)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
}
impl ::core::clone::Clone for SemanticZoomViewChangedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for SemanticZoomViewChangedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for SemanticZoomViewChangedEventArgs {}
impl ::core::fmt::Debug for SemanticZoomViewChangedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SemanticZoomViewChangedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for SemanticZoomViewChangedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.SemanticZoomViewChangedEventArgs;{47dfc068-b569-4b19-842d-8e6cf90989af})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for SemanticZoomViewChangedEventArgs {
    type Vtable = ISemanticZoomViewChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <ISemanticZoomViewChangedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for SemanticZoomViewChangedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.SemanticZoomViewChangedEventArgs";
}
impl ::core::convert::From<SemanticZoomViewChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: SemanticZoomViewChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SemanticZoomViewChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &SemanticZoomViewChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for SemanticZoomViewChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a SemanticZoomViewChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<SemanticZoomViewChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: SemanticZoomViewChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SemanticZoomViewChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &SemanticZoomViewChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for SemanticZoomViewChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a SemanticZoomViewChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for SemanticZoomViewChangedEventArgs {}
unsafe impl ::core::marker::Sync for SemanticZoomViewChangedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct SemanticZoomViewChangedEventHandler(pub ::windows::core::IUnknown);
impl SemanticZoomViewChangedEventHandler {
    pub fn new<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<SemanticZoomViewChangedEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static>(invoke: F) -> Self {
        let com = SemanticZoomViewChangedEventHandlerBox::<F> { vtable: &SemanticZoomViewChangedEventHandlerBox::<F>::VTABLE, count: ::windows::core::RefCount::new(1), invoke };
        unsafe { ::core::mem::transmute(::windows::core::alloc::boxed::Box::new(com)) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Invoke<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>, Param1: ::windows::core::IntoParam<'a, SemanticZoomViewChangedEventArgs>>(&self, sender: Param0, e: Param1) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Invoke)(::core::mem::transmute_copy(this), sender.into_param().abi(), e.into_param().abi()).ok() }
    }
}
#[repr(C)]
struct SemanticZoomViewChangedEventHandlerBox<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<SemanticZoomViewChangedEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static> {
    vtable: *const SemanticZoomViewChangedEventHandler_Vtbl,
    invoke: F,
    count: ::windows::core::RefCount,
}
impl<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<SemanticZoomViewChangedEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static> SemanticZoomViewChangedEventHandlerBox<F> {
    const VTABLE: SemanticZoomViewChangedEventHandler_Vtbl = SemanticZoomViewChangedEventHandler_Vtbl { base: ::windows::core::IUnknownVtbl { QueryInterface: Self::QueryInterface, AddRef: Self::AddRef, Release: Self::Release }, Invoke: Self::Invoke };
    unsafe extern "system" fn QueryInterface(this: ::windows::core::RawPtr, iid: &::windows::core::GUID, interface: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        *interface = if iid == &<SemanticZoomViewChangedEventHandler as ::windows::core::Interface>::IID || iid == &<::windows::core::IUnknown as ::windows::core::Interface>::IID || iid == &<::windows::core::IAgileObject as ::windows::core::Interface>::IID { &mut (*this).vtable as *mut _ as _ } else { ::core::ptr::null_mut() };
        if (*interface).is_null() {
            ::windows::core::HRESULT(-2147467262)
        } else {
            (*this).count.add_ref();
            ::windows::core::HRESULT(0)
        }
    }
    unsafe extern "system" fn AddRef(this: ::windows::core::RawPtr) -> u32 {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        (*this).count.add_ref()
    }
    unsafe extern "system" fn Release(this: ::windows::core::RawPtr) -> u32 {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        let remaining = (*this).count.release();
        if remaining == 0 {
            ::windows::core::alloc::boxed::Box::from_raw(this);
        }
        remaining
    }
    unsafe extern "system" fn Invoke(this: *mut ::core::ffi::c_void, sender: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        ((*this).invoke)(::core::mem::transmute(&sender), ::core::mem::transmute(&e)).into()
    }
}
impl ::core::clone::Clone for SemanticZoomViewChangedEventHandler {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for SemanticZoomViewChangedEventHandler {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for SemanticZoomViewChangedEventHandler {}
impl ::core::fmt::Debug for SemanticZoomViewChangedEventHandler {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SemanticZoomViewChangedEventHandler").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for SemanticZoomViewChangedEventHandler {
    type Vtable = SemanticZoomViewChangedEventHandler_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1fa9161d_5d73_44fb_81ac_d1c9384919d4);
}
unsafe impl ::windows::core::RuntimeType for SemanticZoomViewChangedEventHandler {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"{1fa9161d-5d73-44fb-81ac-d1c9384919d4}");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
#[repr(C)]
#[doc(hidden)]
pub struct SemanticZoomViewChangedEventHandler_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    pub Invoke: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sender: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct SettingsFlyout(::windows::core::IUnknown);
impl SettingsFlyout {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Title(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Title)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTitle<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTitle)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn HeaderBackground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderBackground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetHeaderBackground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHeaderBackground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn HeaderForeground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderForeground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetHeaderForeground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHeaderForeground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn IconSource(&self) -> ::windows::core::Result<super::Media::ImageSource> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IconSource)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::ImageSource>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetIconSource<'a, Param0: ::windows::core::IntoParam<'a, super::Media::ImageSource>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIconSource)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn TemplateSettings(&self) -> ::windows::core::Result<Primitives::SettingsFlyoutTemplateSettings> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TemplateSettings)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::SettingsFlyoutTemplateSettings>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn BackClick<'a, Param0: ::windows::core::IntoParam<'a, BackClickEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BackClick)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveBackClick<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveBackClick)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Show(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Show)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ShowIndependent(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).ShowIndependent)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Hide(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Hide)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<SettingsFlyout> {
        Self::ISettingsFlyoutFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<SettingsFlyout>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<SettingsFlyout> {
        Self::ISettingsFlyoutFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<SettingsFlyout>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TitleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISettingsFlyoutStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TitleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderBackgroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISettingsFlyoutStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderBackgroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderForegroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISettingsFlyoutStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderForegroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IconSourceProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISettingsFlyoutStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IconSourceProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ISettingsFlyoutFactory<R, F: FnOnce(&ISettingsFlyoutFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<SettingsFlyout, ISettingsFlyoutFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ISettingsFlyoutStatics<R, F: FnOnce(&ISettingsFlyoutStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<SettingsFlyout, ISettingsFlyoutStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for SettingsFlyout {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for SettingsFlyout {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for SettingsFlyout {}
impl ::core::fmt::Debug for SettingsFlyout {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SettingsFlyout").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for SettingsFlyout {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.SettingsFlyout;{830ba82b-c55b-4e32-a51c-5791e024c8af})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for SettingsFlyout {
    type Vtable = ISettingsFlyout_Vtbl;
    const IID: ::windows::core::GUID = <ISettingsFlyout as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for SettingsFlyout {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.SettingsFlyout";
}
impl ::core::convert::From<SettingsFlyout> for ::windows::core::IUnknown {
    fn from(value: SettingsFlyout) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SettingsFlyout> for ::windows::core::IUnknown {
    fn from(value: &SettingsFlyout) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for SettingsFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a SettingsFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<SettingsFlyout> for ::windows::core::IInspectable {
    fn from(value: SettingsFlyout) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SettingsFlyout> for ::windows::core::IInspectable {
    fn from(value: &SettingsFlyout) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for SettingsFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a SettingsFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<SettingsFlyout> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: SettingsFlyout) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&SettingsFlyout> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &SettingsFlyout) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for SettingsFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &SettingsFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<SettingsFlyout> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: SettingsFlyout) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&SettingsFlyout> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &SettingsFlyout) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for SettingsFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &SettingsFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<SettingsFlyout> for ContentControl {
    fn from(value: SettingsFlyout) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SettingsFlyout> for ContentControl {
    fn from(value: &SettingsFlyout) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for SettingsFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &SettingsFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<SettingsFlyout> for Control {
    fn from(value: SettingsFlyout) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SettingsFlyout> for Control {
    fn from(value: &SettingsFlyout) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for SettingsFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &SettingsFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<SettingsFlyout> for super::FrameworkElement {
    fn from(value: SettingsFlyout) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SettingsFlyout> for super::FrameworkElement {
    fn from(value: &SettingsFlyout) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for SettingsFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &SettingsFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<SettingsFlyout> for super::UIElement {
    fn from(value: SettingsFlyout) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SettingsFlyout> for super::UIElement {
    fn from(value: &SettingsFlyout) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for SettingsFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &SettingsFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<SettingsFlyout> for super::DependencyObject {
    fn from(value: SettingsFlyout) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SettingsFlyout> for super::DependencyObject {
    fn from(value: &SettingsFlyout) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for SettingsFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &SettingsFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for SettingsFlyout {}
unsafe impl ::core::marker::Sync for SettingsFlyout {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct Slider(::windows::core::IUnknown);
impl Slider {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IntermediateValue(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IntermediateValue)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIntermediateValue(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIntermediateValue)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn StepFrequency(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).StepFrequency)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetStepFrequency(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetStepFrequency)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn SnapsTo(&self) -> ::windows::core::Result<Primitives::SliderSnapsTo> {
        let this = self;
        unsafe {
            let mut result__: Primitives::SliderSnapsTo = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SnapsTo)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::SliderSnapsTo>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn SetSnapsTo(&self, value: Primitives::SliderSnapsTo) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSnapsTo)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TickFrequency(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TickFrequency)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTickFrequency(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTickFrequency)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn TickPlacement(&self) -> ::windows::core::Result<Primitives::TickPlacement> {
        let this = self;
        unsafe {
            let mut result__: Primitives::TickPlacement = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TickPlacement)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::TickPlacement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn SetTickPlacement(&self, value: Primitives::TickPlacement) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTickPlacement)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Orientation(&self) -> ::windows::core::Result<Orientation> {
        let this = self;
        unsafe {
            let mut result__: Orientation = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Orientation)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Orientation>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetOrientation(&self, value: Orientation) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetOrientation)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsDirectionReversed(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsDirectionReversed)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsDirectionReversed(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsDirectionReversed)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsThumbToolTipEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsThumbToolTipEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsThumbToolTipEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsThumbToolTipEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Data'*"]
    #[cfg(feature = "UI_Xaml_Data")]
    pub fn ThumbToolTipValueConverter(&self) -> ::windows::core::Result<super::Data::IValueConverter> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ThumbToolTipValueConverter)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Data::IValueConverter>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Data'*"]
    #[cfg(feature = "UI_Xaml_Data")]
    pub fn SetThumbToolTipValueConverter<'a, Param0: ::windows::core::IntoParam<'a, super::Data::IValueConverter>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetThumbToolTipValueConverter)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Header(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = &::windows::core::Interface::cast::<ISlider2>(self)?;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Header)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeader<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ISlider2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetHeader)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTemplate(&self) -> ::windows::core::Result<super::DataTemplate> {
        let this = &::windows::core::Interface::cast::<ISlider2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTemplate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeaderTemplate<'a, Param0: ::windows::core::IntoParam<'a, super::DataTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ISlider2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetHeaderTemplate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<Slider> {
        Self::ISliderFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<Slider>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<Slider> {
        Self::ISliderFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<Slider>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IntermediateValueProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISliderStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IntermediateValueProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn StepFrequencyProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISliderStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).StepFrequencyProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SnapsToProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISliderStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SnapsToProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TickFrequencyProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISliderStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TickFrequencyProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TickPlacementProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISliderStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TickPlacementProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OrientationProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISliderStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OrientationProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsDirectionReversedProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISliderStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsDirectionReversedProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsThumbToolTipEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISliderStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsThumbToolTipEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ThumbToolTipValueConverterProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISliderStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ThumbToolTipValueConverterProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISliderStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTemplateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISliderStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTemplateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ISliderFactory<R, F: FnOnce(&ISliderFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Slider, ISliderFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ISliderStatics<R, F: FnOnce(&ISliderStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Slider, ISliderStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ISliderStatics2<R, F: FnOnce(&ISliderStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Slider, ISliderStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for Slider {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for Slider {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for Slider {}
impl ::core::fmt::Debug for Slider {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("Slider").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for Slider {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.Slider;{89572027-4c48-4700-8076-497ba73d9c18})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for Slider {
    type Vtable = ISlider_Vtbl;
    const IID: ::windows::core::GUID = <ISlider as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for Slider {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.Slider";
}
impl ::core::convert::From<Slider> for ::windows::core::IUnknown {
    fn from(value: Slider) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&Slider> for ::windows::core::IUnknown {
    fn from(value: &Slider) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for Slider {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a Slider {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<Slider> for ::windows::core::IInspectable {
    fn from(value: Slider) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&Slider> for ::windows::core::IInspectable {
    fn from(value: &Slider) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for Slider {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a Slider {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<Slider> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: Slider) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&Slider> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &Slider) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for Slider {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &Slider {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<Slider> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: Slider) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&Slider> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &Slider) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for Slider {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &Slider {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<Slider> for Primitives::RangeBase {
    fn from(value: Slider) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&Slider> for Primitives::RangeBase {
    fn from(value: &Slider) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::RangeBase> for Slider {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::RangeBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::RangeBase> for &Slider {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::RangeBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::RangeBase>::into(self))
    }
}
impl ::core::convert::From<Slider> for Control {
    fn from(value: Slider) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Slider> for Control {
    fn from(value: &Slider) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for Slider {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &Slider {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<Slider> for super::FrameworkElement {
    fn from(value: Slider) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Slider> for super::FrameworkElement {
    fn from(value: &Slider) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for Slider {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &Slider {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<Slider> for super::UIElement {
    fn from(value: Slider) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Slider> for super::UIElement {
    fn from(value: &Slider) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for Slider {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &Slider {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<Slider> for super::DependencyObject {
    fn from(value: Slider) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Slider> for super::DependencyObject {
    fn from(value: &Slider) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for Slider {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &Slider {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for Slider {}
unsafe impl ::core::marker::Sync for Slider {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct SnapPointsType(pub i32);
impl SnapPointsType {
    pub const None: Self = Self(0i32);
    pub const Optional: Self = Self(1i32);
    pub const Mandatory: Self = Self(2i32);
    pub const OptionalSingle: Self = Self(3i32);
    pub const MandatorySingle: Self = Self(4i32);
}
impl ::core::marker::Copy for SnapPointsType {}
impl ::core::clone::Clone for SnapPointsType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for SnapPointsType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for SnapPointsType {
    type Abi = Self;
}
impl ::core::fmt::Debug for SnapPointsType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SnapPointsType").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for SnapPointsType {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.SnapPointsType;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct SplitButton(::windows::core::IUnknown);
impl SplitButton {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn Flyout(&self) -> ::windows::core::Result<Primitives::FlyoutBase> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Flyout)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::FlyoutBase>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn SetFlyout<'a, Param0: ::windows::core::IntoParam<'a, Primitives::FlyoutBase>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFlyout)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Input'*"]
    #[cfg(feature = "UI_Xaml_Input")]
    pub fn Command(&self) -> ::windows::core::Result<super::Input::ICommand> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Command)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Input::ICommand>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Input'*"]
    #[cfg(feature = "UI_Xaml_Input")]
    pub fn SetCommand<'a, Param0: ::windows::core::IntoParam<'a, super::Input::ICommand>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCommand)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CommandParameter(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CommandParameter)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCommandParameter<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCommandParameter)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Click<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<SplitButton, SplitButtonClickEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Click)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveClick<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveClick)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<SplitButton> {
        Self::ISplitButtonFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<SplitButton>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<SplitButton> {
        Self::ISplitButtonFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<SplitButton>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FlyoutProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISplitButtonStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FlyoutProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CommandProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISplitButtonStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CommandProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CommandParameterProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISplitButtonStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CommandParameterProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ISplitButtonFactory<R, F: FnOnce(&ISplitButtonFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<SplitButton, ISplitButtonFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ISplitButtonStatics<R, F: FnOnce(&ISplitButtonStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<SplitButton, ISplitButtonStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for SplitButton {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for SplitButton {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for SplitButton {}
impl ::core::fmt::Debug for SplitButton {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SplitButton").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for SplitButton {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.SplitButton;{58bbb066-c2ea-5499-8150-40faa75f6bb5})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for SplitButton {
    type Vtable = ISplitButton_Vtbl;
    const IID: ::windows::core::GUID = <ISplitButton as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for SplitButton {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.SplitButton";
}
impl ::core::convert::From<SplitButton> for ::windows::core::IUnknown {
    fn from(value: SplitButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SplitButton> for ::windows::core::IUnknown {
    fn from(value: &SplitButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for SplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a SplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<SplitButton> for ::windows::core::IInspectable {
    fn from(value: SplitButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SplitButton> for ::windows::core::IInspectable {
    fn from(value: &SplitButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for SplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a SplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<SplitButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: SplitButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&SplitButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &SplitButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for SplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &SplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<SplitButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: SplitButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&SplitButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &SplitButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for SplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &SplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<SplitButton> for ContentControl {
    fn from(value: SplitButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SplitButton> for ContentControl {
    fn from(value: &SplitButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for SplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &SplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<SplitButton> for Control {
    fn from(value: SplitButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SplitButton> for Control {
    fn from(value: &SplitButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for SplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &SplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<SplitButton> for super::FrameworkElement {
    fn from(value: SplitButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SplitButton> for super::FrameworkElement {
    fn from(value: &SplitButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for SplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &SplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<SplitButton> for super::UIElement {
    fn from(value: SplitButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SplitButton> for super::UIElement {
    fn from(value: &SplitButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for SplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &SplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<SplitButton> for super::DependencyObject {
    fn from(value: SplitButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SplitButton> for super::DependencyObject {
    fn from(value: &SplitButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for SplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &SplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for SplitButton {}
unsafe impl ::core::marker::Sync for SplitButton {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct SplitButtonAutomationPeer(::windows::core::IUnknown);
impl SplitButtonAutomationPeer {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Automation_Provider'*"]
    #[cfg(feature = "UI_Xaml_Automation_Provider")]
    pub fn ExpandCollapseState(&self) -> ::windows::core::Result<super::Automation::ExpandCollapseState> {
        let this = &::windows::core::Interface::cast::<super::Automation::Provider::IExpandCollapseProvider>(self)?;
        unsafe {
            let mut result__: super::Automation::ExpandCollapseState = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ExpandCollapseState)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Automation::ExpandCollapseState>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Automation_Provider'*"]
    #[cfg(feature = "UI_Xaml_Automation_Provider")]
    pub fn Collapse(&self) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<super::Automation::Provider::IExpandCollapseProvider>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).Collapse)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Automation_Provider'*"]
    #[cfg(feature = "UI_Xaml_Automation_Provider")]
    pub fn Expand(&self) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<super::Automation::Provider::IExpandCollapseProvider>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).Expand)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Automation_Provider'*"]
    #[cfg(feature = "UI_Xaml_Automation_Provider")]
    pub fn Invoke(&self) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<super::Automation::Provider::IInvokeProvider>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).Invoke)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CreateInstance<'a, Param0: ::windows::core::IntoParam<'a, SplitButton>>(owner: Param0) -> ::windows::core::Result<SplitButtonAutomationPeer> {
        Self::ISplitButtonAutomationPeerFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), owner.into_param().abi(), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<SplitButtonAutomationPeer>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CreateInstance_compose<'a, Param0: ::windows::core::IntoParam<'a, SplitButton>, T: ::windows::core::Compose>(owner: Param0, compose: T) -> ::windows::core::Result<SplitButtonAutomationPeer> {
        Self::ISplitButtonAutomationPeerFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), owner.into_param().abi(), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<SplitButtonAutomationPeer>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ISplitButtonAutomationPeerFactory<R, F: FnOnce(&ISplitButtonAutomationPeerFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<SplitButtonAutomationPeer, ISplitButtonAutomationPeerFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for SplitButtonAutomationPeer {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for SplitButtonAutomationPeer {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for SplitButtonAutomationPeer {}
impl ::core::fmt::Debug for SplitButtonAutomationPeer {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SplitButtonAutomationPeer").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for SplitButtonAutomationPeer {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.SplitButtonAutomationPeer;{c46a58b8-3828-5c36-aa13-f79f02c12f34})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for SplitButtonAutomationPeer {
    type Vtable = ISplitButtonAutomationPeer_Vtbl;
    const IID: ::windows::core::GUID = <ISplitButtonAutomationPeer as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for SplitButtonAutomationPeer {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.SplitButtonAutomationPeer";
}
impl ::core::convert::From<SplitButtonAutomationPeer> for ::windows::core::IUnknown {
    fn from(value: SplitButtonAutomationPeer) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SplitButtonAutomationPeer> for ::windows::core::IUnknown {
    fn from(value: &SplitButtonAutomationPeer) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for SplitButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a SplitButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<SplitButtonAutomationPeer> for ::windows::core::IInspectable {
    fn from(value: SplitButtonAutomationPeer) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SplitButtonAutomationPeer> for ::windows::core::IInspectable {
    fn from(value: &SplitButtonAutomationPeer) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for SplitButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a SplitButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Xaml_Automation_Provider")]
impl ::core::convert::TryFrom<SplitButtonAutomationPeer> for super::Automation::Provider::IExpandCollapseProvider {
    type Error = ::windows::core::Error;
    fn try_from(value: SplitButtonAutomationPeer) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Provider")]
impl ::core::convert::TryFrom<&SplitButtonAutomationPeer> for super::Automation::Provider::IExpandCollapseProvider {
    type Error = ::windows::core::Error;
    fn try_from(value: &SplitButtonAutomationPeer) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Provider")]
impl<'a> ::windows::core::IntoParam<'a, super::Automation::Provider::IExpandCollapseProvider> for SplitButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::Automation::Provider::IExpandCollapseProvider> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Provider")]
impl<'a> ::windows::core::IntoParam<'a, super::Automation::Provider::IExpandCollapseProvider> for &SplitButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::Automation::Provider::IExpandCollapseProvider> {
        ::core::convert::TryInto::<super::Automation::Provider::IExpandCollapseProvider>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Provider")]
impl ::core::convert::TryFrom<SplitButtonAutomationPeer> for super::Automation::Provider::IInvokeProvider {
    type Error = ::windows::core::Error;
    fn try_from(value: SplitButtonAutomationPeer) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Provider")]
impl ::core::convert::TryFrom<&SplitButtonAutomationPeer> for super::Automation::Provider::IInvokeProvider {
    type Error = ::windows::core::Error;
    fn try_from(value: &SplitButtonAutomationPeer) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Provider")]
impl<'a> ::windows::core::IntoParam<'a, super::Automation::Provider::IInvokeProvider> for SplitButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::Automation::Provider::IInvokeProvider> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Provider")]
impl<'a> ::windows::core::IntoParam<'a, super::Automation::Provider::IInvokeProvider> for &SplitButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::Automation::Provider::IInvokeProvider> {
        ::core::convert::TryInto::<super::Automation::Provider::IInvokeProvider>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Peers")]
impl ::core::convert::From<SplitButtonAutomationPeer> for super::Automation::Peers::FrameworkElementAutomationPeer {
    fn from(value: SplitButtonAutomationPeer) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Peers")]
impl ::core::convert::From<&SplitButtonAutomationPeer> for super::Automation::Peers::FrameworkElementAutomationPeer {
    fn from(value: &SplitButtonAutomationPeer) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Automation_Peers")]
impl<'a> ::windows::core::IntoParam<'a, super::Automation::Peers::FrameworkElementAutomationPeer> for SplitButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::Automation::Peers::FrameworkElementAutomationPeer> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Peers")]
impl<'a> ::windows::core::IntoParam<'a, super::Automation::Peers::FrameworkElementAutomationPeer> for &SplitButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::Automation::Peers::FrameworkElementAutomationPeer> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::Automation::Peers::FrameworkElementAutomationPeer>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Automation_Peers")]
impl ::core::convert::From<SplitButtonAutomationPeer> for super::Automation::Peers::AutomationPeer {
    fn from(value: SplitButtonAutomationPeer) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Peers")]
impl ::core::convert::From<&SplitButtonAutomationPeer> for super::Automation::Peers::AutomationPeer {
    fn from(value: &SplitButtonAutomationPeer) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Automation_Peers")]
impl<'a> ::windows::core::IntoParam<'a, super::Automation::Peers::AutomationPeer> for SplitButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::Automation::Peers::AutomationPeer> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Peers")]
impl<'a> ::windows::core::IntoParam<'a, super::Automation::Peers::AutomationPeer> for &SplitButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::Automation::Peers::AutomationPeer> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::Automation::Peers::AutomationPeer>::into(self))
    }
}
impl ::core::convert::From<SplitButtonAutomationPeer> for super::DependencyObject {
    fn from(value: SplitButtonAutomationPeer) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SplitButtonAutomationPeer> for super::DependencyObject {
    fn from(value: &SplitButtonAutomationPeer) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for SplitButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &SplitButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for SplitButtonAutomationPeer {}
unsafe impl ::core::marker::Sync for SplitButtonAutomationPeer {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct SplitButtonClickEventArgs(::windows::core::IUnknown);
impl SplitButtonClickEventArgs {}
impl ::core::clone::Clone for SplitButtonClickEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for SplitButtonClickEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for SplitButtonClickEventArgs {}
impl ::core::fmt::Debug for SplitButtonClickEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SplitButtonClickEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for SplitButtonClickEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.SplitButtonClickEventArgs;{c227c2ca-26f4-5960-98d5-919149d1b525})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for SplitButtonClickEventArgs {
    type Vtable = ISplitButtonClickEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <ISplitButtonClickEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for SplitButtonClickEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.SplitButtonClickEventArgs";
}
impl ::core::convert::From<SplitButtonClickEventArgs> for ::windows::core::IUnknown {
    fn from(value: SplitButtonClickEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SplitButtonClickEventArgs> for ::windows::core::IUnknown {
    fn from(value: &SplitButtonClickEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for SplitButtonClickEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a SplitButtonClickEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<SplitButtonClickEventArgs> for ::windows::core::IInspectable {
    fn from(value: SplitButtonClickEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SplitButtonClickEventArgs> for ::windows::core::IInspectable {
    fn from(value: &SplitButtonClickEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for SplitButtonClickEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a SplitButtonClickEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for SplitButtonClickEventArgs {}
unsafe impl ::core::marker::Sync for SplitButtonClickEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct SplitView(::windows::core::IUnknown);
impl SplitView {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Content(&self) -> ::windows::core::Result<super::UIElement> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Content)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::UIElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetContent<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetContent)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Pane(&self) -> ::windows::core::Result<super::UIElement> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Pane)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::UIElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPane<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPane)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsPaneOpen(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsPaneOpen)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsPaneOpen(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsPaneOpen)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OpenPaneLength(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OpenPaneLength)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetOpenPaneLength(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetOpenPaneLength)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CompactPaneLength(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CompactPaneLength)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCompactPaneLength(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCompactPaneLength)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PanePlacement(&self) -> ::windows::core::Result<SplitViewPanePlacement> {
        let this = self;
        unsafe {
            let mut result__: SplitViewPanePlacement = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PanePlacement)(::core::mem::transmute_copy(this), &mut result__).from_abi::<SplitViewPanePlacement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPanePlacement(&self, value: SplitViewPanePlacement) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPanePlacement)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DisplayMode(&self) -> ::windows::core::Result<SplitViewDisplayMode> {
        let this = self;
        unsafe {
            let mut result__: SplitViewDisplayMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DisplayMode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<SplitViewDisplayMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDisplayMode(&self, value: SplitViewDisplayMode) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetDisplayMode)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn TemplateSettings(&self) -> ::windows::core::Result<Primitives::SplitViewTemplateSettings> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TemplateSettings)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::SplitViewTemplateSettings>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn PaneBackground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaneBackground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetPaneBackground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPaneBackground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn PaneClosing<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<SplitView, SplitViewPaneClosingEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaneClosing)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemovePaneClosing<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemovePaneClosing)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn PaneClosed<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<SplitView, ::windows::core::IInspectable>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaneClosed)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemovePaneClosed<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemovePaneClosed)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LightDismissOverlayMode(&self) -> ::windows::core::Result<LightDismissOverlayMode> {
        let this = &::windows::core::Interface::cast::<ISplitView2>(self)?;
        unsafe {
            let mut result__: LightDismissOverlayMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LightDismissOverlayMode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<LightDismissOverlayMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetLightDismissOverlayMode(&self, value: LightDismissOverlayMode) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ISplitView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetLightDismissOverlayMode)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn PaneOpening<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<SplitView, ::windows::core::IInspectable>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<ISplitView3>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaneOpening)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemovePaneOpening<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ISplitView3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemovePaneOpening)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn PaneOpened<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<SplitView, ::windows::core::IInspectable>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<ISplitView3>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaneOpened)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemovePaneOpened<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ISplitView3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemovePaneOpened)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<SplitView> {
        Self::ISplitViewFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<SplitView>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<SplitView> {
        Self::ISplitViewFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<SplitView>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISplitViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PaneProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISplitViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaneProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsPaneOpenProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISplitViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsPaneOpenProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OpenPaneLengthProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISplitViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OpenPaneLengthProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CompactPaneLengthProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISplitViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CompactPaneLengthProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PanePlacementProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISplitViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PanePlacementProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DisplayModeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISplitViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DisplayModeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TemplateSettingsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISplitViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TemplateSettingsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PaneBackgroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISplitViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaneBackgroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LightDismissOverlayModeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISplitViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LightDismissOverlayModeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ISplitViewFactory<R, F: FnOnce(&ISplitViewFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<SplitView, ISplitViewFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ISplitViewStatics<R, F: FnOnce(&ISplitViewStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<SplitView, ISplitViewStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ISplitViewStatics2<R, F: FnOnce(&ISplitViewStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<SplitView, ISplitViewStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for SplitView {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for SplitView {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for SplitView {}
impl ::core::fmt::Debug for SplitView {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SplitView").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for SplitView {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.SplitView;{97222f31-3844-429e-939c-1673155322a1})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for SplitView {
    type Vtable = ISplitView_Vtbl;
    const IID: ::windows::core::GUID = <ISplitView as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for SplitView {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.SplitView";
}
impl ::core::convert::From<SplitView> for ::windows::core::IUnknown {
    fn from(value: SplitView) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SplitView> for ::windows::core::IUnknown {
    fn from(value: &SplitView) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for SplitView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a SplitView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<SplitView> for ::windows::core::IInspectable {
    fn from(value: SplitView) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SplitView> for ::windows::core::IInspectable {
    fn from(value: &SplitView) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for SplitView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a SplitView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<SplitView> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: SplitView) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&SplitView> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &SplitView) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for SplitView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &SplitView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<SplitView> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: SplitView) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&SplitView> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &SplitView) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for SplitView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &SplitView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<SplitView> for Control {
    fn from(value: SplitView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SplitView> for Control {
    fn from(value: &SplitView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for SplitView {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &SplitView {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<SplitView> for super::FrameworkElement {
    fn from(value: SplitView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SplitView> for super::FrameworkElement {
    fn from(value: &SplitView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for SplitView {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &SplitView {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<SplitView> for super::UIElement {
    fn from(value: SplitView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SplitView> for super::UIElement {
    fn from(value: &SplitView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for SplitView {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &SplitView {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<SplitView> for super::DependencyObject {
    fn from(value: SplitView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SplitView> for super::DependencyObject {
    fn from(value: &SplitView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for SplitView {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &SplitView {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for SplitView {}
unsafe impl ::core::marker::Sync for SplitView {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct SplitViewDisplayMode(pub i32);
impl SplitViewDisplayMode {
    pub const Overlay: Self = Self(0i32);
    pub const Inline: Self = Self(1i32);
    pub const CompactOverlay: Self = Self(2i32);
    pub const CompactInline: Self = Self(3i32);
}
impl ::core::marker::Copy for SplitViewDisplayMode {}
impl ::core::clone::Clone for SplitViewDisplayMode {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for SplitViewDisplayMode {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for SplitViewDisplayMode {
    type Abi = Self;
}
impl ::core::fmt::Debug for SplitViewDisplayMode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SplitViewDisplayMode").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for SplitViewDisplayMode {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.SplitViewDisplayMode;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct SplitViewPaneClosingEventArgs(::windows::core::IUnknown);
impl SplitViewPaneClosingEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Cancel(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Cancel)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCancel(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCancel)(::core::mem::transmute_copy(this), value).ok() }
    }
}
impl ::core::clone::Clone for SplitViewPaneClosingEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for SplitViewPaneClosingEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for SplitViewPaneClosingEventArgs {}
impl ::core::fmt::Debug for SplitViewPaneClosingEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SplitViewPaneClosingEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for SplitViewPaneClosingEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.SplitViewPaneClosingEventArgs;{93cf494e-7a95-44d8-9562-1b348248da9f})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for SplitViewPaneClosingEventArgs {
    type Vtable = ISplitViewPaneClosingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <ISplitViewPaneClosingEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for SplitViewPaneClosingEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.SplitViewPaneClosingEventArgs";
}
impl ::core::convert::From<SplitViewPaneClosingEventArgs> for ::windows::core::IUnknown {
    fn from(value: SplitViewPaneClosingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SplitViewPaneClosingEventArgs> for ::windows::core::IUnknown {
    fn from(value: &SplitViewPaneClosingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for SplitViewPaneClosingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a SplitViewPaneClosingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<SplitViewPaneClosingEventArgs> for ::windows::core::IInspectable {
    fn from(value: SplitViewPaneClosingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SplitViewPaneClosingEventArgs> for ::windows::core::IInspectable {
    fn from(value: &SplitViewPaneClosingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for SplitViewPaneClosingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a SplitViewPaneClosingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for SplitViewPaneClosingEventArgs {}
unsafe impl ::core::marker::Sync for SplitViewPaneClosingEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct SplitViewPanePlacement(pub i32);
impl SplitViewPanePlacement {
    pub const Left: Self = Self(0i32);
    pub const Right: Self = Self(1i32);
}
impl ::core::marker::Copy for SplitViewPanePlacement {}
impl ::core::clone::Clone for SplitViewPanePlacement {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for SplitViewPanePlacement {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for SplitViewPanePlacement {
    type Abi = Self;
}
impl ::core::fmt::Debug for SplitViewPanePlacement {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SplitViewPanePlacement").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for SplitViewPanePlacement {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.SplitViewPanePlacement;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct StackPanel(::windows::core::IUnknown);
impl StackPanel {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn GetInsertionIndexes<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::Point>>(&self, position: Param0, first: &mut i32, second: &mut i32) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IInsertionPanel>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).GetInsertionIndexes)(::core::mem::transmute_copy(this), position.into_param().abi(), first, second).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn AreHorizontalSnapPointsRegular(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<Primitives::IScrollSnapPointsInfo>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AreHorizontalSnapPointsRegular)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn AreVerticalSnapPointsRegular(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<Primitives::IScrollSnapPointsInfo>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AreVerticalSnapPointsRegular)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Controls_Primitives"))]
    pub fn HorizontalSnapPointsChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventHandler<::windows::core::IInspectable>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<Primitives::IScrollSnapPointsInfo>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalSnapPointsChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Controls_Primitives"))]
    pub fn RemoveHorizontalSnapPointsChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<Primitives::IScrollSnapPointsInfo>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveHorizontalSnapPointsChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Controls_Primitives"))]
    pub fn VerticalSnapPointsChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventHandler<::windows::core::IInspectable>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<Primitives::IScrollSnapPointsInfo>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalSnapPointsChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Controls_Primitives"))]
    pub fn RemoveVerticalSnapPointsChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<Primitives::IScrollSnapPointsInfo>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveVerticalSnapPointsChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Controls_Primitives"))]
    pub fn GetIrregularSnapPoints(&self, orientation: Orientation, alignment: Primitives::SnapPointsAlignment) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVectorView<f32>> {
        let this = &::windows::core::Interface::cast::<Primitives::IScrollSnapPointsInfo>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetIrregularSnapPoints)(::core::mem::transmute_copy(this), orientation, alignment, &mut result__).from_abi::<super::super::super::Foundation::Collections::IVectorView<f32>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn GetRegularSnapPoints(&self, orientation: Orientation, alignment: Primitives::SnapPointsAlignment, offset: &mut f32) -> ::windows::core::Result<f32> {
        let this = &::windows::core::Interface::cast::<Primitives::IScrollSnapPointsInfo>(self)?;
        unsafe {
            let mut result__: f32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetRegularSnapPoints)(::core::mem::transmute_copy(this), orientation, alignment, offset, &mut result__).from_abi::<f32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AreScrollSnapPointsRegular(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AreScrollSnapPointsRegular)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetAreScrollSnapPointsRegular(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetAreScrollSnapPointsRegular)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Orientation(&self) -> ::windows::core::Result<Orientation> {
        let this = self;
        unsafe {
            let mut result__: Orientation = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Orientation)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Orientation>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetOrientation(&self, value: Orientation) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetOrientation)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn BorderBrush(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = &::windows::core::Interface::cast::<IStackPanel2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BorderBrush)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetBorderBrush<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IStackPanel2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetBorderBrush)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BorderThickness(&self) -> ::windows::core::Result<super::Thickness> {
        let this = &::windows::core::Interface::cast::<IStackPanel2>(self)?;
        unsafe {
            let mut result__: super::Thickness = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BorderThickness)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Thickness>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetBorderThickness<'a, Param0: ::windows::core::IntoParam<'a, super::Thickness>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IStackPanel2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetBorderThickness)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CornerRadius(&self) -> ::windows::core::Result<super::CornerRadius> {
        let this = &::windows::core::Interface::cast::<IStackPanel2>(self)?;
        unsafe {
            let mut result__: super::CornerRadius = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CornerRadius)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::CornerRadius>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCornerRadius<'a, Param0: ::windows::core::IntoParam<'a, super::CornerRadius>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IStackPanel2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetCornerRadius)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Padding(&self) -> ::windows::core::Result<super::Thickness> {
        let this = &::windows::core::Interface::cast::<IStackPanel2>(self)?;
        unsafe {
            let mut result__: super::Thickness = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Padding)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Thickness>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPadding<'a, Param0: ::windows::core::IntoParam<'a, super::Thickness>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IStackPanel2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetPadding)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Spacing(&self) -> ::windows::core::Result<f64> {
        let this = &::windows::core::Interface::cast::<IStackPanel4>(self)?;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Spacing)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSpacing(&self, value: f64) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IStackPanel4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetSpacing)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BackgroundSizing(&self) -> ::windows::core::Result<BackgroundSizing> {
        let this = &::windows::core::Interface::cast::<IStackPanel5>(self)?;
        unsafe {
            let mut result__: BackgroundSizing = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BackgroundSizing)(::core::mem::transmute_copy(this), &mut result__).from_abi::<BackgroundSizing>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetBackgroundSizing(&self, value: BackgroundSizing) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IStackPanel5>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetBackgroundSizing)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<StackPanel> {
        Self::IStackPanelFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<StackPanel>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<StackPanel> {
        Self::IStackPanelFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<StackPanel>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AreScrollSnapPointsRegularProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IStackPanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AreScrollSnapPointsRegularProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OrientationProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IStackPanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OrientationProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BorderBrushProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IStackPanelStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BorderBrushProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BorderThicknessProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IStackPanelStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BorderThicknessProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CornerRadiusProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IStackPanelStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CornerRadiusProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PaddingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IStackPanelStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaddingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SpacingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IStackPanelStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SpacingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BackgroundSizingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IStackPanelStatics5(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BackgroundSizingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IStackPanelFactory<R, F: FnOnce(&IStackPanelFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<StackPanel, IStackPanelFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IStackPanelStatics<R, F: FnOnce(&IStackPanelStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<StackPanel, IStackPanelStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IStackPanelStatics2<R, F: FnOnce(&IStackPanelStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<StackPanel, IStackPanelStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IStackPanelStatics4<R, F: FnOnce(&IStackPanelStatics4) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<StackPanel, IStackPanelStatics4> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IStackPanelStatics5<R, F: FnOnce(&IStackPanelStatics5) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<StackPanel, IStackPanelStatics5> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for StackPanel {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for StackPanel {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for StackPanel {}
impl ::core::fmt::Debug for StackPanel {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("StackPanel").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for StackPanel {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.StackPanel;{b8ae8fe2-d641-4fd7-80b4-7439207d2798})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for StackPanel {
    type Vtable = IStackPanel_Vtbl;
    const IID: ::windows::core::GUID = <IStackPanel as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for StackPanel {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.StackPanel";
}
impl ::core::convert::From<StackPanel> for ::windows::core::IUnknown {
    fn from(value: StackPanel) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&StackPanel> for ::windows::core::IUnknown {
    fn from(value: &StackPanel) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for StackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a StackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<StackPanel> for ::windows::core::IInspectable {
    fn from(value: StackPanel) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&StackPanel> for ::windows::core::IInspectable {
    fn from(value: &StackPanel) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for StackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a StackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<StackPanel> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: StackPanel) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&StackPanel> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &StackPanel) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for StackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &StackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::TryFrom<StackPanel> for IInsertionPanel {
    type Error = ::windows::core::Error;
    fn try_from(value: StackPanel) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
impl ::core::convert::TryFrom<&StackPanel> for IInsertionPanel {
    type Error = ::windows::core::Error;
    fn try_from(value: &StackPanel) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IInsertionPanel> for StackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, IInsertionPanel> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IInsertionPanel> for &StackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, IInsertionPanel> {
        ::core::convert::TryInto::<IInsertionPanel>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::TryFrom<StackPanel> for Primitives::IScrollSnapPointsInfo {
    type Error = ::windows::core::Error;
    fn try_from(value: StackPanel) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::TryFrom<&StackPanel> for Primitives::IScrollSnapPointsInfo {
    type Error = ::windows::core::Error;
    fn try_from(value: &StackPanel) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::IScrollSnapPointsInfo> for StackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::IScrollSnapPointsInfo> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::IScrollSnapPointsInfo> for &StackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::IScrollSnapPointsInfo> {
        ::core::convert::TryInto::<Primitives::IScrollSnapPointsInfo>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<StackPanel> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: StackPanel) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&StackPanel> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &StackPanel) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for StackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &StackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<StackPanel> for Panel {
    fn from(value: StackPanel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&StackPanel> for Panel {
    fn from(value: &StackPanel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Panel> for StackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, Panel> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Panel> for &StackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, Panel> {
        ::windows::core::Param::Owned(::core::convert::Into::<Panel>::into(self))
    }
}
impl ::core::convert::From<StackPanel> for super::FrameworkElement {
    fn from(value: StackPanel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&StackPanel> for super::FrameworkElement {
    fn from(value: &StackPanel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for StackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &StackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<StackPanel> for super::UIElement {
    fn from(value: StackPanel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&StackPanel> for super::UIElement {
    fn from(value: &StackPanel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for StackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &StackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<StackPanel> for super::DependencyObject {
    fn from(value: StackPanel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&StackPanel> for super::DependencyObject {
    fn from(value: &StackPanel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for StackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &StackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for StackPanel {}
unsafe impl ::core::marker::Sync for StackPanel {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct StretchDirection(pub i32);
impl StretchDirection {
    pub const UpOnly: Self = Self(0i32);
    pub const DownOnly: Self = Self(1i32);
    pub const Both: Self = Self(2i32);
}
impl ::core::marker::Copy for StretchDirection {}
impl ::core::clone::Clone for StretchDirection {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for StretchDirection {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for StretchDirection {
    type Abi = Self;
}
impl ::core::fmt::Debug for StretchDirection {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("StretchDirection").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for StretchDirection {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.StretchDirection;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct StyleSelector(::windows::core::IUnknown);
impl StyleSelector {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectStyle<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>, Param1: ::windows::core::IntoParam<'a, super::DependencyObject>>(&self, item: Param0, container: Param1) -> ::windows::core::Result<super::Style> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectStyle)(::core::mem::transmute_copy(this), item.into_param().abi(), container.into_param().abi(), &mut result__).from_abi::<super::Style>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<StyleSelector> {
        Self::IStyleSelectorFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<StyleSelector>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<StyleSelector> {
        Self::IStyleSelectorFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<StyleSelector>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IStyleSelectorFactory<R, F: FnOnce(&IStyleSelectorFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<StyleSelector, IStyleSelectorFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for StyleSelector {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for StyleSelector {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for StyleSelector {}
impl ::core::fmt::Debug for StyleSelector {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("StyleSelector").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for StyleSelector {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.StyleSelector;{d1113f67-d8c1-4ae4-98f0-d8504502f08b})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for StyleSelector {
    type Vtable = IStyleSelector_Vtbl;
    const IID: ::windows::core::GUID = <IStyleSelector as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for StyleSelector {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.StyleSelector";
}
impl ::core::convert::From<StyleSelector> for ::windows::core::IUnknown {
    fn from(value: StyleSelector) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&StyleSelector> for ::windows::core::IUnknown {
    fn from(value: &StyleSelector) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for StyleSelector {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a StyleSelector {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<StyleSelector> for ::windows::core::IInspectable {
    fn from(value: StyleSelector) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&StyleSelector> for ::windows::core::IInspectable {
    fn from(value: &StyleSelector) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for StyleSelector {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a StyleSelector {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for StyleSelector {}
unsafe impl ::core::marker::Sync for StyleSelector {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct SwapChainBackgroundPanel(::windows::core::IUnknown);
impl SwapChainBackgroundPanel {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Core'*"]
    #[cfg(feature = "UI_Core")]
    pub fn CreateCoreIndependentInputSource(&self, devicetypes: super::super::Core::CoreInputDeviceTypes) -> ::windows::core::Result<super::super::Core::CoreIndependentInputSource> {
        let this = &::windows::core::Interface::cast::<ISwapChainBackgroundPanel2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateCoreIndependentInputSource)(::core::mem::transmute_copy(this), devicetypes, &mut result__).from_abi::<super::super::Core::CoreIndependentInputSource>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<SwapChainBackgroundPanel> {
        Self::ISwapChainBackgroundPanelFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<SwapChainBackgroundPanel>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<SwapChainBackgroundPanel> {
        Self::ISwapChainBackgroundPanelFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<SwapChainBackgroundPanel>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ISwapChainBackgroundPanelFactory<R, F: FnOnce(&ISwapChainBackgroundPanelFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<SwapChainBackgroundPanel, ISwapChainBackgroundPanelFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for SwapChainBackgroundPanel {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for SwapChainBackgroundPanel {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for SwapChainBackgroundPanel {}
impl ::core::fmt::Debug for SwapChainBackgroundPanel {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SwapChainBackgroundPanel").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for SwapChainBackgroundPanel {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.SwapChainBackgroundPanel;{1c59db48-8233-4c0c-bcf5-02a5fb35ae00})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for SwapChainBackgroundPanel {
    type Vtable = ISwapChainBackgroundPanel_Vtbl;
    const IID: ::windows::core::GUID = <ISwapChainBackgroundPanel as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for SwapChainBackgroundPanel {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.SwapChainBackgroundPanel";
}
impl ::core::convert::From<SwapChainBackgroundPanel> for ::windows::core::IUnknown {
    fn from(value: SwapChainBackgroundPanel) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SwapChainBackgroundPanel> for ::windows::core::IUnknown {
    fn from(value: &SwapChainBackgroundPanel) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for SwapChainBackgroundPanel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a SwapChainBackgroundPanel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<SwapChainBackgroundPanel> for ::windows::core::IInspectable {
    fn from(value: SwapChainBackgroundPanel) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SwapChainBackgroundPanel> for ::windows::core::IInspectable {
    fn from(value: &SwapChainBackgroundPanel) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for SwapChainBackgroundPanel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a SwapChainBackgroundPanel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<SwapChainBackgroundPanel> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: SwapChainBackgroundPanel) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&SwapChainBackgroundPanel> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &SwapChainBackgroundPanel) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for SwapChainBackgroundPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &SwapChainBackgroundPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<SwapChainBackgroundPanel> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: SwapChainBackgroundPanel) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&SwapChainBackgroundPanel> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &SwapChainBackgroundPanel) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for SwapChainBackgroundPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &SwapChainBackgroundPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<SwapChainBackgroundPanel> for Grid {
    fn from(value: SwapChainBackgroundPanel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SwapChainBackgroundPanel> for Grid {
    fn from(value: &SwapChainBackgroundPanel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Grid> for SwapChainBackgroundPanel {
    fn into_param(self) -> ::windows::core::Param<'a, Grid> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Grid> for &SwapChainBackgroundPanel {
    fn into_param(self) -> ::windows::core::Param<'a, Grid> {
        ::windows::core::Param::Owned(::core::convert::Into::<Grid>::into(self))
    }
}
impl ::core::convert::From<SwapChainBackgroundPanel> for Panel {
    fn from(value: SwapChainBackgroundPanel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SwapChainBackgroundPanel> for Panel {
    fn from(value: &SwapChainBackgroundPanel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Panel> for SwapChainBackgroundPanel {
    fn into_param(self) -> ::windows::core::Param<'a, Panel> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Panel> for &SwapChainBackgroundPanel {
    fn into_param(self) -> ::windows::core::Param<'a, Panel> {
        ::windows::core::Param::Owned(::core::convert::Into::<Panel>::into(self))
    }
}
impl ::core::convert::From<SwapChainBackgroundPanel> for super::FrameworkElement {
    fn from(value: SwapChainBackgroundPanel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SwapChainBackgroundPanel> for super::FrameworkElement {
    fn from(value: &SwapChainBackgroundPanel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for SwapChainBackgroundPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &SwapChainBackgroundPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<SwapChainBackgroundPanel> for super::UIElement {
    fn from(value: SwapChainBackgroundPanel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SwapChainBackgroundPanel> for super::UIElement {
    fn from(value: &SwapChainBackgroundPanel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for SwapChainBackgroundPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &SwapChainBackgroundPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<SwapChainBackgroundPanel> for super::DependencyObject {
    fn from(value: SwapChainBackgroundPanel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SwapChainBackgroundPanel> for super::DependencyObject {
    fn from(value: &SwapChainBackgroundPanel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for SwapChainBackgroundPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &SwapChainBackgroundPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for SwapChainBackgroundPanel {}
unsafe impl ::core::marker::Sync for SwapChainBackgroundPanel {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct SwapChainPanel(::windows::core::IUnknown);
impl SwapChainPanel {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CompositionScaleX(&self) -> ::windows::core::Result<f32> {
        let this = self;
        unsafe {
            let mut result__: f32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CompositionScaleX)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CompositionScaleY(&self) -> ::windows::core::Result<f32> {
        let this = self;
        unsafe {
            let mut result__: f32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CompositionScaleY)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn CompositionScaleChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<SwapChainPanel, ::windows::core::IInspectable>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CompositionScaleChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveCompositionScaleChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveCompositionScaleChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Core'*"]
    #[cfg(feature = "UI_Core")]
    pub fn CreateCoreIndependentInputSource(&self, devicetypes: super::super::Core::CoreInputDeviceTypes) -> ::windows::core::Result<super::super::Core::CoreIndependentInputSource> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateCoreIndependentInputSource)(::core::mem::transmute_copy(this), devicetypes, &mut result__).from_abi::<super::super::Core::CoreIndependentInputSource>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<SwapChainPanel> {
        Self::ISwapChainPanelFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<SwapChainPanel>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<SwapChainPanel> {
        Self::ISwapChainPanelFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<SwapChainPanel>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CompositionScaleXProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISwapChainPanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CompositionScaleXProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CompositionScaleYProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISwapChainPanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CompositionScaleYProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ISwapChainPanelFactory<R, F: FnOnce(&ISwapChainPanelFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<SwapChainPanel, ISwapChainPanelFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ISwapChainPanelStatics<R, F: FnOnce(&ISwapChainPanelStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<SwapChainPanel, ISwapChainPanelStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for SwapChainPanel {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for SwapChainPanel {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for SwapChainPanel {}
impl ::core::fmt::Debug for SwapChainPanel {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SwapChainPanel").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for SwapChainPanel {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.SwapChainPanel;{c589644f-eba8-427a-b75a-9f1f93a11ae9})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for SwapChainPanel {
    type Vtable = ISwapChainPanel_Vtbl;
    const IID: ::windows::core::GUID = <ISwapChainPanel as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for SwapChainPanel {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.SwapChainPanel";
}
impl ::core::convert::From<SwapChainPanel> for ::windows::core::IUnknown {
    fn from(value: SwapChainPanel) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SwapChainPanel> for ::windows::core::IUnknown {
    fn from(value: &SwapChainPanel) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for SwapChainPanel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a SwapChainPanel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<SwapChainPanel> for ::windows::core::IInspectable {
    fn from(value: SwapChainPanel) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SwapChainPanel> for ::windows::core::IInspectable {
    fn from(value: &SwapChainPanel) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for SwapChainPanel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a SwapChainPanel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<SwapChainPanel> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: SwapChainPanel) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&SwapChainPanel> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &SwapChainPanel) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for SwapChainPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &SwapChainPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<SwapChainPanel> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: SwapChainPanel) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&SwapChainPanel> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &SwapChainPanel) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for SwapChainPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &SwapChainPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<SwapChainPanel> for Grid {
    fn from(value: SwapChainPanel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SwapChainPanel> for Grid {
    fn from(value: &SwapChainPanel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Grid> for SwapChainPanel {
    fn into_param(self) -> ::windows::core::Param<'a, Grid> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Grid> for &SwapChainPanel {
    fn into_param(self) -> ::windows::core::Param<'a, Grid> {
        ::windows::core::Param::Owned(::core::convert::Into::<Grid>::into(self))
    }
}
impl ::core::convert::From<SwapChainPanel> for Panel {
    fn from(value: SwapChainPanel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SwapChainPanel> for Panel {
    fn from(value: &SwapChainPanel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Panel> for SwapChainPanel {
    fn into_param(self) -> ::windows::core::Param<'a, Panel> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Panel> for &SwapChainPanel {
    fn into_param(self) -> ::windows::core::Param<'a, Panel> {
        ::windows::core::Param::Owned(::core::convert::Into::<Panel>::into(self))
    }
}
impl ::core::convert::From<SwapChainPanel> for super::FrameworkElement {
    fn from(value: SwapChainPanel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SwapChainPanel> for super::FrameworkElement {
    fn from(value: &SwapChainPanel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for SwapChainPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &SwapChainPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<SwapChainPanel> for super::UIElement {
    fn from(value: SwapChainPanel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SwapChainPanel> for super::UIElement {
    fn from(value: &SwapChainPanel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for SwapChainPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &SwapChainPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<SwapChainPanel> for super::DependencyObject {
    fn from(value: SwapChainPanel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SwapChainPanel> for super::DependencyObject {
    fn from(value: &SwapChainPanel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for SwapChainPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &SwapChainPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for SwapChainPanel {}
unsafe impl ::core::marker::Sync for SwapChainPanel {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct SwipeBehaviorOnInvoked(pub i32);
impl SwipeBehaviorOnInvoked {
    pub const Auto: Self = Self(0i32);
    pub const Close: Self = Self(1i32);
    pub const RemainOpen: Self = Self(2i32);
}
impl ::core::marker::Copy for SwipeBehaviorOnInvoked {}
impl ::core::clone::Clone for SwipeBehaviorOnInvoked {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for SwipeBehaviorOnInvoked {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for SwipeBehaviorOnInvoked {
    type Abi = Self;
}
impl ::core::fmt::Debug for SwipeBehaviorOnInvoked {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SwipeBehaviorOnInvoked").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for SwipeBehaviorOnInvoked {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.SwipeBehaviorOnInvoked;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct SwipeControl(::windows::core::IUnknown);
impl SwipeControl {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LeftItems(&self) -> ::windows::core::Result<SwipeItems> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LeftItems)(::core::mem::transmute_copy(this), &mut result__).from_abi::<SwipeItems>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetLeftItems<'a, Param0: ::windows::core::IntoParam<'a, SwipeItems>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetLeftItems)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn RightItems(&self) -> ::windows::core::Result<SwipeItems> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).RightItems)(::core::mem::transmute_copy(this), &mut result__).from_abi::<SwipeItems>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetRightItems<'a, Param0: ::windows::core::IntoParam<'a, SwipeItems>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetRightItems)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TopItems(&self) -> ::windows::core::Result<SwipeItems> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TopItems)(::core::mem::transmute_copy(this), &mut result__).from_abi::<SwipeItems>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTopItems<'a, Param0: ::windows::core::IntoParam<'a, SwipeItems>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTopItems)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BottomItems(&self) -> ::windows::core::Result<SwipeItems> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BottomItems)(::core::mem::transmute_copy(this), &mut result__).from_abi::<SwipeItems>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetBottomItems<'a, Param0: ::windows::core::IntoParam<'a, SwipeItems>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetBottomItems)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Close(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Close)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<SwipeControl> {
        Self::ISwipeControlFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<SwipeControl>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<SwipeControl> {
        Self::ISwipeControlFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<SwipeControl>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LeftItemsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISwipeControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LeftItemsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn RightItemsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISwipeControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).RightItemsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TopItemsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISwipeControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TopItemsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BottomItemsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISwipeControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BottomItemsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ISwipeControlFactory<R, F: FnOnce(&ISwipeControlFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<SwipeControl, ISwipeControlFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ISwipeControlStatics<R, F: FnOnce(&ISwipeControlStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<SwipeControl, ISwipeControlStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for SwipeControl {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for SwipeControl {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for SwipeControl {}
impl ::core::fmt::Debug for SwipeControl {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SwipeControl").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for SwipeControl {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.SwipeControl;{9ee3d96f-6704-4823-aa15-1c143bc53cf7})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for SwipeControl {
    type Vtable = ISwipeControl_Vtbl;
    const IID: ::windows::core::GUID = <ISwipeControl as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for SwipeControl {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.SwipeControl";
}
impl ::core::convert::From<SwipeControl> for ::windows::core::IUnknown {
    fn from(value: SwipeControl) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SwipeControl> for ::windows::core::IUnknown {
    fn from(value: &SwipeControl) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for SwipeControl {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a SwipeControl {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<SwipeControl> for ::windows::core::IInspectable {
    fn from(value: SwipeControl) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SwipeControl> for ::windows::core::IInspectable {
    fn from(value: &SwipeControl) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for SwipeControl {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a SwipeControl {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<SwipeControl> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: SwipeControl) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&SwipeControl> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &SwipeControl) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for SwipeControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &SwipeControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<SwipeControl> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: SwipeControl) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&SwipeControl> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &SwipeControl) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for SwipeControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &SwipeControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<SwipeControl> for ContentControl {
    fn from(value: SwipeControl) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SwipeControl> for ContentControl {
    fn from(value: &SwipeControl) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for SwipeControl {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &SwipeControl {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<SwipeControl> for Control {
    fn from(value: SwipeControl) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SwipeControl> for Control {
    fn from(value: &SwipeControl) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for SwipeControl {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &SwipeControl {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<SwipeControl> for super::FrameworkElement {
    fn from(value: SwipeControl) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SwipeControl> for super::FrameworkElement {
    fn from(value: &SwipeControl) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for SwipeControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &SwipeControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<SwipeControl> for super::UIElement {
    fn from(value: SwipeControl) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SwipeControl> for super::UIElement {
    fn from(value: &SwipeControl) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for SwipeControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &SwipeControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<SwipeControl> for super::DependencyObject {
    fn from(value: SwipeControl) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SwipeControl> for super::DependencyObject {
    fn from(value: &SwipeControl) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for SwipeControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &SwipeControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for SwipeControl {}
unsafe impl ::core::marker::Sync for SwipeControl {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct SwipeItem(::windows::core::IUnknown);
impl SwipeItem {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Text(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Text)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetText<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetText)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IconSource(&self) -> ::windows::core::Result<IconSource> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IconSource)(::core::mem::transmute_copy(this), &mut result__).from_abi::<IconSource>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIconSource<'a, Param0: ::windows::core::IntoParam<'a, IconSource>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIconSource)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn Background(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Background)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetBackground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetBackground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn Foreground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Foreground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetForeground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetForeground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Input'*"]
    #[cfg(feature = "UI_Xaml_Input")]
    pub fn Command(&self) -> ::windows::core::Result<super::Input::ICommand> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Command)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Input::ICommand>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Input'*"]
    #[cfg(feature = "UI_Xaml_Input")]
    pub fn SetCommand<'a, Param0: ::windows::core::IntoParam<'a, super::Input::ICommand>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCommand)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CommandParameter(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CommandParameter)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCommandParameter<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCommandParameter)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BehaviorOnInvoked(&self) -> ::windows::core::Result<SwipeBehaviorOnInvoked> {
        let this = self;
        unsafe {
            let mut result__: SwipeBehaviorOnInvoked = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BehaviorOnInvoked)(::core::mem::transmute_copy(this), &mut result__).from_abi::<SwipeBehaviorOnInvoked>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetBehaviorOnInvoked(&self, value: SwipeBehaviorOnInvoked) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetBehaviorOnInvoked)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Invoked<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<SwipeItem, SwipeItemInvokedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Invoked)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveInvoked<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveInvoked)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<SwipeItem> {
        Self::ISwipeItemFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<SwipeItem>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<SwipeItem> {
        Self::ISwipeItemFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<SwipeItem>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IconSourceProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISwipeItemStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IconSourceProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISwipeItemStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BackgroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISwipeItemStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BackgroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ForegroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISwipeItemStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ForegroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CommandProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISwipeItemStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CommandProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CommandParameterProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISwipeItemStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CommandParameterProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BehaviorOnInvokedProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISwipeItemStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BehaviorOnInvokedProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ISwipeItemFactory<R, F: FnOnce(&ISwipeItemFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<SwipeItem, ISwipeItemFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ISwipeItemStatics<R, F: FnOnce(&ISwipeItemStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<SwipeItem, ISwipeItemStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for SwipeItem {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for SwipeItem {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for SwipeItem {}
impl ::core::fmt::Debug for SwipeItem {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SwipeItem").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for SwipeItem {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.SwipeItem;{836edadc-45c8-4a00-90a0-7107fa894a1b})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for SwipeItem {
    type Vtable = ISwipeItem_Vtbl;
    const IID: ::windows::core::GUID = <ISwipeItem as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for SwipeItem {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.SwipeItem";
}
impl ::core::convert::From<SwipeItem> for ::windows::core::IUnknown {
    fn from(value: SwipeItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SwipeItem> for ::windows::core::IUnknown {
    fn from(value: &SwipeItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for SwipeItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a SwipeItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<SwipeItem> for ::windows::core::IInspectable {
    fn from(value: SwipeItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SwipeItem> for ::windows::core::IInspectable {
    fn from(value: &SwipeItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for SwipeItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a SwipeItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<SwipeItem> for super::DependencyObject {
    fn from(value: SwipeItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SwipeItem> for super::DependencyObject {
    fn from(value: &SwipeItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for SwipeItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &SwipeItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for SwipeItem {}
unsafe impl ::core::marker::Sync for SwipeItem {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct SwipeItemInvokedEventArgs(::windows::core::IUnknown);
impl SwipeItemInvokedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SwipeControl(&self) -> ::windows::core::Result<SwipeControl> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SwipeControl)(::core::mem::transmute_copy(this), &mut result__).from_abi::<SwipeControl>(result__)
        }
    }
}
impl ::core::clone::Clone for SwipeItemInvokedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for SwipeItemInvokedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for SwipeItemInvokedEventArgs {}
impl ::core::fmt::Debug for SwipeItemInvokedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SwipeItemInvokedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for SwipeItemInvokedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.SwipeItemInvokedEventArgs;{c5b025f5-cb32-4733-8011-5d0d37f4550a})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for SwipeItemInvokedEventArgs {
    type Vtable = ISwipeItemInvokedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <ISwipeItemInvokedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for SwipeItemInvokedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.SwipeItemInvokedEventArgs";
}
impl ::core::convert::From<SwipeItemInvokedEventArgs> for ::windows::core::IUnknown {
    fn from(value: SwipeItemInvokedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SwipeItemInvokedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &SwipeItemInvokedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for SwipeItemInvokedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a SwipeItemInvokedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<SwipeItemInvokedEventArgs> for ::windows::core::IInspectable {
    fn from(value: SwipeItemInvokedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SwipeItemInvokedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &SwipeItemInvokedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for SwipeItemInvokedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a SwipeItemInvokedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for SwipeItemInvokedEventArgs {}
unsafe impl ::core::marker::Sync for SwipeItemInvokedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct SwipeItems(::windows::core::IUnknown);
impl SwipeItems {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn First(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IIterator<SwipeItem>> {
        let this = &::windows::core::Interface::cast::<super::super::super::Foundation::Collections::IIterable<SwipeItem>>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).First)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IIterator<SwipeItem>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Mode(&self) -> ::windows::core::Result<SwipeMode> {
        let this = self;
        unsafe {
            let mut result__: SwipeMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Mode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<SwipeMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMode(&self, value: SwipeMode) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMode)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<SwipeItems> {
        Self::ISwipeItemsFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<SwipeItems>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<SwipeItems> {
        Self::ISwipeItemsFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<SwipeItems>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ModeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISwipeItemsStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ModeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn GetAt(&self, index: u32) -> ::windows::core::Result<SwipeItem> {
        let this = &::windows::core::Interface::cast::<super::super::super::Foundation::Collections::IVector<SwipeItem>>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetAt)(::core::mem::transmute_copy(this), index, &mut result__).from_abi::<SwipeItem>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn Size(&self) -> ::windows::core::Result<u32> {
        let this = &::windows::core::Interface::cast::<super::super::super::Foundation::Collections::IVector<SwipeItem>>(self)?;
        unsafe {
            let mut result__: u32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Size)(::core::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn GetView(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVectorView<SwipeItem>> {
        let this = &::windows::core::Interface::cast::<super::super::super::Foundation::Collections::IVector<SwipeItem>>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetView)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVectorView<SwipeItem>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn IndexOf<'a, Param0: ::windows::core::IntoParam<'a, SwipeItem>>(&self, value: Param0, index: &mut u32) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<super::super::super::Foundation::Collections::IVector<SwipeItem>>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IndexOf)(::core::mem::transmute_copy(this), value.into_param().abi(), index, &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn SetAt<'a, Param1: ::windows::core::IntoParam<'a, SwipeItem>>(&self, index: u32, value: Param1) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<super::super::super::Foundation::Collections::IVector<SwipeItem>>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetAt)(::core::mem::transmute_copy(this), index, value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn InsertAt<'a, Param1: ::windows::core::IntoParam<'a, SwipeItem>>(&self, index: u32, value: Param1) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<super::super::super::Foundation::Collections::IVector<SwipeItem>>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).InsertAt)(::core::mem::transmute_copy(this), index, value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn RemoveAt(&self, index: u32) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<super::super::super::Foundation::Collections::IVector<SwipeItem>>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveAt)(::core::mem::transmute_copy(this), index).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn Append<'a, Param0: ::windows::core::IntoParam<'a, SwipeItem>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<super::super::super::Foundation::Collections::IVector<SwipeItem>>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).Append)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn RemoveAtEnd(&self) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<super::super::super::Foundation::Collections::IVector<SwipeItem>>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveAtEnd)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn Clear(&self) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<super::super::super::Foundation::Collections::IVector<SwipeItem>>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).Clear)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn GetMany(&self, startindex: u32, items: &mut [::core::option::Option<SwipeItem>]) -> ::windows::core::Result<u32> {
        let this = &::windows::core::Interface::cast::<super::super::super::Foundation::Collections::IVector<SwipeItem>>(self)?;
        unsafe {
            let mut result__: u32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetMany)(::core::mem::transmute_copy(this), startindex, items.len() as u32, ::core::mem::transmute_copy(&items), &mut result__).from_abi::<u32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn ReplaceAll(&self, items: &[::core::option::Option<SwipeItem>]) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<super::super::super::Foundation::Collections::IVector<SwipeItem>>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).ReplaceAll)(::core::mem::transmute_copy(this), items.len() as u32, ::core::mem::transmute(items.as_ptr())).ok() }
    }
    #[doc(hidden)]
    pub fn ISwipeItemsFactory<R, F: FnOnce(&ISwipeItemsFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<SwipeItems, ISwipeItemsFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ISwipeItemsStatics<R, F: FnOnce(&ISwipeItemsStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<SwipeItems, ISwipeItemsStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for SwipeItems {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for SwipeItems {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for SwipeItems {}
impl ::core::fmt::Debug for SwipeItems {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SwipeItems").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for SwipeItems {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.SwipeItems;{b01726ff-969a-40d0-9f04-76084ce6d7b7})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for SwipeItems {
    type Vtable = ISwipeItems_Vtbl;
    const IID: ::windows::core::GUID = <ISwipeItems as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for SwipeItems {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.SwipeItems";
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::iter::IntoIterator for SwipeItems {
    type Item = SwipeItem;
    type IntoIter = super::super::super::Foundation::Collections::VectorIterator<Self::Item>;
    fn into_iter(self) -> Self::IntoIter {
        ::core::iter::IntoIterator::into_iter(&self)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::iter::IntoIterator for &SwipeItems {
    type Item = SwipeItem;
    type IntoIter = super::super::super::Foundation::Collections::VectorIterator<Self::Item>;
    fn into_iter(self) -> Self::IntoIter {
        super::super::super::Foundation::Collections::VectorIterator::new(::core::convert::TryInto::try_into(self).ok())
    }
}
impl ::core::convert::From<SwipeItems> for ::windows::core::IUnknown {
    fn from(value: SwipeItems) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SwipeItems> for ::windows::core::IUnknown {
    fn from(value: &SwipeItems) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for SwipeItems {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a SwipeItems {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<SwipeItems> for ::windows::core::IInspectable {
    fn from(value: SwipeItems) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SwipeItems> for ::windows::core::IInspectable {
    fn from(value: &SwipeItems) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for SwipeItems {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a SwipeItems {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::TryFrom<SwipeItems> for super::super::super::Foundation::Collections::IIterable<SwipeItem> {
    type Error = ::windows::core::Error;
    fn try_from(value: SwipeItems) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::TryFrom<&SwipeItems> for super::super::super::Foundation::Collections::IIterable<SwipeItem> {
    type Error = ::windows::core::Error;
    fn try_from(value: &SwipeItems) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IIterable<SwipeItem>> for SwipeItems {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::super::Foundation::Collections::IIterable<SwipeItem>> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IIterable<SwipeItem>> for &SwipeItems {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::super::Foundation::Collections::IIterable<SwipeItem>> {
        ::core::convert::TryInto::<super::super::super::Foundation::Collections::IIterable<SwipeItem>>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::TryFrom<SwipeItems> for super::super::super::Foundation::Collections::IVector<SwipeItem> {
    type Error = ::windows::core::Error;
    fn try_from(value: SwipeItems) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::TryFrom<&SwipeItems> for super::super::super::Foundation::Collections::IVector<SwipeItem> {
    type Error = ::windows::core::Error;
    fn try_from(value: &SwipeItems) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IVector<SwipeItem>> for SwipeItems {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::super::Foundation::Collections::IVector<SwipeItem>> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IVector<SwipeItem>> for &SwipeItems {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::super::Foundation::Collections::IVector<SwipeItem>> {
        ::core::convert::TryInto::<super::super::super::Foundation::Collections::IVector<SwipeItem>>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<SwipeItems> for super::DependencyObject {
    fn from(value: SwipeItems) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SwipeItems> for super::DependencyObject {
    fn from(value: &SwipeItems) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for SwipeItems {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &SwipeItems {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for SwipeItems {}
unsafe impl ::core::marker::Sync for SwipeItems {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct SwipeMode(pub i32);
impl SwipeMode {
    pub const Reveal: Self = Self(0i32);
    pub const Execute: Self = Self(1i32);
}
impl ::core::marker::Copy for SwipeMode {}
impl ::core::clone::Clone for SwipeMode {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for SwipeMode {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for SwipeMode {
    type Abi = Self;
}
impl ::core::fmt::Debug for SwipeMode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SwipeMode").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for SwipeMode {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.SwipeMode;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct Symbol(pub i32);
impl Symbol {
    pub const Previous: Self = Self(57600i32);
    pub const Next: Self = Self(57601i32);
    pub const Play: Self = Self(57602i32);
    pub const Pause: Self = Self(57603i32);
    pub const Edit: Self = Self(57604i32);
    pub const Save: Self = Self(57605i32);
    pub const Clear: Self = Self(57606i32);
    pub const Delete: Self = Self(57607i32);
    pub const Remove: Self = Self(57608i32);
    pub const Add: Self = Self(57609i32);
    pub const Cancel: Self = Self(57610i32);
    pub const Accept: Self = Self(57611i32);
    pub const More: Self = Self(57612i32);
    pub const Redo: Self = Self(57613i32);
    pub const Undo: Self = Self(57614i32);
    pub const Home: Self = Self(57615i32);
    pub const Up: Self = Self(57616i32);
    pub const Forward: Self = Self(57617i32);
    pub const Back: Self = Self(57618i32);
    pub const Favorite: Self = Self(57619i32);
    pub const Camera: Self = Self(57620i32);
    pub const Setting: Self = Self(57621i32);
    pub const Video: Self = Self(57622i32);
    pub const Sync: Self = Self(57623i32);
    pub const Download: Self = Self(57624i32);
    pub const Mail: Self = Self(57625i32);
    pub const Find: Self = Self(57626i32);
    pub const Help: Self = Self(57627i32);
    pub const Upload: Self = Self(57628i32);
    pub const Emoji: Self = Self(57629i32);
    pub const TwoPage: Self = Self(57630i32);
    pub const LeaveChat: Self = Self(57631i32);
    pub const MailForward: Self = Self(57632i32);
    pub const Clock: Self = Self(57633i32);
    pub const Send: Self = Self(57634i32);
    pub const Crop: Self = Self(57635i32);
    pub const RotateCamera: Self = Self(57636i32);
    pub const People: Self = Self(57637i32);
    pub const OpenPane: Self = Self(57638i32);
    pub const ClosePane: Self = Self(57639i32);
    pub const World: Self = Self(57640i32);
    pub const Flag: Self = Self(57641i32);
    pub const PreviewLink: Self = Self(57642i32);
    pub const Globe: Self = Self(57643i32);
    pub const Trim: Self = Self(57644i32);
    pub const AttachCamera: Self = Self(57645i32);
    pub const ZoomIn: Self = Self(57646i32);
    pub const Bookmarks: Self = Self(57647i32);
    pub const Document: Self = Self(57648i32);
    pub const ProtectedDocument: Self = Self(57649i32);
    pub const Page: Self = Self(57650i32);
    pub const Bullets: Self = Self(57651i32);
    pub const Comment: Self = Self(57652i32);
    pub const MailFilled: Self = Self(57653i32);
    pub const ContactInfo: Self = Self(57654i32);
    pub const HangUp: Self = Self(57655i32);
    pub const ViewAll: Self = Self(57656i32);
    pub const MapPin: Self = Self(57657i32);
    pub const Phone: Self = Self(57658i32);
    pub const VideoChat: Self = Self(57659i32);
    pub const Switch: Self = Self(57660i32);
    pub const Contact: Self = Self(57661i32);
    pub const Rename: Self = Self(57662i32);
    pub const Pin: Self = Self(57665i32);
    pub const MusicInfo: Self = Self(57666i32);
    pub const Go: Self = Self(57667i32);
    pub const Keyboard: Self = Self(57668i32);
    pub const DockLeft: Self = Self(57669i32);
    pub const DockRight: Self = Self(57670i32);
    pub const DockBottom: Self = Self(57671i32);
    pub const Remote: Self = Self(57672i32);
    pub const Refresh: Self = Self(57673i32);
    pub const Rotate: Self = Self(57674i32);
    pub const Shuffle: Self = Self(57675i32);
    pub const List: Self = Self(57676i32);
    pub const Shop: Self = Self(57677i32);
    pub const SelectAll: Self = Self(57678i32);
    pub const Orientation: Self = Self(57679i32);
    pub const Import: Self = Self(57680i32);
    pub const ImportAll: Self = Self(57681i32);
    pub const BrowsePhotos: Self = Self(57685i32);
    pub const WebCam: Self = Self(57686i32);
    pub const Pictures: Self = Self(57688i32);
    pub const SaveLocal: Self = Self(57689i32);
    pub const Caption: Self = Self(57690i32);
    pub const Stop: Self = Self(57691i32);
    pub const ShowResults: Self = Self(57692i32);
    pub const Volume: Self = Self(57693i32);
    pub const Repair: Self = Self(57694i32);
    pub const Message: Self = Self(57695i32);
    pub const Page2: Self = Self(57696i32);
    pub const CalendarDay: Self = Self(57697i32);
    pub const CalendarWeek: Self = Self(57698i32);
    pub const Calendar: Self = Self(57699i32);
    pub const Character: Self = Self(57700i32);
    pub const MailReplyAll: Self = Self(57701i32);
    pub const Read: Self = Self(57702i32);
    pub const Link: Self = Self(57703i32);
    pub const Account: Self = Self(57704i32);
    pub const ShowBcc: Self = Self(57705i32);
    pub const HideBcc: Self = Self(57706i32);
    pub const Cut: Self = Self(57707i32);
    pub const Attach: Self = Self(57708i32);
    pub const Paste: Self = Self(57709i32);
    pub const Filter: Self = Self(57710i32);
    pub const Copy: Self = Self(57711i32);
    pub const Emoji2: Self = Self(57712i32);
    pub const Important: Self = Self(57713i32);
    pub const MailReply: Self = Self(57714i32);
    pub const SlideShow: Self = Self(57715i32);
    pub const Sort: Self = Self(57716i32);
    pub const Manage: Self = Self(57720i32);
    pub const AllApps: Self = Self(57721i32);
    pub const DisconnectDrive: Self = Self(57722i32);
    pub const MapDrive: Self = Self(57723i32);
    pub const NewWindow: Self = Self(57724i32);
    pub const OpenWith: Self = Self(57725i32);
    pub const ContactPresence: Self = Self(57729i32);
    pub const Priority: Self = Self(57730i32);
    pub const GoToToday: Self = Self(57732i32);
    pub const Font: Self = Self(57733i32);
    pub const FontColor: Self = Self(57734i32);
    pub const Contact2: Self = Self(57735i32);
    pub const Folder: Self = Self(57736i32);
    pub const Audio: Self = Self(57737i32);
    pub const Placeholder: Self = Self(57738i32);
    pub const View: Self = Self(57739i32);
    pub const SetLockScreen: Self = Self(57740i32);
    pub const SetTile: Self = Self(57741i32);
    pub const ClosedCaption: Self = Self(57744i32);
    pub const StopSlideShow: Self = Self(57745i32);
    pub const Permissions: Self = Self(57746i32);
    pub const Highlight: Self = Self(57747i32);
    pub const DisableUpdates: Self = Self(57748i32);
    pub const UnFavorite: Self = Self(57749i32);
    pub const UnPin: Self = Self(57750i32);
    pub const OpenLocal: Self = Self(57751i32);
    pub const Mute: Self = Self(57752i32);
    pub const Italic: Self = Self(57753i32);
    pub const Underline: Self = Self(57754i32);
    pub const Bold: Self = Self(57755i32);
    pub const MoveToFolder: Self = Self(57756i32);
    pub const LikeDislike: Self = Self(57757i32);
    pub const Dislike: Self = Self(57758i32);
    pub const Like: Self = Self(57759i32);
    pub const AlignRight: Self = Self(57760i32);
    pub const AlignCenter: Self = Self(57761i32);
    pub const AlignLeft: Self = Self(57762i32);
    pub const Zoom: Self = Self(57763i32);
    pub const ZoomOut: Self = Self(57764i32);
    pub const OpenFile: Self = Self(57765i32);
    pub const OtherUser: Self = Self(57766i32);
    pub const Admin: Self = Self(57767i32);
    pub const Street: Self = Self(57795i32);
    pub const Map: Self = Self(57796i32);
    pub const ClearSelection: Self = Self(57797i32);
    pub const FontDecrease: Self = Self(57798i32);
    pub const FontIncrease: Self = Self(57799i32);
    pub const FontSize: Self = Self(57800i32);
    pub const CellPhone: Self = Self(57801i32);
    pub const ReShare: Self = Self(57802i32);
    pub const Tag: Self = Self(57803i32);
    pub const RepeatOne: Self = Self(57804i32);
    pub const RepeatAll: Self = Self(57805i32);
    pub const OutlineStar: Self = Self(57806i32);
    pub const SolidStar: Self = Self(57807i32);
    pub const Calculator: Self = Self(57808i32);
    pub const Directions: Self = Self(57809i32);
    pub const Target: Self = Self(57810i32);
    pub const Library: Self = Self(57811i32);
    pub const PhoneBook: Self = Self(57812i32);
    pub const Memo: Self = Self(57813i32);
    pub const Microphone: Self = Self(57814i32);
    pub const PostUpdate: Self = Self(57815i32);
    pub const BackToWindow: Self = Self(57816i32);
    pub const FullScreen: Self = Self(57817i32);
    pub const NewFolder: Self = Self(57818i32);
    pub const CalendarReply: Self = Self(57819i32);
    pub const UnSyncFolder: Self = Self(57821i32);
    pub const ReportHacked: Self = Self(57822i32);
    pub const SyncFolder: Self = Self(57823i32);
    pub const BlockContact: Self = Self(57824i32);
    pub const SwitchApps: Self = Self(57825i32);
    pub const AddFriend: Self = Self(57826i32);
    pub const TouchPointer: Self = Self(57827i32);
    pub const GoToStart: Self = Self(57828i32);
    pub const ZeroBars: Self = Self(57829i32);
    pub const OneBar: Self = Self(57830i32);
    pub const TwoBars: Self = Self(57831i32);
    pub const ThreeBars: Self = Self(57832i32);
    pub const FourBars: Self = Self(57833i32);
    pub const Scan: Self = Self(58004i32);
    pub const Preview: Self = Self(58005i32);
    pub const GlobalNavigationButton: Self = Self(59136i32);
    pub const Share: Self = Self(59181i32);
    pub const Print: Self = Self(59209i32);
    pub const XboxOneConsole: Self = Self(59792i32);
}
impl ::core::marker::Copy for Symbol {}
impl ::core::clone::Clone for Symbol {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for Symbol {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for Symbol {
    type Abi = Self;
}
impl ::core::fmt::Debug for Symbol {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("Symbol").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for Symbol {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.Symbol;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct SymbolIcon(::windows::core::IUnknown);
impl SymbolIcon {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<SymbolIcon, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Symbol(&self) -> ::windows::core::Result<Symbol> {
        let this = self;
        unsafe {
            let mut result__: Symbol = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Symbol)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Symbol>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSymbol(&self, value: Symbol) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSymbol)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CreateInstanceWithSymbol(symbol: Symbol) -> ::windows::core::Result<SymbolIcon> {
        Self::ISymbolIconFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstanceWithSymbol)(::core::mem::transmute_copy(this), symbol, &mut result__).from_abi::<SymbolIcon>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SymbolProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISymbolIconStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SymbolProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ISymbolIconFactory<R, F: FnOnce(&ISymbolIconFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<SymbolIcon, ISymbolIconFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ISymbolIconStatics<R, F: FnOnce(&ISymbolIconStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<SymbolIcon, ISymbolIconStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for SymbolIcon {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for SymbolIcon {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for SymbolIcon {}
impl ::core::fmt::Debug for SymbolIcon {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SymbolIcon").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for SymbolIcon {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.SymbolIcon;{7a4774c9-a6a3-4b30-8ff1-9081d70e9a5c})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for SymbolIcon {
    type Vtable = ISymbolIcon_Vtbl;
    const IID: ::windows::core::GUID = <ISymbolIcon as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for SymbolIcon {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.SymbolIcon";
}
impl ::core::convert::From<SymbolIcon> for ::windows::core::IUnknown {
    fn from(value: SymbolIcon) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SymbolIcon> for ::windows::core::IUnknown {
    fn from(value: &SymbolIcon) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for SymbolIcon {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a SymbolIcon {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<SymbolIcon> for ::windows::core::IInspectable {
    fn from(value: SymbolIcon) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SymbolIcon> for ::windows::core::IInspectable {
    fn from(value: &SymbolIcon) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for SymbolIcon {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a SymbolIcon {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<SymbolIcon> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: SymbolIcon) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&SymbolIcon> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &SymbolIcon) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for SymbolIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &SymbolIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<SymbolIcon> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: SymbolIcon) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&SymbolIcon> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &SymbolIcon) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for SymbolIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &SymbolIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<SymbolIcon> for IconElement {
    fn from(value: SymbolIcon) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SymbolIcon> for IconElement {
    fn from(value: &SymbolIcon) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, IconElement> for SymbolIcon {
    fn into_param(self) -> ::windows::core::Param<'a, IconElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IconElement> for &SymbolIcon {
    fn into_param(self) -> ::windows::core::Param<'a, IconElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<IconElement>::into(self))
    }
}
impl ::core::convert::From<SymbolIcon> for super::FrameworkElement {
    fn from(value: SymbolIcon) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SymbolIcon> for super::FrameworkElement {
    fn from(value: &SymbolIcon) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for SymbolIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &SymbolIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<SymbolIcon> for super::UIElement {
    fn from(value: SymbolIcon) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SymbolIcon> for super::UIElement {
    fn from(value: &SymbolIcon) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for SymbolIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &SymbolIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<SymbolIcon> for super::DependencyObject {
    fn from(value: SymbolIcon) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SymbolIcon> for super::DependencyObject {
    fn from(value: &SymbolIcon) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for SymbolIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &SymbolIcon {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for SymbolIcon {}
unsafe impl ::core::marker::Sync for SymbolIcon {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct SymbolIconSource(::windows::core::IUnknown);
impl SymbolIconSource {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Symbol(&self) -> ::windows::core::Result<Symbol> {
        let this = self;
        unsafe {
            let mut result__: Symbol = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Symbol)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Symbol>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSymbol(&self, value: Symbol) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSymbol)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<SymbolIconSource> {
        Self::ISymbolIconSourceFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<SymbolIconSource>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<SymbolIconSource> {
        Self::ISymbolIconSourceFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<SymbolIconSource>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SymbolProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ISymbolIconSourceStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SymbolProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ISymbolIconSourceFactory<R, F: FnOnce(&ISymbolIconSourceFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<SymbolIconSource, ISymbolIconSourceFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ISymbolIconSourceStatics<R, F: FnOnce(&ISymbolIconSourceStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<SymbolIconSource, ISymbolIconSourceStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for SymbolIconSource {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for SymbolIconSource {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for SymbolIconSource {}
impl ::core::fmt::Debug for SymbolIconSource {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SymbolIconSource").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for SymbolIconSource {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.SymbolIconSource;{625d95a2-b6b1-408a-b289-eab2ecba62d8})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for SymbolIconSource {
    type Vtable = ISymbolIconSource_Vtbl;
    const IID: ::windows::core::GUID = <ISymbolIconSource as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for SymbolIconSource {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.SymbolIconSource";
}
impl ::core::convert::From<SymbolIconSource> for ::windows::core::IUnknown {
    fn from(value: SymbolIconSource) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SymbolIconSource> for ::windows::core::IUnknown {
    fn from(value: &SymbolIconSource) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for SymbolIconSource {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a SymbolIconSource {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<SymbolIconSource> for ::windows::core::IInspectable {
    fn from(value: SymbolIconSource) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&SymbolIconSource> for ::windows::core::IInspectable {
    fn from(value: &SymbolIconSource) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for SymbolIconSource {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a SymbolIconSource {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<SymbolIconSource> for IconSource {
    fn from(value: SymbolIconSource) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SymbolIconSource> for IconSource {
    fn from(value: &SymbolIconSource) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, IconSource> for SymbolIconSource {
    fn into_param(self) -> ::windows::core::Param<'a, IconSource> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IconSource> for &SymbolIconSource {
    fn into_param(self) -> ::windows::core::Param<'a, IconSource> {
        ::windows::core::Param::Owned(::core::convert::Into::<IconSource>::into(self))
    }
}
impl ::core::convert::From<SymbolIconSource> for super::DependencyObject {
    fn from(value: SymbolIconSource) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&SymbolIconSource> for super::DependencyObject {
    fn from(value: &SymbolIconSource) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for SymbolIconSource {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &SymbolIconSource {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for SymbolIconSource {}
unsafe impl ::core::marker::Sync for SymbolIconSource {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct TextBlock(::windows::core::IUnknown);
impl TextBlock {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TextBlock, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontSize(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontSize)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetFontSize(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFontSize)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn FontFamily(&self) -> ::windows::core::Result<super::Media::FontFamily> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontFamily)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::FontFamily>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetFontFamily<'a, Param0: ::windows::core::IntoParam<'a, super::Media::FontFamily>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFontFamily)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn FontWeight(&self) -> ::windows::core::Result<super::super::Text::FontWeight> {
        let this = self;
        unsafe {
            let mut result__: super::super::Text::FontWeight = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontWeight)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Text::FontWeight>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn SetFontWeight<'a, Param0: ::windows::core::IntoParam<'a, super::super::Text::FontWeight>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFontWeight)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn FontStyle(&self) -> ::windows::core::Result<super::super::Text::FontStyle> {
        let this = self;
        unsafe {
            let mut result__: super::super::Text::FontStyle = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontStyle)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Text::FontStyle>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn SetFontStyle(&self, value: super::super::Text::FontStyle) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFontStyle)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn FontStretch(&self) -> ::windows::core::Result<super::super::Text::FontStretch> {
        let this = self;
        unsafe {
            let mut result__: super::super::Text::FontStretch = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontStretch)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Text::FontStretch>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn SetFontStretch(&self, value: super::super::Text::FontStretch) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetFontStretch)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CharacterSpacing(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CharacterSpacing)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCharacterSpacing(&self, value: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCharacterSpacing)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn Foreground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Foreground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetForeground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetForeground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextWrapping(&self) -> ::windows::core::Result<super::TextWrapping> {
        let this = self;
        unsafe {
            let mut result__: super::TextWrapping = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextWrapping)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::TextWrapping>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTextWrapping(&self, value: super::TextWrapping) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTextWrapping)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextTrimming(&self) -> ::windows::core::Result<super::TextTrimming> {
        let this = self;
        unsafe {
            let mut result__: super::TextTrimming = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextTrimming)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::TextTrimming>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTextTrimming(&self, value: super::TextTrimming) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTextTrimming)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextAlignment(&self) -> ::windows::core::Result<super::TextAlignment> {
        let this = self;
        unsafe {
            let mut result__: super::TextAlignment = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextAlignment)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::TextAlignment>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTextAlignment(&self, value: super::TextAlignment) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTextAlignment)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Text(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Text)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetText<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetText)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'UI_Xaml_Documents'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Documents"))]
    pub fn Inlines(&self) -> ::windows::core::Result<super::Documents::InlineCollection> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Inlines)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Documents::InlineCollection>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Padding(&self) -> ::windows::core::Result<super::Thickness> {
        let this = self;
        unsafe {
            let mut result__: super::Thickness = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Padding)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Thickness>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPadding<'a, Param0: ::windows::core::IntoParam<'a, super::Thickness>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPadding)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LineHeight(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LineHeight)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetLineHeight(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetLineHeight)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LineStackingStrategy(&self) -> ::windows::core::Result<super::LineStackingStrategy> {
        let this = self;
        unsafe {
            let mut result__: super::LineStackingStrategy = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LineStackingStrategy)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::LineStackingStrategy>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetLineStackingStrategy(&self, value: super::LineStackingStrategy) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetLineStackingStrategy)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTextSelectionEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTextSelectionEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsTextSelectionEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsTextSelectionEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedText(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedText)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Documents'*"]
    #[cfg(feature = "UI_Xaml_Documents")]
    pub fn ContentStart(&self) -> ::windows::core::Result<super::Documents::TextPointer> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentStart)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Documents::TextPointer>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Documents'*"]
    #[cfg(feature = "UI_Xaml_Documents")]
    pub fn ContentEnd(&self) -> ::windows::core::Result<super::Documents::TextPointer> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentEnd)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Documents::TextPointer>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Documents'*"]
    #[cfg(feature = "UI_Xaml_Documents")]
    pub fn SelectionStart(&self) -> ::windows::core::Result<super::Documents::TextPointer> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionStart)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Documents::TextPointer>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Documents'*"]
    #[cfg(feature = "UI_Xaml_Documents")]
    pub fn SelectionEnd(&self) -> ::windows::core::Result<super::Documents::TextPointer> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionEnd)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Documents::TextPointer>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn BaselineOffset(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BaselineOffset)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SelectionChanged<'a, Param0: ::windows::core::IntoParam<'a, super::RoutedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveSelectionChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveSelectionChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ContextMenuOpening<'a, Param0: ::windows::core::IntoParam<'a, ContextMenuOpeningEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContextMenuOpening)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveContextMenuOpening<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveContextMenuOpening)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectAll(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SelectAll)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Documents'*"]
    #[cfg(feature = "UI_Xaml_Documents")]
    pub fn Select<'a, Param0: ::windows::core::IntoParam<'a, super::Documents::TextPointer>, Param1: ::windows::core::IntoParam<'a, super::Documents::TextPointer>>(&self, start: Param0, end: Param1) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Select)(::core::mem::transmute_copy(this), start.into_param().abi(), end.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Focus(&self, value: super::FocusState) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Focus)(::core::mem::transmute_copy(this), value, &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SelectionHighlightColor(&self) -> ::windows::core::Result<super::Media::SolidColorBrush> {
        let this = &::windows::core::Interface::cast::<ITextBlock2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionHighlightColor)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::SolidColorBrush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetSelectionHighlightColor<'a, Param0: ::windows::core::IntoParam<'a, super::Media::SolidColorBrush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBlock2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectionHighlightColor)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxLines(&self) -> ::windows::core::Result<i32> {
        let this = &::windows::core::Interface::cast::<ITextBlock2>(self)?;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxLines)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMaxLines(&self, value: i32) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBlock2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetMaxLines)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextLineBounds(&self) -> ::windows::core::Result<super::TextLineBounds> {
        let this = &::windows::core::Interface::cast::<ITextBlock2>(self)?;
        unsafe {
            let mut result__: super::TextLineBounds = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextLineBounds)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::TextLineBounds>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTextLineBounds(&self, value: super::TextLineBounds) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBlock2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetTextLineBounds)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OpticalMarginAlignment(&self) -> ::windows::core::Result<super::OpticalMarginAlignment> {
        let this = &::windows::core::Interface::cast::<ITextBlock2>(self)?;
        unsafe {
            let mut result__: super::OpticalMarginAlignment = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OpticalMarginAlignment)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::OpticalMarginAlignment>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetOpticalMarginAlignment(&self, value: super::OpticalMarginAlignment) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBlock2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetOpticalMarginAlignment)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsColorFontEnabled(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<ITextBlock2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsColorFontEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsColorFontEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBlock2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsColorFontEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextReadingOrder(&self) -> ::windows::core::Result<super::TextReadingOrder> {
        let this = &::windows::core::Interface::cast::<ITextBlock2>(self)?;
        unsafe {
            let mut result__: super::TextReadingOrder = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextReadingOrder)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::TextReadingOrder>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTextReadingOrder(&self, value: super::TextReadingOrder) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBlock2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetTextReadingOrder)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTextScaleFactorEnabled(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<ITextBlock3>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTextScaleFactorEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsTextScaleFactorEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBlock3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsTextScaleFactorEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Composition'*"]
    #[cfg(feature = "UI_Composition")]
    pub fn GetAlphaMask(&self) -> ::windows::core::Result<super::super::Composition::CompositionBrush> {
        let this = &::windows::core::Interface::cast::<ITextBlock4>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetAlphaMask)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Composition::CompositionBrush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn TextDecorations(&self) -> ::windows::core::Result<super::super::Text::TextDecorations> {
        let this = &::windows::core::Interface::cast::<ITextBlock5>(self)?;
        unsafe {
            let mut result__: super::super::Text::TextDecorations = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextDecorations)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Text::TextDecorations>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Text'*"]
    #[cfg(feature = "UI_Text")]
    pub fn SetTextDecorations(&self, value: super::super::Text::TextDecorations) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBlock5>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetTextDecorations)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTextTrimmed(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<ITextBlock6>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTextTrimmed)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalTextAlignment(&self) -> ::windows::core::Result<super::TextAlignment> {
        let this = &::windows::core::Interface::cast::<ITextBlock6>(self)?;
        unsafe {
            let mut result__: super::TextAlignment = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalTextAlignment)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::TextAlignment>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHorizontalTextAlignment(&self, value: super::TextAlignment) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBlock6>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetHorizontalTextAlignment)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'UI_Xaml_Documents'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Documents"))]
    pub fn TextHighlighters(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVector<super::Documents::TextHighlighter>> {
        let this = &::windows::core::Interface::cast::<ITextBlock6>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextHighlighters)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<super::Documents::TextHighlighter>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn IsTextTrimmedChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<TextBlock, IsTextTrimmedChangedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<ITextBlock6>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTextTrimmedChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveIsTextTrimmedChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBlock6>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveIsTextTrimmedChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn SelectionFlyout(&self) -> ::windows::core::Result<Primitives::FlyoutBase> {
        let this = &::windows::core::Interface::cast::<ITextBlock7>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionFlyout)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::FlyoutBase>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn SetSelectionFlyout<'a, Param0: ::windows::core::IntoParam<'a, Primitives::FlyoutBase>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBlock7>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectionFlyout)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CopySelectionToClipboard(&self) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBlock7>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).CopySelectionToClipboard)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontSizeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontSizeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontFamilyProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontFamilyProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontWeightProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontWeightProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontStyleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontStyleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn FontStretchProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FontStretchProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CharacterSpacingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CharacterSpacingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ForegroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ForegroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextWrappingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextWrappingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextTrimmingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextTrimmingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextAlignmentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextAlignmentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PaddingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PaddingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LineHeightProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LineHeightProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LineStackingStrategyProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LineStackingStrategyProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTextSelectionEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTextSelectionEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedTextProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBlockStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedTextProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionHighlightColorProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBlockStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionHighlightColorProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxLinesProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBlockStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxLinesProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextLineBoundsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBlockStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextLineBoundsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OpticalMarginAlignmentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBlockStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OpticalMarginAlignmentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsColorFontEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBlockStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsColorFontEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextReadingOrderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBlockStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextReadingOrderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTextScaleFactorEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBlockStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTextScaleFactorEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextDecorationsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBlockStatics5(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextDecorationsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTextTrimmedProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBlockStatics6(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTextTrimmedProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalTextAlignmentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBlockStatics6(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalTextAlignmentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionFlyoutProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBlockStatics7(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionFlyoutProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ITextBlockStatics<R, F: FnOnce(&ITextBlockStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TextBlock, ITextBlockStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ITextBlockStatics2<R, F: FnOnce(&ITextBlockStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TextBlock, ITextBlockStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ITextBlockStatics3<R, F: FnOnce(&ITextBlockStatics3) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TextBlock, ITextBlockStatics3> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ITextBlockStatics5<R, F: FnOnce(&ITextBlockStatics5) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TextBlock, ITextBlockStatics5> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ITextBlockStatics6<R, F: FnOnce(&ITextBlockStatics6) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TextBlock, ITextBlockStatics6> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ITextBlockStatics7<R, F: FnOnce(&ITextBlockStatics7) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TextBlock, ITextBlockStatics7> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for TextBlock {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for TextBlock {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for TextBlock {}
impl ::core::fmt::Debug for TextBlock {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TextBlock").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TextBlock {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.TextBlock;{ae2d9271-3b4a-45fc-8468-f7949548f4d5})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for TextBlock {
    type Vtable = ITextBlock_Vtbl;
    const IID: ::windows::core::GUID = <ITextBlock as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for TextBlock {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.TextBlock";
}
impl ::core::convert::From<TextBlock> for ::windows::core::IUnknown {
    fn from(value: TextBlock) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TextBlock> for ::windows::core::IUnknown {
    fn from(value: &TextBlock) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for TextBlock {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a TextBlock {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TextBlock> for ::windows::core::IInspectable {
    fn from(value: TextBlock) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TextBlock> for ::windows::core::IInspectable {
    fn from(value: &TextBlock) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for TextBlock {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a TextBlock {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<TextBlock> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: TextBlock) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&TextBlock> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &TextBlock) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for TextBlock {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &TextBlock {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<TextBlock> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: TextBlock) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&TextBlock> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &TextBlock) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for TextBlock {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &TextBlock {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<TextBlock> for super::FrameworkElement {
    fn from(value: TextBlock) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TextBlock> for super::FrameworkElement {
    fn from(value: &TextBlock) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for TextBlock {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &TextBlock {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<TextBlock> for super::UIElement {
    fn from(value: TextBlock) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TextBlock> for super::UIElement {
    fn from(value: &TextBlock) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for TextBlock {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &TextBlock {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<TextBlock> for super::DependencyObject {
    fn from(value: TextBlock) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TextBlock> for super::DependencyObject {
    fn from(value: &TextBlock) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for TextBlock {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &TextBlock {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for TextBlock {}
unsafe impl ::core::marker::Sync for TextBlock {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct TextBox(::windows::core::IUnknown);
impl TextBox {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Text(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Text)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetText<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetText)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedText(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedText)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSelectedText<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectedText)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionLength(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionLength)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSelectionLength(&self, value: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectionLength)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionStart(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionStart)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSelectionStart(&self, value: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectionStart)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxLength(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxLength)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMaxLength(&self, value: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMaxLength)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsReadOnly(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsReadOnly)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsReadOnly(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsReadOnly)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AcceptsReturn(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AcceptsReturn)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetAcceptsReturn(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetAcceptsReturn)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextAlignment(&self) -> ::windows::core::Result<super::TextAlignment> {
        let this = self;
        unsafe {
            let mut result__: super::TextAlignment = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextAlignment)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::TextAlignment>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTextAlignment(&self, value: super::TextAlignment) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTextAlignment)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextWrapping(&self) -> ::windows::core::Result<super::TextWrapping> {
        let this = self;
        unsafe {
            let mut result__: super::TextWrapping = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextWrapping)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::TextWrapping>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTextWrapping(&self, value: super::TextWrapping) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTextWrapping)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsSpellCheckEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsSpellCheckEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsSpellCheckEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsSpellCheckEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTextPredictionEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTextPredictionEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsTextPredictionEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsTextPredictionEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Input'*"]
    #[cfg(feature = "UI_Xaml_Input")]
    pub fn InputScope(&self) -> ::windows::core::Result<super::Input::InputScope> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).InputScope)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Input::InputScope>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Input'*"]
    #[cfg(feature = "UI_Xaml_Input")]
    pub fn SetInputScope<'a, Param0: ::windows::core::IntoParam<'a, super::Input::InputScope>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetInputScope)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn TextChanged<'a, Param0: ::windows::core::IntoParam<'a, TextChangedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveTextChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveTextChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SelectionChanged<'a, Param0: ::windows::core::IntoParam<'a, super::RoutedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveSelectionChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveSelectionChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ContextMenuOpening<'a, Param0: ::windows::core::IntoParam<'a, ContextMenuOpeningEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContextMenuOpening)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveContextMenuOpening<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveContextMenuOpening)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Select(&self, start: i32, length: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Select)(::core::mem::transmute_copy(this), start, length).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectAll(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SelectAll)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn GetRectFromCharacterIndex(&self, charindex: i32, trailingedge: bool) -> ::windows::core::Result<super::super::super::Foundation::Rect> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::Rect = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetRectFromCharacterIndex)(::core::mem::transmute_copy(this), charindex, trailingedge, &mut result__).from_abi::<super::super::super::Foundation::Rect>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Header(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = &::windows::core::Interface::cast::<ITextBox2>(self)?;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Header)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeader<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBox2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetHeader)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTemplate(&self) -> ::windows::core::Result<super::DataTemplate> {
        let this = &::windows::core::Interface::cast::<ITextBox2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTemplate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeaderTemplate<'a, Param0: ::windows::core::IntoParam<'a, super::DataTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBox2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetHeaderTemplate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PlaceholderText(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = &::windows::core::Interface::cast::<ITextBox2>(self)?;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlaceholderText)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPlaceholderText<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBox2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetPlaceholderText)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SelectionHighlightColor(&self) -> ::windows::core::Result<super::Media::SolidColorBrush> {
        let this = &::windows::core::Interface::cast::<ITextBox2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionHighlightColor)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::SolidColorBrush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetSelectionHighlightColor<'a, Param0: ::windows::core::IntoParam<'a, super::Media::SolidColorBrush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBox2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectionHighlightColor)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PreventKeyboardDisplayOnProgrammaticFocus(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<ITextBox2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PreventKeyboardDisplayOnProgrammaticFocus)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPreventKeyboardDisplayOnProgrammaticFocus(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBox2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetPreventKeyboardDisplayOnProgrammaticFocus)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsColorFontEnabled(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<ITextBox2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsColorFontEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsColorFontEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBox2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsColorFontEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Paste<'a, Param0: ::windows::core::IntoParam<'a, TextControlPasteEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<ITextBox2>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Paste)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemovePaste<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBox2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemovePaste)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn TextCompositionStarted<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<TextBox, TextCompositionStartedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<ITextBox3>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextCompositionStarted)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveTextCompositionStarted<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBox3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveTextCompositionStarted)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn TextCompositionChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<TextBox, TextCompositionChangedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<ITextBox3>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextCompositionChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveTextCompositionChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBox3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveTextCompositionChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn TextCompositionEnded<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<TextBox, TextCompositionEndedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<ITextBox3>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextCompositionEnded)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveTextCompositionEnded<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBox3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveTextCompositionEnded)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextReadingOrder(&self) -> ::windows::core::Result<super::TextReadingOrder> {
        let this = &::windows::core::Interface::cast::<ITextBox3>(self)?;
        unsafe {
            let mut result__: super::TextReadingOrder = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextReadingOrder)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::TextReadingOrder>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTextReadingOrder(&self, value: super::TextReadingOrder) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBox3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetTextReadingOrder)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DesiredCandidateWindowAlignment(&self) -> ::windows::core::Result<CandidateWindowAlignment> {
        let this = &::windows::core::Interface::cast::<ITextBox3>(self)?;
        unsafe {
            let mut result__: CandidateWindowAlignment = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DesiredCandidateWindowAlignment)(::core::mem::transmute_copy(this), &mut result__).from_abi::<CandidateWindowAlignment>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDesiredCandidateWindowAlignment(&self, value: CandidateWindowAlignment) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBox3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetDesiredCandidateWindowAlignment)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn CandidateWindowBoundsChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<TextBox, CandidateWindowBoundsChangedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<ITextBox3>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CandidateWindowBoundsChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveCandidateWindowBoundsChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBox3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveCandidateWindowBoundsChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn TextChanging<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<TextBox, TextBoxTextChangingEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<ITextBox3>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextChanging)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveTextChanging<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBox3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveTextChanging)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn GetLinguisticAlternativesAsync(&self) -> ::windows::core::Result<super::super::super::Foundation::IAsyncOperation<super::super::super::Foundation::Collections::IVectorView<::windows::core::HSTRING>>> {
        let this = &::windows::core::Interface::cast::<ITextBox4>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetLinguisticAlternativesAsync)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::IAsyncOperation<super::super::super::Foundation::Collections::IVectorView<::windows::core::HSTRING>>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SelectionHighlightColorWhenNotFocused(&self) -> ::windows::core::Result<super::Media::SolidColorBrush> {
        let this = &::windows::core::Interface::cast::<ITextBox5>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionHighlightColorWhenNotFocused)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::SolidColorBrush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetSelectionHighlightColorWhenNotFocused<'a, Param0: ::windows::core::IntoParam<'a, super::Media::SolidColorBrush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBox5>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectionHighlightColorWhenNotFocused)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalTextAlignment(&self) -> ::windows::core::Result<super::TextAlignment> {
        let this = &::windows::core::Interface::cast::<ITextBox6>(self)?;
        unsafe {
            let mut result__: super::TextAlignment = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalTextAlignment)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::TextAlignment>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHorizontalTextAlignment(&self, value: super::TextAlignment) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBox6>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetHorizontalTextAlignment)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CharacterCasing(&self) -> ::windows::core::Result<CharacterCasing> {
        let this = &::windows::core::Interface::cast::<ITextBox6>(self)?;
        unsafe {
            let mut result__: CharacterCasing = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CharacterCasing)(::core::mem::transmute_copy(this), &mut result__).from_abi::<CharacterCasing>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCharacterCasing(&self, value: CharacterCasing) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBox6>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetCharacterCasing)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn PlaceholderForeground(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = &::windows::core::Interface::cast::<ITextBox6>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlaceholderForeground)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetPlaceholderForeground<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBox6>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetPlaceholderForeground)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn CopyingToClipboard<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<TextBox, TextControlCopyingToClipboardEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<ITextBox6>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CopyingToClipboard)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveCopyingToClipboard<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBox6>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveCopyingToClipboard)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn CuttingToClipboard<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<TextBox, TextControlCuttingToClipboardEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<ITextBox6>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CuttingToClipboard)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveCuttingToClipboard<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBox6>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveCuttingToClipboard)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn BeforeTextChanging<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<TextBox, TextBoxBeforeTextChangingEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<ITextBox6>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BeforeTextChanging)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveBeforeTextChanging<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBox6>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveBeforeTextChanging)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HandwritingView(&self) -> ::windows::core::Result<HandwritingView> {
        let this = &::windows::core::Interface::cast::<ITextBox7>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HandwritingView)(::core::mem::transmute_copy(this), &mut result__).from_abi::<HandwritingView>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHandwritingView<'a, Param0: ::windows::core::IntoParam<'a, HandwritingView>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBox7>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetHandwritingView)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsHandwritingViewEnabled(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<ITextBox7>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsHandwritingViewEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsHandwritingViewEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBox7>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsHandwritingViewEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanPasteClipboardContent(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<ITextBox8>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanPasteClipboardContent)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanUndo(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<ITextBox8>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanUndo)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanRedo(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<ITextBox8>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanRedo)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn SelectionFlyout(&self) -> ::windows::core::Result<Primitives::FlyoutBase> {
        let this = &::windows::core::Interface::cast::<ITextBox8>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionFlyout)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::FlyoutBase>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn SetSelectionFlyout<'a, Param0: ::windows::core::IntoParam<'a, Primitives::FlyoutBase>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBox8>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectionFlyout)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn ProofingMenuFlyout(&self) -> ::windows::core::Result<Primitives::FlyoutBase> {
        let this = &::windows::core::Interface::cast::<ITextBox8>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ProofingMenuFlyout)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::FlyoutBase>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Description(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = &::windows::core::Interface::cast::<ITextBox8>(self)?;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Description)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDescription<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBox8>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetDescription)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SelectionChanging<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<TextBox, TextBoxSelectionChangingEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<ITextBox8>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionChanging)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveSelectionChanging<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBox8>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveSelectionChanging)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Undo(&self) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBox8>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).Undo)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Redo(&self) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBox8>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).Redo)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PasteFromClipboard(&self) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBox8>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).PasteFromClipboard)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CopySelectionToClipboard(&self) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBox8>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).CopySelectionToClipboard)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CutSelectionToClipboard(&self) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBox8>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).CutSelectionToClipboard)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ClearUndoRedoHistory(&self) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITextBox8>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).ClearUndoRedoHistory)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<TextBox> {
        Self::ITextBoxFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<TextBox>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<TextBox> {
        Self::ITextBoxFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<TextBox>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaxLengthProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaxLengthProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsReadOnlyProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsReadOnlyProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AcceptsReturnProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AcceptsReturnProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextAlignmentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextAlignmentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextWrappingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextWrappingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsSpellCheckEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsSpellCheckEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsTextPredictionEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsTextPredictionEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn InputScopeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBoxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).InputScopeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBoxStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTemplateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBoxStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTemplateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PlaceholderTextProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBoxStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlaceholderTextProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionHighlightColorProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBoxStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionHighlightColorProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PreventKeyboardDisplayOnProgrammaticFocusProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBoxStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PreventKeyboardDisplayOnProgrammaticFocusProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsColorFontEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBoxStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsColorFontEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DesiredCandidateWindowAlignmentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBoxStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DesiredCandidateWindowAlignmentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TextReadingOrderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBoxStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TextReadingOrderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionHighlightColorWhenNotFocusedProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBoxStatics5(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionHighlightColorWhenNotFocusedProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalTextAlignmentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBoxStatics6(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalTextAlignmentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CharacterCasingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBoxStatics6(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CharacterCasingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PlaceholderForegroundProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBoxStatics6(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlaceholderForegroundProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HandwritingViewProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBoxStatics7(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HandwritingViewProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsHandwritingViewEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBoxStatics7(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsHandwritingViewEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanPasteClipboardContentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBoxStatics8(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanPasteClipboardContentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanUndoProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBoxStatics8(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanUndoProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanRedoProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBoxStatics8(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanRedoProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionFlyoutProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBoxStatics8(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionFlyoutProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ProofingMenuFlyoutProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBoxStatics8(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ProofingMenuFlyoutProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DescriptionProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITextBoxStatics8(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DescriptionProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ITextBoxFactory<R, F: FnOnce(&ITextBoxFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TextBox, ITextBoxFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ITextBoxStatics<R, F: FnOnce(&ITextBoxStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TextBox, ITextBoxStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ITextBoxStatics2<R, F: FnOnce(&ITextBoxStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TextBox, ITextBoxStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ITextBoxStatics3<R, F: FnOnce(&ITextBoxStatics3) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TextBox, ITextBoxStatics3> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ITextBoxStatics5<R, F: FnOnce(&ITextBoxStatics5) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TextBox, ITextBoxStatics5> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ITextBoxStatics6<R, F: FnOnce(&ITextBoxStatics6) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TextBox, ITextBoxStatics6> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ITextBoxStatics7<R, F: FnOnce(&ITextBoxStatics7) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TextBox, ITextBoxStatics7> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ITextBoxStatics8<R, F: FnOnce(&ITextBoxStatics8) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TextBox, ITextBoxStatics8> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for TextBox {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for TextBox {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for TextBox {}
impl ::core::fmt::Debug for TextBox {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TextBox").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TextBox {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.TextBox;{e48f5a8b-1dff-4352-a1f4-e516514ec882})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for TextBox {
    type Vtable = ITextBox_Vtbl;
    const IID: ::windows::core::GUID = <ITextBox as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for TextBox {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.TextBox";
}
impl ::core::convert::From<TextBox> for ::windows::core::IUnknown {
    fn from(value: TextBox) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TextBox> for ::windows::core::IUnknown {
    fn from(value: &TextBox) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for TextBox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a TextBox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TextBox> for ::windows::core::IInspectable {
    fn from(value: TextBox) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TextBox> for ::windows::core::IInspectable {
    fn from(value: &TextBox) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for TextBox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a TextBox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<TextBox> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: TextBox) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&TextBox> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &TextBox) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for TextBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &TextBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<TextBox> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: TextBox) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&TextBox> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &TextBox) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for TextBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &TextBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<TextBox> for Control {
    fn from(value: TextBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TextBox> for Control {
    fn from(value: &TextBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for TextBox {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &TextBox {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<TextBox> for super::FrameworkElement {
    fn from(value: TextBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TextBox> for super::FrameworkElement {
    fn from(value: &TextBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for TextBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &TextBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<TextBox> for super::UIElement {
    fn from(value: TextBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TextBox> for super::UIElement {
    fn from(value: &TextBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for TextBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &TextBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<TextBox> for super::DependencyObject {
    fn from(value: TextBox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TextBox> for super::DependencyObject {
    fn from(value: &TextBox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for TextBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &TextBox {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for TextBox {}
unsafe impl ::core::marker::Sync for TextBox {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct TextBoxBeforeTextChangingEventArgs(::windows::core::IUnknown);
impl TextBoxBeforeTextChangingEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn NewText(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).NewText)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Cancel(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Cancel)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCancel(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCancel)(::core::mem::transmute_copy(this), value).ok() }
    }
}
impl ::core::clone::Clone for TextBoxBeforeTextChangingEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for TextBoxBeforeTextChangingEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for TextBoxBeforeTextChangingEventArgs {}
impl ::core::fmt::Debug for TextBoxBeforeTextChangingEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TextBoxBeforeTextChangingEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TextBoxBeforeTextChangingEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.TextBoxBeforeTextChangingEventArgs;{a5541db3-7784-4258-aa83-e4bedd727467})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for TextBoxBeforeTextChangingEventArgs {
    type Vtable = ITextBoxBeforeTextChangingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <ITextBoxBeforeTextChangingEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for TextBoxBeforeTextChangingEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.TextBoxBeforeTextChangingEventArgs";
}
impl ::core::convert::From<TextBoxBeforeTextChangingEventArgs> for ::windows::core::IUnknown {
    fn from(value: TextBoxBeforeTextChangingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TextBoxBeforeTextChangingEventArgs> for ::windows::core::IUnknown {
    fn from(value: &TextBoxBeforeTextChangingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for TextBoxBeforeTextChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a TextBoxBeforeTextChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TextBoxBeforeTextChangingEventArgs> for ::windows::core::IInspectable {
    fn from(value: TextBoxBeforeTextChangingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TextBoxBeforeTextChangingEventArgs> for ::windows::core::IInspectable {
    fn from(value: &TextBoxBeforeTextChangingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for TextBoxBeforeTextChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a TextBoxBeforeTextChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for TextBoxBeforeTextChangingEventArgs {}
unsafe impl ::core::marker::Sync for TextBoxBeforeTextChangingEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct TextBoxSelectionChangingEventArgs(::windows::core::IUnknown);
impl TextBoxSelectionChangingEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionStart(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionStart)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionLength(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionLength)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Cancel(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Cancel)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCancel(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCancel)(::core::mem::transmute_copy(this), value).ok() }
    }
}
impl ::core::clone::Clone for TextBoxSelectionChangingEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for TextBoxSelectionChangingEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for TextBoxSelectionChangingEventArgs {}
impl ::core::fmt::Debug for TextBoxSelectionChangingEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TextBoxSelectionChangingEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TextBoxSelectionChangingEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.TextBoxSelectionChangingEventArgs;{847a24dd-9abe-52df-a80a-0cce4b496632})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for TextBoxSelectionChangingEventArgs {
    type Vtable = ITextBoxSelectionChangingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <ITextBoxSelectionChangingEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for TextBoxSelectionChangingEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.TextBoxSelectionChangingEventArgs";
}
impl ::core::convert::From<TextBoxSelectionChangingEventArgs> for ::windows::core::IUnknown {
    fn from(value: TextBoxSelectionChangingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TextBoxSelectionChangingEventArgs> for ::windows::core::IUnknown {
    fn from(value: &TextBoxSelectionChangingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for TextBoxSelectionChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a TextBoxSelectionChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TextBoxSelectionChangingEventArgs> for ::windows::core::IInspectable {
    fn from(value: TextBoxSelectionChangingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TextBoxSelectionChangingEventArgs> for ::windows::core::IInspectable {
    fn from(value: &TextBoxSelectionChangingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for TextBoxSelectionChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a TextBoxSelectionChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for TextBoxSelectionChangingEventArgs {}
unsafe impl ::core::marker::Sync for TextBoxSelectionChangingEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct TextBoxTextChangingEventArgs(::windows::core::IUnknown);
impl TextBoxTextChangingEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsContentChanging(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<ITextBoxTextChangingEventArgs2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsContentChanging)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
}
impl ::core::clone::Clone for TextBoxTextChangingEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for TextBoxTextChangingEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for TextBoxTextChangingEventArgs {}
impl ::core::fmt::Debug for TextBoxTextChangingEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TextBoxTextChangingEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TextBoxTextChangingEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.TextBoxTextChangingEventArgs;{4e6a4b75-43dd-4e33-acbe-2d8796a17927})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for TextBoxTextChangingEventArgs {
    type Vtable = ITextBoxTextChangingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <ITextBoxTextChangingEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for TextBoxTextChangingEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.TextBoxTextChangingEventArgs";
}
impl ::core::convert::From<TextBoxTextChangingEventArgs> for ::windows::core::IUnknown {
    fn from(value: TextBoxTextChangingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TextBoxTextChangingEventArgs> for ::windows::core::IUnknown {
    fn from(value: &TextBoxTextChangingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for TextBoxTextChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a TextBoxTextChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TextBoxTextChangingEventArgs> for ::windows::core::IInspectable {
    fn from(value: TextBoxTextChangingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TextBoxTextChangingEventArgs> for ::windows::core::IInspectable {
    fn from(value: &TextBoxTextChangingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for TextBoxTextChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a TextBoxTextChangingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for TextBoxTextChangingEventArgs {}
unsafe impl ::core::marker::Sync for TextBoxTextChangingEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct TextChangedEventArgs(::windows::core::IUnknown);
impl TextChangedEventArgs {}
impl ::core::clone::Clone for TextChangedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for TextChangedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for TextChangedEventArgs {}
impl ::core::fmt::Debug for TextChangedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TextChangedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TextChangedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.TextChangedEventArgs;{4dd04f7d-7a11-4b2e-9933-577df39252b6})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for TextChangedEventArgs {
    type Vtable = ITextChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <ITextChangedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for TextChangedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.TextChangedEventArgs";
}
impl ::core::convert::From<TextChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: TextChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TextChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &TextChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for TextChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a TextChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TextChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: TextChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TextChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &TextChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for TextChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a TextChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TextChangedEventArgs> for super::RoutedEventArgs {
    fn from(value: TextChangedEventArgs) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TextChangedEventArgs> for super::RoutedEventArgs {
    fn from(value: &TextChangedEventArgs) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::RoutedEventArgs> for TextChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, super::RoutedEventArgs> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::RoutedEventArgs> for &TextChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, super::RoutedEventArgs> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::RoutedEventArgs>::into(self))
    }
}
unsafe impl ::core::marker::Send for TextChangedEventArgs {}
unsafe impl ::core::marker::Sync for TextChangedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct TextChangedEventHandler(pub ::windows::core::IUnknown);
impl TextChangedEventHandler {
    pub fn new<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<TextChangedEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static>(invoke: F) -> Self {
        let com = TextChangedEventHandlerBox::<F> { vtable: &TextChangedEventHandlerBox::<F>::VTABLE, count: ::windows::core::RefCount::new(1), invoke };
        unsafe { ::core::mem::transmute(::windows::core::alloc::boxed::Box::new(com)) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Invoke<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>, Param1: ::windows::core::IntoParam<'a, TextChangedEventArgs>>(&self, sender: Param0, e: Param1) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Invoke)(::core::mem::transmute_copy(this), sender.into_param().abi(), e.into_param().abi()).ok() }
    }
}
#[repr(C)]
struct TextChangedEventHandlerBox<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<TextChangedEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static> {
    vtable: *const TextChangedEventHandler_Vtbl,
    invoke: F,
    count: ::windows::core::RefCount,
}
impl<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<TextChangedEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static> TextChangedEventHandlerBox<F> {
    const VTABLE: TextChangedEventHandler_Vtbl = TextChangedEventHandler_Vtbl { base: ::windows::core::IUnknownVtbl { QueryInterface: Self::QueryInterface, AddRef: Self::AddRef, Release: Self::Release }, Invoke: Self::Invoke };
    unsafe extern "system" fn QueryInterface(this: ::windows::core::RawPtr, iid: &::windows::core::GUID, interface: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        *interface = if iid == &<TextChangedEventHandler as ::windows::core::Interface>::IID || iid == &<::windows::core::IUnknown as ::windows::core::Interface>::IID || iid == &<::windows::core::IAgileObject as ::windows::core::Interface>::IID { &mut (*this).vtable as *mut _ as _ } else { ::core::ptr::null_mut() };
        if (*interface).is_null() {
            ::windows::core::HRESULT(-2147467262)
        } else {
            (*this).count.add_ref();
            ::windows::core::HRESULT(0)
        }
    }
    unsafe extern "system" fn AddRef(this: ::windows::core::RawPtr) -> u32 {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        (*this).count.add_ref()
    }
    unsafe extern "system" fn Release(this: ::windows::core::RawPtr) -> u32 {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        let remaining = (*this).count.release();
        if remaining == 0 {
            ::windows::core::alloc::boxed::Box::from_raw(this);
        }
        remaining
    }
    unsafe extern "system" fn Invoke(this: *mut ::core::ffi::c_void, sender: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        ((*this).invoke)(::core::mem::transmute(&sender), ::core::mem::transmute(&e)).into()
    }
}
impl ::core::clone::Clone for TextChangedEventHandler {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for TextChangedEventHandler {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for TextChangedEventHandler {}
impl ::core::fmt::Debug for TextChangedEventHandler {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TextChangedEventHandler").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for TextChangedEventHandler {
    type Vtable = TextChangedEventHandler_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8eb35b97_ad87_40e8_818b_77db24759566);
}
unsafe impl ::windows::core::RuntimeType for TextChangedEventHandler {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"{8eb35b97-ad87-40e8-818b-77db24759566}");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
#[repr(C)]
#[doc(hidden)]
pub struct TextChangedEventHandler_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    pub Invoke: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sender: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct TextCommandBarFlyout(::windows::core::IUnknown);
impl TextCommandBarFlyout {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<TextCommandBarFlyout> {
        Self::ITextCommandBarFlyoutFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<TextCommandBarFlyout>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<TextCommandBarFlyout> {
        Self::ITextCommandBarFlyoutFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<TextCommandBarFlyout>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ITextCommandBarFlyoutFactory<R, F: FnOnce(&ITextCommandBarFlyoutFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TextCommandBarFlyout, ITextCommandBarFlyoutFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for TextCommandBarFlyout {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for TextCommandBarFlyout {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for TextCommandBarFlyout {}
impl ::core::fmt::Debug for TextCommandBarFlyout {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TextCommandBarFlyout").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TextCommandBarFlyout {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.TextCommandBarFlyout;{90384f66-cd3d-5325-8f40-59b076463c40})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for TextCommandBarFlyout {
    type Vtable = ITextCommandBarFlyout_Vtbl;
    const IID: ::windows::core::GUID = <ITextCommandBarFlyout as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for TextCommandBarFlyout {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.TextCommandBarFlyout";
}
impl ::core::convert::From<TextCommandBarFlyout> for ::windows::core::IUnknown {
    fn from(value: TextCommandBarFlyout) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TextCommandBarFlyout> for ::windows::core::IUnknown {
    fn from(value: &TextCommandBarFlyout) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for TextCommandBarFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a TextCommandBarFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TextCommandBarFlyout> for ::windows::core::IInspectable {
    fn from(value: TextCommandBarFlyout) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TextCommandBarFlyout> for ::windows::core::IInspectable {
    fn from(value: &TextCommandBarFlyout) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for TextCommandBarFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a TextCommandBarFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TextCommandBarFlyout> for CommandBarFlyout {
    fn from(value: TextCommandBarFlyout) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TextCommandBarFlyout> for CommandBarFlyout {
    fn from(value: &TextCommandBarFlyout) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, CommandBarFlyout> for TextCommandBarFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, CommandBarFlyout> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, CommandBarFlyout> for &TextCommandBarFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, CommandBarFlyout> {
        ::windows::core::Param::Owned(::core::convert::Into::<CommandBarFlyout>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<TextCommandBarFlyout> for Primitives::FlyoutBase {
    fn from(value: TextCommandBarFlyout) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&TextCommandBarFlyout> for Primitives::FlyoutBase {
    fn from(value: &TextCommandBarFlyout) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::FlyoutBase> for TextCommandBarFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::FlyoutBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::FlyoutBase> for &TextCommandBarFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::FlyoutBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::FlyoutBase>::into(self))
    }
}
impl ::core::convert::From<TextCommandBarFlyout> for super::DependencyObject {
    fn from(value: TextCommandBarFlyout) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TextCommandBarFlyout> for super::DependencyObject {
    fn from(value: &TextCommandBarFlyout) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for TextCommandBarFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &TextCommandBarFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for TextCommandBarFlyout {}
unsafe impl ::core::marker::Sync for TextCommandBarFlyout {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct TextCompositionChangedEventArgs(::windows::core::IUnknown);
impl TextCompositionChangedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn StartIndex(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).StartIndex)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Length(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Length)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
}
impl ::core::clone::Clone for TextCompositionChangedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for TextCompositionChangedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for TextCompositionChangedEventArgs {}
impl ::core::fmt::Debug for TextCompositionChangedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TextCompositionChangedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TextCompositionChangedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.TextCompositionChangedEventArgs;{b9c7e0f2-50b7-441d-990c-68553e2e056b})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for TextCompositionChangedEventArgs {
    type Vtable = ITextCompositionChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <ITextCompositionChangedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for TextCompositionChangedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.TextCompositionChangedEventArgs";
}
impl ::core::convert::From<TextCompositionChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: TextCompositionChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TextCompositionChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &TextCompositionChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for TextCompositionChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a TextCompositionChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TextCompositionChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: TextCompositionChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TextCompositionChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &TextCompositionChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for TextCompositionChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a TextCompositionChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for TextCompositionChangedEventArgs {}
unsafe impl ::core::marker::Sync for TextCompositionChangedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct TextCompositionEndedEventArgs(::windows::core::IUnknown);
impl TextCompositionEndedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn StartIndex(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).StartIndex)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Length(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Length)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
}
impl ::core::clone::Clone for TextCompositionEndedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for TextCompositionEndedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for TextCompositionEndedEventArgs {}
impl ::core::fmt::Debug for TextCompositionEndedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TextCompositionEndedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TextCompositionEndedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.TextCompositionEndedEventArgs;{46e34db2-77c0-4015-8eb4-92eefdfc5914})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for TextCompositionEndedEventArgs {
    type Vtable = ITextCompositionEndedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <ITextCompositionEndedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for TextCompositionEndedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.TextCompositionEndedEventArgs";
}
impl ::core::convert::From<TextCompositionEndedEventArgs> for ::windows::core::IUnknown {
    fn from(value: TextCompositionEndedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TextCompositionEndedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &TextCompositionEndedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for TextCompositionEndedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a TextCompositionEndedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TextCompositionEndedEventArgs> for ::windows::core::IInspectable {
    fn from(value: TextCompositionEndedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TextCompositionEndedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &TextCompositionEndedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for TextCompositionEndedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a TextCompositionEndedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for TextCompositionEndedEventArgs {}
unsafe impl ::core::marker::Sync for TextCompositionEndedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct TextCompositionStartedEventArgs(::windows::core::IUnknown);
impl TextCompositionStartedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn StartIndex(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).StartIndex)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Length(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Length)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
}
impl ::core::clone::Clone for TextCompositionStartedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for TextCompositionStartedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for TextCompositionStartedEventArgs {}
impl ::core::fmt::Debug for TextCompositionStartedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TextCompositionStartedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TextCompositionStartedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.TextCompositionStartedEventArgs;{df22abb2-10cf-491e-91e8-d3cd72d8a0d3})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for TextCompositionStartedEventArgs {
    type Vtable = ITextCompositionStartedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <ITextCompositionStartedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for TextCompositionStartedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.TextCompositionStartedEventArgs";
}
impl ::core::convert::From<TextCompositionStartedEventArgs> for ::windows::core::IUnknown {
    fn from(value: TextCompositionStartedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TextCompositionStartedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &TextCompositionStartedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for TextCompositionStartedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a TextCompositionStartedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TextCompositionStartedEventArgs> for ::windows::core::IInspectable {
    fn from(value: TextCompositionStartedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TextCompositionStartedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &TextCompositionStartedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for TextCompositionStartedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a TextCompositionStartedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for TextCompositionStartedEventArgs {}
unsafe impl ::core::marker::Sync for TextCompositionStartedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct TextControlCopyingToClipboardEventArgs(::windows::core::IUnknown);
impl TextControlCopyingToClipboardEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Handled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Handled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHandled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHandled)(::core::mem::transmute_copy(this), value).ok() }
    }
}
impl ::core::clone::Clone for TextControlCopyingToClipboardEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for TextControlCopyingToClipboardEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for TextControlCopyingToClipboardEventArgs {}
impl ::core::fmt::Debug for TextControlCopyingToClipboardEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TextControlCopyingToClipboardEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TextControlCopyingToClipboardEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.TextControlCopyingToClipboardEventArgs;{e405ef19-d0df-43da-ace6-16f9113868c3})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for TextControlCopyingToClipboardEventArgs {
    type Vtable = ITextControlCopyingToClipboardEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <ITextControlCopyingToClipboardEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for TextControlCopyingToClipboardEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.TextControlCopyingToClipboardEventArgs";
}
impl ::core::convert::From<TextControlCopyingToClipboardEventArgs> for ::windows::core::IUnknown {
    fn from(value: TextControlCopyingToClipboardEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TextControlCopyingToClipboardEventArgs> for ::windows::core::IUnknown {
    fn from(value: &TextControlCopyingToClipboardEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for TextControlCopyingToClipboardEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a TextControlCopyingToClipboardEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TextControlCopyingToClipboardEventArgs> for ::windows::core::IInspectable {
    fn from(value: TextControlCopyingToClipboardEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TextControlCopyingToClipboardEventArgs> for ::windows::core::IInspectable {
    fn from(value: &TextControlCopyingToClipboardEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for TextControlCopyingToClipboardEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a TextControlCopyingToClipboardEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for TextControlCopyingToClipboardEventArgs {}
unsafe impl ::core::marker::Sync for TextControlCopyingToClipboardEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct TextControlCuttingToClipboardEventArgs(::windows::core::IUnknown);
impl TextControlCuttingToClipboardEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Handled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Handled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHandled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHandled)(::core::mem::transmute_copy(this), value).ok() }
    }
}
impl ::core::clone::Clone for TextControlCuttingToClipboardEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for TextControlCuttingToClipboardEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for TextControlCuttingToClipboardEventArgs {}
impl ::core::fmt::Debug for TextControlCuttingToClipboardEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TextControlCuttingToClipboardEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TextControlCuttingToClipboardEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.TextControlCuttingToClipboardEventArgs;{5f894995-a58d-4cf3-b589-b5e500e06475})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for TextControlCuttingToClipboardEventArgs {
    type Vtable = ITextControlCuttingToClipboardEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <ITextControlCuttingToClipboardEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for TextControlCuttingToClipboardEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.TextControlCuttingToClipboardEventArgs";
}
impl ::core::convert::From<TextControlCuttingToClipboardEventArgs> for ::windows::core::IUnknown {
    fn from(value: TextControlCuttingToClipboardEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TextControlCuttingToClipboardEventArgs> for ::windows::core::IUnknown {
    fn from(value: &TextControlCuttingToClipboardEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for TextControlCuttingToClipboardEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a TextControlCuttingToClipboardEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TextControlCuttingToClipboardEventArgs> for ::windows::core::IInspectable {
    fn from(value: TextControlCuttingToClipboardEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TextControlCuttingToClipboardEventArgs> for ::windows::core::IInspectable {
    fn from(value: &TextControlCuttingToClipboardEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for TextControlCuttingToClipboardEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a TextControlCuttingToClipboardEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for TextControlCuttingToClipboardEventArgs {}
unsafe impl ::core::marker::Sync for TextControlCuttingToClipboardEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct TextControlPasteEventArgs(::windows::core::IUnknown);
impl TextControlPasteEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Handled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Handled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHandled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHandled)(::core::mem::transmute_copy(this), value).ok() }
    }
}
impl ::core::clone::Clone for TextControlPasteEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for TextControlPasteEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for TextControlPasteEventArgs {}
impl ::core::fmt::Debug for TextControlPasteEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TextControlPasteEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TextControlPasteEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.TextControlPasteEventArgs;{4bd1d625-221a-477e-bb2c-ad0c1ed125e7})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for TextControlPasteEventArgs {
    type Vtable = ITextControlPasteEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <ITextControlPasteEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for TextControlPasteEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.TextControlPasteEventArgs";
}
impl ::core::convert::From<TextControlPasteEventArgs> for ::windows::core::IUnknown {
    fn from(value: TextControlPasteEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TextControlPasteEventArgs> for ::windows::core::IUnknown {
    fn from(value: &TextControlPasteEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for TextControlPasteEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a TextControlPasteEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TextControlPasteEventArgs> for ::windows::core::IInspectable {
    fn from(value: TextControlPasteEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TextControlPasteEventArgs> for ::windows::core::IInspectable {
    fn from(value: &TextControlPasteEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for TextControlPasteEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a TextControlPasteEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for TextControlPasteEventArgs {}
unsafe impl ::core::marker::Sync for TextControlPasteEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct TextControlPasteEventHandler(pub ::windows::core::IUnknown);
impl TextControlPasteEventHandler {
    pub fn new<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<TextControlPasteEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static>(invoke: F) -> Self {
        let com = TextControlPasteEventHandlerBox::<F> { vtable: &TextControlPasteEventHandlerBox::<F>::VTABLE, count: ::windows::core::RefCount::new(1), invoke };
        unsafe { ::core::mem::transmute(::windows::core::alloc::boxed::Box::new(com)) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Invoke<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>, Param1: ::windows::core::IntoParam<'a, TextControlPasteEventArgs>>(&self, sender: Param0, e: Param1) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Invoke)(::core::mem::transmute_copy(this), sender.into_param().abi(), e.into_param().abi()).ok() }
    }
}
#[repr(C)]
struct TextControlPasteEventHandlerBox<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<TextControlPasteEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static> {
    vtable: *const TextControlPasteEventHandler_Vtbl,
    invoke: F,
    count: ::windows::core::RefCount,
}
impl<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<TextControlPasteEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static> TextControlPasteEventHandlerBox<F> {
    const VTABLE: TextControlPasteEventHandler_Vtbl = TextControlPasteEventHandler_Vtbl { base: ::windows::core::IUnknownVtbl { QueryInterface: Self::QueryInterface, AddRef: Self::AddRef, Release: Self::Release }, Invoke: Self::Invoke };
    unsafe extern "system" fn QueryInterface(this: ::windows::core::RawPtr, iid: &::windows::core::GUID, interface: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        *interface = if iid == &<TextControlPasteEventHandler as ::windows::core::Interface>::IID || iid == &<::windows::core::IUnknown as ::windows::core::Interface>::IID || iid == &<::windows::core::IAgileObject as ::windows::core::Interface>::IID { &mut (*this).vtable as *mut _ as _ } else { ::core::ptr::null_mut() };
        if (*interface).is_null() {
            ::windows::core::HRESULT(-2147467262)
        } else {
            (*this).count.add_ref();
            ::windows::core::HRESULT(0)
        }
    }
    unsafe extern "system" fn AddRef(this: ::windows::core::RawPtr) -> u32 {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        (*this).count.add_ref()
    }
    unsafe extern "system" fn Release(this: ::windows::core::RawPtr) -> u32 {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        let remaining = (*this).count.release();
        if remaining == 0 {
            ::windows::core::alloc::boxed::Box::from_raw(this);
        }
        remaining
    }
    unsafe extern "system" fn Invoke(this: *mut ::core::ffi::c_void, sender: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        ((*this).invoke)(::core::mem::transmute(&sender), ::core::mem::transmute(&e)).into()
    }
}
impl ::core::clone::Clone for TextControlPasteEventHandler {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for TextControlPasteEventHandler {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for TextControlPasteEventHandler {}
impl ::core::fmt::Debug for TextControlPasteEventHandler {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TextControlPasteEventHandler").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for TextControlPasteEventHandler {
    type Vtable = TextControlPasteEventHandler_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd56db359_6f77_4296_ab9c_794939444365);
}
unsafe impl ::windows::core::RuntimeType for TextControlPasteEventHandler {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"{d56db359-6f77-4296-ab9c-794939444365}");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
#[repr(C)]
#[doc(hidden)]
pub struct TextControlPasteEventHandler_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    pub Invoke: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sender: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct TimePickedEventArgs(::windows::core::IUnknown);
impl TimePickedEventArgs {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TimePickedEventArgs, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn OldTime(&self) -> ::windows::core::Result<super::super::super::Foundation::TimeSpan> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::TimeSpan = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OldTime)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::TimeSpan>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn NewTime(&self) -> ::windows::core::Result<super::super::super::Foundation::TimeSpan> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::TimeSpan = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).NewTime)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::TimeSpan>(result__)
        }
    }
}
impl ::core::clone::Clone for TimePickedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for TimePickedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for TimePickedEventArgs {}
impl ::core::fmt::Debug for TimePickedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TimePickedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TimePickedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.TimePickedEventArgs;{8ad3ff21-5f66-4785-b999-24fef39fb6db})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for TimePickedEventArgs {
    type Vtable = ITimePickedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <ITimePickedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for TimePickedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.TimePickedEventArgs";
}
impl ::core::convert::From<TimePickedEventArgs> for ::windows::core::IUnknown {
    fn from(value: TimePickedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TimePickedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &TimePickedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for TimePickedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a TimePickedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TimePickedEventArgs> for ::windows::core::IInspectable {
    fn from(value: TimePickedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TimePickedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &TimePickedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for TimePickedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a TimePickedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TimePickedEventArgs> for super::DependencyObject {
    fn from(value: TimePickedEventArgs) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TimePickedEventArgs> for super::DependencyObject {
    fn from(value: &TimePickedEventArgs) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for TimePickedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &TimePickedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for TimePickedEventArgs {}
unsafe impl ::core::marker::Sync for TimePickedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct TimePicker(::windows::core::IUnknown);
impl TimePicker {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Header(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Header)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeader<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHeader)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTemplate(&self) -> ::windows::core::Result<super::DataTemplate> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTemplate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeaderTemplate<'a, Param0: ::windows::core::IntoParam<'a, super::DataTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHeaderTemplate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ClockIdentifier(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ClockIdentifier)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetClockIdentifier<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetClockIdentifier)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MinuteIncrement(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MinuteIncrement)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMinuteIncrement(&self, value: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMinuteIncrement)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Time(&self) -> ::windows::core::Result<super::super::super::Foundation::TimeSpan> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::TimeSpan = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Time)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::TimeSpan>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SetTime<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TimeSpan>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTime)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn TimeChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventHandler<TimePickerValueChangedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TimeChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveTimeChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveTimeChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LightDismissOverlayMode(&self) -> ::windows::core::Result<LightDismissOverlayMode> {
        let this = &::windows::core::Interface::cast::<ITimePicker2>(self)?;
        unsafe {
            let mut result__: LightDismissOverlayMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LightDismissOverlayMode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<LightDismissOverlayMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetLightDismissOverlayMode(&self, value: LightDismissOverlayMode) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITimePicker2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetLightDismissOverlayMode)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SelectedTime(&self) -> ::windows::core::Result<super::super::super::Foundation::IReference<super::super::super::Foundation::TimeSpan>> {
        let this = &::windows::core::Interface::cast::<ITimePicker3>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedTime)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::IReference<super::super::super::Foundation::TimeSpan>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SetSelectedTime<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::IReference<super::super::super::Foundation::TimeSpan>>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITimePicker3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectedTime)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SelectedTimeChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<TimePicker, TimePickerSelectedValueChangedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<ITimePicker3>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedTimeChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveSelectedTimeChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITimePicker3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveSelectedTimeChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<TimePicker> {
        Self::ITimePickerFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<TimePicker>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<TimePicker> {
        Self::ITimePickerFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<TimePicker>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITimePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTemplateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITimePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTemplateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ClockIdentifierProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITimePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ClockIdentifierProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MinuteIncrementProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITimePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MinuteIncrementProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TimeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITimePickerStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TimeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn LightDismissOverlayModeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITimePickerStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LightDismissOverlayModeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectedTimeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITimePickerStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedTimeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ITimePickerFactory<R, F: FnOnce(&ITimePickerFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TimePicker, ITimePickerFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ITimePickerStatics<R, F: FnOnce(&ITimePickerStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TimePicker, ITimePickerStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ITimePickerStatics2<R, F: FnOnce(&ITimePickerStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TimePicker, ITimePickerStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ITimePickerStatics3<R, F: FnOnce(&ITimePickerStatics3) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TimePicker, ITimePickerStatics3> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for TimePicker {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for TimePicker {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for TimePicker {}
impl ::core::fmt::Debug for TimePicker {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TimePicker").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TimePicker {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.TimePicker;{e39099f2-3aff-4792-909e-2d9941ec0357})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for TimePicker {
    type Vtable = ITimePicker_Vtbl;
    const IID: ::windows::core::GUID = <ITimePicker as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for TimePicker {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.TimePicker";
}
impl ::core::convert::From<TimePicker> for ::windows::core::IUnknown {
    fn from(value: TimePicker) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TimePicker> for ::windows::core::IUnknown {
    fn from(value: &TimePicker) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for TimePicker {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a TimePicker {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TimePicker> for ::windows::core::IInspectable {
    fn from(value: TimePicker) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TimePicker> for ::windows::core::IInspectable {
    fn from(value: &TimePicker) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for TimePicker {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a TimePicker {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<TimePicker> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: TimePicker) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&TimePicker> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &TimePicker) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for TimePicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &TimePicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<TimePicker> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: TimePicker) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&TimePicker> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &TimePicker) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for TimePicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &TimePicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<TimePicker> for Control {
    fn from(value: TimePicker) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TimePicker> for Control {
    fn from(value: &TimePicker) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for TimePicker {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &TimePicker {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<TimePicker> for super::FrameworkElement {
    fn from(value: TimePicker) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TimePicker> for super::FrameworkElement {
    fn from(value: &TimePicker) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for TimePicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &TimePicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<TimePicker> for super::UIElement {
    fn from(value: TimePicker) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TimePicker> for super::UIElement {
    fn from(value: &TimePicker) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for TimePicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &TimePicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<TimePicker> for super::DependencyObject {
    fn from(value: TimePicker) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TimePicker> for super::DependencyObject {
    fn from(value: &TimePicker) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for TimePicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &TimePicker {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for TimePicker {}
unsafe impl ::core::marker::Sync for TimePicker {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct TimePickerFlyout(::windows::core::IUnknown);
impl TimePickerFlyout {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TimePickerFlyout, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ClockIdentifier(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ClockIdentifier)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetClockIdentifier<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetClockIdentifier)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Time(&self) -> ::windows::core::Result<super::super::super::Foundation::TimeSpan> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::TimeSpan = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Time)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::TimeSpan>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SetTime<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TimeSpan>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTime)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MinuteIncrement(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MinuteIncrement)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMinuteIncrement(&self, value: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMinuteIncrement)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn TimePicked<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<TimePickerFlyout, TimePickedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TimePicked)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveTimePicked<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveTimePicked)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ShowAtAsync<'a, Param0: ::windows::core::IntoParam<'a, super::FrameworkElement>>(&self, target: Param0) -> ::windows::core::Result<super::super::super::Foundation::IAsyncOperation<super::super::super::Foundation::IReference<super::super::super::Foundation::TimeSpan>>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ShowAtAsync)(::core::mem::transmute_copy(this), target.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::IAsyncOperation<super::super::super::Foundation::IReference<super::super::super::Foundation::TimeSpan>>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ClockIdentifierProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITimePickerFlyoutStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ClockIdentifierProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TimeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITimePickerFlyoutStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TimeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MinuteIncrementProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITimePickerFlyoutStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MinuteIncrementProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ITimePickerFlyoutStatics<R, F: FnOnce(&ITimePickerFlyoutStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TimePickerFlyout, ITimePickerFlyoutStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for TimePickerFlyout {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for TimePickerFlyout {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for TimePickerFlyout {}
impl ::core::fmt::Debug for TimePickerFlyout {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TimePickerFlyout").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TimePickerFlyout {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.TimePickerFlyout;{bb739d75-e836-439e-86d5-506d2d18e404})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for TimePickerFlyout {
    type Vtable = ITimePickerFlyout_Vtbl;
    const IID: ::windows::core::GUID = <ITimePickerFlyout as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for TimePickerFlyout {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.TimePickerFlyout";
}
impl ::core::convert::From<TimePickerFlyout> for ::windows::core::IUnknown {
    fn from(value: TimePickerFlyout) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TimePickerFlyout> for ::windows::core::IUnknown {
    fn from(value: &TimePickerFlyout) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for TimePickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a TimePickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TimePickerFlyout> for ::windows::core::IInspectable {
    fn from(value: TimePickerFlyout) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TimePickerFlyout> for ::windows::core::IInspectable {
    fn from(value: &TimePickerFlyout) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for TimePickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a TimePickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<TimePickerFlyout> for Primitives::PickerFlyoutBase {
    fn from(value: TimePickerFlyout) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&TimePickerFlyout> for Primitives::PickerFlyoutBase {
    fn from(value: &TimePickerFlyout) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::PickerFlyoutBase> for TimePickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::PickerFlyoutBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::PickerFlyoutBase> for &TimePickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::PickerFlyoutBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::PickerFlyoutBase>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<TimePickerFlyout> for Primitives::FlyoutBase {
    fn from(value: TimePickerFlyout) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&TimePickerFlyout> for Primitives::FlyoutBase {
    fn from(value: &TimePickerFlyout) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::FlyoutBase> for TimePickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::FlyoutBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::FlyoutBase> for &TimePickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::FlyoutBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::FlyoutBase>::into(self))
    }
}
impl ::core::convert::From<TimePickerFlyout> for super::DependencyObject {
    fn from(value: TimePickerFlyout) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TimePickerFlyout> for super::DependencyObject {
    fn from(value: &TimePickerFlyout) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for TimePickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &TimePickerFlyout {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for TimePickerFlyout {}
unsafe impl ::core::marker::Sync for TimePickerFlyout {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct TimePickerFlyoutPresenter(::windows::core::IUnknown);
impl TimePickerFlyoutPresenter {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsDefaultShadowEnabled(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<ITimePickerFlyoutPresenter2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsDefaultShadowEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsDefaultShadowEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITimePickerFlyoutPresenter2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetIsDefaultShadowEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsDefaultShadowEnabledProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITimePickerFlyoutPresenterStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsDefaultShadowEnabledProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ITimePickerFlyoutPresenterStatics2<R, F: FnOnce(&ITimePickerFlyoutPresenterStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TimePickerFlyoutPresenter, ITimePickerFlyoutPresenterStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for TimePickerFlyoutPresenter {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for TimePickerFlyoutPresenter {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for TimePickerFlyoutPresenter {}
impl ::core::fmt::Debug for TimePickerFlyoutPresenter {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TimePickerFlyoutPresenter").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TimePickerFlyoutPresenter {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.TimePickerFlyoutPresenter;{c5320638-7a18-40ed-9fd0-4c852c09b24e})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for TimePickerFlyoutPresenter {
    type Vtable = ITimePickerFlyoutPresenter_Vtbl;
    const IID: ::windows::core::GUID = <ITimePickerFlyoutPresenter as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for TimePickerFlyoutPresenter {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.TimePickerFlyoutPresenter";
}
impl ::core::convert::From<TimePickerFlyoutPresenter> for ::windows::core::IUnknown {
    fn from(value: TimePickerFlyoutPresenter) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TimePickerFlyoutPresenter> for ::windows::core::IUnknown {
    fn from(value: &TimePickerFlyoutPresenter) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for TimePickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a TimePickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TimePickerFlyoutPresenter> for ::windows::core::IInspectable {
    fn from(value: TimePickerFlyoutPresenter) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TimePickerFlyoutPresenter> for ::windows::core::IInspectable {
    fn from(value: &TimePickerFlyoutPresenter) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for TimePickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a TimePickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<TimePickerFlyoutPresenter> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: TimePickerFlyoutPresenter) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&TimePickerFlyoutPresenter> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &TimePickerFlyoutPresenter) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for TimePickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &TimePickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<TimePickerFlyoutPresenter> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: TimePickerFlyoutPresenter) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&TimePickerFlyoutPresenter> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &TimePickerFlyoutPresenter) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for TimePickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &TimePickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<TimePickerFlyoutPresenter> for Control {
    fn from(value: TimePickerFlyoutPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TimePickerFlyoutPresenter> for Control {
    fn from(value: &TimePickerFlyoutPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for TimePickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &TimePickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<TimePickerFlyoutPresenter> for super::FrameworkElement {
    fn from(value: TimePickerFlyoutPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TimePickerFlyoutPresenter> for super::FrameworkElement {
    fn from(value: &TimePickerFlyoutPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for TimePickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &TimePickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<TimePickerFlyoutPresenter> for super::UIElement {
    fn from(value: TimePickerFlyoutPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TimePickerFlyoutPresenter> for super::UIElement {
    fn from(value: &TimePickerFlyoutPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for TimePickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &TimePickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<TimePickerFlyoutPresenter> for super::DependencyObject {
    fn from(value: TimePickerFlyoutPresenter) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TimePickerFlyoutPresenter> for super::DependencyObject {
    fn from(value: &TimePickerFlyoutPresenter) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for TimePickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &TimePickerFlyoutPresenter {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for TimePickerFlyoutPresenter {}
unsafe impl ::core::marker::Sync for TimePickerFlyoutPresenter {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct TimePickerSelectedValueChangedEventArgs(::windows::core::IUnknown);
impl TimePickerSelectedValueChangedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn OldTime(&self) -> ::windows::core::Result<super::super::super::Foundation::IReference<super::super::super::Foundation::TimeSpan>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OldTime)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::IReference<super::super::super::Foundation::TimeSpan>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn NewTime(&self) -> ::windows::core::Result<super::super::super::Foundation::IReference<super::super::super::Foundation::TimeSpan>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).NewTime)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::IReference<super::super::super::Foundation::TimeSpan>>(result__)
        }
    }
}
impl ::core::clone::Clone for TimePickerSelectedValueChangedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for TimePickerSelectedValueChangedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for TimePickerSelectedValueChangedEventArgs {}
impl ::core::fmt::Debug for TimePickerSelectedValueChangedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TimePickerSelectedValueChangedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TimePickerSelectedValueChangedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.TimePickerSelectedValueChangedEventArgs;{6e20fb35-3b9b-5bb6-9888-266524db181e})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for TimePickerSelectedValueChangedEventArgs {
    type Vtable = ITimePickerSelectedValueChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <ITimePickerSelectedValueChangedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for TimePickerSelectedValueChangedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.TimePickerSelectedValueChangedEventArgs";
}
impl ::core::convert::From<TimePickerSelectedValueChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: TimePickerSelectedValueChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TimePickerSelectedValueChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &TimePickerSelectedValueChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for TimePickerSelectedValueChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a TimePickerSelectedValueChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TimePickerSelectedValueChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: TimePickerSelectedValueChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TimePickerSelectedValueChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &TimePickerSelectedValueChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for TimePickerSelectedValueChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a TimePickerSelectedValueChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for TimePickerSelectedValueChangedEventArgs {}
unsafe impl ::core::marker::Sync for TimePickerSelectedValueChangedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct TimePickerValueChangedEventArgs(::windows::core::IUnknown);
impl TimePickerValueChangedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn OldTime(&self) -> ::windows::core::Result<super::super::super::Foundation::TimeSpan> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::TimeSpan = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OldTime)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::TimeSpan>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn NewTime(&self) -> ::windows::core::Result<super::super::super::Foundation::TimeSpan> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::TimeSpan = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).NewTime)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::TimeSpan>(result__)
        }
    }
}
impl ::core::clone::Clone for TimePickerValueChangedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for TimePickerValueChangedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for TimePickerValueChangedEventArgs {}
impl ::core::fmt::Debug for TimePickerValueChangedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TimePickerValueChangedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TimePickerValueChangedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.TimePickerValueChangedEventArgs;{2f4edb8d-b995-4e31-8ba9-c4dcdeb21ca3})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for TimePickerValueChangedEventArgs {
    type Vtable = ITimePickerValueChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <ITimePickerValueChangedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for TimePickerValueChangedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.TimePickerValueChangedEventArgs";
}
impl ::core::convert::From<TimePickerValueChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: TimePickerValueChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TimePickerValueChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &TimePickerValueChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for TimePickerValueChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a TimePickerValueChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TimePickerValueChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: TimePickerValueChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TimePickerValueChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &TimePickerValueChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for TimePickerValueChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a TimePickerValueChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for TimePickerValueChangedEventArgs {}
unsafe impl ::core::marker::Sync for TimePickerValueChangedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ToggleMenuFlyoutItem(::windows::core::IUnknown);
impl ToggleMenuFlyoutItem {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsChecked(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsChecked)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsChecked(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsChecked)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<ToggleMenuFlyoutItem> {
        Self::IToggleMenuFlyoutItemFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<ToggleMenuFlyoutItem>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<ToggleMenuFlyoutItem> {
        Self::IToggleMenuFlyoutItemFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<ToggleMenuFlyoutItem>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsCheckedProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IToggleMenuFlyoutItemStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsCheckedProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IToggleMenuFlyoutItemFactory<R, F: FnOnce(&IToggleMenuFlyoutItemFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ToggleMenuFlyoutItem, IToggleMenuFlyoutItemFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IToggleMenuFlyoutItemStatics<R, F: FnOnce(&IToggleMenuFlyoutItemStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ToggleMenuFlyoutItem, IToggleMenuFlyoutItemStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for ToggleMenuFlyoutItem {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ToggleMenuFlyoutItem {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ToggleMenuFlyoutItem {}
impl ::core::fmt::Debug for ToggleMenuFlyoutItem {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ToggleMenuFlyoutItem").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ToggleMenuFlyoutItem {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ToggleMenuFlyoutItem;{49841edd-88e9-4663-a701-cd4fd25e398f})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ToggleMenuFlyoutItem {
    type Vtable = IToggleMenuFlyoutItem_Vtbl;
    const IID: ::windows::core::GUID = <IToggleMenuFlyoutItem as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ToggleMenuFlyoutItem {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ToggleMenuFlyoutItem";
}
impl ::core::convert::From<ToggleMenuFlyoutItem> for ::windows::core::IUnknown {
    fn from(value: ToggleMenuFlyoutItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ToggleMenuFlyoutItem> for ::windows::core::IUnknown {
    fn from(value: &ToggleMenuFlyoutItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ToggleMenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ToggleMenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ToggleMenuFlyoutItem> for ::windows::core::IInspectable {
    fn from(value: ToggleMenuFlyoutItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ToggleMenuFlyoutItem> for ::windows::core::IInspectable {
    fn from(value: &ToggleMenuFlyoutItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ToggleMenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ToggleMenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ToggleMenuFlyoutItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: ToggleMenuFlyoutItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ToggleMenuFlyoutItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &ToggleMenuFlyoutItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for ToggleMenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &ToggleMenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ToggleMenuFlyoutItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: ToggleMenuFlyoutItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ToggleMenuFlyoutItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &ToggleMenuFlyoutItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for ToggleMenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &ToggleMenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<ToggleMenuFlyoutItem> for MenuFlyoutItem {
    fn from(value: ToggleMenuFlyoutItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ToggleMenuFlyoutItem> for MenuFlyoutItem {
    fn from(value: &ToggleMenuFlyoutItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, MenuFlyoutItem> for ToggleMenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, MenuFlyoutItem> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, MenuFlyoutItem> for &ToggleMenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, MenuFlyoutItem> {
        ::windows::core::Param::Owned(::core::convert::Into::<MenuFlyoutItem>::into(self))
    }
}
impl ::core::convert::From<ToggleMenuFlyoutItem> for MenuFlyoutItemBase {
    fn from(value: ToggleMenuFlyoutItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ToggleMenuFlyoutItem> for MenuFlyoutItemBase {
    fn from(value: &ToggleMenuFlyoutItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, MenuFlyoutItemBase> for ToggleMenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, MenuFlyoutItemBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, MenuFlyoutItemBase> for &ToggleMenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, MenuFlyoutItemBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<MenuFlyoutItemBase>::into(self))
    }
}
impl ::core::convert::From<ToggleMenuFlyoutItem> for Control {
    fn from(value: ToggleMenuFlyoutItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ToggleMenuFlyoutItem> for Control {
    fn from(value: &ToggleMenuFlyoutItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for ToggleMenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &ToggleMenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<ToggleMenuFlyoutItem> for super::FrameworkElement {
    fn from(value: ToggleMenuFlyoutItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ToggleMenuFlyoutItem> for super::FrameworkElement {
    fn from(value: &ToggleMenuFlyoutItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for ToggleMenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &ToggleMenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<ToggleMenuFlyoutItem> for super::UIElement {
    fn from(value: ToggleMenuFlyoutItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ToggleMenuFlyoutItem> for super::UIElement {
    fn from(value: &ToggleMenuFlyoutItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for ToggleMenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &ToggleMenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<ToggleMenuFlyoutItem> for super::DependencyObject {
    fn from(value: ToggleMenuFlyoutItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ToggleMenuFlyoutItem> for super::DependencyObject {
    fn from(value: &ToggleMenuFlyoutItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for ToggleMenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &ToggleMenuFlyoutItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for ToggleMenuFlyoutItem {}
unsafe impl ::core::marker::Sync for ToggleMenuFlyoutItem {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ToggleSplitButton(::windows::core::IUnknown);
impl ToggleSplitButton {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsChecked(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsChecked)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsChecked(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsChecked)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn IsCheckedChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<ToggleSplitButton, ToggleSplitButtonIsCheckedChangedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsCheckedChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveIsCheckedChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveIsCheckedChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<ToggleSplitButton> {
        Self::IToggleSplitButtonFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<ToggleSplitButton>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<ToggleSplitButton> {
        Self::IToggleSplitButtonFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<ToggleSplitButton>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IToggleSplitButtonFactory<R, F: FnOnce(&IToggleSplitButtonFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ToggleSplitButton, IToggleSplitButtonFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for ToggleSplitButton {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ToggleSplitButton {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ToggleSplitButton {}
impl ::core::fmt::Debug for ToggleSplitButton {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ToggleSplitButton").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ToggleSplitButton {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ToggleSplitButton;{28981b31-8e78-570c-bebb-685814485ae9})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ToggleSplitButton {
    type Vtable = IToggleSplitButton_Vtbl;
    const IID: ::windows::core::GUID = <IToggleSplitButton as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ToggleSplitButton {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ToggleSplitButton";
}
impl ::core::convert::From<ToggleSplitButton> for ::windows::core::IUnknown {
    fn from(value: ToggleSplitButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ToggleSplitButton> for ::windows::core::IUnknown {
    fn from(value: &ToggleSplitButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ToggleSplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ToggleSplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ToggleSplitButton> for ::windows::core::IInspectable {
    fn from(value: ToggleSplitButton) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ToggleSplitButton> for ::windows::core::IInspectable {
    fn from(value: &ToggleSplitButton) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ToggleSplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ToggleSplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ToggleSplitButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: ToggleSplitButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ToggleSplitButton> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &ToggleSplitButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for ToggleSplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &ToggleSplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ToggleSplitButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: ToggleSplitButton) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ToggleSplitButton> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &ToggleSplitButton) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for ToggleSplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &ToggleSplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<ToggleSplitButton> for SplitButton {
    fn from(value: ToggleSplitButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ToggleSplitButton> for SplitButton {
    fn from(value: &ToggleSplitButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, SplitButton> for ToggleSplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, SplitButton> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, SplitButton> for &ToggleSplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, SplitButton> {
        ::windows::core::Param::Owned(::core::convert::Into::<SplitButton>::into(self))
    }
}
impl ::core::convert::From<ToggleSplitButton> for ContentControl {
    fn from(value: ToggleSplitButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ToggleSplitButton> for ContentControl {
    fn from(value: &ToggleSplitButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for ToggleSplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &ToggleSplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<ToggleSplitButton> for Control {
    fn from(value: ToggleSplitButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ToggleSplitButton> for Control {
    fn from(value: &ToggleSplitButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for ToggleSplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &ToggleSplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<ToggleSplitButton> for super::FrameworkElement {
    fn from(value: ToggleSplitButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ToggleSplitButton> for super::FrameworkElement {
    fn from(value: &ToggleSplitButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for ToggleSplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &ToggleSplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<ToggleSplitButton> for super::UIElement {
    fn from(value: ToggleSplitButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ToggleSplitButton> for super::UIElement {
    fn from(value: &ToggleSplitButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for ToggleSplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &ToggleSplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<ToggleSplitButton> for super::DependencyObject {
    fn from(value: ToggleSplitButton) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ToggleSplitButton> for super::DependencyObject {
    fn from(value: &ToggleSplitButton) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for ToggleSplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &ToggleSplitButton {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for ToggleSplitButton {}
unsafe impl ::core::marker::Sync for ToggleSplitButton {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ToggleSplitButtonAutomationPeer(::windows::core::IUnknown);
impl ToggleSplitButtonAutomationPeer {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Automation_Provider'*"]
    #[cfg(feature = "UI_Xaml_Automation_Provider")]
    pub fn ExpandCollapseState(&self) -> ::windows::core::Result<super::Automation::ExpandCollapseState> {
        let this = &::windows::core::Interface::cast::<super::Automation::Provider::IExpandCollapseProvider>(self)?;
        unsafe {
            let mut result__: super::Automation::ExpandCollapseState = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ExpandCollapseState)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Automation::ExpandCollapseState>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Automation_Provider'*"]
    #[cfg(feature = "UI_Xaml_Automation_Provider")]
    pub fn Collapse(&self) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<super::Automation::Provider::IExpandCollapseProvider>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).Collapse)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Automation_Provider'*"]
    #[cfg(feature = "UI_Xaml_Automation_Provider")]
    pub fn Expand(&self) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<super::Automation::Provider::IExpandCollapseProvider>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).Expand)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Automation_Provider'*"]
    #[cfg(feature = "UI_Xaml_Automation_Provider")]
    pub fn ToggleState(&self) -> ::windows::core::Result<super::Automation::ToggleState> {
        let this = &::windows::core::Interface::cast::<super::Automation::Provider::IToggleProvider>(self)?;
        unsafe {
            let mut result__: super::Automation::ToggleState = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ToggleState)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Automation::ToggleState>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Automation_Provider'*"]
    #[cfg(feature = "UI_Xaml_Automation_Provider")]
    pub fn Toggle(&self) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<super::Automation::Provider::IToggleProvider>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).Toggle)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CreateInstance<'a, Param0: ::windows::core::IntoParam<'a, ToggleSplitButton>>(owner: Param0) -> ::windows::core::Result<ToggleSplitButtonAutomationPeer> {
        Self::IToggleSplitButtonAutomationPeerFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), owner.into_param().abi(), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<ToggleSplitButtonAutomationPeer>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CreateInstance_compose<'a, Param0: ::windows::core::IntoParam<'a, ToggleSplitButton>, T: ::windows::core::Compose>(owner: Param0, compose: T) -> ::windows::core::Result<ToggleSplitButtonAutomationPeer> {
        Self::IToggleSplitButtonAutomationPeerFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), owner.into_param().abi(), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<ToggleSplitButtonAutomationPeer>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IToggleSplitButtonAutomationPeerFactory<R, F: FnOnce(&IToggleSplitButtonAutomationPeerFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ToggleSplitButtonAutomationPeer, IToggleSplitButtonAutomationPeerFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for ToggleSplitButtonAutomationPeer {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ToggleSplitButtonAutomationPeer {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ToggleSplitButtonAutomationPeer {}
impl ::core::fmt::Debug for ToggleSplitButtonAutomationPeer {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ToggleSplitButtonAutomationPeer").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ToggleSplitButtonAutomationPeer {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ToggleSplitButtonAutomationPeer;{538e61de-7d46-5da7-94ab-acede6a12b9e})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ToggleSplitButtonAutomationPeer {
    type Vtable = IToggleSplitButtonAutomationPeer_Vtbl;
    const IID: ::windows::core::GUID = <IToggleSplitButtonAutomationPeer as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ToggleSplitButtonAutomationPeer {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ToggleSplitButtonAutomationPeer";
}
impl ::core::convert::From<ToggleSplitButtonAutomationPeer> for ::windows::core::IUnknown {
    fn from(value: ToggleSplitButtonAutomationPeer) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ToggleSplitButtonAutomationPeer> for ::windows::core::IUnknown {
    fn from(value: &ToggleSplitButtonAutomationPeer) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ToggleSplitButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ToggleSplitButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ToggleSplitButtonAutomationPeer> for ::windows::core::IInspectable {
    fn from(value: ToggleSplitButtonAutomationPeer) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ToggleSplitButtonAutomationPeer> for ::windows::core::IInspectable {
    fn from(value: &ToggleSplitButtonAutomationPeer) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ToggleSplitButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ToggleSplitButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Xaml_Automation_Provider")]
impl ::core::convert::TryFrom<ToggleSplitButtonAutomationPeer> for super::Automation::Provider::IExpandCollapseProvider {
    type Error = ::windows::core::Error;
    fn try_from(value: ToggleSplitButtonAutomationPeer) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Provider")]
impl ::core::convert::TryFrom<&ToggleSplitButtonAutomationPeer> for super::Automation::Provider::IExpandCollapseProvider {
    type Error = ::windows::core::Error;
    fn try_from(value: &ToggleSplitButtonAutomationPeer) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Provider")]
impl<'a> ::windows::core::IntoParam<'a, super::Automation::Provider::IExpandCollapseProvider> for ToggleSplitButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::Automation::Provider::IExpandCollapseProvider> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Provider")]
impl<'a> ::windows::core::IntoParam<'a, super::Automation::Provider::IExpandCollapseProvider> for &ToggleSplitButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::Automation::Provider::IExpandCollapseProvider> {
        ::core::convert::TryInto::<super::Automation::Provider::IExpandCollapseProvider>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Provider")]
impl ::core::convert::TryFrom<ToggleSplitButtonAutomationPeer> for super::Automation::Provider::IToggleProvider {
    type Error = ::windows::core::Error;
    fn try_from(value: ToggleSplitButtonAutomationPeer) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Provider")]
impl ::core::convert::TryFrom<&ToggleSplitButtonAutomationPeer> for super::Automation::Provider::IToggleProvider {
    type Error = ::windows::core::Error;
    fn try_from(value: &ToggleSplitButtonAutomationPeer) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Provider")]
impl<'a> ::windows::core::IntoParam<'a, super::Automation::Provider::IToggleProvider> for ToggleSplitButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::Automation::Provider::IToggleProvider> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Provider")]
impl<'a> ::windows::core::IntoParam<'a, super::Automation::Provider::IToggleProvider> for &ToggleSplitButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::Automation::Provider::IToggleProvider> {
        ::core::convert::TryInto::<super::Automation::Provider::IToggleProvider>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Peers")]
impl ::core::convert::From<ToggleSplitButtonAutomationPeer> for super::Automation::Peers::FrameworkElementAutomationPeer {
    fn from(value: ToggleSplitButtonAutomationPeer) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Peers")]
impl ::core::convert::From<&ToggleSplitButtonAutomationPeer> for super::Automation::Peers::FrameworkElementAutomationPeer {
    fn from(value: &ToggleSplitButtonAutomationPeer) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Automation_Peers")]
impl<'a> ::windows::core::IntoParam<'a, super::Automation::Peers::FrameworkElementAutomationPeer> for ToggleSplitButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::Automation::Peers::FrameworkElementAutomationPeer> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Peers")]
impl<'a> ::windows::core::IntoParam<'a, super::Automation::Peers::FrameworkElementAutomationPeer> for &ToggleSplitButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::Automation::Peers::FrameworkElementAutomationPeer> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::Automation::Peers::FrameworkElementAutomationPeer>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Automation_Peers")]
impl ::core::convert::From<ToggleSplitButtonAutomationPeer> for super::Automation::Peers::AutomationPeer {
    fn from(value: ToggleSplitButtonAutomationPeer) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Peers")]
impl ::core::convert::From<&ToggleSplitButtonAutomationPeer> for super::Automation::Peers::AutomationPeer {
    fn from(value: &ToggleSplitButtonAutomationPeer) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Automation_Peers")]
impl<'a> ::windows::core::IntoParam<'a, super::Automation::Peers::AutomationPeer> for ToggleSplitButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::Automation::Peers::AutomationPeer> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Automation_Peers")]
impl<'a> ::windows::core::IntoParam<'a, super::Automation::Peers::AutomationPeer> for &ToggleSplitButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::Automation::Peers::AutomationPeer> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::Automation::Peers::AutomationPeer>::into(self))
    }
}
impl ::core::convert::From<ToggleSplitButtonAutomationPeer> for super::DependencyObject {
    fn from(value: ToggleSplitButtonAutomationPeer) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ToggleSplitButtonAutomationPeer> for super::DependencyObject {
    fn from(value: &ToggleSplitButtonAutomationPeer) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for ToggleSplitButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &ToggleSplitButtonAutomationPeer {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for ToggleSplitButtonAutomationPeer {}
unsafe impl ::core::marker::Sync for ToggleSplitButtonAutomationPeer {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ToggleSplitButtonIsCheckedChangedEventArgs(::windows::core::IUnknown);
impl ToggleSplitButtonIsCheckedChangedEventArgs {}
impl ::core::clone::Clone for ToggleSplitButtonIsCheckedChangedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ToggleSplitButtonIsCheckedChangedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ToggleSplitButtonIsCheckedChangedEventArgs {}
impl ::core::fmt::Debug for ToggleSplitButtonIsCheckedChangedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ToggleSplitButtonIsCheckedChangedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ToggleSplitButtonIsCheckedChangedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ToggleSplitButtonIsCheckedChangedEventArgs;{2138f0cf-5fcd-5dbb-99ae-359483070f6b})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ToggleSplitButtonIsCheckedChangedEventArgs {
    type Vtable = IToggleSplitButtonIsCheckedChangedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IToggleSplitButtonIsCheckedChangedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ToggleSplitButtonIsCheckedChangedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ToggleSplitButtonIsCheckedChangedEventArgs";
}
impl ::core::convert::From<ToggleSplitButtonIsCheckedChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: ToggleSplitButtonIsCheckedChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ToggleSplitButtonIsCheckedChangedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &ToggleSplitButtonIsCheckedChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ToggleSplitButtonIsCheckedChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ToggleSplitButtonIsCheckedChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ToggleSplitButtonIsCheckedChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: ToggleSplitButtonIsCheckedChangedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ToggleSplitButtonIsCheckedChangedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &ToggleSplitButtonIsCheckedChangedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ToggleSplitButtonIsCheckedChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ToggleSplitButtonIsCheckedChangedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for ToggleSplitButtonIsCheckedChangedEventArgs {}
unsafe impl ::core::marker::Sync for ToggleSplitButtonIsCheckedChangedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ToggleSwitch(::windows::core::IUnknown);
impl ToggleSwitch {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ToggleSwitch, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsOn(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsOn)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsOn(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsOn)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Header(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Header)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeader<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHeader)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTemplate(&self) -> ::windows::core::Result<super::DataTemplate> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTemplate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHeaderTemplate<'a, Param0: ::windows::core::IntoParam<'a, super::DataTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHeaderTemplate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OnContent(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OnContent)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetOnContent<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetOnContent)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OnContentTemplate(&self) -> ::windows::core::Result<super::DataTemplate> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OnContentTemplate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetOnContentTemplate<'a, Param0: ::windows::core::IntoParam<'a, super::DataTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetOnContentTemplate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OffContent(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OffContent)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetOffContent<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetOffContent)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OffContentTemplate(&self) -> ::windows::core::Result<super::DataTemplate> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OffContentTemplate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetOffContentTemplate<'a, Param0: ::windows::core::IntoParam<'a, super::DataTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetOffContentTemplate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn TemplateSettings(&self) -> ::windows::core::Result<Primitives::ToggleSwitchTemplateSettings> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TemplateSettings)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::ToggleSwitchTemplateSettings>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Toggled<'a, Param0: ::windows::core::IntoParam<'a, super::RoutedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Toggled)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveToggled<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveToggled)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsOnProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IToggleSwitchStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsOnProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IToggleSwitchStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HeaderTemplateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IToggleSwitchStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HeaderTemplateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OnContentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IToggleSwitchStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OnContentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OnContentTemplateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IToggleSwitchStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OnContentTemplateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OffContentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IToggleSwitchStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OffContentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OffContentTemplateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IToggleSwitchStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OffContentTemplateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IToggleSwitchStatics<R, F: FnOnce(&IToggleSwitchStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ToggleSwitch, IToggleSwitchStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for ToggleSwitch {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ToggleSwitch {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ToggleSwitch {}
impl ::core::fmt::Debug for ToggleSwitch {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ToggleSwitch").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ToggleSwitch {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ToggleSwitch;{331d8f00-c5f9-46a5-b6c8-ede539304567})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ToggleSwitch {
    type Vtable = IToggleSwitch_Vtbl;
    const IID: ::windows::core::GUID = <IToggleSwitch as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ToggleSwitch {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ToggleSwitch";
}
impl ::core::convert::From<ToggleSwitch> for ::windows::core::IUnknown {
    fn from(value: ToggleSwitch) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ToggleSwitch> for ::windows::core::IUnknown {
    fn from(value: &ToggleSwitch) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ToggleSwitch {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ToggleSwitch {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ToggleSwitch> for ::windows::core::IInspectable {
    fn from(value: ToggleSwitch) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ToggleSwitch> for ::windows::core::IInspectable {
    fn from(value: &ToggleSwitch) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ToggleSwitch {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ToggleSwitch {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ToggleSwitch> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: ToggleSwitch) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ToggleSwitch> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &ToggleSwitch) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for ToggleSwitch {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &ToggleSwitch {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ToggleSwitch> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: ToggleSwitch) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ToggleSwitch> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &ToggleSwitch) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for ToggleSwitch {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &ToggleSwitch {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<ToggleSwitch> for Control {
    fn from(value: ToggleSwitch) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ToggleSwitch> for Control {
    fn from(value: &ToggleSwitch) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for ToggleSwitch {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &ToggleSwitch {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<ToggleSwitch> for super::FrameworkElement {
    fn from(value: ToggleSwitch) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ToggleSwitch> for super::FrameworkElement {
    fn from(value: &ToggleSwitch) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for ToggleSwitch {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &ToggleSwitch {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<ToggleSwitch> for super::UIElement {
    fn from(value: ToggleSwitch) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ToggleSwitch> for super::UIElement {
    fn from(value: &ToggleSwitch) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for ToggleSwitch {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &ToggleSwitch {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<ToggleSwitch> for super::DependencyObject {
    fn from(value: ToggleSwitch) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ToggleSwitch> for super::DependencyObject {
    fn from(value: &ToggleSwitch) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for ToggleSwitch {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &ToggleSwitch {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for ToggleSwitch {}
unsafe impl ::core::marker::Sync for ToggleSwitch {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ToolTip(::windows::core::IUnknown);
impl ToolTip {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalOffset(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalOffset)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHorizontalOffset(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHorizontalOffset)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsOpen(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsOpen)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsOpen(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsOpen)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn Placement(&self) -> ::windows::core::Result<Primitives::PlacementMode> {
        let this = self;
        unsafe {
            let mut result__: Primitives::PlacementMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Placement)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::PlacementMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn SetPlacement(&self, value: Primitives::PlacementMode) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPlacement)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PlacementTarget(&self) -> ::windows::core::Result<super::UIElement> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlacementTarget)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::UIElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPlacementTarget<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPlacementTarget)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalOffset(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalOffset)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetVerticalOffset(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetVerticalOffset)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn TemplateSettings(&self) -> ::windows::core::Result<Primitives::ToolTipTemplateSettings> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TemplateSettings)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Primitives::ToolTipTemplateSettings>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Closed<'a, Param0: ::windows::core::IntoParam<'a, super::RoutedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Closed)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveClosed<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveClosed)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Opened<'a, Param0: ::windows::core::IntoParam<'a, super::RoutedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Opened)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveOpened<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveOpened)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn PlacementRect(&self) -> ::windows::core::Result<super::super::super::Foundation::IReference<super::super::super::Foundation::Rect>> {
        let this = &::windows::core::Interface::cast::<IToolTip2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlacementRect)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::IReference<super::super::super::Foundation::Rect>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SetPlacementRect<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::IReference<super::super::super::Foundation::Rect>>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IToolTip2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetPlacementRect)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<ToolTip> {
        Self::IToolTipFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<ToolTip>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<ToolTip> {
        Self::IToolTipFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<ToolTip>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalOffsetProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IToolTipStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalOffsetProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsOpenProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IToolTipStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsOpenProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PlacementProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IToolTipStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlacementProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PlacementTargetProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IToolTipStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlacementTargetProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalOffsetProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IToolTipStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalOffsetProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PlacementRectProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IToolTipStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlacementRectProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IToolTipFactory<R, F: FnOnce(&IToolTipFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ToolTip, IToolTipFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IToolTipStatics<R, F: FnOnce(&IToolTipStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ToolTip, IToolTipStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IToolTipStatics2<R, F: FnOnce(&IToolTipStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ToolTip, IToolTipStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for ToolTip {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ToolTip {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ToolTip {}
impl ::core::fmt::Debug for ToolTip {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ToolTip").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ToolTip {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ToolTip;{7de5d75f-4415-429f-b523-699bdb8c30db})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ToolTip {
    type Vtable = IToolTip_Vtbl;
    const IID: ::windows::core::GUID = <IToolTip as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ToolTip {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ToolTip";
}
impl ::core::convert::From<ToolTip> for ::windows::core::IUnknown {
    fn from(value: ToolTip) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ToolTip> for ::windows::core::IUnknown {
    fn from(value: &ToolTip) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ToolTip {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ToolTip {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ToolTip> for ::windows::core::IInspectable {
    fn from(value: ToolTip) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ToolTip> for ::windows::core::IInspectable {
    fn from(value: &ToolTip) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ToolTip {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ToolTip {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ToolTip> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: ToolTip) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ToolTip> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &ToolTip) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for ToolTip {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &ToolTip {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<ToolTip> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: ToolTip) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&ToolTip> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &ToolTip) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for ToolTip {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &ToolTip {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<ToolTip> for ContentControl {
    fn from(value: ToolTip) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ToolTip> for ContentControl {
    fn from(value: &ToolTip) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for ToolTip {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &ToolTip {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<ToolTip> for Control {
    fn from(value: ToolTip) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ToolTip> for Control {
    fn from(value: &ToolTip) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for ToolTip {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &ToolTip {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<ToolTip> for super::FrameworkElement {
    fn from(value: ToolTip) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ToolTip> for super::FrameworkElement {
    fn from(value: &ToolTip) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for ToolTip {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &ToolTip {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<ToolTip> for super::UIElement {
    fn from(value: ToolTip) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ToolTip> for super::UIElement {
    fn from(value: &ToolTip) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for ToolTip {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &ToolTip {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<ToolTip> for super::DependencyObject {
    fn from(value: ToolTip) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&ToolTip> for super::DependencyObject {
    fn from(value: &ToolTip) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for ToolTip {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &ToolTip {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for ToolTip {}
unsafe impl ::core::marker::Sync for ToolTip {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct ToolTipService(::windows::core::IUnknown);
impl ToolTipService {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PlacementProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IToolTipServiceStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlacementProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn GetPlacement<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0) -> ::windows::core::Result<Primitives::PlacementMode> {
        Self::IToolTipServiceStatics(|this| unsafe {
            let mut result__: Primitives::PlacementMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetPlacement)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<Primitives::PlacementMode>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Controls_Primitives'*"]
    #[cfg(feature = "UI_Xaml_Controls_Primitives")]
    pub fn SetPlacement<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0, value: Primitives::PlacementMode) -> ::windows::core::Result<()> {
        Self::IToolTipServiceStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetPlacement)(::core::mem::transmute_copy(this), element.into_param().abi(), value).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PlacementTargetProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IToolTipServiceStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PlacementTargetProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetPlacementTarget<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0) -> ::windows::core::Result<super::UIElement> {
        Self::IToolTipServiceStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetPlacementTarget)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<super::UIElement>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPlacementTarget<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>, Param1: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0, value: Param1) -> ::windows::core::Result<()> {
        Self::IToolTipServiceStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetPlacementTarget)(::core::mem::transmute_copy(this), element.into_param().abi(), value.into_param().abi()).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ToolTipProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IToolTipServiceStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ToolTipProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetToolTip<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0) -> ::windows::core::Result<::windows::core::IInspectable> {
        Self::IToolTipServiceStatics(|this| unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetToolTip)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetToolTip<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>, Param1: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(element: Param0, value: Param1) -> ::windows::core::Result<()> {
        Self::IToolTipServiceStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetToolTip)(::core::mem::transmute_copy(this), element.into_param().abi(), value.into_param().abi()).ok() })
    }
    #[doc(hidden)]
    pub fn IToolTipServiceStatics<R, F: FnOnce(&IToolTipServiceStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<ToolTipService, IToolTipServiceStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for ToolTipService {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ToolTipService {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ToolTipService {}
impl ::core::fmt::Debug for ToolTipService {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ToolTipService").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ToolTipService {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.ToolTipService;{03a55f87-bfcc-4a1e-8fea-98f610832cea})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for ToolTipService {
    type Vtable = IToolTipService_Vtbl;
    const IID: ::windows::core::GUID = <IToolTipService as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for ToolTipService {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.ToolTipService";
}
impl ::core::convert::From<ToolTipService> for ::windows::core::IUnknown {
    fn from(value: ToolTipService) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ToolTipService> for ::windows::core::IUnknown {
    fn from(value: &ToolTipService) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ToolTipService {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ToolTipService {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ToolTipService> for ::windows::core::IInspectable {
    fn from(value: ToolTipService) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ToolTipService> for ::windows::core::IInspectable {
    fn from(value: &ToolTipService) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for ToolTipService {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a ToolTipService {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for ToolTipService {}
unsafe impl ::core::marker::Sync for ToolTipService {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct TreeView(::windows::core::IUnknown);
impl TreeView {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn RootNodes(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVector<TreeViewNode>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).RootNodes)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<TreeViewNode>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionMode(&self) -> ::windows::core::Result<TreeViewSelectionMode> {
        let this = self;
        unsafe {
            let mut result__: TreeViewSelectionMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionMode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<TreeViewSelectionMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSelectionMode(&self, value: TreeViewSelectionMode) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSelectionMode)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn SelectedNodes(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVector<TreeViewNode>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectedNodes)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<TreeViewNode>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Expand<'a, Param0: ::windows::core::IntoParam<'a, TreeViewNode>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Expand)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Collapse<'a, Param0: ::windows::core::IntoParam<'a, TreeViewNode>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Collapse)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectAll(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SelectAll)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ItemInvoked<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<TreeView, TreeViewItemInvokedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemInvoked)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveItemInvoked<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveItemInvoked)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Expanding<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<TreeView, TreeViewExpandingEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Expanding)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveExpanding<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveExpanding)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Collapsed<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<TreeView, TreeViewCollapsedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Collapsed)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveCollapsed<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveCollapsed)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn NodeFromContainer<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(&self, container: Param0) -> ::windows::core::Result<TreeViewNode> {
        let this = &::windows::core::Interface::cast::<ITreeView2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).NodeFromContainer)(::core::mem::transmute_copy(this), container.into_param().abi(), &mut result__).from_abi::<TreeViewNode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContainerFromNode<'a, Param0: ::windows::core::IntoParam<'a, TreeViewNode>>(&self, node: Param0) -> ::windows::core::Result<super::DependencyObject> {
        let this = &::windows::core::Interface::cast::<ITreeView2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContainerFromNode)(::core::mem::transmute_copy(this), node.into_param().abi(), &mut result__).from_abi::<super::DependencyObject>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemFromContainer<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(&self, container: Param0) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = &::windows::core::Interface::cast::<ITreeView2>(self)?;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemFromContainer)(::core::mem::transmute_copy(this), container.into_param().abi(), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContainerFromItem<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, item: Param0) -> ::windows::core::Result<super::DependencyObject> {
        let this = &::windows::core::Interface::cast::<ITreeView2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContainerFromItem)(::core::mem::transmute_copy(this), item.into_param().abi(), &mut result__).from_abi::<super::DependencyObject>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanDragItems(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<ITreeView2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanDragItems)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCanDragItems(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITreeView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetCanDragItems)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanReorderItems(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<ITreeView2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanReorderItems)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCanReorderItems(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITreeView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetCanReorderItems)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemTemplate(&self) -> ::windows::core::Result<super::DataTemplate> {
        let this = &::windows::core::Interface::cast::<ITreeView2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemTemplate)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DataTemplate>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetItemTemplate<'a, Param0: ::windows::core::IntoParam<'a, super::DataTemplate>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITreeView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetItemTemplate)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemTemplateSelector(&self) -> ::windows::core::Result<DataTemplateSelector> {
        let this = &::windows::core::Interface::cast::<ITreeView2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemTemplateSelector)(::core::mem::transmute_copy(this), &mut result__).from_abi::<DataTemplateSelector>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetItemTemplateSelector<'a, Param0: ::windows::core::IntoParam<'a, DataTemplateSelector>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITreeView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetItemTemplateSelector)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemContainerStyle(&self) -> ::windows::core::Result<super::Style> {
        let this = &::windows::core::Interface::cast::<ITreeView2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemContainerStyle)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Style>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetItemContainerStyle<'a, Param0: ::windows::core::IntoParam<'a, super::Style>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITreeView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetItemContainerStyle)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemContainerStyleSelector(&self) -> ::windows::core::Result<StyleSelector> {
        let this = &::windows::core::Interface::cast::<ITreeView2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemContainerStyleSelector)(::core::mem::transmute_copy(this), &mut result__).from_abi::<StyleSelector>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetItemContainerStyleSelector<'a, Param0: ::windows::core::IntoParam<'a, StyleSelector>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITreeView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetItemContainerStyleSelector)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'UI_Xaml_Media_Animation'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub fn ItemContainerTransitions(&self) -> ::windows::core::Result<super::Media::Animation::TransitionCollection> {
        let this = &::windows::core::Interface::cast::<ITreeView2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemContainerTransitions)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Animation::TransitionCollection>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'UI_Xaml_Media_Animation'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "UI_Xaml_Media_Animation"))]
    pub fn SetItemContainerTransitions<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Animation::TransitionCollection>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITreeView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetItemContainerTransitions)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemsSource(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = &::windows::core::Interface::cast::<ITreeView2>(self)?;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemsSource)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetItemsSource<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITreeView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetItemsSource)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn DragItemsStarting<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<TreeView, TreeViewDragItemsStartingEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<ITreeView2>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DragItemsStarting)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveDragItemsStarting<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITreeView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveDragItemsStarting)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn DragItemsCompleted<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<TreeView, TreeViewDragItemsCompletedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<ITreeView2>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DragItemsCompleted)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveDragItemsCompleted<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITreeView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveDragItemsCompleted)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<TreeView> {
        Self::ITreeViewFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<TreeView>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<TreeView> {
        Self::ITreeViewFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<TreeView>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SelectionModeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITreeViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SelectionModeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanDragItemsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITreeViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanDragItemsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanReorderItemsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITreeViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanReorderItemsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemTemplateProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITreeViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemTemplateProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemTemplateSelectorProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITreeViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemTemplateSelectorProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemContainerStyleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITreeViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemContainerStyleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemContainerStyleSelectorProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITreeViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemContainerStyleSelectorProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemContainerTransitionsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITreeViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemContainerTransitionsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemsSourceProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITreeViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemsSourceProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ITreeViewFactory<R, F: FnOnce(&ITreeViewFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TreeView, ITreeViewFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ITreeViewStatics<R, F: FnOnce(&ITreeViewStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TreeView, ITreeViewStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ITreeViewStatics2<R, F: FnOnce(&ITreeViewStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TreeView, ITreeViewStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for TreeView {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for TreeView {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for TreeView {}
impl ::core::fmt::Debug for TreeView {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TreeView").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TreeView {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.TreeView;{9353cc5c-dd6e-453c-aedd-0c3ac993978b})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for TreeView {
    type Vtable = ITreeView_Vtbl;
    const IID: ::windows::core::GUID = <ITreeView as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for TreeView {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.TreeView";
}
impl ::core::convert::From<TreeView> for ::windows::core::IUnknown {
    fn from(value: TreeView) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TreeView> for ::windows::core::IUnknown {
    fn from(value: &TreeView) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for TreeView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a TreeView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TreeView> for ::windows::core::IInspectable {
    fn from(value: TreeView) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TreeView> for ::windows::core::IInspectable {
    fn from(value: &TreeView) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for TreeView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a TreeView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<TreeView> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: TreeView) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&TreeView> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &TreeView) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for TreeView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &TreeView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<TreeView> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: TreeView) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&TreeView> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &TreeView) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for TreeView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &TreeView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<TreeView> for Control {
    fn from(value: TreeView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TreeView> for Control {
    fn from(value: &TreeView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for TreeView {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &TreeView {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<TreeView> for super::FrameworkElement {
    fn from(value: TreeView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TreeView> for super::FrameworkElement {
    fn from(value: &TreeView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for TreeView {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &TreeView {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<TreeView> for super::UIElement {
    fn from(value: TreeView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TreeView> for super::UIElement {
    fn from(value: &TreeView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for TreeView {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &TreeView {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<TreeView> for super::DependencyObject {
    fn from(value: TreeView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TreeView> for super::DependencyObject {
    fn from(value: &TreeView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for TreeView {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &TreeView {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for TreeView {}
unsafe impl ::core::marker::Sync for TreeView {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct TreeViewCollapsedEventArgs(::windows::core::IUnknown);
impl TreeViewCollapsedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Node(&self) -> ::windows::core::Result<TreeViewNode> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Node)(::core::mem::transmute_copy(this), &mut result__).from_abi::<TreeViewNode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Item(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = &::windows::core::Interface::cast::<ITreeViewCollapsedEventArgs2>(self)?;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Item)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
}
impl ::core::clone::Clone for TreeViewCollapsedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for TreeViewCollapsedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for TreeViewCollapsedEventArgs {}
impl ::core::fmt::Debug for TreeViewCollapsedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TreeViewCollapsedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TreeViewCollapsedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.TreeViewCollapsedEventArgs;{391db3b0-1e58-4539-9e93-387978f46cce})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for TreeViewCollapsedEventArgs {
    type Vtable = ITreeViewCollapsedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <ITreeViewCollapsedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for TreeViewCollapsedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.TreeViewCollapsedEventArgs";
}
impl ::core::convert::From<TreeViewCollapsedEventArgs> for ::windows::core::IUnknown {
    fn from(value: TreeViewCollapsedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TreeViewCollapsedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &TreeViewCollapsedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for TreeViewCollapsedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a TreeViewCollapsedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TreeViewCollapsedEventArgs> for ::windows::core::IInspectable {
    fn from(value: TreeViewCollapsedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TreeViewCollapsedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &TreeViewCollapsedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for TreeViewCollapsedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a TreeViewCollapsedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for TreeViewCollapsedEventArgs {}
unsafe impl ::core::marker::Sync for TreeViewCollapsedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct TreeViewDragItemsCompletedEventArgs(::windows::core::IUnknown);
impl TreeViewDragItemsCompletedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'ApplicationModel_DataTransfer'*"]
    #[cfg(feature = "ApplicationModel_DataTransfer")]
    pub fn DropResult(&self) -> ::windows::core::Result<super::super::super::ApplicationModel::DataTransfer::DataPackageOperation> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::ApplicationModel::DataTransfer::DataPackageOperation = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DropResult)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::ApplicationModel::DataTransfer::DataPackageOperation>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn Items(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVectorView<::windows::core::IInspectable>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Items)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVectorView<::windows::core::IInspectable>>(result__)
        }
    }
}
impl ::core::clone::Clone for TreeViewDragItemsCompletedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for TreeViewDragItemsCompletedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for TreeViewDragItemsCompletedEventArgs {}
impl ::core::fmt::Debug for TreeViewDragItemsCompletedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TreeViewDragItemsCompletedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TreeViewDragItemsCompletedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.TreeViewDragItemsCompletedEventArgs;{3ca8632c-4311-574e-8ab4-3b7aa5de7a88})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for TreeViewDragItemsCompletedEventArgs {
    type Vtable = ITreeViewDragItemsCompletedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <ITreeViewDragItemsCompletedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for TreeViewDragItemsCompletedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.TreeViewDragItemsCompletedEventArgs";
}
impl ::core::convert::From<TreeViewDragItemsCompletedEventArgs> for ::windows::core::IUnknown {
    fn from(value: TreeViewDragItemsCompletedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TreeViewDragItemsCompletedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &TreeViewDragItemsCompletedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for TreeViewDragItemsCompletedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a TreeViewDragItemsCompletedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TreeViewDragItemsCompletedEventArgs> for ::windows::core::IInspectable {
    fn from(value: TreeViewDragItemsCompletedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TreeViewDragItemsCompletedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &TreeViewDragItemsCompletedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for TreeViewDragItemsCompletedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a TreeViewDragItemsCompletedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for TreeViewDragItemsCompletedEventArgs {}
unsafe impl ::core::marker::Sync for TreeViewDragItemsCompletedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct TreeViewDragItemsStartingEventArgs(::windows::core::IUnknown);
impl TreeViewDragItemsStartingEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Cancel(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Cancel)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCancel(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCancel)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'ApplicationModel_DataTransfer'*"]
    #[cfg(feature = "ApplicationModel_DataTransfer")]
    pub fn Data(&self) -> ::windows::core::Result<super::super::super::ApplicationModel::DataTransfer::DataPackage> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Data)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::ApplicationModel::DataTransfer::DataPackage>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn Items(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Items)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<::windows::core::IInspectable>>(result__)
        }
    }
}
impl ::core::clone::Clone for TreeViewDragItemsStartingEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for TreeViewDragItemsStartingEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for TreeViewDragItemsStartingEventArgs {}
impl ::core::fmt::Debug for TreeViewDragItemsStartingEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TreeViewDragItemsStartingEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TreeViewDragItemsStartingEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.TreeViewDragItemsStartingEventArgs;{7bdb7ec4-e125-5773-9a3f-6695233d6250})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for TreeViewDragItemsStartingEventArgs {
    type Vtable = ITreeViewDragItemsStartingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <ITreeViewDragItemsStartingEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for TreeViewDragItemsStartingEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.TreeViewDragItemsStartingEventArgs";
}
impl ::core::convert::From<TreeViewDragItemsStartingEventArgs> for ::windows::core::IUnknown {
    fn from(value: TreeViewDragItemsStartingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TreeViewDragItemsStartingEventArgs> for ::windows::core::IUnknown {
    fn from(value: &TreeViewDragItemsStartingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for TreeViewDragItemsStartingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a TreeViewDragItemsStartingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TreeViewDragItemsStartingEventArgs> for ::windows::core::IInspectable {
    fn from(value: TreeViewDragItemsStartingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TreeViewDragItemsStartingEventArgs> for ::windows::core::IInspectable {
    fn from(value: &TreeViewDragItemsStartingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for TreeViewDragItemsStartingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a TreeViewDragItemsStartingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for TreeViewDragItemsStartingEventArgs {}
unsafe impl ::core::marker::Sync for TreeViewDragItemsStartingEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct TreeViewExpandingEventArgs(::windows::core::IUnknown);
impl TreeViewExpandingEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Node(&self) -> ::windows::core::Result<TreeViewNode> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Node)(::core::mem::transmute_copy(this), &mut result__).from_abi::<TreeViewNode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Item(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = &::windows::core::Interface::cast::<ITreeViewExpandingEventArgs2>(self)?;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Item)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
}
impl ::core::clone::Clone for TreeViewExpandingEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for TreeViewExpandingEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for TreeViewExpandingEventArgs {}
impl ::core::fmt::Debug for TreeViewExpandingEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TreeViewExpandingEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TreeViewExpandingEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.TreeViewExpandingEventArgs;{c5e1fa63-4154-49d2-a21f-c34176605e3a})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for TreeViewExpandingEventArgs {
    type Vtable = ITreeViewExpandingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <ITreeViewExpandingEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for TreeViewExpandingEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.TreeViewExpandingEventArgs";
}
impl ::core::convert::From<TreeViewExpandingEventArgs> for ::windows::core::IUnknown {
    fn from(value: TreeViewExpandingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TreeViewExpandingEventArgs> for ::windows::core::IUnknown {
    fn from(value: &TreeViewExpandingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for TreeViewExpandingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a TreeViewExpandingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TreeViewExpandingEventArgs> for ::windows::core::IInspectable {
    fn from(value: TreeViewExpandingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TreeViewExpandingEventArgs> for ::windows::core::IInspectable {
    fn from(value: &TreeViewExpandingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for TreeViewExpandingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a TreeViewExpandingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for TreeViewExpandingEventArgs {}
unsafe impl ::core::marker::Sync for TreeViewExpandingEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct TreeViewItem(::windows::core::IUnknown);
impl TreeViewItem {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GlyphOpacity(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GlyphOpacity)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetGlyphOpacity(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetGlyphOpacity)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn GlyphBrush(&self) -> ::windows::core::Result<super::Media::Brush> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GlyphBrush)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Brush>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetGlyphBrush<'a, Param0: ::windows::core::IntoParam<'a, super::Media::Brush>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetGlyphBrush)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ExpandedGlyph(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ExpandedGlyph)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetExpandedGlyph<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetExpandedGlyph)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CollapsedGlyph(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CollapsedGlyph)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCollapsedGlyph<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCollapsedGlyph)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GlyphSize(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GlyphSize)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetGlyphSize(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetGlyphSize)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsExpanded(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsExpanded)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsExpanded(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsExpanded)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TreeViewItemTemplateSettings(&self) -> ::windows::core::Result<TreeViewItemTemplateSettings> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TreeViewItemTemplateSettings)(::core::mem::transmute_copy(this), &mut result__).from_abi::<TreeViewItemTemplateSettings>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HasUnrealizedChildren(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<ITreeViewItem2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HasUnrealizedChildren)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHasUnrealizedChildren(&self, value: bool) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITreeViewItem2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetHasUnrealizedChildren)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemsSource(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = &::windows::core::Interface::cast::<ITreeViewItem2>(self)?;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemsSource)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetItemsSource<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<ITreeViewItem2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetItemsSource)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<TreeViewItem> {
        Self::ITreeViewItemFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<TreeViewItem>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<TreeViewItem> {
        Self::ITreeViewItemFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<TreeViewItem>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GlyphOpacityProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITreeViewItemStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GlyphOpacityProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GlyphBrushProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITreeViewItemStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GlyphBrushProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ExpandedGlyphProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITreeViewItemStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ExpandedGlyphProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CollapsedGlyphProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITreeViewItemStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CollapsedGlyphProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GlyphSizeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITreeViewItemStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GlyphSizeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsExpandedProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITreeViewItemStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsExpandedProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TreeViewItemTemplateSettingsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITreeViewItemStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TreeViewItemTemplateSettingsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HasUnrealizedChildrenProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITreeViewItemStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HasUnrealizedChildrenProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemsSourceProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITreeViewItemStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemsSourceProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ITreeViewItemFactory<R, F: FnOnce(&ITreeViewItemFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TreeViewItem, ITreeViewItemFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ITreeViewItemStatics<R, F: FnOnce(&ITreeViewItemStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TreeViewItem, ITreeViewItemStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ITreeViewItemStatics2<R, F: FnOnce(&ITreeViewItemStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TreeViewItem, ITreeViewItemStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for TreeViewItem {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for TreeViewItem {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for TreeViewItem {}
impl ::core::fmt::Debug for TreeViewItem {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TreeViewItem").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TreeViewItem {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.TreeViewItem;{4e05d3e6-6167-44e7-9c74-291ddd6df6eb})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for TreeViewItem {
    type Vtable = ITreeViewItem_Vtbl;
    const IID: ::windows::core::GUID = <ITreeViewItem as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for TreeViewItem {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.TreeViewItem";
}
impl ::core::convert::From<TreeViewItem> for ::windows::core::IUnknown {
    fn from(value: TreeViewItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TreeViewItem> for ::windows::core::IUnknown {
    fn from(value: &TreeViewItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for TreeViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a TreeViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TreeViewItem> for ::windows::core::IInspectable {
    fn from(value: TreeViewItem) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TreeViewItem> for ::windows::core::IInspectable {
    fn from(value: &TreeViewItem) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for TreeViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a TreeViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<TreeViewItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: TreeViewItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&TreeViewItem> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &TreeViewItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for TreeViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &TreeViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<TreeViewItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: TreeViewItem) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&TreeViewItem> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &TreeViewItem) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for TreeViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &TreeViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<TreeViewItem> for ListViewItem {
    fn from(value: TreeViewItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TreeViewItem> for ListViewItem {
    fn from(value: &TreeViewItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ListViewItem> for TreeViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ListViewItem> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ListViewItem> for &TreeViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ListViewItem> {
        ::windows::core::Param::Owned(::core::convert::Into::<ListViewItem>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<TreeViewItem> for Primitives::SelectorItem {
    fn from(value: TreeViewItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&TreeViewItem> for Primitives::SelectorItem {
    fn from(value: &TreeViewItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::SelectorItem> for TreeViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::SelectorItem> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::SelectorItem> for &TreeViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::SelectorItem> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::SelectorItem>::into(self))
    }
}
impl ::core::convert::From<TreeViewItem> for ContentControl {
    fn from(value: TreeViewItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TreeViewItem> for ContentControl {
    fn from(value: &TreeViewItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for TreeViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ContentControl> for &TreeViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, ContentControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ContentControl>::into(self))
    }
}
impl ::core::convert::From<TreeViewItem> for Control {
    fn from(value: TreeViewItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TreeViewItem> for Control {
    fn from(value: &TreeViewItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for TreeViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &TreeViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<TreeViewItem> for super::FrameworkElement {
    fn from(value: TreeViewItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TreeViewItem> for super::FrameworkElement {
    fn from(value: &TreeViewItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for TreeViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &TreeViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<TreeViewItem> for super::UIElement {
    fn from(value: TreeViewItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TreeViewItem> for super::UIElement {
    fn from(value: &TreeViewItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for TreeViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &TreeViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<TreeViewItem> for super::DependencyObject {
    fn from(value: TreeViewItem) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TreeViewItem> for super::DependencyObject {
    fn from(value: &TreeViewItem) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for TreeViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &TreeViewItem {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for TreeViewItem {}
unsafe impl ::core::marker::Sync for TreeViewItem {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct TreeViewItemInvokedEventArgs(::windows::core::IUnknown);
impl TreeViewItemInvokedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn InvokedItem(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).InvokedItem)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHandled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHandled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Handled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Handled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
}
impl ::core::clone::Clone for TreeViewItemInvokedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for TreeViewItemInvokedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for TreeViewItemInvokedEventArgs {}
impl ::core::fmt::Debug for TreeViewItemInvokedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TreeViewItemInvokedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TreeViewItemInvokedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.TreeViewItemInvokedEventArgs;{472ab521-0242-4290-9363-ab4fe704527f})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for TreeViewItemInvokedEventArgs {
    type Vtable = ITreeViewItemInvokedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <ITreeViewItemInvokedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for TreeViewItemInvokedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.TreeViewItemInvokedEventArgs";
}
impl ::core::convert::From<TreeViewItemInvokedEventArgs> for ::windows::core::IUnknown {
    fn from(value: TreeViewItemInvokedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TreeViewItemInvokedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &TreeViewItemInvokedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for TreeViewItemInvokedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a TreeViewItemInvokedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TreeViewItemInvokedEventArgs> for ::windows::core::IInspectable {
    fn from(value: TreeViewItemInvokedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TreeViewItemInvokedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &TreeViewItemInvokedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for TreeViewItemInvokedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a TreeViewItemInvokedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for TreeViewItemInvokedEventArgs {}
unsafe impl ::core::marker::Sync for TreeViewItemInvokedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct TreeViewItemTemplateSettings(::windows::core::IUnknown);
impl TreeViewItemTemplateSettings {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ExpandedGlyphVisibility(&self) -> ::windows::core::Result<super::Visibility> {
        let this = self;
        unsafe {
            let mut result__: super::Visibility = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ExpandedGlyphVisibility)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Visibility>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CollapsedGlyphVisibility(&self) -> ::windows::core::Result<super::Visibility> {
        let this = self;
        unsafe {
            let mut result__: super::Visibility = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CollapsedGlyphVisibility)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Visibility>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Indentation(&self) -> ::windows::core::Result<super::Thickness> {
        let this = self;
        unsafe {
            let mut result__: super::Thickness = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Indentation)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Thickness>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DragItemsCount(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DragItemsCount)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<TreeViewItemTemplateSettings> {
        Self::ITreeViewItemTemplateSettingsFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<TreeViewItemTemplateSettings>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<TreeViewItemTemplateSettings> {
        Self::ITreeViewItemTemplateSettingsFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<TreeViewItemTemplateSettings>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ExpandedGlyphVisibilityProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITreeViewItemTemplateSettingsStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ExpandedGlyphVisibilityProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CollapsedGlyphVisibilityProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITreeViewItemTemplateSettingsStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CollapsedGlyphVisibilityProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IndentationProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITreeViewItemTemplateSettingsStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IndentationProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DragItemsCountProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITreeViewItemTemplateSettingsStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DragItemsCountProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ITreeViewItemTemplateSettingsFactory<R, F: FnOnce(&ITreeViewItemTemplateSettingsFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TreeViewItemTemplateSettings, ITreeViewItemTemplateSettingsFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ITreeViewItemTemplateSettingsStatics<R, F: FnOnce(&ITreeViewItemTemplateSettingsStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TreeViewItemTemplateSettings, ITreeViewItemTemplateSettingsStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for TreeViewItemTemplateSettings {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for TreeViewItemTemplateSettings {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for TreeViewItemTemplateSettings {}
impl ::core::fmt::Debug for TreeViewItemTemplateSettings {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TreeViewItemTemplateSettings").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TreeViewItemTemplateSettings {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.TreeViewItemTemplateSettings;{ec323744-de31-4936-bfc2-1cb37ba1dc08})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for TreeViewItemTemplateSettings {
    type Vtable = ITreeViewItemTemplateSettings_Vtbl;
    const IID: ::windows::core::GUID = <ITreeViewItemTemplateSettings as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for TreeViewItemTemplateSettings {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.TreeViewItemTemplateSettings";
}
impl ::core::convert::From<TreeViewItemTemplateSettings> for ::windows::core::IUnknown {
    fn from(value: TreeViewItemTemplateSettings) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TreeViewItemTemplateSettings> for ::windows::core::IUnknown {
    fn from(value: &TreeViewItemTemplateSettings) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for TreeViewItemTemplateSettings {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a TreeViewItemTemplateSettings {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TreeViewItemTemplateSettings> for ::windows::core::IInspectable {
    fn from(value: TreeViewItemTemplateSettings) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TreeViewItemTemplateSettings> for ::windows::core::IInspectable {
    fn from(value: &TreeViewItemTemplateSettings) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for TreeViewItemTemplateSettings {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a TreeViewItemTemplateSettings {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TreeViewItemTemplateSettings> for super::DependencyObject {
    fn from(value: TreeViewItemTemplateSettings) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TreeViewItemTemplateSettings> for super::DependencyObject {
    fn from(value: &TreeViewItemTemplateSettings) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for TreeViewItemTemplateSettings {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &TreeViewItemTemplateSettings {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for TreeViewItemTemplateSettings {}
unsafe impl ::core::marker::Sync for TreeViewItemTemplateSettings {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct TreeViewList(::windows::core::IUnknown);
impl TreeViewList {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<TreeViewList> {
        Self::ITreeViewListFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<TreeViewList>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<TreeViewList> {
        Self::ITreeViewListFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<TreeViewList>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ITreeViewListFactory<R, F: FnOnce(&ITreeViewListFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TreeViewList, ITreeViewListFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for TreeViewList {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for TreeViewList {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for TreeViewList {}
impl ::core::fmt::Debug for TreeViewList {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TreeViewList").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TreeViewList {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.TreeViewList;{0f00a54e-099a-47a5-a942-94692b01f452})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for TreeViewList {
    type Vtable = ITreeViewList_Vtbl;
    const IID: ::windows::core::GUID = <ITreeViewList as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for TreeViewList {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.TreeViewList";
}
impl ::core::convert::From<TreeViewList> for ::windows::core::IUnknown {
    fn from(value: TreeViewList) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TreeViewList> for ::windows::core::IUnknown {
    fn from(value: &TreeViewList) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for TreeViewList {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a TreeViewList {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TreeViewList> for ::windows::core::IInspectable {
    fn from(value: TreeViewList) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TreeViewList> for ::windows::core::IInspectable {
    fn from(value: &TreeViewList) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for TreeViewList {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a TreeViewList {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<TreeViewList> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: TreeViewList) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&TreeViewList> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &TreeViewList) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for TreeViewList {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &TreeViewList {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::TryFrom<TreeViewList> for IItemContainerMapping {
    type Error = ::windows::core::Error;
    fn try_from(value: TreeViewList) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
impl ::core::convert::TryFrom<&TreeViewList> for IItemContainerMapping {
    type Error = ::windows::core::Error;
    fn try_from(value: &TreeViewList) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IItemContainerMapping> for TreeViewList {
    fn into_param(self) -> ::windows::core::Param<'a, IItemContainerMapping> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IItemContainerMapping> for &TreeViewList {
    fn into_param(self) -> ::windows::core::Param<'a, IItemContainerMapping> {
        ::core::convert::TryInto::<IItemContainerMapping>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::TryFrom<TreeViewList> for ISemanticZoomInformation {
    type Error = ::windows::core::Error;
    fn try_from(value: TreeViewList) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
impl ::core::convert::TryFrom<&TreeViewList> for ISemanticZoomInformation {
    type Error = ::windows::core::Error;
    fn try_from(value: &TreeViewList) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ISemanticZoomInformation> for TreeViewList {
    fn into_param(self) -> ::windows::core::Param<'a, ISemanticZoomInformation> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ISemanticZoomInformation> for &TreeViewList {
    fn into_param(self) -> ::windows::core::Param<'a, ISemanticZoomInformation> {
        ::core::convert::TryInto::<ISemanticZoomInformation>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<TreeViewList> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: TreeViewList) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&TreeViewList> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &TreeViewList) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for TreeViewList {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &TreeViewList {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<TreeViewList> for ListView {
    fn from(value: TreeViewList) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TreeViewList> for ListView {
    fn from(value: &TreeViewList) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ListView> for TreeViewList {
    fn into_param(self) -> ::windows::core::Param<'a, ListView> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ListView> for &TreeViewList {
    fn into_param(self) -> ::windows::core::Param<'a, ListView> {
        ::windows::core::Param::Owned(::core::convert::Into::<ListView>::into(self))
    }
}
impl ::core::convert::From<TreeViewList> for ListViewBase {
    fn from(value: TreeViewList) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TreeViewList> for ListViewBase {
    fn from(value: &TreeViewList) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ListViewBase> for TreeViewList {
    fn into_param(self) -> ::windows::core::Param<'a, ListViewBase> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ListViewBase> for &TreeViewList {
    fn into_param(self) -> ::windows::core::Param<'a, ListViewBase> {
        ::windows::core::Param::Owned(::core::convert::Into::<ListViewBase>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<TreeViewList> for Primitives::Selector {
    fn from(value: TreeViewList) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&TreeViewList> for Primitives::Selector {
    fn from(value: &TreeViewList) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::Selector> for TreeViewList {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::Selector> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::Selector> for &TreeViewList {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::Selector> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::Selector>::into(self))
    }
}
impl ::core::convert::From<TreeViewList> for ItemsControl {
    fn from(value: TreeViewList) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TreeViewList> for ItemsControl {
    fn from(value: &TreeViewList) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, ItemsControl> for TreeViewList {
    fn into_param(self) -> ::windows::core::Param<'a, ItemsControl> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, ItemsControl> for &TreeViewList {
    fn into_param(self) -> ::windows::core::Param<'a, ItemsControl> {
        ::windows::core::Param::Owned(::core::convert::Into::<ItemsControl>::into(self))
    }
}
impl ::core::convert::From<TreeViewList> for Control {
    fn from(value: TreeViewList) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TreeViewList> for Control {
    fn from(value: &TreeViewList) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for TreeViewList {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &TreeViewList {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<TreeViewList> for super::FrameworkElement {
    fn from(value: TreeViewList) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TreeViewList> for super::FrameworkElement {
    fn from(value: &TreeViewList) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for TreeViewList {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &TreeViewList {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<TreeViewList> for super::UIElement {
    fn from(value: TreeViewList) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TreeViewList> for super::UIElement {
    fn from(value: &TreeViewList) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for TreeViewList {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &TreeViewList {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<TreeViewList> for super::DependencyObject {
    fn from(value: TreeViewList) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TreeViewList> for super::DependencyObject {
    fn from(value: &TreeViewList) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for TreeViewList {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &TreeViewList {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for TreeViewList {}
unsafe impl ::core::marker::Sync for TreeViewList {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct TreeViewNode(::windows::core::IUnknown);
impl TreeViewNode {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Content(&self) -> ::windows::core::Result<::windows::core::IInspectable> {
        let this = self;
        unsafe {
            let mut result__: *mut ::core::ffi::c_void = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Content)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::IInspectable>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetContent<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetContent)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Parent(&self) -> ::windows::core::Result<TreeViewNode> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Parent)(::core::mem::transmute_copy(this), &mut result__).from_abi::<TreeViewNode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsExpanded(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsExpanded)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsExpanded(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsExpanded)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HasChildren(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HasChildren)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Depth(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Depth)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HasUnrealizedChildren(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HasUnrealizedChildren)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHasUnrealizedChildren(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHasUnrealizedChildren)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn Children(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVector<TreeViewNode>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Children)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<TreeViewNode>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<TreeViewNode> {
        Self::ITreeViewNodeFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<TreeViewNode>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<TreeViewNode> {
        Self::ITreeViewNodeFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<TreeViewNode>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITreeViewNodeStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DepthProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITreeViewNodeStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DepthProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsExpandedProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITreeViewNodeStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsExpandedProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HasChildrenProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITreeViewNodeStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HasChildrenProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ITreeViewNodeFactory<R, F: FnOnce(&ITreeViewNodeFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TreeViewNode, ITreeViewNodeFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ITreeViewNodeStatics<R, F: FnOnce(&ITreeViewNodeStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TreeViewNode, ITreeViewNodeStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for TreeViewNode {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for TreeViewNode {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for TreeViewNode {}
impl ::core::fmt::Debug for TreeViewNode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TreeViewNode").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TreeViewNode {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.TreeViewNode;{c04c8ed3-9af2-4e75-a329-7497a110e7a8})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for TreeViewNode {
    type Vtable = ITreeViewNode_Vtbl;
    const IID: ::windows::core::GUID = <ITreeViewNode as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for TreeViewNode {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.TreeViewNode";
}
impl ::core::convert::From<TreeViewNode> for ::windows::core::IUnknown {
    fn from(value: TreeViewNode) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TreeViewNode> for ::windows::core::IUnknown {
    fn from(value: &TreeViewNode) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for TreeViewNode {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a TreeViewNode {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TreeViewNode> for ::windows::core::IInspectable {
    fn from(value: TreeViewNode) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TreeViewNode> for ::windows::core::IInspectable {
    fn from(value: &TreeViewNode) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for TreeViewNode {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a TreeViewNode {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TreeViewNode> for super::DependencyObject {
    fn from(value: TreeViewNode) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TreeViewNode> for super::DependencyObject {
    fn from(value: &TreeViewNode) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for TreeViewNode {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &TreeViewNode {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for TreeViewNode {}
unsafe impl ::core::marker::Sync for TreeViewNode {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct TreeViewSelectionMode(pub i32);
impl TreeViewSelectionMode {
    pub const None: Self = Self(0i32);
    pub const Single: Self = Self(1i32);
    pub const Multiple: Self = Self(2i32);
}
impl ::core::marker::Copy for TreeViewSelectionMode {}
impl ::core::clone::Clone for TreeViewSelectionMode {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for TreeViewSelectionMode {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for TreeViewSelectionMode {
    type Abi = Self;
}
impl ::core::fmt::Debug for TreeViewSelectionMode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TreeViewSelectionMode").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TreeViewSelectionMode {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.TreeViewSelectionMode;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct TwoPaneView(::windows::core::IUnknown);
impl TwoPaneView {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Pane1(&self) -> ::windows::core::Result<super::UIElement> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Pane1)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::UIElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPane1<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPane1)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Pane2(&self) -> ::windows::core::Result<super::UIElement> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Pane2)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::UIElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPane2<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPane2)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Pane1Length(&self) -> ::windows::core::Result<super::GridLength> {
        let this = self;
        unsafe {
            let mut result__: super::GridLength = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Pane1Length)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::GridLength>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPane1Length<'a, Param0: ::windows::core::IntoParam<'a, super::GridLength>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPane1Length)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Pane2Length(&self) -> ::windows::core::Result<super::GridLength> {
        let this = self;
        unsafe {
            let mut result__: super::GridLength = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Pane2Length)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::GridLength>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPane2Length<'a, Param0: ::windows::core::IntoParam<'a, super::GridLength>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPane2Length)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PanePriority(&self) -> ::windows::core::Result<TwoPaneViewPriority> {
        let this = self;
        unsafe {
            let mut result__: TwoPaneViewPriority = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PanePriority)(::core::mem::transmute_copy(this), &mut result__).from_abi::<TwoPaneViewPriority>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetPanePriority(&self, value: TwoPaneViewPriority) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetPanePriority)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Mode(&self) -> ::windows::core::Result<TwoPaneViewMode> {
        let this = self;
        unsafe {
            let mut result__: TwoPaneViewMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Mode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<TwoPaneViewMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn WideModeConfiguration(&self) -> ::windows::core::Result<TwoPaneViewWideModeConfiguration> {
        let this = self;
        unsafe {
            let mut result__: TwoPaneViewWideModeConfiguration = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).WideModeConfiguration)(::core::mem::transmute_copy(this), &mut result__).from_abi::<TwoPaneViewWideModeConfiguration>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetWideModeConfiguration(&self, value: TwoPaneViewWideModeConfiguration) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetWideModeConfiguration)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TallModeConfiguration(&self) -> ::windows::core::Result<TwoPaneViewTallModeConfiguration> {
        let this = self;
        unsafe {
            let mut result__: TwoPaneViewTallModeConfiguration = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TallModeConfiguration)(::core::mem::transmute_copy(this), &mut result__).from_abi::<TwoPaneViewTallModeConfiguration>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetTallModeConfiguration(&self, value: TwoPaneViewTallModeConfiguration) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetTallModeConfiguration)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MinWideModeWidth(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MinWideModeWidth)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMinWideModeWidth(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMinWideModeWidth)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MinTallModeHeight(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MinTallModeHeight)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMinTallModeHeight(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMinTallModeHeight)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ModeChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<TwoPaneView, ::windows::core::IInspectable>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ModeChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveModeChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveModeChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<TwoPaneView> {
        Self::ITwoPaneViewFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<TwoPaneView>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<TwoPaneView> {
        Self::ITwoPaneViewFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<TwoPaneView>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Pane1Property() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITwoPaneViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Pane1Property)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Pane2Property() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITwoPaneViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Pane2Property)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Pane1LengthProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITwoPaneViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Pane1LengthProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Pane2LengthProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITwoPaneViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Pane2LengthProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PanePriorityProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITwoPaneViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PanePriorityProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ModeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITwoPaneViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ModeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn WideModeConfigurationProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITwoPaneViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).WideModeConfigurationProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn TallModeConfigurationProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITwoPaneViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).TallModeConfigurationProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MinWideModeWidthProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITwoPaneViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MinWideModeWidthProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MinTallModeHeightProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::ITwoPaneViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MinTallModeHeightProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn ITwoPaneViewFactory<R, F: FnOnce(&ITwoPaneViewFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TwoPaneView, ITwoPaneViewFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn ITwoPaneViewStatics<R, F: FnOnce(&ITwoPaneViewStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<TwoPaneView, ITwoPaneViewStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for TwoPaneView {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for TwoPaneView {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for TwoPaneView {}
impl ::core::fmt::Debug for TwoPaneView {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TwoPaneView").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TwoPaneView {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.TwoPaneView;{1b4d0db5-14ad-5926-bb8a-5b0a5c0085f0})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for TwoPaneView {
    type Vtable = ITwoPaneView_Vtbl;
    const IID: ::windows::core::GUID = <ITwoPaneView as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for TwoPaneView {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.TwoPaneView";
}
impl ::core::convert::From<TwoPaneView> for ::windows::core::IUnknown {
    fn from(value: TwoPaneView) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TwoPaneView> for ::windows::core::IUnknown {
    fn from(value: &TwoPaneView) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for TwoPaneView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a TwoPaneView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<TwoPaneView> for ::windows::core::IInspectable {
    fn from(value: TwoPaneView) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&TwoPaneView> for ::windows::core::IInspectable {
    fn from(value: &TwoPaneView) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for TwoPaneView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a TwoPaneView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<TwoPaneView> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: TwoPaneView) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&TwoPaneView> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &TwoPaneView) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for TwoPaneView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &TwoPaneView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<TwoPaneView> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: TwoPaneView) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&TwoPaneView> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &TwoPaneView) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for TwoPaneView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &TwoPaneView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<TwoPaneView> for Control {
    fn from(value: TwoPaneView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TwoPaneView> for Control {
    fn from(value: &TwoPaneView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for TwoPaneView {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &TwoPaneView {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<TwoPaneView> for super::FrameworkElement {
    fn from(value: TwoPaneView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TwoPaneView> for super::FrameworkElement {
    fn from(value: &TwoPaneView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for TwoPaneView {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &TwoPaneView {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<TwoPaneView> for super::UIElement {
    fn from(value: TwoPaneView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TwoPaneView> for super::UIElement {
    fn from(value: &TwoPaneView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for TwoPaneView {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &TwoPaneView {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<TwoPaneView> for super::DependencyObject {
    fn from(value: TwoPaneView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&TwoPaneView> for super::DependencyObject {
    fn from(value: &TwoPaneView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for TwoPaneView {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &TwoPaneView {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for TwoPaneView {}
unsafe impl ::core::marker::Sync for TwoPaneView {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct TwoPaneViewMode(pub i32);
impl TwoPaneViewMode {
    pub const SinglePane: Self = Self(0i32);
    pub const Wide: Self = Self(1i32);
    pub const Tall: Self = Self(2i32);
}
impl ::core::marker::Copy for TwoPaneViewMode {}
impl ::core::clone::Clone for TwoPaneViewMode {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for TwoPaneViewMode {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for TwoPaneViewMode {
    type Abi = Self;
}
impl ::core::fmt::Debug for TwoPaneViewMode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TwoPaneViewMode").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TwoPaneViewMode {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.TwoPaneViewMode;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct TwoPaneViewPriority(pub i32);
impl TwoPaneViewPriority {
    pub const Pane1: Self = Self(0i32);
    pub const Pane2: Self = Self(1i32);
}
impl ::core::marker::Copy for TwoPaneViewPriority {}
impl ::core::clone::Clone for TwoPaneViewPriority {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for TwoPaneViewPriority {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for TwoPaneViewPriority {
    type Abi = Self;
}
impl ::core::fmt::Debug for TwoPaneViewPriority {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TwoPaneViewPriority").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TwoPaneViewPriority {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.TwoPaneViewPriority;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct TwoPaneViewTallModeConfiguration(pub i32);
impl TwoPaneViewTallModeConfiguration {
    pub const SinglePane: Self = Self(0i32);
    pub const TopBottom: Self = Self(1i32);
    pub const BottomTop: Self = Self(2i32);
}
impl ::core::marker::Copy for TwoPaneViewTallModeConfiguration {}
impl ::core::clone::Clone for TwoPaneViewTallModeConfiguration {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for TwoPaneViewTallModeConfiguration {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for TwoPaneViewTallModeConfiguration {
    type Abi = Self;
}
impl ::core::fmt::Debug for TwoPaneViewTallModeConfiguration {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TwoPaneViewTallModeConfiguration").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TwoPaneViewTallModeConfiguration {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.TwoPaneViewTallModeConfiguration;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct TwoPaneViewWideModeConfiguration(pub i32);
impl TwoPaneViewWideModeConfiguration {
    pub const SinglePane: Self = Self(0i32);
    pub const LeftRight: Self = Self(1i32);
    pub const RightLeft: Self = Self(2i32);
}
impl ::core::marker::Copy for TwoPaneViewWideModeConfiguration {}
impl ::core::clone::Clone for TwoPaneViewWideModeConfiguration {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for TwoPaneViewWideModeConfiguration {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for TwoPaneViewWideModeConfiguration {
    type Abi = Self;
}
impl ::core::fmt::Debug for TwoPaneViewWideModeConfiguration {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TwoPaneViewWideModeConfiguration").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for TwoPaneViewWideModeConfiguration {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.TwoPaneViewWideModeConfiguration;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
#[cfg(feature = "Foundation_Collections")]
#[repr(transparent)]
pub struct UIElementCollection(::windows::core::IUnknown);
#[cfg(feature = "Foundation_Collections")]
impl UIElementCollection {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn First(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IIterator<super::UIElement>> {
        let this = &::windows::core::Interface::cast::<super::super::super::Foundation::Collections::IIterable<super::UIElement>>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).First)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IIterator<super::UIElement>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Move(&self, oldindex: u32, newindex: u32) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IUIElementCollection>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).Move)(::core::mem::transmute_copy(this), oldindex, newindex).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn GetAt(&self, index: u32) -> ::windows::core::Result<super::UIElement> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetAt)(::core::mem::transmute_copy(this), index, &mut result__).from_abi::<super::UIElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn Size(&self) -> ::windows::core::Result<u32> {
        let this = self;
        unsafe {
            let mut result__: u32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Size)(::core::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn GetView(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVectorView<super::UIElement>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetView)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVectorView<super::UIElement>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn IndexOf<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(&self, value: Param0, index: &mut u32) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IndexOf)(::core::mem::transmute_copy(this), value.into_param().abi(), index, &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn SetAt<'a, Param1: ::windows::core::IntoParam<'a, super::UIElement>>(&self, index: u32, value: Param1) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetAt)(::core::mem::transmute_copy(this), index, value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn InsertAt<'a, Param1: ::windows::core::IntoParam<'a, super::UIElement>>(&self, index: u32, value: Param1) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).InsertAt)(::core::mem::transmute_copy(this), index, value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn RemoveAt(&self, index: u32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveAt)(::core::mem::transmute_copy(this), index).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn Append<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Append)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn RemoveAtEnd(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveAtEnd)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn Clear(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Clear)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn GetMany(&self, startindex: u32, items: &mut [::core::option::Option<super::UIElement>]) -> ::windows::core::Result<u32> {
        let this = self;
        unsafe {
            let mut result__: u32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetMany)(::core::mem::transmute_copy(this), startindex, items.len() as u32, ::core::mem::transmute_copy(&items), &mut result__).from_abi::<u32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn ReplaceAll(&self, items: &[::core::option::Option<super::UIElement>]) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).ReplaceAll)(::core::mem::transmute_copy(this), items.len() as u32, ::core::mem::transmute(items.as_ptr())).ok() }
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::clone::Clone for UIElementCollection {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::cmp::PartialEq for UIElementCollection {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::cmp::Eq for UIElementCollection {}
#[cfg(feature = "Foundation_Collections")]
impl ::core::fmt::Debug for UIElementCollection {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UIElementCollection").field(&self.0).finish()
    }
}
#[cfg(feature = "Foundation_Collections")]
unsafe impl ::windows::core::RuntimeType for UIElementCollection {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.UIElementCollection;pinterface({913337e9-11a1-4345-a3a2-4e7f956e222d};rc(Windows.UI.Xaml.UIElement;{676d0be9-b65c-41c6-ba40-58cf87f201c1})))");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
#[cfg(feature = "Foundation_Collections")]
unsafe impl ::windows::core::Interface for UIElementCollection {
    type Vtable = super::super::super::Foundation::Collections::IVector_Vtbl<super::UIElement>;
    const IID: ::windows::core::GUID = <super::super::super::Foundation::Collections::IVector<super::UIElement> as ::windows::core::Interface>::IID;
}
#[cfg(feature = "Foundation_Collections")]
impl ::windows::core::RuntimeName for UIElementCollection {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.UIElementCollection";
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::iter::IntoIterator for UIElementCollection {
    type Item = super::UIElement;
    type IntoIter = super::super::super::Foundation::Collections::VectorIterator<Self::Item>;
    fn into_iter(self) -> Self::IntoIter {
        ::core::iter::IntoIterator::into_iter(&self)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::iter::IntoIterator for &UIElementCollection {
    type Item = super::UIElement;
    type IntoIter = super::super::super::Foundation::Collections::VectorIterator<Self::Item>;
    fn into_iter(self) -> Self::IntoIter {
        super::super::super::Foundation::Collections::VectorIterator::new(::core::convert::TryInto::try_into(self).ok())
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::From<UIElementCollection> for ::windows::core::IUnknown {
    fn from(value: UIElementCollection) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::From<&UIElementCollection> for ::windows::core::IUnknown {
    fn from(value: &UIElementCollection) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for UIElementCollection {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a UIElementCollection {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::From<UIElementCollection> for ::windows::core::IInspectable {
    fn from(value: UIElementCollection) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::From<&UIElementCollection> for ::windows::core::IInspectable {
    fn from(value: &UIElementCollection) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for UIElementCollection {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a UIElementCollection {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::TryFrom<UIElementCollection> for super::super::super::Foundation::Collections::IIterable<super::UIElement> {
    type Error = ::windows::core::Error;
    fn try_from(value: UIElementCollection) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::TryFrom<&UIElementCollection> for super::super::super::Foundation::Collections::IIterable<super::UIElement> {
    type Error = ::windows::core::Error;
    fn try_from(value: &UIElementCollection) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IIterable<super::UIElement>> for UIElementCollection {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::super::Foundation::Collections::IIterable<super::UIElement>> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IIterable<super::UIElement>> for &UIElementCollection {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::super::Foundation::Collections::IIterable<super::UIElement>> {
        ::core::convert::TryInto::<super::super::super::Foundation::Collections::IIterable<super::UIElement>>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::TryFrom<UIElementCollection> for super::super::super::Foundation::Collections::IVector<super::UIElement> {
    type Error = ::windows::core::Error;
    fn try_from(value: UIElementCollection) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl ::core::convert::TryFrom<&UIElementCollection> for super::super::super::Foundation::Collections::IVector<super::UIElement> {
    type Error = ::windows::core::Error;
    fn try_from(value: &UIElementCollection) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IVector<super::UIElement>> for UIElementCollection {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::super::Foundation::Collections::IVector<super::UIElement>> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "Foundation_Collections")]
impl<'a> ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IVector<super::UIElement>> for &UIElementCollection {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::super::Foundation::Collections::IVector<super::UIElement>> {
        ::core::convert::TryInto::<super::super::super::Foundation::Collections::IVector<super::UIElement>>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "Foundation_Collections")]
unsafe impl ::core::marker::Send for UIElementCollection {}
#[cfg(feature = "Foundation_Collections")]
unsafe impl ::core::marker::Sync for UIElementCollection {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct UserControl(::windows::core::IUnknown);
impl UserControl {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Content(&self) -> ::windows::core::Result<super::UIElement> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Content)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::UIElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetContent<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetContent)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn new() -> ::windows::core::Result<UserControl> {
        Self::IUserControlFactory(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::ptr::null_mut(), &mut ::core::option::Option::<::windows::core::IInspectable>::None as *mut _ as _, &mut result__).from_abi::<UserControl>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn compose<T: ::windows::core::Compose>(compose: T) -> ::windows::core::Result<UserControl> {
        Self::IUserControlFactory(|this| unsafe {
            let (derived__, base__) = ::windows::core::Compose::compose(compose);
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstance)(::core::mem::transmute_copy(this), ::core::mem::transmute_copy(&derived__), base__ as *mut _ as _, &mut result__).from_abi::<UserControl>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IUserControlStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IUserControlFactory<R, F: FnOnce(&IUserControlFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<UserControl, IUserControlFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IUserControlStatics<R, F: FnOnce(&IUserControlStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<UserControl, IUserControlStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for UserControl {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for UserControl {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for UserControl {}
impl ::core::fmt::Debug for UserControl {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UserControl").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for UserControl {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.UserControl;{a7a69ec9-ea35-4679-bf29-f4f09286d314})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for UserControl {
    type Vtable = IUserControl_Vtbl;
    const IID: ::windows::core::GUID = <IUserControl as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for UserControl {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.UserControl";
}
impl ::core::convert::From<UserControl> for ::windows::core::IUnknown {
    fn from(value: UserControl) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&UserControl> for ::windows::core::IUnknown {
    fn from(value: &UserControl) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for UserControl {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a UserControl {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<UserControl> for ::windows::core::IInspectable {
    fn from(value: UserControl) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&UserControl> for ::windows::core::IInspectable {
    fn from(value: &UserControl) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for UserControl {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a UserControl {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<UserControl> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: UserControl) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&UserControl> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &UserControl) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for UserControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &UserControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<UserControl> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: UserControl) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&UserControl> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &UserControl) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for UserControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &UserControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<UserControl> for Control {
    fn from(value: UserControl) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&UserControl> for Control {
    fn from(value: &UserControl) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for UserControl {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Control> for &UserControl {
    fn into_param(self) -> ::windows::core::Param<'a, Control> {
        ::windows::core::Param::Owned(::core::convert::Into::<Control>::into(self))
    }
}
impl ::core::convert::From<UserControl> for super::FrameworkElement {
    fn from(value: UserControl) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&UserControl> for super::FrameworkElement {
    fn from(value: &UserControl) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for UserControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &UserControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<UserControl> for super::UIElement {
    fn from(value: UserControl) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&UserControl> for super::UIElement {
    fn from(value: &UserControl) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for UserControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &UserControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<UserControl> for super::DependencyObject {
    fn from(value: UserControl) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&UserControl> for super::DependencyObject {
    fn from(value: &UserControl) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for UserControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &UserControl {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for UserControl {}
unsafe impl ::core::marker::Sync for UserControl {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct VariableSizedWrapGrid(::windows::core::IUnknown);
impl VariableSizedWrapGrid {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<VariableSizedWrapGrid, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemHeight(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemHeight)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetItemHeight(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetItemHeight)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemWidth(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemWidth)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetItemWidth(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetItemWidth)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Orientation(&self) -> ::windows::core::Result<Orientation> {
        let this = self;
        unsafe {
            let mut result__: Orientation = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Orientation)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Orientation>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetOrientation(&self, value: Orientation) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetOrientation)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalChildrenAlignment(&self) -> ::windows::core::Result<super::HorizontalAlignment> {
        let this = self;
        unsafe {
            let mut result__: super::HorizontalAlignment = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalChildrenAlignment)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::HorizontalAlignment>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHorizontalChildrenAlignment(&self, value: super::HorizontalAlignment) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHorizontalChildrenAlignment)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalChildrenAlignment(&self) -> ::windows::core::Result<super::VerticalAlignment> {
        let this = self;
        unsafe {
            let mut result__: super::VerticalAlignment = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalChildrenAlignment)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::VerticalAlignment>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetVerticalChildrenAlignment(&self, value: super::VerticalAlignment) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetVerticalChildrenAlignment)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaximumRowsOrColumns(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaximumRowsOrColumns)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMaximumRowsOrColumns(&self, value: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMaximumRowsOrColumns)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemHeightProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IVariableSizedWrapGridStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemHeightProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemWidthProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IVariableSizedWrapGridStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemWidthProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OrientationProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IVariableSizedWrapGridStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OrientationProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalChildrenAlignmentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IVariableSizedWrapGridStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalChildrenAlignmentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalChildrenAlignmentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IVariableSizedWrapGridStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalChildrenAlignmentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaximumRowsOrColumnsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IVariableSizedWrapGridStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaximumRowsOrColumnsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn RowSpanProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IVariableSizedWrapGridStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).RowSpanProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetRowSpan<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0) -> ::windows::core::Result<i32> {
        Self::IVariableSizedWrapGridStatics(|this| unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetRowSpan)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<i32>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetRowSpan<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0, value: i32) -> ::windows::core::Result<()> {
        Self::IVariableSizedWrapGridStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetRowSpan)(::core::mem::transmute_copy(this), element.into_param().abi(), value).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ColumnSpanProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IVariableSizedWrapGridStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ColumnSpanProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetColumnSpan<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0) -> ::windows::core::Result<i32> {
        Self::IVariableSizedWrapGridStatics(|this| unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetColumnSpan)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<i32>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetColumnSpan<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(element: Param0, value: i32) -> ::windows::core::Result<()> {
        Self::IVariableSizedWrapGridStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetColumnSpan)(::core::mem::transmute_copy(this), element.into_param().abi(), value).ok() })
    }
    #[doc(hidden)]
    pub fn IVariableSizedWrapGridStatics<R, F: FnOnce(&IVariableSizedWrapGridStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<VariableSizedWrapGrid, IVariableSizedWrapGridStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for VariableSizedWrapGrid {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for VariableSizedWrapGrid {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for VariableSizedWrapGrid {}
impl ::core::fmt::Debug for VariableSizedWrapGrid {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("VariableSizedWrapGrid").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for VariableSizedWrapGrid {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.VariableSizedWrapGrid;{9ca507c7-23c9-4f01-b80f-be5c21eef474})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for VariableSizedWrapGrid {
    type Vtable = IVariableSizedWrapGrid_Vtbl;
    const IID: ::windows::core::GUID = <IVariableSizedWrapGrid as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for VariableSizedWrapGrid {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.VariableSizedWrapGrid";
}
impl ::core::convert::From<VariableSizedWrapGrid> for ::windows::core::IUnknown {
    fn from(value: VariableSizedWrapGrid) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&VariableSizedWrapGrid> for ::windows::core::IUnknown {
    fn from(value: &VariableSizedWrapGrid) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for VariableSizedWrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a VariableSizedWrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<VariableSizedWrapGrid> for ::windows::core::IInspectable {
    fn from(value: VariableSizedWrapGrid) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&VariableSizedWrapGrid> for ::windows::core::IInspectable {
    fn from(value: &VariableSizedWrapGrid) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for VariableSizedWrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a VariableSizedWrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<VariableSizedWrapGrid> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: VariableSizedWrapGrid) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&VariableSizedWrapGrid> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &VariableSizedWrapGrid) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for VariableSizedWrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &VariableSizedWrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<VariableSizedWrapGrid> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: VariableSizedWrapGrid) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&VariableSizedWrapGrid> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &VariableSizedWrapGrid) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for VariableSizedWrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &VariableSizedWrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<VariableSizedWrapGrid> for Panel {
    fn from(value: VariableSizedWrapGrid) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&VariableSizedWrapGrid> for Panel {
    fn from(value: &VariableSizedWrapGrid) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Panel> for VariableSizedWrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, Panel> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Panel> for &VariableSizedWrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, Panel> {
        ::windows::core::Param::Owned(::core::convert::Into::<Panel>::into(self))
    }
}
impl ::core::convert::From<VariableSizedWrapGrid> for super::FrameworkElement {
    fn from(value: VariableSizedWrapGrid) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&VariableSizedWrapGrid> for super::FrameworkElement {
    fn from(value: &VariableSizedWrapGrid) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for VariableSizedWrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &VariableSizedWrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<VariableSizedWrapGrid> for super::UIElement {
    fn from(value: VariableSizedWrapGrid) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&VariableSizedWrapGrid> for super::UIElement {
    fn from(value: &VariableSizedWrapGrid) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for VariableSizedWrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &VariableSizedWrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<VariableSizedWrapGrid> for super::DependencyObject {
    fn from(value: VariableSizedWrapGrid) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&VariableSizedWrapGrid> for super::DependencyObject {
    fn from(value: &VariableSizedWrapGrid) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for VariableSizedWrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &VariableSizedWrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for VariableSizedWrapGrid {}
unsafe impl ::core::marker::Sync for VariableSizedWrapGrid {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct Viewbox(::windows::core::IUnknown);
impl Viewbox {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Viewbox, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Child(&self) -> ::windows::core::Result<super::UIElement> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Child)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::UIElement>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetChild<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetChild)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn Stretch(&self) -> ::windows::core::Result<super::Media::Stretch> {
        let this = self;
        unsafe {
            let mut result__: super::Media::Stretch = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Stretch)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::Media::Stretch>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'UI_Xaml_Media'*"]
    #[cfg(feature = "UI_Xaml_Media")]
    pub fn SetStretch(&self, value: super::Media::Stretch) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetStretch)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn StretchDirection(&self) -> ::windows::core::Result<StretchDirection> {
        let this = self;
        unsafe {
            let mut result__: StretchDirection = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).StretchDirection)(::core::mem::transmute_copy(this), &mut result__).from_abi::<StretchDirection>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetStretchDirection(&self, value: StretchDirection) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetStretchDirection)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn StretchProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IViewboxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).StretchProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn StretchDirectionProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IViewboxStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).StretchDirectionProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IViewboxStatics<R, F: FnOnce(&IViewboxStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<Viewbox, IViewboxStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for Viewbox {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for Viewbox {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for Viewbox {}
impl ::core::fmt::Debug for Viewbox {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("Viewbox").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for Viewbox {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.Viewbox;{05252c58-ba9d-4809-9ec3-fa0d16710ba1})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for Viewbox {
    type Vtable = IViewbox_Vtbl;
    const IID: ::windows::core::GUID = <IViewbox as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for Viewbox {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.Viewbox";
}
impl ::core::convert::From<Viewbox> for ::windows::core::IUnknown {
    fn from(value: Viewbox) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&Viewbox> for ::windows::core::IUnknown {
    fn from(value: &Viewbox) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for Viewbox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a Viewbox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<Viewbox> for ::windows::core::IInspectable {
    fn from(value: Viewbox) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&Viewbox> for ::windows::core::IInspectable {
    fn from(value: &Viewbox) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for Viewbox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a Viewbox {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<Viewbox> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: Viewbox) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&Viewbox> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &Viewbox) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for Viewbox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &Viewbox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<Viewbox> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: Viewbox) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&Viewbox> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &Viewbox) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for Viewbox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &Viewbox {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<Viewbox> for super::FrameworkElement {
    fn from(value: Viewbox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Viewbox> for super::FrameworkElement {
    fn from(value: &Viewbox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for Viewbox {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &Viewbox {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<Viewbox> for super::UIElement {
    fn from(value: Viewbox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Viewbox> for super::UIElement {
    fn from(value: &Viewbox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for Viewbox {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &Viewbox {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<Viewbox> for super::DependencyObject {
    fn from(value: Viewbox) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&Viewbox> for super::DependencyObject {
    fn from(value: &Viewbox) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for Viewbox {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &Viewbox {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for Viewbox {}
unsafe impl ::core::marker::Sync for Viewbox {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct VirtualizationMode(pub i32);
impl VirtualizationMode {
    pub const Standard: Self = Self(0i32);
    pub const Recycling: Self = Self(1i32);
}
impl ::core::marker::Copy for VirtualizationMode {}
impl ::core::clone::Clone for VirtualizationMode {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for VirtualizationMode {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for VirtualizationMode {
    type Abi = Self;
}
impl ::core::fmt::Debug for VirtualizationMode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("VirtualizationMode").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for VirtualizationMode {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.VirtualizationMode;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct VirtualizingPanel(::windows::core::IUnknown);
impl VirtualizingPanel {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemContainerGenerator(&self) -> ::windows::core::Result<ItemContainerGenerator> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemContainerGenerator)(::core::mem::transmute_copy(this), &mut result__).from_abi::<ItemContainerGenerator>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AddInternalChild<'a, Param0: ::windows::core::IntoParam<'a, super::UIElement>>(&self, child: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IVirtualizingPanelProtected>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).AddInternalChild)(::core::mem::transmute_copy(this), child.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn InsertInternalChild<'a, Param1: ::windows::core::IntoParam<'a, super::UIElement>>(&self, index: i32, child: Param1) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IVirtualizingPanelProtected>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).InsertInternalChild)(::core::mem::transmute_copy(this), index, child.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn RemoveInternalChildRange(&self, index: i32, range: i32) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IVirtualizingPanelProtected>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveInternalChildRange)(::core::mem::transmute_copy(this), index, range).ok() }
    }
}
impl ::core::clone::Clone for VirtualizingPanel {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for VirtualizingPanel {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for VirtualizingPanel {}
impl ::core::fmt::Debug for VirtualizingPanel {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("VirtualizingPanel").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for VirtualizingPanel {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.VirtualizingPanel;{38aad50c-12cf-4d1e-a884-c9df85f07cd9})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for VirtualizingPanel {
    type Vtable = IVirtualizingPanel_Vtbl;
    const IID: ::windows::core::GUID = <IVirtualizingPanel as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for VirtualizingPanel {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.VirtualizingPanel";
}
impl ::core::convert::From<VirtualizingPanel> for ::windows::core::IUnknown {
    fn from(value: VirtualizingPanel) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&VirtualizingPanel> for ::windows::core::IUnknown {
    fn from(value: &VirtualizingPanel) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for VirtualizingPanel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a VirtualizingPanel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<VirtualizingPanel> for ::windows::core::IInspectable {
    fn from(value: VirtualizingPanel) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&VirtualizingPanel> for ::windows::core::IInspectable {
    fn from(value: &VirtualizingPanel) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for VirtualizingPanel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a VirtualizingPanel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<VirtualizingPanel> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: VirtualizingPanel) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&VirtualizingPanel> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &VirtualizingPanel) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for VirtualizingPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &VirtualizingPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<VirtualizingPanel> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: VirtualizingPanel) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&VirtualizingPanel> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &VirtualizingPanel) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for VirtualizingPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &VirtualizingPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<VirtualizingPanel> for Panel {
    fn from(value: VirtualizingPanel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&VirtualizingPanel> for Panel {
    fn from(value: &VirtualizingPanel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Panel> for VirtualizingPanel {
    fn into_param(self) -> ::windows::core::Param<'a, Panel> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Panel> for &VirtualizingPanel {
    fn into_param(self) -> ::windows::core::Param<'a, Panel> {
        ::windows::core::Param::Owned(::core::convert::Into::<Panel>::into(self))
    }
}
impl ::core::convert::From<VirtualizingPanel> for super::FrameworkElement {
    fn from(value: VirtualizingPanel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&VirtualizingPanel> for super::FrameworkElement {
    fn from(value: &VirtualizingPanel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for VirtualizingPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &VirtualizingPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<VirtualizingPanel> for super::UIElement {
    fn from(value: VirtualizingPanel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&VirtualizingPanel> for super::UIElement {
    fn from(value: &VirtualizingPanel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for VirtualizingPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &VirtualizingPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<VirtualizingPanel> for super::DependencyObject {
    fn from(value: VirtualizingPanel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&VirtualizingPanel> for super::DependencyObject {
    fn from(value: &VirtualizingPanel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for VirtualizingPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &VirtualizingPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for VirtualizingPanel {}
unsafe impl ::core::marker::Sync for VirtualizingPanel {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct VirtualizingStackPanel(::windows::core::IUnknown);
impl VirtualizingStackPanel {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<VirtualizingStackPanel, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AreScrollSnapPointsRegular(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AreScrollSnapPointsRegular)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetAreScrollSnapPointsRegular(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetAreScrollSnapPointsRegular)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Orientation(&self) -> ::windows::core::Result<Orientation> {
        let this = self;
        unsafe {
            let mut result__: Orientation = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Orientation)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Orientation>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetOrientation(&self, value: Orientation) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetOrientation)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn CleanUpVirtualizedItemEvent<'a, Param0: ::windows::core::IntoParam<'a, CleanUpVirtualizedItemEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CleanUpVirtualizedItemEvent)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveCleanUpVirtualizedItemEvent<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveCleanUpVirtualizedItemEvent)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AreScrollSnapPointsRegularProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IVirtualizingStackPanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AreScrollSnapPointsRegularProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OrientationProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IVirtualizingStackPanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OrientationProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VirtualizationModeProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IVirtualizingStackPanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VirtualizationModeProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetVirtualizationMode<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0) -> ::windows::core::Result<VirtualizationMode> {
        Self::IVirtualizingStackPanelStatics(|this| unsafe {
            let mut result__: VirtualizationMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetVirtualizationMode)(::core::mem::transmute_copy(this), element.into_param().abi(), &mut result__).from_abi::<VirtualizationMode>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetVirtualizationMode<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(element: Param0, value: VirtualizationMode) -> ::windows::core::Result<()> {
        Self::IVirtualizingStackPanelStatics(|this| unsafe { (::windows::core::Interface::vtable(this).SetVirtualizationMode)(::core::mem::transmute_copy(this), element.into_param().abi(), value).ok() })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsVirtualizingProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IVirtualizingStackPanelStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsVirtualizingProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GetIsVirtualizing<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(o: Param0) -> ::windows::core::Result<bool> {
        Self::IVirtualizingStackPanelStatics(|this| unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetIsVirtualizing)(::core::mem::transmute_copy(this), o.into_param().abi(), &mut result__).from_abi::<bool>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IVirtualizingStackPanelStatics<R, F: FnOnce(&IVirtualizingStackPanelStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<VirtualizingStackPanel, IVirtualizingStackPanelStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for VirtualizingStackPanel {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for VirtualizingStackPanel {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for VirtualizingStackPanel {}
impl ::core::fmt::Debug for VirtualizingStackPanel {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("VirtualizingStackPanel").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for VirtualizingStackPanel {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.VirtualizingStackPanel;{7567cd9a-a3b4-4dea-bb11-549e2c2f919d})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for VirtualizingStackPanel {
    type Vtable = IVirtualizingStackPanel_Vtbl;
    const IID: ::windows::core::GUID = <IVirtualizingStackPanel as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for VirtualizingStackPanel {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.VirtualizingStackPanel";
}
impl ::core::convert::From<VirtualizingStackPanel> for ::windows::core::IUnknown {
    fn from(value: VirtualizingStackPanel) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&VirtualizingStackPanel> for ::windows::core::IUnknown {
    fn from(value: &VirtualizingStackPanel) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for VirtualizingStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a VirtualizingStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<VirtualizingStackPanel> for ::windows::core::IInspectable {
    fn from(value: VirtualizingStackPanel) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&VirtualizingStackPanel> for ::windows::core::IInspectable {
    fn from(value: &VirtualizingStackPanel) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for VirtualizingStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a VirtualizingStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<VirtualizingStackPanel> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: VirtualizingStackPanel) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&VirtualizingStackPanel> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &VirtualizingStackPanel) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for VirtualizingStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &VirtualizingStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::TryFrom<VirtualizingStackPanel> for IInsertionPanel {
    type Error = ::windows::core::Error;
    fn try_from(value: VirtualizingStackPanel) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
impl ::core::convert::TryFrom<&VirtualizingStackPanel> for IInsertionPanel {
    type Error = ::windows::core::Error;
    fn try_from(value: &VirtualizingStackPanel) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IInsertionPanel> for VirtualizingStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, IInsertionPanel> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IInsertionPanel> for &VirtualizingStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, IInsertionPanel> {
        ::core::convert::TryInto::<IInsertionPanel>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::TryFrom<VirtualizingStackPanel> for Primitives::IScrollSnapPointsInfo {
    type Error = ::windows::core::Error;
    fn try_from(value: VirtualizingStackPanel) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::TryFrom<&VirtualizingStackPanel> for Primitives::IScrollSnapPointsInfo {
    type Error = ::windows::core::Error;
    fn try_from(value: &VirtualizingStackPanel) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::IScrollSnapPointsInfo> for VirtualizingStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::IScrollSnapPointsInfo> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::IScrollSnapPointsInfo> for &VirtualizingStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::IScrollSnapPointsInfo> {
        ::core::convert::TryInto::<Primitives::IScrollSnapPointsInfo>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<VirtualizingStackPanel> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: VirtualizingStackPanel) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&VirtualizingStackPanel> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &VirtualizingStackPanel) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for VirtualizingStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &VirtualizingStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<VirtualizingStackPanel> for Primitives::OrientedVirtualizingPanel {
    fn from(value: VirtualizingStackPanel) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&VirtualizingStackPanel> for Primitives::OrientedVirtualizingPanel {
    fn from(value: &VirtualizingStackPanel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::OrientedVirtualizingPanel> for VirtualizingStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::OrientedVirtualizingPanel> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::OrientedVirtualizingPanel> for &VirtualizingStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::OrientedVirtualizingPanel> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::OrientedVirtualizingPanel>::into(self))
    }
}
impl ::core::convert::From<VirtualizingStackPanel> for VirtualizingPanel {
    fn from(value: VirtualizingStackPanel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&VirtualizingStackPanel> for VirtualizingPanel {
    fn from(value: &VirtualizingStackPanel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, VirtualizingPanel> for VirtualizingStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, VirtualizingPanel> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, VirtualizingPanel> for &VirtualizingStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, VirtualizingPanel> {
        ::windows::core::Param::Owned(::core::convert::Into::<VirtualizingPanel>::into(self))
    }
}
impl ::core::convert::From<VirtualizingStackPanel> for Panel {
    fn from(value: VirtualizingStackPanel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&VirtualizingStackPanel> for Panel {
    fn from(value: &VirtualizingStackPanel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Panel> for VirtualizingStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, Panel> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Panel> for &VirtualizingStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, Panel> {
        ::windows::core::Param::Owned(::core::convert::Into::<Panel>::into(self))
    }
}
impl ::core::convert::From<VirtualizingStackPanel> for super::FrameworkElement {
    fn from(value: VirtualizingStackPanel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&VirtualizingStackPanel> for super::FrameworkElement {
    fn from(value: &VirtualizingStackPanel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for VirtualizingStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &VirtualizingStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<VirtualizingStackPanel> for super::UIElement {
    fn from(value: VirtualizingStackPanel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&VirtualizingStackPanel> for super::UIElement {
    fn from(value: &VirtualizingStackPanel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for VirtualizingStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &VirtualizingStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<VirtualizingStackPanel> for super::DependencyObject {
    fn from(value: VirtualizingStackPanel) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&VirtualizingStackPanel> for super::DependencyObject {
    fn from(value: &VirtualizingStackPanel) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for VirtualizingStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &VirtualizingStackPanel {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for VirtualizingStackPanel {}
unsafe impl ::core::marker::Sync for VirtualizingStackPanel {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct WebView(::windows::core::IUnknown);
impl WebView {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<WebView, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Source(&self) -> ::windows::core::Result<super::super::super::Foundation::Uri> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Source)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Uri>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SetSource<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::Uri>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSource)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'deprecated'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "deprecated"))]
    pub fn AllowedScriptNotifyUris(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVector<super::super::super::Foundation::Uri>> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AllowedScriptNotifyUris)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<super::super::super::Foundation::Uri>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'deprecated'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "deprecated"))]
    pub fn SetAllowedScriptNotifyUris<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IVector<super::super::super::Foundation::Uri>>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetAllowedScriptNotifyUris)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'ApplicationModel_DataTransfer', 'deprecated'*"]
    #[cfg(all(feature = "ApplicationModel_DataTransfer", feature = "deprecated"))]
    pub fn DataTransferPackage(&self) -> ::windows::core::Result<super::super::super::ApplicationModel::DataTransfer::DataPackage> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DataTransferPackage)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::ApplicationModel::DataTransfer::DataPackage>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'UI_Xaml_Navigation', 'deprecated'*"]
    #[cfg(all(feature = "Foundation", feature = "UI_Xaml_Navigation", feature = "deprecated"))]
    pub fn LoadCompleted<'a, Param0: ::windows::core::IntoParam<'a, super::Navigation::LoadCompletedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LoadCompleted)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'deprecated'*"]
    #[cfg(all(feature = "Foundation", feature = "deprecated"))]
    pub fn RemoveLoadCompleted<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveLoadCompleted)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ScriptNotify<'a, Param0: ::windows::core::IntoParam<'a, NotifyEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ScriptNotify)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveScriptNotify<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveScriptNotify)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'deprecated'*"]
    #[cfg(all(feature = "Foundation", feature = "deprecated"))]
    pub fn NavigationFailed<'a, Param0: ::windows::core::IntoParam<'a, WebViewNavigationFailedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).NavigationFailed)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'deprecated'*"]
    #[cfg(all(feature = "Foundation", feature = "deprecated"))]
    pub fn RemoveNavigationFailed<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).RemoveNavigationFailed)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'deprecated'*"]
    #[cfg(feature = "deprecated")]
    pub fn InvokeScript<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, scriptname: Param0, arguments: &[::windows::core::HSTRING]) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).InvokeScript)(::core::mem::transmute_copy(this), scriptname.into_param().abi(), arguments.len() as u32, ::core::mem::transmute(arguments.as_ptr()), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Navigate<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::Uri>>(&self, source: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Navigate)(::core::mem::transmute_copy(this), source.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn NavigateToString<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, text: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).NavigateToString)(::core::mem::transmute_copy(this), text.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanGoBack(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanGoBack)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanGoForward(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanGoForward)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DocumentTitle(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DocumentTitle)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn NavigationStarting<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<WebView, WebViewNavigationStartingEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).NavigationStarting)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveNavigationStarting<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveNavigationStarting)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ContentLoading<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<WebView, WebViewContentLoadingEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContentLoading)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveContentLoading<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveContentLoading)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn DOMContentLoaded<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<WebView, WebViewDOMContentLoadedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DOMContentLoaded)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveDOMContentLoaded<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveDOMContentLoaded)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GoForward(&self) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).GoForward)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn GoBack(&self) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).GoBack)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Refresh(&self) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).Refresh)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Stop(&self) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).Stop)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'Storage_Streams'*"]
    #[cfg(all(feature = "Foundation", feature = "Storage_Streams"))]
    pub fn CapturePreviewToStreamAsync<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Storage::Streams::IRandomAccessStream>>(&self, stream: Param0) -> ::windows::core::Result<super::super::super::Foundation::IAsyncAction> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CapturePreviewToStreamAsync)(::core::mem::transmute_copy(this), stream.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::IAsyncAction>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn InvokeScriptAsync<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>, Param1: ::windows::core::IntoParam<'a, super::super::super::Foundation::Collections::IIterable<::windows::core::HSTRING>>>(&self, scriptname: Param0, arguments: Param1) -> ::windows::core::Result<super::super::super::Foundation::IAsyncOperation<::windows::core::HSTRING>> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).InvokeScriptAsync)(::core::mem::transmute_copy(this), scriptname.into_param().abi(), arguments.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::IAsyncOperation<::windows::core::HSTRING>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'ApplicationModel_DataTransfer', 'Foundation'*"]
    #[cfg(all(feature = "ApplicationModel_DataTransfer", feature = "Foundation"))]
    pub fn CaptureSelectedContentToDataPackageAsync(&self) -> ::windows::core::Result<super::super::super::Foundation::IAsyncOperation<super::super::super::ApplicationModel::DataTransfer::DataPackage>> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CaptureSelectedContentToDataPackageAsync)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::IAsyncOperation<super::super::super::ApplicationModel::DataTransfer::DataPackage>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation', 'Web'*"]
    #[cfg(all(feature = "Foundation", feature = "Web"))]
    pub fn NavigateToLocalStreamUri<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::Uri>, Param1: ::windows::core::IntoParam<'a, super::super::super::Web::IUriToStreamResolver>>(&self, source: Param0, streamresolver: Param1) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).NavigateToLocalStreamUri)(::core::mem::transmute_copy(this), source.into_param().abi(), streamresolver.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn BuildLocalStreamUri<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>, Param1: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, contentidentifier: Param0, relativepath: Param1) -> ::windows::core::Result<super::super::super::Foundation::Uri> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).BuildLocalStreamUri)(::core::mem::transmute_copy(this), contentidentifier.into_param().abi(), relativepath.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::Uri>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DefaultBackgroundColor(&self) -> ::windows::core::Result<super::super::Color> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe {
            let mut result__: super::super::Color = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DefaultBackgroundColor)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Color>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetDefaultBackgroundColor<'a, Param0: ::windows::core::IntoParam<'a, super::super::Color>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetDefaultBackgroundColor)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn NavigationCompleted<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<WebView, WebViewNavigationCompletedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).NavigationCompleted)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveNavigationCompleted<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveNavigationCompleted)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn FrameNavigationStarting<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<WebView, WebViewNavigationStartingEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FrameNavigationStarting)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveFrameNavigationStarting<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveFrameNavigationStarting)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn FrameContentLoading<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<WebView, WebViewContentLoadingEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FrameContentLoading)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveFrameContentLoading<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveFrameContentLoading)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn FrameDOMContentLoaded<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<WebView, WebViewDOMContentLoadedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FrameDOMContentLoaded)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveFrameDOMContentLoaded<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveFrameDOMContentLoaded)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn FrameNavigationCompleted<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<WebView, WebViewNavigationCompletedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).FrameNavigationCompleted)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveFrameNavigationCompleted<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveFrameNavigationCompleted)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn LongRunningScriptDetected<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<WebView, WebViewLongRunningScriptDetectedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).LongRunningScriptDetected)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveLongRunningScriptDetected<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveLongRunningScriptDetected)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn UnsafeContentWarningDisplaying<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<WebView, ::windows::core::IInspectable>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).UnsafeContentWarningDisplaying)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveUnsafeContentWarningDisplaying<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveUnsafeContentWarningDisplaying)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn UnviewableContentIdentified<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<WebView, WebViewUnviewableContentIdentifiedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).UnviewableContentIdentified)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveUnviewableContentIdentified<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveUnviewableContentIdentified)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Web_Http'*"]
    #[cfg(feature = "Web_Http")]
    pub fn NavigateWithHttpRequestMessage<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Web::Http::HttpRequestMessage>>(&self, requestmessage: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).NavigateWithHttpRequestMessage)(::core::mem::transmute_copy(this), requestmessage.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Focus(&self, value: super::FocusState) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IWebView2>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Focus)(::core::mem::transmute_copy(this), value, &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContainsFullScreenElement(&self) -> ::windows::core::Result<bool> {
        let this = &::windows::core::Interface::cast::<IWebView3>(self)?;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContainsFullScreenElement)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ContainsFullScreenElementChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<WebView, ::windows::core::IInspectable>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IWebView3>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContainsFullScreenElementChanged)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveContainsFullScreenElementChanged<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IWebView3>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveContainsFullScreenElementChanged)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ExecutionMode(&self) -> ::windows::core::Result<WebViewExecutionMode> {
        let this = &::windows::core::Interface::cast::<IWebView4>(self)?;
        unsafe {
            let mut result__: WebViewExecutionMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ExecutionMode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<WebViewExecutionMode>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections'*"]
    #[cfg(feature = "Foundation_Collections")]
    pub fn DeferredPermissionRequests(&self) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVector<WebViewDeferredPermissionRequest>> {
        let this = &::windows::core::Interface::cast::<IWebView4>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DeferredPermissionRequests)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<WebViewDeferredPermissionRequest>>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Settings(&self) -> ::windows::core::Result<WebViewSettings> {
        let this = &::windows::core::Interface::cast::<IWebView4>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Settings)(::core::mem::transmute_copy(this), &mut result__).from_abi::<WebViewSettings>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn UnsupportedUriSchemeIdentified<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<WebView, WebViewUnsupportedUriSchemeIdentifiedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IWebView4>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).UnsupportedUriSchemeIdentified)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveUnsupportedUriSchemeIdentified<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IWebView4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveUnsupportedUriSchemeIdentified)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn NewWindowRequested<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<WebView, WebViewNewWindowRequestedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IWebView4>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).NewWindowRequested)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveNewWindowRequested<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IWebView4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveNewWindowRequested)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn PermissionRequested<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<WebView, WebViewPermissionRequestedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IWebView4>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PermissionRequested)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemovePermissionRequested<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IWebView4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemovePermissionRequested)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn AddWebAllowedObject<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>, Param1: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>>(&self, name: Param0, pobject: Param1) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IWebView4>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).AddWebAllowedObject)(::core::mem::transmute_copy(this), name.into_param().abi(), pobject.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DeferredPermissionRequestById(&self, id: u32) -> ::windows::core::Result<WebViewDeferredPermissionRequest> {
        let this = &::windows::core::Interface::cast::<IWebView4>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DeferredPermissionRequestById)(::core::mem::transmute_copy(this), id, &mut result__).from_abi::<WebViewDeferredPermissionRequest>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn XYFocusLeft(&self) -> ::windows::core::Result<super::DependencyObject> {
        let this = &::windows::core::Interface::cast::<IWebView5>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).XYFocusLeft)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyObject>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetXYFocusLeft<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IWebView5>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetXYFocusLeft)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn XYFocusRight(&self) -> ::windows::core::Result<super::DependencyObject> {
        let this = &::windows::core::Interface::cast::<IWebView5>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).XYFocusRight)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyObject>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetXYFocusRight<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IWebView5>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetXYFocusRight)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn XYFocusUp(&self) -> ::windows::core::Result<super::DependencyObject> {
        let this = &::windows::core::Interface::cast::<IWebView5>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).XYFocusUp)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyObject>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetXYFocusUp<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IWebView5>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetXYFocusUp)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn XYFocusDown(&self) -> ::windows::core::Result<super::DependencyObject> {
        let this = &::windows::core::Interface::cast::<IWebView5>(self)?;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).XYFocusDown)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyObject>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetXYFocusDown<'a, Param0: ::windows::core::IntoParam<'a, super::DependencyObject>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IWebView5>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).SetXYFocusDown)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn SeparateProcessLost<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<WebView, WebViewSeparateProcessLostEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IWebView6>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SeparateProcessLost)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveSeparateProcessLost<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IWebView6>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveSeparateProcessLost)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn WebResourceRequested<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<WebView, WebViewWebResourceRequestedEventArgs>>>(&self, handler: Param0) -> ::windows::core::Result<super::super::super::Foundation::EventRegistrationToken> {
        let this = &::windows::core::Interface::cast::<IWebView7>(self)?;
        unsafe {
            let mut result__: super::super::super::Foundation::EventRegistrationToken = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).WebResourceRequested)(::core::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn RemoveWebResourceRequested<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::core::Result<()> {
        let this = &::windows::core::Interface::cast::<IWebView7>(self)?;
        unsafe { (::windows::core::Interface::vtable(this).RemoveWebResourceRequested)(::core::mem::transmute_copy(this), token.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CreateInstanceWithExecutionMode(executionmode: WebViewExecutionMode) -> ::windows::core::Result<WebView> {
        Self::IWebViewFactory4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CreateInstanceWithExecutionMode)(::core::mem::transmute_copy(this), executionmode, &mut result__).from_abi::<WebView>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation_Collections', 'deprecated'*"]
    #[cfg(all(feature = "Foundation_Collections", feature = "deprecated"))]
    pub fn AnyScriptNotifyUri() -> ::windows::core::Result<super::super::super::Foundation::Collections::IVector<super::super::super::Foundation::Uri>> {
        Self::IWebViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AnyScriptNotifyUri)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<super::super::super::Foundation::Uri>>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SourceProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IWebViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SourceProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'deprecated'*"]
    #[cfg(feature = "deprecated")]
    pub fn AllowedScriptNotifyUrisProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IWebViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).AllowedScriptNotifyUrisProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'deprecated'*"]
    #[cfg(feature = "deprecated")]
    pub fn DataTransferPackageProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IWebViewStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DataTransferPackageProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanGoBackProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IWebViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanGoBackProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn CanGoForwardProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IWebViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).CanGoForwardProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DocumentTitleProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IWebViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DocumentTitleProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DefaultBackgroundColorProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IWebViewStatics2(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DefaultBackgroundColorProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ContainsFullScreenElementProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IWebViewStatics3(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ContainsFullScreenElementProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn DefaultExecutionMode() -> ::windows::core::Result<WebViewExecutionMode> {
        Self::IWebViewStatics4(|this| unsafe {
            let mut result__: WebViewExecutionMode = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).DefaultExecutionMode)(::core::mem::transmute_copy(this), &mut result__).from_abi::<WebViewExecutionMode>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ClearTemporaryWebDataAsync() -> ::windows::core::Result<super::super::super::Foundation::IAsyncAction> {
        Self::IWebViewStatics4(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ClearTemporaryWebDataAsync)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::IAsyncAction>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn XYFocusLeftProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IWebViewStatics5(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).XYFocusLeftProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn XYFocusRightProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IWebViewStatics5(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).XYFocusRightProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn XYFocusUpProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IWebViewStatics5(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).XYFocusUpProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn XYFocusDownProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IWebViewStatics5(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).XYFocusDownProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IWebViewFactory4<R, F: FnOnce(&IWebViewFactory4) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<WebView, IWebViewFactory4> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IWebViewStatics<R, F: FnOnce(&IWebViewStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<WebView, IWebViewStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IWebViewStatics2<R, F: FnOnce(&IWebViewStatics2) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<WebView, IWebViewStatics2> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IWebViewStatics3<R, F: FnOnce(&IWebViewStatics3) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<WebView, IWebViewStatics3> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IWebViewStatics4<R, F: FnOnce(&IWebViewStatics4) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<WebView, IWebViewStatics4> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc(hidden)]
    pub fn IWebViewStatics5<R, F: FnOnce(&IWebViewStatics5) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<WebView, IWebViewStatics5> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for WebView {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for WebView {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for WebView {}
impl ::core::fmt::Debug for WebView {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("WebView").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for WebView {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.WebView;{5862cc46-1f7d-479b-92a6-de7858fe8d54})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for WebView {
    type Vtable = IWebView_Vtbl;
    const IID: ::windows::core::GUID = <IWebView as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for WebView {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.WebView";
}
impl ::core::convert::From<WebView> for ::windows::core::IUnknown {
    fn from(value: WebView) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebView> for ::windows::core::IUnknown {
    fn from(value: &WebView) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for WebView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a WebView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<WebView> for ::windows::core::IInspectable {
    fn from(value: WebView) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebView> for ::windows::core::IInspectable {
    fn from(value: &WebView) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for WebView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a WebView {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<WebView> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: WebView) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&WebView> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &WebView) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for WebView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &WebView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<WebView> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: WebView) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&WebView> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &WebView) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for WebView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &WebView {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::From<WebView> for super::FrameworkElement {
    fn from(value: WebView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&WebView> for super::FrameworkElement {
    fn from(value: &WebView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for WebView {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &WebView {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<WebView> for super::UIElement {
    fn from(value: WebView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&WebView> for super::UIElement {
    fn from(value: &WebView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for WebView {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &WebView {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<WebView> for super::DependencyObject {
    fn from(value: WebView) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&WebView> for super::DependencyObject {
    fn from(value: &WebView) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for WebView {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &WebView {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for WebView {}
unsafe impl ::core::marker::Sync for WebView {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct WebViewBrush(::windows::core::IUnknown);
impl WebViewBrush {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<WebViewBrush, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SourceName(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = self;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SourceName)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSourceName<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::HSTRING>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSourceName)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Redraw(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Redraw)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetSource<'a, Param0: ::windows::core::IntoParam<'a, WebView>>(&self, source: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetSource)(::core::mem::transmute_copy(this), source.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SourceNameProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IWebViewBrushStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).SourceNameProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IWebViewBrushStatics<R, F: FnOnce(&IWebViewBrushStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<WebViewBrush, IWebViewBrushStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for WebViewBrush {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for WebViewBrush {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for WebViewBrush {}
impl ::core::fmt::Debug for WebViewBrush {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("WebViewBrush").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for WebViewBrush {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.WebViewBrush;{40e86f75-0cf4-4b72-a4d6-cf5d15780116})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for WebViewBrush {
    type Vtable = IWebViewBrush_Vtbl;
    const IID: ::windows::core::GUID = <IWebViewBrush as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for WebViewBrush {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.WebViewBrush";
}
impl ::core::convert::From<WebViewBrush> for ::windows::core::IUnknown {
    fn from(value: WebViewBrush) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebViewBrush> for ::windows::core::IUnknown {
    fn from(value: &WebViewBrush) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for WebViewBrush {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a WebViewBrush {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<WebViewBrush> for ::windows::core::IInspectable {
    fn from(value: WebViewBrush) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebViewBrush> for ::windows::core::IInspectable {
    fn from(value: &WebViewBrush) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for WebViewBrush {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a WebViewBrush {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<WebViewBrush> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: WebViewBrush) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&WebViewBrush> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &WebViewBrush) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for WebViewBrush {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &WebViewBrush {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Xaml_Media")]
impl ::core::convert::From<WebViewBrush> for super::Media::TileBrush {
    fn from(value: WebViewBrush) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Media")]
impl ::core::convert::From<&WebViewBrush> for super::Media::TileBrush {
    fn from(value: &WebViewBrush) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Media")]
impl<'a> ::windows::core::IntoParam<'a, super::Media::TileBrush> for WebViewBrush {
    fn into_param(self) -> ::windows::core::Param<'a, super::Media::TileBrush> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Media")]
impl<'a> ::windows::core::IntoParam<'a, super::Media::TileBrush> for &WebViewBrush {
    fn into_param(self) -> ::windows::core::Param<'a, super::Media::TileBrush> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::Media::TileBrush>::into(self))
    }
}
#[cfg(feature = "UI_Xaml_Media")]
impl ::core::convert::From<WebViewBrush> for super::Media::Brush {
    fn from(value: WebViewBrush) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Media")]
impl ::core::convert::From<&WebViewBrush> for super::Media::Brush {
    fn from(value: &WebViewBrush) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Media")]
impl<'a> ::windows::core::IntoParam<'a, super::Media::Brush> for WebViewBrush {
    fn into_param(self) -> ::windows::core::Param<'a, super::Media::Brush> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Media")]
impl<'a> ::windows::core::IntoParam<'a, super::Media::Brush> for &WebViewBrush {
    fn into_param(self) -> ::windows::core::Param<'a, super::Media::Brush> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::Media::Brush>::into(self))
    }
}
impl ::core::convert::From<WebViewBrush> for super::DependencyObject {
    fn from(value: WebViewBrush) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&WebViewBrush> for super::DependencyObject {
    fn from(value: &WebViewBrush) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for WebViewBrush {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &WebViewBrush {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for WebViewBrush {}
unsafe impl ::core::marker::Sync for WebViewBrush {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct WebViewContentLoadingEventArgs(::windows::core::IUnknown);
impl WebViewContentLoadingEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Uri(&self) -> ::windows::core::Result<super::super::super::Foundation::Uri> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Uri)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Uri>(result__)
        }
    }
}
impl ::core::clone::Clone for WebViewContentLoadingEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for WebViewContentLoadingEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for WebViewContentLoadingEventArgs {}
impl ::core::fmt::Debug for WebViewContentLoadingEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("WebViewContentLoadingEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for WebViewContentLoadingEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.WebViewContentLoadingEventArgs;{6e2980bb-98b8-413e-8129-971c6f7e4c8a})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for WebViewContentLoadingEventArgs {
    type Vtable = IWebViewContentLoadingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IWebViewContentLoadingEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for WebViewContentLoadingEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.WebViewContentLoadingEventArgs";
}
impl ::core::convert::From<WebViewContentLoadingEventArgs> for ::windows::core::IUnknown {
    fn from(value: WebViewContentLoadingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebViewContentLoadingEventArgs> for ::windows::core::IUnknown {
    fn from(value: &WebViewContentLoadingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for WebViewContentLoadingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a WebViewContentLoadingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<WebViewContentLoadingEventArgs> for ::windows::core::IInspectable {
    fn from(value: WebViewContentLoadingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebViewContentLoadingEventArgs> for ::windows::core::IInspectable {
    fn from(value: &WebViewContentLoadingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for WebViewContentLoadingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a WebViewContentLoadingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for WebViewContentLoadingEventArgs {}
unsafe impl ::core::marker::Sync for WebViewContentLoadingEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct WebViewDOMContentLoadedEventArgs(::windows::core::IUnknown);
impl WebViewDOMContentLoadedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Uri(&self) -> ::windows::core::Result<super::super::super::Foundation::Uri> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Uri)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Uri>(result__)
        }
    }
}
impl ::core::clone::Clone for WebViewDOMContentLoadedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for WebViewDOMContentLoadedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for WebViewDOMContentLoadedEventArgs {}
impl ::core::fmt::Debug for WebViewDOMContentLoadedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("WebViewDOMContentLoadedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for WebViewDOMContentLoadedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.WebViewDOMContentLoadedEventArgs;{c47eba15-dc6b-4b36-9d80-82fb8817b988})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for WebViewDOMContentLoadedEventArgs {
    type Vtable = IWebViewDOMContentLoadedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IWebViewDOMContentLoadedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for WebViewDOMContentLoadedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.WebViewDOMContentLoadedEventArgs";
}
impl ::core::convert::From<WebViewDOMContentLoadedEventArgs> for ::windows::core::IUnknown {
    fn from(value: WebViewDOMContentLoadedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebViewDOMContentLoadedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &WebViewDOMContentLoadedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for WebViewDOMContentLoadedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a WebViewDOMContentLoadedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<WebViewDOMContentLoadedEventArgs> for ::windows::core::IInspectable {
    fn from(value: WebViewDOMContentLoadedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebViewDOMContentLoadedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &WebViewDOMContentLoadedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for WebViewDOMContentLoadedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a WebViewDOMContentLoadedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for WebViewDOMContentLoadedEventArgs {}
unsafe impl ::core::marker::Sync for WebViewDOMContentLoadedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct WebViewDeferredPermissionRequest(::windows::core::IUnknown);
impl WebViewDeferredPermissionRequest {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Uri(&self) -> ::windows::core::Result<super::super::super::Foundation::Uri> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Uri)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Uri>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PermissionType(&self) -> ::windows::core::Result<WebViewPermissionType> {
        let this = self;
        unsafe {
            let mut result__: WebViewPermissionType = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PermissionType)(::core::mem::transmute_copy(this), &mut result__).from_abi::<WebViewPermissionType>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Id(&self) -> ::windows::core::Result<u32> {
        let this = self;
        unsafe {
            let mut result__: u32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Id)(::core::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Allow(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Allow)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Deny(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Deny)(::core::mem::transmute_copy(this)).ok() }
    }
}
impl ::core::clone::Clone for WebViewDeferredPermissionRequest {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for WebViewDeferredPermissionRequest {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for WebViewDeferredPermissionRequest {}
impl ::core::fmt::Debug for WebViewDeferredPermissionRequest {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("WebViewDeferredPermissionRequest").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for WebViewDeferredPermissionRequest {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.WebViewDeferredPermissionRequest;{a3dcc461-7350-4d3a-8fb9-40eeec2746c2})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for WebViewDeferredPermissionRequest {
    type Vtable = IWebViewDeferredPermissionRequest_Vtbl;
    const IID: ::windows::core::GUID = <IWebViewDeferredPermissionRequest as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for WebViewDeferredPermissionRequest {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.WebViewDeferredPermissionRequest";
}
impl ::core::convert::From<WebViewDeferredPermissionRequest> for ::windows::core::IUnknown {
    fn from(value: WebViewDeferredPermissionRequest) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebViewDeferredPermissionRequest> for ::windows::core::IUnknown {
    fn from(value: &WebViewDeferredPermissionRequest) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for WebViewDeferredPermissionRequest {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a WebViewDeferredPermissionRequest {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<WebViewDeferredPermissionRequest> for ::windows::core::IInspectable {
    fn from(value: WebViewDeferredPermissionRequest) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebViewDeferredPermissionRequest> for ::windows::core::IInspectable {
    fn from(value: &WebViewDeferredPermissionRequest) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for WebViewDeferredPermissionRequest {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a WebViewDeferredPermissionRequest {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for WebViewDeferredPermissionRequest {}
unsafe impl ::core::marker::Sync for WebViewDeferredPermissionRequest {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct WebViewExecutionMode(pub i32);
impl WebViewExecutionMode {
    pub const SameThread: Self = Self(0i32);
    pub const SeparateThread: Self = Self(1i32);
    pub const SeparateProcess: Self = Self(2i32);
}
impl ::core::marker::Copy for WebViewExecutionMode {}
impl ::core::clone::Clone for WebViewExecutionMode {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for WebViewExecutionMode {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for WebViewExecutionMode {
    type Abi = Self;
}
impl ::core::fmt::Debug for WebViewExecutionMode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("WebViewExecutionMode").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for WebViewExecutionMode {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.WebViewExecutionMode;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct WebViewLongRunningScriptDetectedEventArgs(::windows::core::IUnknown);
impl WebViewLongRunningScriptDetectedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn ExecutionTime(&self) -> ::windows::core::Result<super::super::super::Foundation::TimeSpan> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Foundation::TimeSpan = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ExecutionTime)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::TimeSpan>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn StopPageScriptExecution(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).StopPageScriptExecution)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetStopPageScriptExecution(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetStopPageScriptExecution)(::core::mem::transmute_copy(this), value).ok() }
    }
}
impl ::core::clone::Clone for WebViewLongRunningScriptDetectedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for WebViewLongRunningScriptDetectedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for WebViewLongRunningScriptDetectedEventArgs {}
impl ::core::fmt::Debug for WebViewLongRunningScriptDetectedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("WebViewLongRunningScriptDetectedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for WebViewLongRunningScriptDetectedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.WebViewLongRunningScriptDetectedEventArgs;{f3f020ab-a46c-42b0-9efe-69764d5cffa6})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for WebViewLongRunningScriptDetectedEventArgs {
    type Vtable = IWebViewLongRunningScriptDetectedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IWebViewLongRunningScriptDetectedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for WebViewLongRunningScriptDetectedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.WebViewLongRunningScriptDetectedEventArgs";
}
impl ::core::convert::From<WebViewLongRunningScriptDetectedEventArgs> for ::windows::core::IUnknown {
    fn from(value: WebViewLongRunningScriptDetectedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebViewLongRunningScriptDetectedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &WebViewLongRunningScriptDetectedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for WebViewLongRunningScriptDetectedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a WebViewLongRunningScriptDetectedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<WebViewLongRunningScriptDetectedEventArgs> for ::windows::core::IInspectable {
    fn from(value: WebViewLongRunningScriptDetectedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebViewLongRunningScriptDetectedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &WebViewLongRunningScriptDetectedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for WebViewLongRunningScriptDetectedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a WebViewLongRunningScriptDetectedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for WebViewLongRunningScriptDetectedEventArgs {}
unsafe impl ::core::marker::Sync for WebViewLongRunningScriptDetectedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct WebViewNavigationCompletedEventArgs(::windows::core::IUnknown);
impl WebViewNavigationCompletedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Uri(&self) -> ::windows::core::Result<super::super::super::Foundation::Uri> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Uri)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Uri>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsSuccess(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsSuccess)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Web'*"]
    #[cfg(feature = "Web")]
    pub fn WebErrorStatus(&self) -> ::windows::core::Result<super::super::super::Web::WebErrorStatus> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Web::WebErrorStatus = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).WebErrorStatus)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Web::WebErrorStatus>(result__)
        }
    }
}
impl ::core::clone::Clone for WebViewNavigationCompletedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for WebViewNavigationCompletedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for WebViewNavigationCompletedEventArgs {}
impl ::core::fmt::Debug for WebViewNavigationCompletedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("WebViewNavigationCompletedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for WebViewNavigationCompletedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.WebViewNavigationCompletedEventArgs;{11e6f20b-eba7-44c0-889b-edeb6a064ddd})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for WebViewNavigationCompletedEventArgs {
    type Vtable = IWebViewNavigationCompletedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IWebViewNavigationCompletedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for WebViewNavigationCompletedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.WebViewNavigationCompletedEventArgs";
}
impl ::core::convert::From<WebViewNavigationCompletedEventArgs> for ::windows::core::IUnknown {
    fn from(value: WebViewNavigationCompletedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebViewNavigationCompletedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &WebViewNavigationCompletedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for WebViewNavigationCompletedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a WebViewNavigationCompletedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<WebViewNavigationCompletedEventArgs> for ::windows::core::IInspectable {
    fn from(value: WebViewNavigationCompletedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebViewNavigationCompletedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &WebViewNavigationCompletedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for WebViewNavigationCompletedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a WebViewNavigationCompletedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for WebViewNavigationCompletedEventArgs {}
unsafe impl ::core::marker::Sync for WebViewNavigationCompletedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct WebViewNavigationFailedEventArgs(::windows::core::IUnknown);
impl WebViewNavigationFailedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Uri(&self) -> ::windows::core::Result<super::super::super::Foundation::Uri> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Uri)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Uri>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Web'*"]
    #[cfg(feature = "Web")]
    pub fn WebErrorStatus(&self) -> ::windows::core::Result<super::super::super::Web::WebErrorStatus> {
        let this = self;
        unsafe {
            let mut result__: super::super::super::Web::WebErrorStatus = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).WebErrorStatus)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Web::WebErrorStatus>(result__)
        }
    }
}
impl ::core::clone::Clone for WebViewNavigationFailedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for WebViewNavigationFailedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for WebViewNavigationFailedEventArgs {}
impl ::core::fmt::Debug for WebViewNavigationFailedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("WebViewNavigationFailedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for WebViewNavigationFailedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.WebViewNavigationFailedEventArgs;{af09609a-129c-4170-9e9c-e2cdf025dca4})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for WebViewNavigationFailedEventArgs {
    type Vtable = IWebViewNavigationFailedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IWebViewNavigationFailedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for WebViewNavigationFailedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.WebViewNavigationFailedEventArgs";
}
impl ::core::convert::From<WebViewNavigationFailedEventArgs> for ::windows::core::IUnknown {
    fn from(value: WebViewNavigationFailedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebViewNavigationFailedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &WebViewNavigationFailedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for WebViewNavigationFailedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a WebViewNavigationFailedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<WebViewNavigationFailedEventArgs> for ::windows::core::IInspectable {
    fn from(value: WebViewNavigationFailedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebViewNavigationFailedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &WebViewNavigationFailedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for WebViewNavigationFailedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a WebViewNavigationFailedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for WebViewNavigationFailedEventArgs {}
unsafe impl ::core::marker::Sync for WebViewNavigationFailedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct WebViewNavigationFailedEventHandler(pub ::windows::core::IUnknown);
impl WebViewNavigationFailedEventHandler {
    pub fn new<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<WebViewNavigationFailedEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static>(invoke: F) -> Self {
        let com = WebViewNavigationFailedEventHandlerBox::<F> { vtable: &WebViewNavigationFailedEventHandlerBox::<F>::VTABLE, count: ::windows::core::RefCount::new(1), invoke };
        unsafe { ::core::mem::transmute(::windows::core::alloc::boxed::Box::new(com)) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Invoke<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::IInspectable>, Param1: ::windows::core::IntoParam<'a, WebViewNavigationFailedEventArgs>>(&self, sender: Param0, e: Param1) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Invoke)(::core::mem::transmute_copy(this), sender.into_param().abi(), e.into_param().abi()).ok() }
    }
}
#[repr(C)]
struct WebViewNavigationFailedEventHandlerBox<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<WebViewNavigationFailedEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static> {
    vtable: *const WebViewNavigationFailedEventHandler_Vtbl,
    invoke: F,
    count: ::windows::core::RefCount,
}
impl<F: FnMut(&::core::option::Option<::windows::core::IInspectable>, &::core::option::Option<WebViewNavigationFailedEventArgs>) -> ::windows::core::Result<()> + ::core::marker::Send + 'static> WebViewNavigationFailedEventHandlerBox<F> {
    const VTABLE: WebViewNavigationFailedEventHandler_Vtbl = WebViewNavigationFailedEventHandler_Vtbl { base: ::windows::core::IUnknownVtbl { QueryInterface: Self::QueryInterface, AddRef: Self::AddRef, Release: Self::Release }, Invoke: Self::Invoke };
    unsafe extern "system" fn QueryInterface(this: ::windows::core::RawPtr, iid: &::windows::core::GUID, interface: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        *interface = if iid == &<WebViewNavigationFailedEventHandler as ::windows::core::Interface>::IID || iid == &<::windows::core::IUnknown as ::windows::core::Interface>::IID || iid == &<::windows::core::IAgileObject as ::windows::core::Interface>::IID { &mut (*this).vtable as *mut _ as _ } else { ::core::ptr::null_mut() };
        if (*interface).is_null() {
            ::windows::core::HRESULT(-2147467262)
        } else {
            (*this).count.add_ref();
            ::windows::core::HRESULT(0)
        }
    }
    unsafe extern "system" fn AddRef(this: ::windows::core::RawPtr) -> u32 {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        (*this).count.add_ref()
    }
    unsafe extern "system" fn Release(this: ::windows::core::RawPtr) -> u32 {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        let remaining = (*this).count.release();
        if remaining == 0 {
            ::windows::core::alloc::boxed::Box::from_raw(this);
        }
        remaining
    }
    unsafe extern "system" fn Invoke(this: *mut ::core::ffi::c_void, sender: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT {
        let this = this as *mut ::windows::core::RawPtr as *mut Self;
        ((*this).invoke)(::core::mem::transmute(&sender), ::core::mem::transmute(&e)).into()
    }
}
impl ::core::clone::Clone for WebViewNavigationFailedEventHandler {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for WebViewNavigationFailedEventHandler {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for WebViewNavigationFailedEventHandler {}
impl ::core::fmt::Debug for WebViewNavigationFailedEventHandler {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("WebViewNavigationFailedEventHandler").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for WebViewNavigationFailedEventHandler {
    type Vtable = WebViewNavigationFailedEventHandler_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa31eafe1_41dc_47f8_ae22_9706c8f143d4);
}
unsafe impl ::windows::core::RuntimeType for WebViewNavigationFailedEventHandler {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"{a31eafe1-41dc-47f8-ae22-9706c8f143d4}");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
#[repr(C)]
#[doc(hidden)]
pub struct WebViewNavigationFailedEventHandler_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    pub Invoke: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sender: *mut ::core::ffi::c_void, e: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct WebViewNavigationStartingEventArgs(::windows::core::IUnknown);
impl WebViewNavigationStartingEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Uri(&self) -> ::windows::core::Result<super::super::super::Foundation::Uri> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Uri)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Uri>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Cancel(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Cancel)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetCancel(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetCancel)(::core::mem::transmute_copy(this), value).ok() }
    }
}
impl ::core::clone::Clone for WebViewNavigationStartingEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for WebViewNavigationStartingEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for WebViewNavigationStartingEventArgs {}
impl ::core::fmt::Debug for WebViewNavigationStartingEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("WebViewNavigationStartingEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for WebViewNavigationStartingEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.WebViewNavigationStartingEventArgs;{94cb8668-8367-43d5-91bb-96eba37ec784})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for WebViewNavigationStartingEventArgs {
    type Vtable = IWebViewNavigationStartingEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IWebViewNavigationStartingEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for WebViewNavigationStartingEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.WebViewNavigationStartingEventArgs";
}
impl ::core::convert::From<WebViewNavigationStartingEventArgs> for ::windows::core::IUnknown {
    fn from(value: WebViewNavigationStartingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebViewNavigationStartingEventArgs> for ::windows::core::IUnknown {
    fn from(value: &WebViewNavigationStartingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for WebViewNavigationStartingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a WebViewNavigationStartingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<WebViewNavigationStartingEventArgs> for ::windows::core::IInspectable {
    fn from(value: WebViewNavigationStartingEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebViewNavigationStartingEventArgs> for ::windows::core::IInspectable {
    fn from(value: &WebViewNavigationStartingEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for WebViewNavigationStartingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a WebViewNavigationStartingEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for WebViewNavigationStartingEventArgs {}
unsafe impl ::core::marker::Sync for WebViewNavigationStartingEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct WebViewNewWindowRequestedEventArgs(::windows::core::IUnknown);
impl WebViewNewWindowRequestedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Uri(&self) -> ::windows::core::Result<super::super::super::Foundation::Uri> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Uri)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Uri>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Referrer(&self) -> ::windows::core::Result<super::super::super::Foundation::Uri> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Referrer)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Uri>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Handled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Handled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHandled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHandled)(::core::mem::transmute_copy(this), value).ok() }
    }
}
impl ::core::clone::Clone for WebViewNewWindowRequestedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for WebViewNewWindowRequestedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for WebViewNewWindowRequestedEventArgs {}
impl ::core::fmt::Debug for WebViewNewWindowRequestedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("WebViewNewWindowRequestedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for WebViewNewWindowRequestedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.WebViewNewWindowRequestedEventArgs;{470fa818-6862-44d9-b3d1-c0696373de35})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for WebViewNewWindowRequestedEventArgs {
    type Vtable = IWebViewNewWindowRequestedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IWebViewNewWindowRequestedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for WebViewNewWindowRequestedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.WebViewNewWindowRequestedEventArgs";
}
impl ::core::convert::From<WebViewNewWindowRequestedEventArgs> for ::windows::core::IUnknown {
    fn from(value: WebViewNewWindowRequestedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebViewNewWindowRequestedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &WebViewNewWindowRequestedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for WebViewNewWindowRequestedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a WebViewNewWindowRequestedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<WebViewNewWindowRequestedEventArgs> for ::windows::core::IInspectable {
    fn from(value: WebViewNewWindowRequestedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebViewNewWindowRequestedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &WebViewNewWindowRequestedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for WebViewNewWindowRequestedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a WebViewNewWindowRequestedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for WebViewNewWindowRequestedEventArgs {}
unsafe impl ::core::marker::Sync for WebViewNewWindowRequestedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct WebViewPermissionRequest(::windows::core::IUnknown);
impl WebViewPermissionRequest {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Uri(&self) -> ::windows::core::Result<super::super::super::Foundation::Uri> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Uri)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Uri>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PermissionType(&self) -> ::windows::core::Result<WebViewPermissionType> {
        let this = self;
        unsafe {
            let mut result__: WebViewPermissionType = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PermissionType)(::core::mem::transmute_copy(this), &mut result__).from_abi::<WebViewPermissionType>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Id(&self) -> ::windows::core::Result<u32> {
        let this = self;
        unsafe {
            let mut result__: u32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Id)(::core::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn State(&self) -> ::windows::core::Result<WebViewPermissionState> {
        let this = self;
        unsafe {
            let mut result__: WebViewPermissionState = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).State)(::core::mem::transmute_copy(this), &mut result__).from_abi::<WebViewPermissionState>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Defer(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Defer)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Allow(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Allow)(::core::mem::transmute_copy(this)).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Deny(&self) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).Deny)(::core::mem::transmute_copy(this)).ok() }
    }
}
impl ::core::clone::Clone for WebViewPermissionRequest {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for WebViewPermissionRequest {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for WebViewPermissionRequest {}
impl ::core::fmt::Debug for WebViewPermissionRequest {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("WebViewPermissionRequest").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for WebViewPermissionRequest {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.WebViewPermissionRequest;{17b76332-66c4-4131-999e-df7de20a8c9c})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for WebViewPermissionRequest {
    type Vtable = IWebViewPermissionRequest_Vtbl;
    const IID: ::windows::core::GUID = <IWebViewPermissionRequest as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for WebViewPermissionRequest {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.WebViewPermissionRequest";
}
impl ::core::convert::From<WebViewPermissionRequest> for ::windows::core::IUnknown {
    fn from(value: WebViewPermissionRequest) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebViewPermissionRequest> for ::windows::core::IUnknown {
    fn from(value: &WebViewPermissionRequest) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for WebViewPermissionRequest {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a WebViewPermissionRequest {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<WebViewPermissionRequest> for ::windows::core::IInspectable {
    fn from(value: WebViewPermissionRequest) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebViewPermissionRequest> for ::windows::core::IInspectable {
    fn from(value: &WebViewPermissionRequest) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for WebViewPermissionRequest {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a WebViewPermissionRequest {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for WebViewPermissionRequest {}
unsafe impl ::core::marker::Sync for WebViewPermissionRequest {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct WebViewPermissionRequestedEventArgs(::windows::core::IUnknown);
impl WebViewPermissionRequestedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn PermissionRequest(&self) -> ::windows::core::Result<WebViewPermissionRequest> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).PermissionRequest)(::core::mem::transmute_copy(this), &mut result__).from_abi::<WebViewPermissionRequest>(result__)
        }
    }
}
impl ::core::clone::Clone for WebViewPermissionRequestedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for WebViewPermissionRequestedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for WebViewPermissionRequestedEventArgs {}
impl ::core::fmt::Debug for WebViewPermissionRequestedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("WebViewPermissionRequestedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for WebViewPermissionRequestedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.WebViewPermissionRequestedEventArgs;{dadecfd0-6e1e-473f-b0be-b02404d6a86d})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for WebViewPermissionRequestedEventArgs {
    type Vtable = IWebViewPermissionRequestedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IWebViewPermissionRequestedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for WebViewPermissionRequestedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.WebViewPermissionRequestedEventArgs";
}
impl ::core::convert::From<WebViewPermissionRequestedEventArgs> for ::windows::core::IUnknown {
    fn from(value: WebViewPermissionRequestedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebViewPermissionRequestedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &WebViewPermissionRequestedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for WebViewPermissionRequestedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a WebViewPermissionRequestedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<WebViewPermissionRequestedEventArgs> for ::windows::core::IInspectable {
    fn from(value: WebViewPermissionRequestedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebViewPermissionRequestedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &WebViewPermissionRequestedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for WebViewPermissionRequestedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a WebViewPermissionRequestedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for WebViewPermissionRequestedEventArgs {}
unsafe impl ::core::marker::Sync for WebViewPermissionRequestedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct WebViewPermissionState(pub i32);
impl WebViewPermissionState {
    pub const Unknown: Self = Self(0i32);
    pub const Defer: Self = Self(1i32);
    pub const Allow: Self = Self(2i32);
    pub const Deny: Self = Self(3i32);
}
impl ::core::marker::Copy for WebViewPermissionState {}
impl ::core::clone::Clone for WebViewPermissionState {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for WebViewPermissionState {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for WebViewPermissionState {
    type Abi = Self;
}
impl ::core::fmt::Debug for WebViewPermissionState {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("WebViewPermissionState").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for WebViewPermissionState {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.WebViewPermissionState;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct WebViewPermissionType(pub i32);
impl WebViewPermissionType {
    pub const Geolocation: Self = Self(0i32);
    pub const UnlimitedIndexedDBQuota: Self = Self(1i32);
    pub const Media: Self = Self(2i32);
    pub const PointerLock: Self = Self(3i32);
    pub const WebNotifications: Self = Self(4i32);
    pub const Screen: Self = Self(5i32);
    pub const ImmersiveView: Self = Self(6i32);
}
impl ::core::marker::Copy for WebViewPermissionType {}
impl ::core::clone::Clone for WebViewPermissionType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for WebViewPermissionType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for WebViewPermissionType {
    type Abi = Self;
}
impl ::core::fmt::Debug for WebViewPermissionType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("WebViewPermissionType").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for WebViewPermissionType {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.WebViewPermissionType;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct WebViewSeparateProcessLostEventArgs(::windows::core::IUnknown);
impl WebViewSeparateProcessLostEventArgs {}
impl ::core::clone::Clone for WebViewSeparateProcessLostEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for WebViewSeparateProcessLostEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for WebViewSeparateProcessLostEventArgs {}
impl ::core::fmt::Debug for WebViewSeparateProcessLostEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("WebViewSeparateProcessLostEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for WebViewSeparateProcessLostEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.WebViewSeparateProcessLostEventArgs;{a405700a-c482-40b5-aaea-e10cfa9f5abe})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for WebViewSeparateProcessLostEventArgs {
    type Vtable = IWebViewSeparateProcessLostEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IWebViewSeparateProcessLostEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for WebViewSeparateProcessLostEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.WebViewSeparateProcessLostEventArgs";
}
impl ::core::convert::From<WebViewSeparateProcessLostEventArgs> for ::windows::core::IUnknown {
    fn from(value: WebViewSeparateProcessLostEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebViewSeparateProcessLostEventArgs> for ::windows::core::IUnknown {
    fn from(value: &WebViewSeparateProcessLostEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for WebViewSeparateProcessLostEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a WebViewSeparateProcessLostEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<WebViewSeparateProcessLostEventArgs> for ::windows::core::IInspectable {
    fn from(value: WebViewSeparateProcessLostEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebViewSeparateProcessLostEventArgs> for ::windows::core::IInspectable {
    fn from(value: &WebViewSeparateProcessLostEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for WebViewSeparateProcessLostEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a WebViewSeparateProcessLostEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for WebViewSeparateProcessLostEventArgs {}
unsafe impl ::core::marker::Sync for WebViewSeparateProcessLostEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct WebViewSettings(::windows::core::IUnknown);
impl WebViewSettings {
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsJavaScriptEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsJavaScriptEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsJavaScriptEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsJavaScriptEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn IsIndexedDBEnabled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).IsIndexedDBEnabled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetIsIndexedDBEnabled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetIsIndexedDBEnabled)(::core::mem::transmute_copy(this), value).ok() }
    }
}
impl ::core::clone::Clone for WebViewSettings {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for WebViewSettings {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for WebViewSettings {}
impl ::core::fmt::Debug for WebViewSettings {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("WebViewSettings").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for WebViewSettings {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.WebViewSettings;{1d50ad4d-abf6-4785-8df3-fdebc1270301})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for WebViewSettings {
    type Vtable = IWebViewSettings_Vtbl;
    const IID: ::windows::core::GUID = <IWebViewSettings as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for WebViewSettings {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.WebViewSettings";
}
impl ::core::convert::From<WebViewSettings> for ::windows::core::IUnknown {
    fn from(value: WebViewSettings) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebViewSettings> for ::windows::core::IUnknown {
    fn from(value: &WebViewSettings) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for WebViewSettings {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a WebViewSettings {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<WebViewSettings> for ::windows::core::IInspectable {
    fn from(value: WebViewSettings) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebViewSettings> for ::windows::core::IInspectable {
    fn from(value: &WebViewSettings) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for WebViewSettings {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a WebViewSettings {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for WebViewSettings {}
unsafe impl ::core::marker::Sync for WebViewSettings {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct WebViewUnsupportedUriSchemeIdentifiedEventArgs(::windows::core::IUnknown);
impl WebViewUnsupportedUriSchemeIdentifiedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Uri(&self) -> ::windows::core::Result<super::super::super::Foundation::Uri> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Uri)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Uri>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Handled(&self) -> ::windows::core::Result<bool> {
        let this = self;
        unsafe {
            let mut result__: bool = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Handled)(::core::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHandled(&self, value: bool) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHandled)(::core::mem::transmute_copy(this), value).ok() }
    }
}
impl ::core::clone::Clone for WebViewUnsupportedUriSchemeIdentifiedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for WebViewUnsupportedUriSchemeIdentifiedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for WebViewUnsupportedUriSchemeIdentifiedEventArgs {}
impl ::core::fmt::Debug for WebViewUnsupportedUriSchemeIdentifiedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("WebViewUnsupportedUriSchemeIdentifiedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for WebViewUnsupportedUriSchemeIdentifiedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.WebViewUnsupportedUriSchemeIdentifiedEventArgs;{b9c9e1a7-620f-4895-935d-10fbac6fd29e})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for WebViewUnsupportedUriSchemeIdentifiedEventArgs {
    type Vtable = IWebViewUnsupportedUriSchemeIdentifiedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IWebViewUnsupportedUriSchemeIdentifiedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for WebViewUnsupportedUriSchemeIdentifiedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.WebViewUnsupportedUriSchemeIdentifiedEventArgs";
}
impl ::core::convert::From<WebViewUnsupportedUriSchemeIdentifiedEventArgs> for ::windows::core::IUnknown {
    fn from(value: WebViewUnsupportedUriSchemeIdentifiedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebViewUnsupportedUriSchemeIdentifiedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &WebViewUnsupportedUriSchemeIdentifiedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for WebViewUnsupportedUriSchemeIdentifiedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a WebViewUnsupportedUriSchemeIdentifiedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<WebViewUnsupportedUriSchemeIdentifiedEventArgs> for ::windows::core::IInspectable {
    fn from(value: WebViewUnsupportedUriSchemeIdentifiedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebViewUnsupportedUriSchemeIdentifiedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &WebViewUnsupportedUriSchemeIdentifiedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for WebViewUnsupportedUriSchemeIdentifiedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a WebViewUnsupportedUriSchemeIdentifiedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for WebViewUnsupportedUriSchemeIdentifiedEventArgs {}
unsafe impl ::core::marker::Sync for WebViewUnsupportedUriSchemeIdentifiedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct WebViewUnviewableContentIdentifiedEventArgs(::windows::core::IUnknown);
impl WebViewUnviewableContentIdentifiedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Uri(&self) -> ::windows::core::Result<super::super::super::Foundation::Uri> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Uri)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Uri>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn Referrer(&self) -> ::windows::core::Result<super::super::super::Foundation::Uri> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Referrer)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Uri>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MediaType(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
        let this = &::windows::core::Interface::cast::<IWebViewUnviewableContentIdentifiedEventArgs2>(self)?;
        unsafe {
            let mut result__: ::core::mem::ManuallyDrop<::windows::core::HSTRING> = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MediaType)(::core::mem::transmute_copy(this), &mut result__).from_abi::<::windows::core::HSTRING>(result__)
        }
    }
}
impl ::core::clone::Clone for WebViewUnviewableContentIdentifiedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for WebViewUnviewableContentIdentifiedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for WebViewUnviewableContentIdentifiedEventArgs {}
impl ::core::fmt::Debug for WebViewUnviewableContentIdentifiedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("WebViewUnviewableContentIdentifiedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for WebViewUnviewableContentIdentifiedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.WebViewUnviewableContentIdentifiedEventArgs;{37bc16e1-6062-4678-b20b-6c36ac9c59ac})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for WebViewUnviewableContentIdentifiedEventArgs {
    type Vtable = IWebViewUnviewableContentIdentifiedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IWebViewUnviewableContentIdentifiedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for WebViewUnviewableContentIdentifiedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.WebViewUnviewableContentIdentifiedEventArgs";
}
impl ::core::convert::From<WebViewUnviewableContentIdentifiedEventArgs> for ::windows::core::IUnknown {
    fn from(value: WebViewUnviewableContentIdentifiedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebViewUnviewableContentIdentifiedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &WebViewUnviewableContentIdentifiedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for WebViewUnviewableContentIdentifiedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a WebViewUnviewableContentIdentifiedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<WebViewUnviewableContentIdentifiedEventArgs> for ::windows::core::IInspectable {
    fn from(value: WebViewUnviewableContentIdentifiedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebViewUnviewableContentIdentifiedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &WebViewUnviewableContentIdentifiedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for WebViewUnviewableContentIdentifiedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a WebViewUnviewableContentIdentifiedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for WebViewUnviewableContentIdentifiedEventArgs {}
unsafe impl ::core::marker::Sync for WebViewUnviewableContentIdentifiedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct WebViewWebResourceRequestedEventArgs(::windows::core::IUnknown);
impl WebViewWebResourceRequestedEventArgs {
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Web_Http'*"]
    #[cfg(feature = "Web_Http")]
    pub fn Request(&self) -> ::windows::core::Result<super::super::super::Web::Http::HttpRequestMessage> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Request)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Web::Http::HttpRequestMessage>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Web_Http'*"]
    #[cfg(feature = "Web_Http")]
    pub fn Response(&self) -> ::windows::core::Result<super::super::super::Web::Http::HttpResponseMessage> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Response)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Web::Http::HttpResponseMessage>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Web_Http'*"]
    #[cfg(feature = "Web_Http")]
    pub fn SetResponse<'a, Param0: ::windows::core::IntoParam<'a, super::super::super::Web::Http::HttpResponseMessage>>(&self, value: Param0) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetResponse)(::core::mem::transmute_copy(this), value.into_param().abi()).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls', 'Foundation'*"]
    #[cfg(feature = "Foundation")]
    pub fn GetDeferral(&self) -> ::windows::core::Result<super::super::super::Foundation::Deferral> {
        let this = self;
        unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).GetDeferral)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Deferral>(result__)
        }
    }
}
impl ::core::clone::Clone for WebViewWebResourceRequestedEventArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for WebViewWebResourceRequestedEventArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for WebViewWebResourceRequestedEventArgs {}
impl ::core::fmt::Debug for WebViewWebResourceRequestedEventArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("WebViewWebResourceRequestedEventArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for WebViewWebResourceRequestedEventArgs {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.WebViewWebResourceRequestedEventArgs;{378d21f6-c77f-5d8b-8f30-93c99df79435})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for WebViewWebResourceRequestedEventArgs {
    type Vtable = IWebViewWebResourceRequestedEventArgs_Vtbl;
    const IID: ::windows::core::GUID = <IWebViewWebResourceRequestedEventArgs as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for WebViewWebResourceRequestedEventArgs {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.WebViewWebResourceRequestedEventArgs";
}
impl ::core::convert::From<WebViewWebResourceRequestedEventArgs> for ::windows::core::IUnknown {
    fn from(value: WebViewWebResourceRequestedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebViewWebResourceRequestedEventArgs> for ::windows::core::IUnknown {
    fn from(value: &WebViewWebResourceRequestedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for WebViewWebResourceRequestedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a WebViewWebResourceRequestedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<WebViewWebResourceRequestedEventArgs> for ::windows::core::IInspectable {
    fn from(value: WebViewWebResourceRequestedEventArgs) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WebViewWebResourceRequestedEventArgs> for ::windows::core::IInspectable {
    fn from(value: &WebViewWebResourceRequestedEventArgs) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for WebViewWebResourceRequestedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a WebViewWebResourceRequestedEventArgs {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
unsafe impl ::core::marker::Send for WebViewWebResourceRequestedEventArgs {}
unsafe impl ::core::marker::Sync for WebViewWebResourceRequestedEventArgs {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
pub struct WrapGrid(::windows::core::IUnknown);
impl WrapGrid {
    pub fn new() -> ::windows::core::Result<Self> {
        Self::IActivationFactory(|f| f.activate_instance::<Self>())
    }
    fn IActivationFactory<R, F: FnOnce(&::windows::core::IActivationFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<WrapGrid, ::windows::core::IActivationFactory> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemWidth(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemWidth)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetItemWidth(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetItemWidth)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemHeight(&self) -> ::windows::core::Result<f64> {
        let this = self;
        unsafe {
            let mut result__: f64 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemHeight)(::core::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetItemHeight(&self, value: f64) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetItemHeight)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn Orientation(&self) -> ::windows::core::Result<Orientation> {
        let this = self;
        unsafe {
            let mut result__: Orientation = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).Orientation)(::core::mem::transmute_copy(this), &mut result__).from_abi::<Orientation>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetOrientation(&self, value: Orientation) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetOrientation)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalChildrenAlignment(&self) -> ::windows::core::Result<super::HorizontalAlignment> {
        let this = self;
        unsafe {
            let mut result__: super::HorizontalAlignment = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalChildrenAlignment)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::HorizontalAlignment>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetHorizontalChildrenAlignment(&self, value: super::HorizontalAlignment) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetHorizontalChildrenAlignment)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalChildrenAlignment(&self) -> ::windows::core::Result<super::VerticalAlignment> {
        let this = self;
        unsafe {
            let mut result__: super::VerticalAlignment = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalChildrenAlignment)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::VerticalAlignment>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetVerticalChildrenAlignment(&self, value: super::VerticalAlignment) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetVerticalChildrenAlignment)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaximumRowsOrColumns(&self) -> ::windows::core::Result<i32> {
        let this = self;
        unsafe {
            let mut result__: i32 = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaximumRowsOrColumns)(::core::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
        }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn SetMaximumRowsOrColumns(&self, value: i32) -> ::windows::core::Result<()> {
        let this = self;
        unsafe { (::windows::core::Interface::vtable(this).SetMaximumRowsOrColumns)(::core::mem::transmute_copy(this), value).ok() }
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemWidthProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IWrapGridStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemWidthProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn ItemHeightProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IWrapGridStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).ItemHeightProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn OrientationProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IWrapGridStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).OrientationProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn HorizontalChildrenAlignmentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IWrapGridStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).HorizontalChildrenAlignmentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn VerticalChildrenAlignmentProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IWrapGridStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).VerticalChildrenAlignmentProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc = "*Required features: 'UI_Xaml_Controls'*"]
    pub fn MaximumRowsOrColumnsProperty() -> ::windows::core::Result<super::DependencyProperty> {
        Self::IWrapGridStatics(|this| unsafe {
            let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
            (::windows::core::Interface::vtable(this).MaximumRowsOrColumnsProperty)(::core::mem::transmute_copy(this), &mut result__).from_abi::<super::DependencyProperty>(result__)
        })
    }
    #[doc(hidden)]
    pub fn IWrapGridStatics<R, F: FnOnce(&IWrapGridStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
        static mut SHARED: ::windows::core::FactoryCache<WrapGrid, IWrapGridStatics> = ::windows::core::FactoryCache::new();
        unsafe { SHARED.call(callback) }
    }
}
impl ::core::clone::Clone for WrapGrid {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for WrapGrid {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for WrapGrid {}
impl ::core::fmt::Debug for WrapGrid {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("WrapGrid").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for WrapGrid {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"rc(Windows.UI.Xaml.Controls.WrapGrid;{0552178b-7567-47c2-bd5c-ad8394c828ba})");
    type DefaultType = ::core::option::Option<Self>;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        from.as_ref().cloned().ok_or(::windows::core::Error::OK)
    }
}
unsafe impl ::windows::core::Interface for WrapGrid {
    type Vtable = IWrapGrid_Vtbl;
    const IID: ::windows::core::GUID = <IWrapGrid as ::windows::core::Interface>::IID;
}
impl ::windows::core::RuntimeName for WrapGrid {
    const NAME: &'static str = "Windows.UI.Xaml.Controls.WrapGrid";
}
impl ::core::convert::From<WrapGrid> for ::windows::core::IUnknown {
    fn from(value: WrapGrid) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WrapGrid> for ::windows::core::IUnknown {
    fn from(value: &WrapGrid) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for WrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a WrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<WrapGrid> for ::windows::core::IInspectable {
    fn from(value: WrapGrid) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&WrapGrid> for ::windows::core::IInspectable {
    fn from(value: &WrapGrid) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for WrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IInspectable> for &'a WrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IInspectable> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<WrapGrid> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: WrapGrid) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&WrapGrid> for super::super::Composition::IAnimationObject {
    type Error = ::windows::core::Error;
    fn try_from(value: &WrapGrid) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for WrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IAnimationObject> for &WrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IAnimationObject> {
        ::core::convert::TryInto::<super::super::Composition::IAnimationObject>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
impl ::core::convert::TryFrom<WrapGrid> for IInsertionPanel {
    type Error = ::windows::core::Error;
    fn try_from(value: WrapGrid) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
impl ::core::convert::TryFrom<&WrapGrid> for IInsertionPanel {
    type Error = ::windows::core::Error;
    fn try_from(value: &WrapGrid) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IInsertionPanel> for WrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, IInsertionPanel> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, IInsertionPanel> for &WrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, IInsertionPanel> {
        ::core::convert::TryInto::<IInsertionPanel>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::TryFrom<WrapGrid> for Primitives::IScrollSnapPointsInfo {
    type Error = ::windows::core::Error;
    fn try_from(value: WrapGrid) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::TryFrom<&WrapGrid> for Primitives::IScrollSnapPointsInfo {
    type Error = ::windows::core::Error;
    fn try_from(value: &WrapGrid) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::IScrollSnapPointsInfo> for WrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::IScrollSnapPointsInfo> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::IScrollSnapPointsInfo> for &WrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::IScrollSnapPointsInfo> {
        ::core::convert::TryInto::<Primitives::IScrollSnapPointsInfo>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<WrapGrid> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: WrapGrid) -> ::windows::core::Result<Self> {
        ::core::convert::TryFrom::try_from(&value)
    }
}
#[cfg(feature = "UI_Composition")]
impl ::core::convert::TryFrom<&WrapGrid> for super::super::Composition::IVisualElement {
    type Error = ::windows::core::Error;
    fn try_from(value: &WrapGrid) -> ::windows::core::Result<Self> {
        ::windows::core::Interface::cast(value)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for WrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Composition")]
impl<'a> ::windows::core::IntoParam<'a, super::super::Composition::IVisualElement> for &WrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, super::super::Composition::IVisualElement> {
        ::core::convert::TryInto::<super::super::Composition::IVisualElement>::try_into(self).map(::windows::core::Param::Owned).unwrap_or(::windows::core::Param::None)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<WrapGrid> for Primitives::OrientedVirtualizingPanel {
    fn from(value: WrapGrid) -> Self {
        ::core::convert::From::from(&value)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl ::core::convert::From<&WrapGrid> for Primitives::OrientedVirtualizingPanel {
    fn from(value: &WrapGrid) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::OrientedVirtualizingPanel> for WrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::OrientedVirtualizingPanel> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
#[cfg(feature = "UI_Xaml_Controls_Primitives")]
impl<'a> ::windows::core::IntoParam<'a, Primitives::OrientedVirtualizingPanel> for &WrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, Primitives::OrientedVirtualizingPanel> {
        ::windows::core::Param::Owned(::core::convert::Into::<Primitives::OrientedVirtualizingPanel>::into(self))
    }
}
impl ::core::convert::From<WrapGrid> for VirtualizingPanel {
    fn from(value: WrapGrid) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&WrapGrid> for VirtualizingPanel {
    fn from(value: &WrapGrid) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, VirtualizingPanel> for WrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, VirtualizingPanel> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, VirtualizingPanel> for &WrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, VirtualizingPanel> {
        ::windows::core::Param::Owned(::core::convert::Into::<VirtualizingPanel>::into(self))
    }
}
impl ::core::convert::From<WrapGrid> for Panel {
    fn from(value: WrapGrid) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&WrapGrid> for Panel {
    fn from(value: &WrapGrid) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, Panel> for WrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, Panel> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, Panel> for &WrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, Panel> {
        ::windows::core::Param::Owned(::core::convert::Into::<Panel>::into(self))
    }
}
impl ::core::convert::From<WrapGrid> for super::FrameworkElement {
    fn from(value: WrapGrid) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&WrapGrid> for super::FrameworkElement {
    fn from(value: &WrapGrid) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for WrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::FrameworkElement> for &WrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, super::FrameworkElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::FrameworkElement>::into(self))
    }
}
impl ::core::convert::From<WrapGrid> for super::UIElement {
    fn from(value: WrapGrid) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&WrapGrid> for super::UIElement {
    fn from(value: &WrapGrid) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for WrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::UIElement> for &WrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, super::UIElement> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::UIElement>::into(self))
    }
}
impl ::core::convert::From<WrapGrid> for super::DependencyObject {
    fn from(value: WrapGrid) -> Self {
        ::core::convert::From::from(&value)
    }
}
impl ::core::convert::From<&WrapGrid> for super::DependencyObject {
    fn from(value: &WrapGrid) -> Self {
        ::windows::core::Interface::cast(value).unwrap()
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for WrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::IntoParam::into_param(&self)
    }
}
impl<'a> ::windows::core::IntoParam<'a, super::DependencyObject> for &WrapGrid {
    fn into_param(self) -> ::windows::core::Param<'a, super::DependencyObject> {
        ::windows::core::Param::Owned(::core::convert::Into::<super::DependencyObject>::into(self))
    }
}
unsafe impl ::core::marker::Send for WrapGrid {}
unsafe impl ::core::marker::Sync for WrapGrid {}
#[doc = "*Required features: 'UI_Xaml_Controls'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct ZoomMode(pub i32);
impl ZoomMode {
    pub const Disabled: Self = Self(0i32);
    pub const Enabled: Self = Self(1i32);
}
impl ::core::marker::Copy for ZoomMode {}
impl ::core::clone::Clone for ZoomMode {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ZoomMode {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ZoomMode {
    type Abi = Self;
}
impl ::core::fmt::Debug for ZoomMode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ZoomMode").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::RuntimeType for ZoomMode {
    const SIGNATURE: ::windows::core::ConstBuffer = ::windows::core::ConstBuffer::from_slice(b"enum(Windows.UI.Xaml.Controls.ZoomMode;i4)");
    type DefaultType = Self;
    fn from_default(from: &Self::DefaultType) -> ::windows::core::Result<Self> {
        Ok(*from)
    }
}
#[cfg(feature = "implement")]
::core::include!("impl.rs");
