blob: f468a9dd70a9523029b9bcadaf4e80a0ea11e7c9 [file] [log] [blame]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IWaaSAssessor(::windows_core::IUnknown);
impl IWaaSAssessor {
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetOSUpdateAssessment(&self) -> ::windows_core::Result<OSUpdateAssessment> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOSUpdateAssessment)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IWaaSAssessor, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IWaaSAssessor {
type Vtable = IWaaSAssessor_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IWaaSAssessor {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x2347bbef_1a3b_45a4_902d_3e09c269b45e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWaaSAssessor_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
#[cfg(feature = "Win32_Foundation")]
pub GetOSUpdateAssessment: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result: *mut OSUpdateAssessment) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetOSUpdateAssessment: usize,
}
pub const UpdateAssessmentStatus_Latest: UpdateAssessmentStatus = UpdateAssessmentStatus(0i32);
pub const UpdateAssessmentStatus_NotLatestDeferredFeature: UpdateAssessmentStatus = UpdateAssessmentStatus(5i32);
pub const UpdateAssessmentStatus_NotLatestDeferredQuality: UpdateAssessmentStatus = UpdateAssessmentStatus(6i32);
pub const UpdateAssessmentStatus_NotLatestEndOfSupport: UpdateAssessmentStatus = UpdateAssessmentStatus(3i32);
pub const UpdateAssessmentStatus_NotLatestHardRestriction: UpdateAssessmentStatus = UpdateAssessmentStatus(2i32);
pub const UpdateAssessmentStatus_NotLatestManaged: UpdateAssessmentStatus = UpdateAssessmentStatus(9i32);
pub const UpdateAssessmentStatus_NotLatestPausedFeature: UpdateAssessmentStatus = UpdateAssessmentStatus(7i32);
pub const UpdateAssessmentStatus_NotLatestPausedQuality: UpdateAssessmentStatus = UpdateAssessmentStatus(8i32);
pub const UpdateAssessmentStatus_NotLatestServicingTrain: UpdateAssessmentStatus = UpdateAssessmentStatus(4i32);
pub const UpdateAssessmentStatus_NotLatestSoftRestriction: UpdateAssessmentStatus = UpdateAssessmentStatus(1i32);
pub const UpdateAssessmentStatus_NotLatestTargetedVersion: UpdateAssessmentStatus = UpdateAssessmentStatus(11i32);
pub const UpdateAssessmentStatus_NotLatestUnknown: UpdateAssessmentStatus = UpdateAssessmentStatus(10i32);
pub const UpdateImpactLevel_High: UpdateImpactLevel = UpdateImpactLevel(3i32);
pub const UpdateImpactLevel_Low: UpdateImpactLevel = UpdateImpactLevel(1i32);
pub const UpdateImpactLevel_Medium: UpdateImpactLevel = UpdateImpactLevel(2i32);
pub const UpdateImpactLevel_None: UpdateImpactLevel = UpdateImpactLevel(0i32);
pub const WaaSAssessor: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x098ef871_fa9f_46af_8958_c083515d7c9c);
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct UpdateAssessmentStatus(pub i32);
impl ::core::marker::Copy for UpdateAssessmentStatus {}
impl ::core::clone::Clone for UpdateAssessmentStatus {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for UpdateAssessmentStatus {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for UpdateAssessmentStatus {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for UpdateAssessmentStatus {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("UpdateAssessmentStatus").field(&self.0).finish()
}
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct UpdateImpactLevel(pub i32);
impl ::core::marker::Copy for UpdateImpactLevel {}
impl ::core::clone::Clone for UpdateImpactLevel {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for UpdateImpactLevel {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for UpdateImpactLevel {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for UpdateImpactLevel {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("UpdateImpactLevel").field(&self.0).finish()
}
}
#[repr(C)]
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub struct OSUpdateAssessment {
pub isEndOfSupport: super::super::Foundation::BOOL,
pub assessmentForCurrent: UpdateAssessment,
pub assessmentForUpToDate: UpdateAssessment,
pub securityStatus: UpdateAssessmentStatus,
pub assessmentTime: super::super::Foundation::FILETIME,
pub releaseInfoTime: super::super::Foundation::FILETIME,
pub currentOSBuild: ::windows_core::PWSTR,
pub currentOSReleaseTime: super::super::Foundation::FILETIME,
pub upToDateOSBuild: ::windows_core::PWSTR,
pub upToDateOSReleaseTime: super::super::Foundation::FILETIME,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for OSUpdateAssessment {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for OSUpdateAssessment {
fn clone(&self) -> Self {
*self
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for OSUpdateAssessment {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("OSUpdateAssessment")
.field("isEndOfSupport", &self.isEndOfSupport)
.field("assessmentForCurrent", &self.assessmentForCurrent)
.field("assessmentForUpToDate", &self.assessmentForUpToDate)
.field("securityStatus", &self.securityStatus)
.field("assessmentTime", &self.assessmentTime)
.field("releaseInfoTime", &self.releaseInfoTime)
.field("currentOSBuild", &self.currentOSBuild)
.field("currentOSReleaseTime", &self.currentOSReleaseTime)
.field("upToDateOSBuild", &self.upToDateOSBuild)
.field("upToDateOSReleaseTime", &self.upToDateOSReleaseTime)
.finish()
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::TypeKind for OSUpdateAssessment {
type TypeKind = ::windows_core::CopyType;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for OSUpdateAssessment {
fn eq(&self, other: &Self) -> bool {
self.isEndOfSupport == other.isEndOfSupport && self.assessmentForCurrent == other.assessmentForCurrent && self.assessmentForUpToDate == other.assessmentForUpToDate && self.securityStatus == other.securityStatus && self.assessmentTime == other.assessmentTime && self.releaseInfoTime == other.releaseInfoTime && self.currentOSBuild == other.currentOSBuild && self.currentOSReleaseTime == other.currentOSReleaseTime && self.upToDateOSBuild == other.upToDateOSBuild && self.upToDateOSReleaseTime == other.upToDateOSReleaseTime
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for OSUpdateAssessment {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for OSUpdateAssessment {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct UpdateAssessment {
pub status: UpdateAssessmentStatus,
pub impact: UpdateImpactLevel,
pub daysOutOfDate: u32,
}
impl ::core::marker::Copy for UpdateAssessment {}
impl ::core::clone::Clone for UpdateAssessment {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for UpdateAssessment {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("UpdateAssessment").field("status", &self.status).field("impact", &self.impact).field("daysOutOfDate", &self.daysOutOfDate).finish()
}
}
impl ::windows_core::TypeKind for UpdateAssessment {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for UpdateAssessment {
fn eq(&self, other: &Self) -> bool {
self.status == other.status && self.impact == other.impact && self.daysOutOfDate == other.daysOutOfDate
}
}
impl ::core::cmp::Eq for UpdateAssessment {}
impl ::core::default::Default for UpdateAssessment {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[cfg(feature = "implement")]
::core::include!("impl.rs");