| #[doc(hidden)] |
| #[repr(transparent)] |
| pub struct IApiInformationStatics(::windows::core::IUnknown); |
| unsafe impl ::windows::core::Interface for IApiInformationStatics { |
| type Vtable = IApiInformationStatics_Vtbl; |
| } |
| impl ::core::clone::Clone for IApiInformationStatics { |
| fn clone(&self) -> Self { |
| Self(self.0.clone()) |
| } |
| } |
| unsafe impl ::windows::core::ComInterface for IApiInformationStatics { |
| const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x997439fe_f681_4a11_b416_c13a47e8ba36); |
| } |
| #[repr(C)] |
| #[doc(hidden)] |
| pub struct IApiInformationStatics_Vtbl { |
| pub base__: ::windows::core::IInspectable_Vtbl, |
| pub IsTypePresent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, typename: ::std::mem::MaybeUninit<::windows::core::HSTRING>, result__: *mut bool) -> ::windows::core::HRESULT, |
| pub IsMethodPresent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, typename: ::std::mem::MaybeUninit<::windows::core::HSTRING>, methodname: ::std::mem::MaybeUninit<::windows::core::HSTRING>, result__: *mut bool) -> ::windows::core::HRESULT, |
| pub IsMethodPresentWithArity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, typename: ::std::mem::MaybeUninit<::windows::core::HSTRING>, methodname: ::std::mem::MaybeUninit<::windows::core::HSTRING>, inputparametercount: u32, result__: *mut bool) -> ::windows::core::HRESULT, |
| pub IsEventPresent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, typename: ::std::mem::MaybeUninit<::windows::core::HSTRING>, eventname: ::std::mem::MaybeUninit<::windows::core::HSTRING>, result__: *mut bool) -> ::windows::core::HRESULT, |
| pub IsPropertyPresent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, typename: ::std::mem::MaybeUninit<::windows::core::HSTRING>, propertyname: ::std::mem::MaybeUninit<::windows::core::HSTRING>, result__: *mut bool) -> ::windows::core::HRESULT, |
| pub IsReadOnlyPropertyPresent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, typename: ::std::mem::MaybeUninit<::windows::core::HSTRING>, propertyname: ::std::mem::MaybeUninit<::windows::core::HSTRING>, result__: *mut bool) -> ::windows::core::HRESULT, |
| pub IsWriteablePropertyPresent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, typename: ::std::mem::MaybeUninit<::windows::core::HSTRING>, propertyname: ::std::mem::MaybeUninit<::windows::core::HSTRING>, result__: *mut bool) -> ::windows::core::HRESULT, |
| pub IsEnumNamedValuePresent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, enumtypename: ::std::mem::MaybeUninit<::windows::core::HSTRING>, valuename: ::std::mem::MaybeUninit<::windows::core::HSTRING>, result__: *mut bool) -> ::windows::core::HRESULT, |
| pub IsApiContractPresentByMajor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contractname: ::std::mem::MaybeUninit<::windows::core::HSTRING>, majorversion: u16, result__: *mut bool) -> ::windows::core::HRESULT, |
| pub IsApiContractPresentByMajorAndMinor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contractname: ::std::mem::MaybeUninit<::windows::core::HSTRING>, majorversion: u16, minorversion: u16, result__: *mut bool) -> ::windows::core::HRESULT, |
| } |
| #[doc = "*Required features: `\"Foundation_Metadata\"`*"] |
| pub struct ApiInformation; |
| impl ApiInformation { |
| pub fn IsTypePresent(typename: &::windows::core::HSTRING) -> ::windows::core::Result<bool> { |
| Self::IApiInformationStatics(|this| unsafe { |
| let mut result__ = ::windows::core::zeroed::<bool>(); |
| (::windows::core::Interface::vtable(this).IsTypePresent)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(typename), &mut result__).from_abi(result__) |
| }) |
| } |
| pub fn IsMethodPresent(typename: &::windows::core::HSTRING, methodname: &::windows::core::HSTRING) -> ::windows::core::Result<bool> { |
| Self::IApiInformationStatics(|this| unsafe { |
| let mut result__ = ::windows::core::zeroed::<bool>(); |
| (::windows::core::Interface::vtable(this).IsMethodPresent)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(typename), ::core::mem::transmute_copy(methodname), &mut result__).from_abi(result__) |
| }) |
| } |
| pub fn IsMethodPresentWithArity(typename: &::windows::core::HSTRING, methodname: &::windows::core::HSTRING, inputparametercount: u32) -> ::windows::core::Result<bool> { |
| Self::IApiInformationStatics(|this| unsafe { |
| let mut result__ = ::windows::core::zeroed::<bool>(); |
| (::windows::core::Interface::vtable(this).IsMethodPresentWithArity)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(typename), ::core::mem::transmute_copy(methodname), inputparametercount, &mut result__).from_abi(result__) |
| }) |
| } |
| pub fn IsEventPresent(typename: &::windows::core::HSTRING, eventname: &::windows::core::HSTRING) -> ::windows::core::Result<bool> { |
| Self::IApiInformationStatics(|this| unsafe { |
| let mut result__ = ::windows::core::zeroed::<bool>(); |
| (::windows::core::Interface::vtable(this).IsEventPresent)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(typename), ::core::mem::transmute_copy(eventname), &mut result__).from_abi(result__) |
| }) |
| } |
| pub fn IsPropertyPresent(typename: &::windows::core::HSTRING, propertyname: &::windows::core::HSTRING) -> ::windows::core::Result<bool> { |
| Self::IApiInformationStatics(|this| unsafe { |
| let mut result__ = ::windows::core::zeroed::<bool>(); |
| (::windows::core::Interface::vtable(this).IsPropertyPresent)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(typename), ::core::mem::transmute_copy(propertyname), &mut result__).from_abi(result__) |
| }) |
| } |
| pub fn IsReadOnlyPropertyPresent(typename: &::windows::core::HSTRING, propertyname: &::windows::core::HSTRING) -> ::windows::core::Result<bool> { |
| Self::IApiInformationStatics(|this| unsafe { |
| let mut result__ = ::windows::core::zeroed::<bool>(); |
| (::windows::core::Interface::vtable(this).IsReadOnlyPropertyPresent)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(typename), ::core::mem::transmute_copy(propertyname), &mut result__).from_abi(result__) |
| }) |
| } |
| pub fn IsWriteablePropertyPresent(typename: &::windows::core::HSTRING, propertyname: &::windows::core::HSTRING) -> ::windows::core::Result<bool> { |
| Self::IApiInformationStatics(|this| unsafe { |
| let mut result__ = ::windows::core::zeroed::<bool>(); |
| (::windows::core::Interface::vtable(this).IsWriteablePropertyPresent)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(typename), ::core::mem::transmute_copy(propertyname), &mut result__).from_abi(result__) |
| }) |
| } |
| pub fn IsEnumNamedValuePresent(enumtypename: &::windows::core::HSTRING, valuename: &::windows::core::HSTRING) -> ::windows::core::Result<bool> { |
| Self::IApiInformationStatics(|this| unsafe { |
| let mut result__ = ::windows::core::zeroed::<bool>(); |
| (::windows::core::Interface::vtable(this).IsEnumNamedValuePresent)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(enumtypename), ::core::mem::transmute_copy(valuename), &mut result__).from_abi(result__) |
| }) |
| } |
| pub fn IsApiContractPresentByMajor(contractname: &::windows::core::HSTRING, majorversion: u16) -> ::windows::core::Result<bool> { |
| Self::IApiInformationStatics(|this| unsafe { |
| let mut result__ = ::windows::core::zeroed::<bool>(); |
| (::windows::core::Interface::vtable(this).IsApiContractPresentByMajor)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(contractname), majorversion, &mut result__).from_abi(result__) |
| }) |
| } |
| pub fn IsApiContractPresentByMajorAndMinor(contractname: &::windows::core::HSTRING, majorversion: u16, minorversion: u16) -> ::windows::core::Result<bool> { |
| Self::IApiInformationStatics(|this| unsafe { |
| let mut result__ = ::windows::core::zeroed::<bool>(); |
| (::windows::core::Interface::vtable(this).IsApiContractPresentByMajorAndMinor)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(contractname), majorversion, minorversion, &mut result__).from_abi(result__) |
| }) |
| } |
| #[doc(hidden)] |
| pub fn IApiInformationStatics<R, F: FnOnce(&IApiInformationStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> { |
| static SHARED: ::windows::imp::FactoryCache<ApiInformation, IApiInformationStatics> = ::windows::imp::FactoryCache::new(); |
| SHARED.call(callback) |
| } |
| } |
| impl ::windows::core::RuntimeName for ApiInformation { |
| const NAME: &'static str = "Windows.Foundation.Metadata.ApiInformation"; |
| } |
| #[doc = "*Required features: `\"Foundation_Metadata\"`*"] |
| #[repr(transparent)] |
| #[derive(::core::cmp::PartialEq, ::core::cmp::Eq)] |
| pub struct AttributeTargets(pub u32); |
| impl AttributeTargets { |
| pub const All: Self = Self(4294967295u32); |
| pub const Delegate: Self = Self(1u32); |
| pub const Enum: Self = Self(2u32); |
| pub const Event: Self = Self(4u32); |
| pub const Field: Self = Self(8u32); |
| pub const Interface: Self = Self(16u32); |
| pub const Method: Self = Self(64u32); |
| pub const Parameter: Self = Self(128u32); |
| pub const Property: Self = Self(256u32); |
| pub const RuntimeClass: Self = Self(512u32); |
| pub const Struct: Self = Self(1024u32); |
| pub const InterfaceImpl: Self = Self(2048u32); |
| pub const ApiContract: Self = Self(8192u32); |
| } |
| impl ::core::marker::Copy for AttributeTargets {} |
| impl ::core::clone::Clone for AttributeTargets { |
| fn clone(&self) -> Self { |
| *self |
| } |
| } |
| impl ::core::default::Default for AttributeTargets { |
| fn default() -> Self { |
| Self(0) |
| } |
| } |
| impl ::windows::core::TypeKind for AttributeTargets { |
| type TypeKind = ::windows::core::CopyType; |
| } |
| impl ::core::fmt::Debug for AttributeTargets { |
| fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { |
| f.debug_tuple("AttributeTargets").field(&self.0).finish() |
| } |
| } |
| impl AttributeTargets { |
| pub const fn contains(&self, other: Self) -> bool { |
| self.0 & other.0 == other.0 |
| } |
| } |
| impl ::core::ops::BitOr for AttributeTargets { |
| type Output = Self; |
| fn bitor(self, other: Self) -> Self { |
| Self(self.0 | other.0) |
| } |
| } |
| impl ::core::ops::BitAnd for AttributeTargets { |
| type Output = Self; |
| fn bitand(self, other: Self) -> Self { |
| Self(self.0 & other.0) |
| } |
| } |
| impl ::core::ops::BitOrAssign for AttributeTargets { |
| fn bitor_assign(&mut self, other: Self) { |
| self.0.bitor_assign(other.0) |
| } |
| } |
| impl ::core::ops::BitAndAssign for AttributeTargets { |
| fn bitand_assign(&mut self, other: Self) { |
| self.0.bitand_assign(other.0) |
| } |
| } |
| impl ::core::ops::Not for AttributeTargets { |
| type Output = Self; |
| fn not(self) -> Self { |
| Self(self.0.not()) |
| } |
| } |
| impl ::windows::core::RuntimeType for AttributeTargets { |
| const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"enum(Windows.Foundation.Metadata.AttributeTargets;u4)"); |
| } |
| #[doc = "*Required features: `\"Foundation_Metadata\"`*"] |
| #[repr(transparent)] |
| #[derive(::core::cmp::PartialEq, ::core::cmp::Eq)] |
| pub struct CompositionType(pub i32); |
| impl CompositionType { |
| pub const Protected: Self = Self(1i32); |
| pub const Public: Self = Self(2i32); |
| } |
| impl ::core::marker::Copy for CompositionType {} |
| impl ::core::clone::Clone for CompositionType { |
| fn clone(&self) -> Self { |
| *self |
| } |
| } |
| impl ::core::default::Default for CompositionType { |
| fn default() -> Self { |
| Self(0) |
| } |
| } |
| impl ::windows::core::TypeKind for CompositionType { |
| type TypeKind = ::windows::core::CopyType; |
| } |
| impl ::core::fmt::Debug for CompositionType { |
| fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { |
| f.debug_tuple("CompositionType").field(&self.0).finish() |
| } |
| } |
| impl ::windows::core::RuntimeType for CompositionType { |
| const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"enum(Windows.Foundation.Metadata.CompositionType;i4)"); |
| } |
| #[doc = "*Required features: `\"Foundation_Metadata\"`*"] |
| #[repr(transparent)] |
| #[derive(::core::cmp::PartialEq, ::core::cmp::Eq)] |
| pub struct DeprecationType(pub i32); |
| impl DeprecationType { |
| pub const Deprecate: Self = Self(0i32); |
| pub const Remove: Self = Self(1i32); |
| } |
| impl ::core::marker::Copy for DeprecationType {} |
| impl ::core::clone::Clone for DeprecationType { |
| fn clone(&self) -> Self { |
| *self |
| } |
| } |
| impl ::core::default::Default for DeprecationType { |
| fn default() -> Self { |
| Self(0) |
| } |
| } |
| impl ::windows::core::TypeKind for DeprecationType { |
| type TypeKind = ::windows::core::CopyType; |
| } |
| impl ::core::fmt::Debug for DeprecationType { |
| fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { |
| f.debug_tuple("DeprecationType").field(&self.0).finish() |
| } |
| } |
| impl ::windows::core::RuntimeType for DeprecationType { |
| const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"enum(Windows.Foundation.Metadata.DeprecationType;i4)"); |
| } |
| #[doc = "*Required features: `\"Foundation_Metadata\"`*"] |
| #[repr(transparent)] |
| #[derive(::core::cmp::PartialEq, ::core::cmp::Eq)] |
| pub struct FeatureStage(pub i32); |
| impl FeatureStage { |
| pub const AlwaysDisabled: Self = Self(0i32); |
| pub const DisabledByDefault: Self = Self(1i32); |
| pub const EnabledByDefault: Self = Self(2i32); |
| pub const AlwaysEnabled: Self = Self(3i32); |
| } |
| impl ::core::marker::Copy for FeatureStage {} |
| impl ::core::clone::Clone for FeatureStage { |
| fn clone(&self) -> Self { |
| *self |
| } |
| } |
| impl ::core::default::Default for FeatureStage { |
| fn default() -> Self { |
| Self(0) |
| } |
| } |
| impl ::windows::core::TypeKind for FeatureStage { |
| type TypeKind = ::windows::core::CopyType; |
| } |
| impl ::core::fmt::Debug for FeatureStage { |
| fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { |
| f.debug_tuple("FeatureStage").field(&self.0).finish() |
| } |
| } |
| impl ::windows::core::RuntimeType for FeatureStage { |
| const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"enum(Windows.Foundation.Metadata.FeatureStage;i4)"); |
| } |
| #[doc = "*Required features: `\"Foundation_Metadata\"`*"] |
| #[repr(transparent)] |
| #[derive(::core::cmp::PartialEq, ::core::cmp::Eq)] |
| pub struct GCPressureAmount(pub i32); |
| impl GCPressureAmount { |
| pub const Low: Self = Self(0i32); |
| pub const Medium: Self = Self(1i32); |
| pub const High: Self = Self(2i32); |
| } |
| impl ::core::marker::Copy for GCPressureAmount {} |
| impl ::core::clone::Clone for GCPressureAmount { |
| fn clone(&self) -> Self { |
| *self |
| } |
| } |
| impl ::core::default::Default for GCPressureAmount { |
| fn default() -> Self { |
| Self(0) |
| } |
| } |
| impl ::windows::core::TypeKind for GCPressureAmount { |
| type TypeKind = ::windows::core::CopyType; |
| } |
| impl ::core::fmt::Debug for GCPressureAmount { |
| fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { |
| f.debug_tuple("GCPressureAmount").field(&self.0).finish() |
| } |
| } |
| impl ::windows::core::RuntimeType for GCPressureAmount { |
| const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"enum(Windows.Foundation.Metadata.GCPressureAmount;i4)"); |
| } |
| #[doc = "*Required features: `\"Foundation_Metadata\"`*"] |
| #[repr(transparent)] |
| #[derive(::core::cmp::PartialEq, ::core::cmp::Eq)] |
| pub struct MarshalingType(pub i32); |
| impl MarshalingType { |
| pub const None: Self = Self(1i32); |
| pub const Agile: Self = Self(2i32); |
| pub const Standard: Self = Self(3i32); |
| pub const InvalidMarshaling: Self = Self(0i32); |
| } |
| impl ::core::marker::Copy for MarshalingType {} |
| impl ::core::clone::Clone for MarshalingType { |
| fn clone(&self) -> Self { |
| *self |
| } |
| } |
| impl ::core::default::Default for MarshalingType { |
| fn default() -> Self { |
| Self(0) |
| } |
| } |
| impl ::windows::core::TypeKind for MarshalingType { |
| type TypeKind = ::windows::core::CopyType; |
| } |
| impl ::core::fmt::Debug for MarshalingType { |
| fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { |
| f.debug_tuple("MarshalingType").field(&self.0).finish() |
| } |
| } |
| impl ::windows::core::RuntimeType for MarshalingType { |
| const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"enum(Windows.Foundation.Metadata.MarshalingType;i4)"); |
| } |
| #[doc = "*Required features: `\"Foundation_Metadata\"`*"] |
| #[repr(transparent)] |
| #[derive(::core::cmp::PartialEq, ::core::cmp::Eq)] |
| pub struct Platform(pub i32); |
| impl Platform { |
| pub const Windows: Self = Self(0i32); |
| pub const WindowsPhone: Self = Self(1i32); |
| } |
| impl ::core::marker::Copy for Platform {} |
| impl ::core::clone::Clone for Platform { |
| fn clone(&self) -> Self { |
| *self |
| } |
| } |
| impl ::core::default::Default for Platform { |
| fn default() -> Self { |
| Self(0) |
| } |
| } |
| impl ::windows::core::TypeKind for Platform { |
| type TypeKind = ::windows::core::CopyType; |
| } |
| impl ::core::fmt::Debug for Platform { |
| fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { |
| f.debug_tuple("Platform").field(&self.0).finish() |
| } |
| } |
| impl ::windows::core::RuntimeType for Platform { |
| const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"enum(Windows.Foundation.Metadata.Platform;i4)"); |
| } |
| #[doc = "*Required features: `\"Foundation_Metadata\"`*"] |
| #[repr(transparent)] |
| #[derive(::core::cmp::PartialEq, ::core::cmp::Eq)] |
| pub struct ThreadingModel(pub i32); |
| impl ThreadingModel { |
| pub const STA: Self = Self(1i32); |
| pub const MTA: Self = Self(2i32); |
| pub const Both: Self = Self(3i32); |
| pub const InvalidThreading: Self = Self(0i32); |
| } |
| impl ::core::marker::Copy for ThreadingModel {} |
| impl ::core::clone::Clone for ThreadingModel { |
| fn clone(&self) -> Self { |
| *self |
| } |
| } |
| impl ::core::default::Default for ThreadingModel { |
| fn default() -> Self { |
| Self(0) |
| } |
| } |
| impl ::windows::core::TypeKind for ThreadingModel { |
| type TypeKind = ::windows::core::CopyType; |
| } |
| impl ::core::fmt::Debug for ThreadingModel { |
| fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { |
| f.debug_tuple("ThreadingModel").field(&self.0).finish() |
| } |
| } |
| impl ::windows::core::RuntimeType for ThreadingModel { |
| const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"enum(Windows.Foundation.Metadata.ThreadingModel;i4)"); |
| } |
| #[cfg(feature = "implement")] |
| ::core::include!("impl.rs"); |