]> git.proxmox.com Git - rustc.git/blame - vendor/windows/src/Windows/Win32/System/SecurityCenter/mod.rs
New upstream version 1.70.0+dfsg1
[rustc.git] / vendor / windows / src / Windows / Win32 / System / SecurityCenter / mod.rs
CommitLineData
353b0b11
FG
1#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
2#[inline]
3pub unsafe fn WscGetAntiMalwareUri() -> ::windows::core::Result<::windows::core::PWSTR> {
4 ::windows::imp::link ! ( "wscapi.dll""system" fn WscGetAntiMalwareUri ( ppszuri : *mut :: windows::core::PWSTR ) -> :: windows::core::HRESULT );
5 let mut result__ = ::windows::core::zeroed::<::windows::core::PWSTR>();
6 WscGetAntiMalwareUri(&mut result__).from_abi(result__)
7}
8#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
9#[inline]
10pub unsafe fn WscGetSecurityProviderHealth(providers: u32, phealth: *mut WSC_SECURITY_PROVIDER_HEALTH) -> ::windows::core::Result<()> {
11 ::windows::imp::link ! ( "wscapi.dll""system" fn WscGetSecurityProviderHealth ( providers : u32 , phealth : *mut WSC_SECURITY_PROVIDER_HEALTH ) -> :: windows::core::HRESULT );
12 WscGetSecurityProviderHealth(providers, phealth).ok()
13}
14#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
15#[inline]
16pub unsafe fn WscQueryAntiMalwareUri() -> ::windows::core::Result<()> {
17 ::windows::imp::link ! ( "wscapi.dll""system" fn WscQueryAntiMalwareUri ( ) -> :: windows::core::HRESULT );
18 WscQueryAntiMalwareUri().ok()
19}
20#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`, `\"Win32_Foundation\"`, `\"Win32_System_Threading\"`*"]
21#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))]
22#[inline]
23pub unsafe fn WscRegisterForChanges(reserved: *mut ::core::ffi::c_void, phcallbackregistration: *mut super::super::Foundation::HANDLE, lpcallbackaddress: super::Threading::LPTHREAD_START_ROUTINE, pcontext: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> {
24 ::windows::imp::link ! ( "wscapi.dll""system" fn WscRegisterForChanges ( reserved : *mut ::core::ffi::c_void , phcallbackregistration : *mut super::super::Foundation:: HANDLE , lpcallbackaddress : super::Threading:: LPTHREAD_START_ROUTINE , pcontext : *mut ::core::ffi::c_void ) -> :: windows::core::HRESULT );
25 WscRegisterForChanges(reserved, phcallbackregistration, lpcallbackaddress, pcontext).ok()
26}
27#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
28#[inline]
29pub unsafe fn WscRegisterForUserNotifications() -> ::windows::core::Result<()> {
30 ::windows::imp::link ! ( "wscapi.dll""system" fn WscRegisterForUserNotifications ( ) -> :: windows::core::HRESULT );
31 WscRegisterForUserNotifications().ok()
32}
33#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`, `\"Win32_Foundation\"`*"]
34#[cfg(feature = "Win32_Foundation")]
35#[inline]
36pub unsafe fn WscUnRegisterChanges<P0>(hregistrationhandle: P0) -> ::windows::core::Result<()>
37where
38 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
39{
40 ::windows::imp::link ! ( "wscapi.dll""system" fn WscUnRegisterChanges ( hregistrationhandle : super::super::Foundation:: HANDLE ) -> :: windows::core::HRESULT );
41 WscUnRegisterChanges(hregistrationhandle.into_param().abi()).ok()
42}
43#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`, `\"Win32_System_Com\"`*"]
44#[cfg(feature = "Win32_System_Com")]
45#[repr(transparent)]
46pub struct IWSCDefaultProduct(::windows::core::IUnknown);
47#[cfg(feature = "Win32_System_Com")]
48impl IWSCDefaultProduct {
49 pub unsafe fn SetDefaultProduct<P0>(&self, etype: SECURITY_PRODUCT_TYPE, pguid: P0) -> ::windows::core::Result<()>
50 where
51 P0: ::windows::core::IntoParam<::windows::core::BSTR>,
52 {
53 (::windows::core::Interface::vtable(self).SetDefaultProduct)(::windows::core::Interface::as_raw(self), etype, pguid.into_param().abi()).ok()
54 }
55}
56#[cfg(feature = "Win32_System_Com")]
57::windows::imp::interface_hierarchy!(IWSCDefaultProduct, ::windows::core::IUnknown, super::Com::IDispatch);
58#[cfg(feature = "Win32_System_Com")]
59impl ::core::cmp::PartialEq for IWSCDefaultProduct {
60 fn eq(&self, other: &Self) -> bool {
61 self.0 == other.0
62 }
63}
64#[cfg(feature = "Win32_System_Com")]
65impl ::core::cmp::Eq for IWSCDefaultProduct {}
66#[cfg(feature = "Win32_System_Com")]
67impl ::core::fmt::Debug for IWSCDefaultProduct {
68 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
69 f.debug_tuple("IWSCDefaultProduct").field(&self.0).finish()
70 }
71}
72#[cfg(feature = "Win32_System_Com")]
73unsafe impl ::windows::core::Interface for IWSCDefaultProduct {
74 type Vtable = IWSCDefaultProduct_Vtbl;
75}
76#[cfg(feature = "Win32_System_Com")]
77impl ::core::clone::Clone for IWSCDefaultProduct {
78 fn clone(&self) -> Self {
79 Self(self.0.clone())
80 }
81}
82#[cfg(feature = "Win32_System_Com")]
83unsafe impl ::windows::core::ComInterface for IWSCDefaultProduct {
84 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0476d69c_f21a_11e5_9ce9_5e5517507c66);
85}
86#[cfg(feature = "Win32_System_Com")]
87#[repr(C)]
88#[doc(hidden)]
89pub struct IWSCDefaultProduct_Vtbl {
90 pub base__: super::Com::IDispatch_Vtbl,
91 pub SetDefaultProduct: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, etype: SECURITY_PRODUCT_TYPE, pguid: ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT,
92}
93#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`, `\"Win32_System_Com\"`*"]
94#[cfg(feature = "Win32_System_Com")]
95#[repr(transparent)]
96pub struct IWSCProductList(::windows::core::IUnknown);
97#[cfg(feature = "Win32_System_Com")]
98impl IWSCProductList {
99 pub unsafe fn Initialize(&self, provider: WSC_SECURITY_PROVIDER) -> ::windows::core::Result<()> {
100 (::windows::core::Interface::vtable(self).Initialize)(::windows::core::Interface::as_raw(self), provider).ok()
101 }
102 pub unsafe fn Count(&self) -> ::windows::core::Result<i32> {
103 let mut result__ = ::windows::core::zeroed::<i32>();
104 (::windows::core::Interface::vtable(self).Count)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
105 }
106 #[doc = "*Required features: `\"Win32_System_Com\"`*"]
107 #[cfg(feature = "Win32_System_Com")]
108 pub unsafe fn get_Item(&self, index: u32) -> ::windows::core::Result<IWscProduct> {
109 let mut result__ = ::windows::core::zeroed::<IWscProduct>();
110 (::windows::core::Interface::vtable(self).get_Item)(::windows::core::Interface::as_raw(self), index, &mut result__).from_abi(result__)
111 }
112}
113#[cfg(feature = "Win32_System_Com")]
114::windows::imp::interface_hierarchy!(IWSCProductList, ::windows::core::IUnknown, super::Com::IDispatch);
115#[cfg(feature = "Win32_System_Com")]
116impl ::core::cmp::PartialEq for IWSCProductList {
117 fn eq(&self, other: &Self) -> bool {
118 self.0 == other.0
119 }
120}
121#[cfg(feature = "Win32_System_Com")]
122impl ::core::cmp::Eq for IWSCProductList {}
123#[cfg(feature = "Win32_System_Com")]
124impl ::core::fmt::Debug for IWSCProductList {
125 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
126 f.debug_tuple("IWSCProductList").field(&self.0).finish()
127 }
128}
129#[cfg(feature = "Win32_System_Com")]
130unsafe impl ::windows::core::Interface for IWSCProductList {
131 type Vtable = IWSCProductList_Vtbl;
132}
133#[cfg(feature = "Win32_System_Com")]
134impl ::core::clone::Clone for IWSCProductList {
135 fn clone(&self) -> Self {
136 Self(self.0.clone())
137 }
138}
139#[cfg(feature = "Win32_System_Com")]
140unsafe impl ::windows::core::ComInterface for IWSCProductList {
141 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x722a338c_6e8e_4e72_ac27_1417fb0c81c2);
142}
143#[cfg(feature = "Win32_System_Com")]
144#[repr(C)]
145#[doc(hidden)]
146pub struct IWSCProductList_Vtbl {
147 pub base__: super::Com::IDispatch_Vtbl,
148 pub Initialize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, provider: WSC_SECURITY_PROVIDER) -> ::windows::core::HRESULT,
149 pub Count: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pval: *mut i32) -> ::windows::core::HRESULT,
150 #[cfg(feature = "Win32_System_Com")]
151 pub get_Item: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, pval: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
152 #[cfg(not(feature = "Win32_System_Com"))]
153 get_Item: usize,
154}
155#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`, `\"Win32_System_Com\"`*"]
156#[cfg(feature = "Win32_System_Com")]
157#[repr(transparent)]
158pub struct IWscProduct(::windows::core::IUnknown);
159#[cfg(feature = "Win32_System_Com")]
160impl IWscProduct {
161 pub unsafe fn ProductName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
162 let mut result__ = ::windows::core::zeroed::<::windows::core::BSTR>();
163 (::windows::core::Interface::vtable(self).ProductName)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
164 }
165 pub unsafe fn ProductState(&self) -> ::windows::core::Result<WSC_SECURITY_PRODUCT_STATE> {
166 let mut result__ = ::windows::core::zeroed::<WSC_SECURITY_PRODUCT_STATE>();
167 (::windows::core::Interface::vtable(self).ProductState)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
168 }
169 pub unsafe fn SignatureStatus(&self) -> ::windows::core::Result<WSC_SECURITY_SIGNATURE_STATUS> {
170 let mut result__ = ::windows::core::zeroed::<WSC_SECURITY_SIGNATURE_STATUS>();
171 (::windows::core::Interface::vtable(self).SignatureStatus)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
172 }
173 pub unsafe fn RemediationPath(&self) -> ::windows::core::Result<::windows::core::BSTR> {
174 let mut result__ = ::windows::core::zeroed::<::windows::core::BSTR>();
175 (::windows::core::Interface::vtable(self).RemediationPath)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
176 }
177 pub unsafe fn ProductStateTimestamp(&self) -> ::windows::core::Result<::windows::core::BSTR> {
178 let mut result__ = ::windows::core::zeroed::<::windows::core::BSTR>();
179 (::windows::core::Interface::vtable(self).ProductStateTimestamp)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
180 }
181 pub unsafe fn ProductGuid(&self) -> ::windows::core::Result<::windows::core::BSTR> {
182 let mut result__ = ::windows::core::zeroed::<::windows::core::BSTR>();
183 (::windows::core::Interface::vtable(self).ProductGuid)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
184 }
185 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
186 #[cfg(feature = "Win32_Foundation")]
187 pub unsafe fn ProductIsDefault(&self) -> ::windows::core::Result<super::super::Foundation::BOOL> {
188 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::BOOL>();
189 (::windows::core::Interface::vtable(self).ProductIsDefault)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
190 }
191}
192#[cfg(feature = "Win32_System_Com")]
193::windows::imp::interface_hierarchy!(IWscProduct, ::windows::core::IUnknown, super::Com::IDispatch);
194#[cfg(feature = "Win32_System_Com")]
195impl ::core::cmp::PartialEq for IWscProduct {
196 fn eq(&self, other: &Self) -> bool {
197 self.0 == other.0
198 }
199}
200#[cfg(feature = "Win32_System_Com")]
201impl ::core::cmp::Eq for IWscProduct {}
202#[cfg(feature = "Win32_System_Com")]
203impl ::core::fmt::Debug for IWscProduct {
204 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
205 f.debug_tuple("IWscProduct").field(&self.0).finish()
206 }
207}
208#[cfg(feature = "Win32_System_Com")]
209unsafe impl ::windows::core::Interface for IWscProduct {
210 type Vtable = IWscProduct_Vtbl;
211}
212#[cfg(feature = "Win32_System_Com")]
213impl ::core::clone::Clone for IWscProduct {
214 fn clone(&self) -> Self {
215 Self(self.0.clone())
216 }
217}
218#[cfg(feature = "Win32_System_Com")]
219unsafe impl ::windows::core::ComInterface for IWscProduct {
220 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8c38232e_3a45_4a27_92b0_1a16a975f669);
221}
222#[cfg(feature = "Win32_System_Com")]
223#[repr(C)]
224#[doc(hidden)]
225pub struct IWscProduct_Vtbl {
226 pub base__: super::Com::IDispatch_Vtbl,
227 pub ProductName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pval: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT,
228 pub ProductState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pval: *mut WSC_SECURITY_PRODUCT_STATE) -> ::windows::core::HRESULT,
229 pub SignatureStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pval: *mut WSC_SECURITY_SIGNATURE_STATUS) -> ::windows::core::HRESULT,
230 pub RemediationPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pval: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT,
231 pub ProductStateTimestamp: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pval: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT,
232 pub ProductGuid: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pval: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT,
233 #[cfg(feature = "Win32_Foundation")]
234 pub ProductIsDefault: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pval: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
235 #[cfg(not(feature = "Win32_Foundation"))]
236 ProductIsDefault: usize,
237}
238#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`, `\"Win32_System_Com\"`*"]
239#[cfg(feature = "Win32_System_Com")]
240#[repr(transparent)]
241pub struct IWscProduct2(::windows::core::IUnknown);
242#[cfg(feature = "Win32_System_Com")]
243impl IWscProduct2 {
244 pub unsafe fn ProductName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
245 let mut result__ = ::windows::core::zeroed::<::windows::core::BSTR>();
246 (::windows::core::Interface::vtable(self).base__.ProductName)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
247 }
248 pub unsafe fn ProductState(&self) -> ::windows::core::Result<WSC_SECURITY_PRODUCT_STATE> {
249 let mut result__ = ::windows::core::zeroed::<WSC_SECURITY_PRODUCT_STATE>();
250 (::windows::core::Interface::vtable(self).base__.ProductState)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
251 }
252 pub unsafe fn SignatureStatus(&self) -> ::windows::core::Result<WSC_SECURITY_SIGNATURE_STATUS> {
253 let mut result__ = ::windows::core::zeroed::<WSC_SECURITY_SIGNATURE_STATUS>();
254 (::windows::core::Interface::vtable(self).base__.SignatureStatus)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
255 }
256 pub unsafe fn RemediationPath(&self) -> ::windows::core::Result<::windows::core::BSTR> {
257 let mut result__ = ::windows::core::zeroed::<::windows::core::BSTR>();
258 (::windows::core::Interface::vtable(self).base__.RemediationPath)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
259 }
260 pub unsafe fn ProductStateTimestamp(&self) -> ::windows::core::Result<::windows::core::BSTR> {
261 let mut result__ = ::windows::core::zeroed::<::windows::core::BSTR>();
262 (::windows::core::Interface::vtable(self).base__.ProductStateTimestamp)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
263 }
264 pub unsafe fn ProductGuid(&self) -> ::windows::core::Result<::windows::core::BSTR> {
265 let mut result__ = ::windows::core::zeroed::<::windows::core::BSTR>();
266 (::windows::core::Interface::vtable(self).base__.ProductGuid)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
267 }
268 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
269 #[cfg(feature = "Win32_Foundation")]
270 pub unsafe fn ProductIsDefault(&self) -> ::windows::core::Result<super::super::Foundation::BOOL> {
271 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::BOOL>();
272 (::windows::core::Interface::vtable(self).base__.ProductIsDefault)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
273 }
274 pub unsafe fn AntivirusScanSubstatus(&self) -> ::windows::core::Result<WSC_SECURITY_PRODUCT_SUBSTATUS> {
275 let mut result__ = ::windows::core::zeroed::<WSC_SECURITY_PRODUCT_SUBSTATUS>();
276 (::windows::core::Interface::vtable(self).AntivirusScanSubstatus)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
277 }
278 pub unsafe fn AntivirusSettingsSubstatus(&self) -> ::windows::core::Result<WSC_SECURITY_PRODUCT_SUBSTATUS> {
279 let mut result__ = ::windows::core::zeroed::<WSC_SECURITY_PRODUCT_SUBSTATUS>();
280 (::windows::core::Interface::vtable(self).AntivirusSettingsSubstatus)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
281 }
282 pub unsafe fn AntivirusProtectionUpdateSubstatus(&self) -> ::windows::core::Result<WSC_SECURITY_PRODUCT_SUBSTATUS> {
283 let mut result__ = ::windows::core::zeroed::<WSC_SECURITY_PRODUCT_SUBSTATUS>();
284 (::windows::core::Interface::vtable(self).AntivirusProtectionUpdateSubstatus)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
285 }
286 pub unsafe fn FirewallDomainProfileSubstatus(&self) -> ::windows::core::Result<WSC_SECURITY_PRODUCT_SUBSTATUS> {
287 let mut result__ = ::windows::core::zeroed::<WSC_SECURITY_PRODUCT_SUBSTATUS>();
288 (::windows::core::Interface::vtable(self).FirewallDomainProfileSubstatus)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
289 }
290 pub unsafe fn FirewallPrivateProfileSubstatus(&self) -> ::windows::core::Result<WSC_SECURITY_PRODUCT_SUBSTATUS> {
291 let mut result__ = ::windows::core::zeroed::<WSC_SECURITY_PRODUCT_SUBSTATUS>();
292 (::windows::core::Interface::vtable(self).FirewallPrivateProfileSubstatus)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
293 }
294 pub unsafe fn FirewallPublicProfileSubstatus(&self) -> ::windows::core::Result<WSC_SECURITY_PRODUCT_SUBSTATUS> {
295 let mut result__ = ::windows::core::zeroed::<WSC_SECURITY_PRODUCT_SUBSTATUS>();
296 (::windows::core::Interface::vtable(self).FirewallPublicProfileSubstatus)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
297 }
298}
299#[cfg(feature = "Win32_System_Com")]
300::windows::imp::interface_hierarchy!(IWscProduct2, ::windows::core::IUnknown, super::Com::IDispatch, IWscProduct);
301#[cfg(feature = "Win32_System_Com")]
302impl ::core::cmp::PartialEq for IWscProduct2 {
303 fn eq(&self, other: &Self) -> bool {
304 self.0 == other.0
305 }
306}
307#[cfg(feature = "Win32_System_Com")]
308impl ::core::cmp::Eq for IWscProduct2 {}
309#[cfg(feature = "Win32_System_Com")]
310impl ::core::fmt::Debug for IWscProduct2 {
311 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
312 f.debug_tuple("IWscProduct2").field(&self.0).finish()
313 }
314}
315#[cfg(feature = "Win32_System_Com")]
316unsafe impl ::windows::core::Interface for IWscProduct2 {
317 type Vtable = IWscProduct2_Vtbl;
318}
319#[cfg(feature = "Win32_System_Com")]
320impl ::core::clone::Clone for IWscProduct2 {
321 fn clone(&self) -> Self {
322 Self(self.0.clone())
323 }
324}
325#[cfg(feature = "Win32_System_Com")]
326unsafe impl ::windows::core::ComInterface for IWscProduct2 {
327 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf896ca54_fe09_4403_86d4_23cb488d81d8);
328}
329#[cfg(feature = "Win32_System_Com")]
330#[repr(C)]
331#[doc(hidden)]
332pub struct IWscProduct2_Vtbl {
333 pub base__: IWscProduct_Vtbl,
334 pub AntivirusScanSubstatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pestatus: *mut WSC_SECURITY_PRODUCT_SUBSTATUS) -> ::windows::core::HRESULT,
335 pub AntivirusSettingsSubstatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pestatus: *mut WSC_SECURITY_PRODUCT_SUBSTATUS) -> ::windows::core::HRESULT,
336 pub AntivirusProtectionUpdateSubstatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pestatus: *mut WSC_SECURITY_PRODUCT_SUBSTATUS) -> ::windows::core::HRESULT,
337 pub FirewallDomainProfileSubstatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pestatus: *mut WSC_SECURITY_PRODUCT_SUBSTATUS) -> ::windows::core::HRESULT,
338 pub FirewallPrivateProfileSubstatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pestatus: *mut WSC_SECURITY_PRODUCT_SUBSTATUS) -> ::windows::core::HRESULT,
339 pub FirewallPublicProfileSubstatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pestatus: *mut WSC_SECURITY_PRODUCT_SUBSTATUS) -> ::windows::core::HRESULT,
340}
341#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`, `\"Win32_System_Com\"`*"]
342#[cfg(feature = "Win32_System_Com")]
343#[repr(transparent)]
344pub struct IWscProduct3(::windows::core::IUnknown);
345#[cfg(feature = "Win32_System_Com")]
346impl IWscProduct3 {
347 pub unsafe fn ProductName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
348 let mut result__ = ::windows::core::zeroed::<::windows::core::BSTR>();
349 (::windows::core::Interface::vtable(self).base__.base__.ProductName)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
350 }
351 pub unsafe fn ProductState(&self) -> ::windows::core::Result<WSC_SECURITY_PRODUCT_STATE> {
352 let mut result__ = ::windows::core::zeroed::<WSC_SECURITY_PRODUCT_STATE>();
353 (::windows::core::Interface::vtable(self).base__.base__.ProductState)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
354 }
355 pub unsafe fn SignatureStatus(&self) -> ::windows::core::Result<WSC_SECURITY_SIGNATURE_STATUS> {
356 let mut result__ = ::windows::core::zeroed::<WSC_SECURITY_SIGNATURE_STATUS>();
357 (::windows::core::Interface::vtable(self).base__.base__.SignatureStatus)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
358 }
359 pub unsafe fn RemediationPath(&self) -> ::windows::core::Result<::windows::core::BSTR> {
360 let mut result__ = ::windows::core::zeroed::<::windows::core::BSTR>();
361 (::windows::core::Interface::vtable(self).base__.base__.RemediationPath)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
362 }
363 pub unsafe fn ProductStateTimestamp(&self) -> ::windows::core::Result<::windows::core::BSTR> {
364 let mut result__ = ::windows::core::zeroed::<::windows::core::BSTR>();
365 (::windows::core::Interface::vtable(self).base__.base__.ProductStateTimestamp)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
366 }
367 pub unsafe fn ProductGuid(&self) -> ::windows::core::Result<::windows::core::BSTR> {
368 let mut result__ = ::windows::core::zeroed::<::windows::core::BSTR>();
369 (::windows::core::Interface::vtable(self).base__.base__.ProductGuid)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
370 }
371 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
372 #[cfg(feature = "Win32_Foundation")]
373 pub unsafe fn ProductIsDefault(&self) -> ::windows::core::Result<super::super::Foundation::BOOL> {
374 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::BOOL>();
375 (::windows::core::Interface::vtable(self).base__.base__.ProductIsDefault)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
376 }
377 pub unsafe fn AntivirusScanSubstatus(&self) -> ::windows::core::Result<WSC_SECURITY_PRODUCT_SUBSTATUS> {
378 let mut result__ = ::windows::core::zeroed::<WSC_SECURITY_PRODUCT_SUBSTATUS>();
379 (::windows::core::Interface::vtable(self).base__.AntivirusScanSubstatus)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
380 }
381 pub unsafe fn AntivirusSettingsSubstatus(&self) -> ::windows::core::Result<WSC_SECURITY_PRODUCT_SUBSTATUS> {
382 let mut result__ = ::windows::core::zeroed::<WSC_SECURITY_PRODUCT_SUBSTATUS>();
383 (::windows::core::Interface::vtable(self).base__.AntivirusSettingsSubstatus)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
384 }
385 pub unsafe fn AntivirusProtectionUpdateSubstatus(&self) -> ::windows::core::Result<WSC_SECURITY_PRODUCT_SUBSTATUS> {
386 let mut result__ = ::windows::core::zeroed::<WSC_SECURITY_PRODUCT_SUBSTATUS>();
387 (::windows::core::Interface::vtable(self).base__.AntivirusProtectionUpdateSubstatus)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
388 }
389 pub unsafe fn FirewallDomainProfileSubstatus(&self) -> ::windows::core::Result<WSC_SECURITY_PRODUCT_SUBSTATUS> {
390 let mut result__ = ::windows::core::zeroed::<WSC_SECURITY_PRODUCT_SUBSTATUS>();
391 (::windows::core::Interface::vtable(self).base__.FirewallDomainProfileSubstatus)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
392 }
393 pub unsafe fn FirewallPrivateProfileSubstatus(&self) -> ::windows::core::Result<WSC_SECURITY_PRODUCT_SUBSTATUS> {
394 let mut result__ = ::windows::core::zeroed::<WSC_SECURITY_PRODUCT_SUBSTATUS>();
395 (::windows::core::Interface::vtable(self).base__.FirewallPrivateProfileSubstatus)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
396 }
397 pub unsafe fn FirewallPublicProfileSubstatus(&self) -> ::windows::core::Result<WSC_SECURITY_PRODUCT_SUBSTATUS> {
398 let mut result__ = ::windows::core::zeroed::<WSC_SECURITY_PRODUCT_SUBSTATUS>();
399 (::windows::core::Interface::vtable(self).base__.FirewallPublicProfileSubstatus)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
400 }
401 pub unsafe fn AntivirusDaysUntilExpired(&self) -> ::windows::core::Result<u32> {
402 let mut result__ = ::windows::core::zeroed::<u32>();
403 (::windows::core::Interface::vtable(self).AntivirusDaysUntilExpired)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
404 }
405}
406#[cfg(feature = "Win32_System_Com")]
407::windows::imp::interface_hierarchy!(IWscProduct3, ::windows::core::IUnknown, super::Com::IDispatch, IWscProduct, IWscProduct2);
408#[cfg(feature = "Win32_System_Com")]
409impl ::core::cmp::PartialEq for IWscProduct3 {
410 fn eq(&self, other: &Self) -> bool {
411 self.0 == other.0
412 }
413}
414#[cfg(feature = "Win32_System_Com")]
415impl ::core::cmp::Eq for IWscProduct3 {}
416#[cfg(feature = "Win32_System_Com")]
417impl ::core::fmt::Debug for IWscProduct3 {
418 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
419 f.debug_tuple("IWscProduct3").field(&self.0).finish()
420 }
421}
422#[cfg(feature = "Win32_System_Com")]
423unsafe impl ::windows::core::Interface for IWscProduct3 {
424 type Vtable = IWscProduct3_Vtbl;
425}
426#[cfg(feature = "Win32_System_Com")]
427impl ::core::clone::Clone for IWscProduct3 {
428 fn clone(&self) -> Self {
429 Self(self.0.clone())
430 }
431}
432#[cfg(feature = "Win32_System_Com")]
433unsafe impl ::windows::core::ComInterface for IWscProduct3 {
434 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x55536524_d1d1_4726_8c7c_04996a1904e7);
435}
436#[cfg(feature = "Win32_System_Com")]
437#[repr(C)]
438#[doc(hidden)]
439pub struct IWscProduct3_Vtbl {
440 pub base__: IWscProduct2_Vtbl,
441 pub AntivirusDaysUntilExpired: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdwdays: *mut u32) -> ::windows::core::HRESULT,
442}
443#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
444pub const WSCDefaultProduct: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x2981a36e_f22d_11e5_9ce9_5e5517507c66);
445#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
446pub const WSCProductList: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x17072f7b_9abe_4a74_a261_1eb76b55107a);
447#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
448#[repr(transparent)]
449#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
450pub struct SECURITY_PRODUCT_TYPE(pub i32);
451#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
452pub const SECURITY_PRODUCT_TYPE_ANTIVIRUS: SECURITY_PRODUCT_TYPE = SECURITY_PRODUCT_TYPE(0i32);
453#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
454pub const SECURITY_PRODUCT_TYPE_FIREWALL: SECURITY_PRODUCT_TYPE = SECURITY_PRODUCT_TYPE(1i32);
455#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
456pub const SECURITY_PRODUCT_TYPE_ANTISPYWARE: SECURITY_PRODUCT_TYPE = SECURITY_PRODUCT_TYPE(2i32);
457impl ::core::marker::Copy for SECURITY_PRODUCT_TYPE {}
458impl ::core::clone::Clone for SECURITY_PRODUCT_TYPE {
459 fn clone(&self) -> Self {
460 *self
461 }
462}
463impl ::core::default::Default for SECURITY_PRODUCT_TYPE {
464 fn default() -> Self {
465 Self(0)
466 }
467}
468impl ::windows::core::TypeKind for SECURITY_PRODUCT_TYPE {
469 type TypeKind = ::windows::core::CopyType;
470}
471impl ::core::fmt::Debug for SECURITY_PRODUCT_TYPE {
472 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
473 f.debug_tuple("SECURITY_PRODUCT_TYPE").field(&self.0).finish()
474 }
475}
476#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
477#[repr(transparent)]
478#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
479pub struct WSC_SECURITY_PRODUCT_STATE(pub i32);
480#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
481pub const WSC_SECURITY_PRODUCT_STATE_ON: WSC_SECURITY_PRODUCT_STATE = WSC_SECURITY_PRODUCT_STATE(0i32);
482#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
483pub const WSC_SECURITY_PRODUCT_STATE_OFF: WSC_SECURITY_PRODUCT_STATE = WSC_SECURITY_PRODUCT_STATE(1i32);
484#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
485pub const WSC_SECURITY_PRODUCT_STATE_SNOOZED: WSC_SECURITY_PRODUCT_STATE = WSC_SECURITY_PRODUCT_STATE(2i32);
486#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
487pub const WSC_SECURITY_PRODUCT_STATE_EXPIRED: WSC_SECURITY_PRODUCT_STATE = WSC_SECURITY_PRODUCT_STATE(3i32);
488impl ::core::marker::Copy for WSC_SECURITY_PRODUCT_STATE {}
489impl ::core::clone::Clone for WSC_SECURITY_PRODUCT_STATE {
490 fn clone(&self) -> Self {
491 *self
492 }
493}
494impl ::core::default::Default for WSC_SECURITY_PRODUCT_STATE {
495 fn default() -> Self {
496 Self(0)
497 }
498}
499impl ::windows::core::TypeKind for WSC_SECURITY_PRODUCT_STATE {
500 type TypeKind = ::windows::core::CopyType;
501}
502impl ::core::fmt::Debug for WSC_SECURITY_PRODUCT_STATE {
503 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
504 f.debug_tuple("WSC_SECURITY_PRODUCT_STATE").field(&self.0).finish()
505 }
506}
507#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
508#[repr(transparent)]
509#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
510pub struct WSC_SECURITY_PRODUCT_SUBSTATUS(pub i32);
511#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
512pub const WSC_SECURITY_PRODUCT_SUBSTATUS_NOT_SET: WSC_SECURITY_PRODUCT_SUBSTATUS = WSC_SECURITY_PRODUCT_SUBSTATUS(0i32);
513#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
514pub const WSC_SECURITY_PRODUCT_SUBSTATUS_NO_ACTION: WSC_SECURITY_PRODUCT_SUBSTATUS = WSC_SECURITY_PRODUCT_SUBSTATUS(1i32);
515#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
516pub const WSC_SECURITY_PRODUCT_SUBSTATUS_ACTION_RECOMMENDED: WSC_SECURITY_PRODUCT_SUBSTATUS = WSC_SECURITY_PRODUCT_SUBSTATUS(2i32);
517#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
518pub const WSC_SECURITY_PRODUCT_SUBSTATUS_ACTION_NEEDED: WSC_SECURITY_PRODUCT_SUBSTATUS = WSC_SECURITY_PRODUCT_SUBSTATUS(3i32);
519impl ::core::marker::Copy for WSC_SECURITY_PRODUCT_SUBSTATUS {}
520impl ::core::clone::Clone for WSC_SECURITY_PRODUCT_SUBSTATUS {
521 fn clone(&self) -> Self {
522 *self
523 }
524}
525impl ::core::default::Default for WSC_SECURITY_PRODUCT_SUBSTATUS {
526 fn default() -> Self {
527 Self(0)
528 }
529}
530impl ::windows::core::TypeKind for WSC_SECURITY_PRODUCT_SUBSTATUS {
531 type TypeKind = ::windows::core::CopyType;
532}
533impl ::core::fmt::Debug for WSC_SECURITY_PRODUCT_SUBSTATUS {
534 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
535 f.debug_tuple("WSC_SECURITY_PRODUCT_SUBSTATUS").field(&self.0).finish()
536 }
537}
538#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
539#[repr(transparent)]
540#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
541pub struct WSC_SECURITY_PROVIDER(pub i32);
542#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
543pub const WSC_SECURITY_PROVIDER_FIREWALL: WSC_SECURITY_PROVIDER = WSC_SECURITY_PROVIDER(1i32);
544#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
545pub const WSC_SECURITY_PROVIDER_AUTOUPDATE_SETTINGS: WSC_SECURITY_PROVIDER = WSC_SECURITY_PROVIDER(2i32);
546#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
547pub const WSC_SECURITY_PROVIDER_ANTIVIRUS: WSC_SECURITY_PROVIDER = WSC_SECURITY_PROVIDER(4i32);
548#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
549pub const WSC_SECURITY_PROVIDER_ANTISPYWARE: WSC_SECURITY_PROVIDER = WSC_SECURITY_PROVIDER(8i32);
550#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
551pub const WSC_SECURITY_PROVIDER_INTERNET_SETTINGS: WSC_SECURITY_PROVIDER = WSC_SECURITY_PROVIDER(16i32);
552#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
553pub const WSC_SECURITY_PROVIDER_USER_ACCOUNT_CONTROL: WSC_SECURITY_PROVIDER = WSC_SECURITY_PROVIDER(32i32);
554#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
555pub const WSC_SECURITY_PROVIDER_SERVICE: WSC_SECURITY_PROVIDER = WSC_SECURITY_PROVIDER(64i32);
556#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
557pub const WSC_SECURITY_PROVIDER_NONE: WSC_SECURITY_PROVIDER = WSC_SECURITY_PROVIDER(0i32);
558#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
559pub const WSC_SECURITY_PROVIDER_ALL: WSC_SECURITY_PROVIDER = WSC_SECURITY_PROVIDER(127i32);
560impl ::core::marker::Copy for WSC_SECURITY_PROVIDER {}
561impl ::core::clone::Clone for WSC_SECURITY_PROVIDER {
562 fn clone(&self) -> Self {
563 *self
564 }
565}
566impl ::core::default::Default for WSC_SECURITY_PROVIDER {
567 fn default() -> Self {
568 Self(0)
569 }
570}
571impl ::windows::core::TypeKind for WSC_SECURITY_PROVIDER {
572 type TypeKind = ::windows::core::CopyType;
573}
574impl ::core::fmt::Debug for WSC_SECURITY_PROVIDER {
575 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
576 f.debug_tuple("WSC_SECURITY_PROVIDER").field(&self.0).finish()
577 }
578}
579#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
580#[repr(transparent)]
581#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
582pub struct WSC_SECURITY_PROVIDER_HEALTH(pub i32);
583#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
584pub const WSC_SECURITY_PROVIDER_HEALTH_GOOD: WSC_SECURITY_PROVIDER_HEALTH = WSC_SECURITY_PROVIDER_HEALTH(0i32);
585#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
586pub const WSC_SECURITY_PROVIDER_HEALTH_NOTMONITORED: WSC_SECURITY_PROVIDER_HEALTH = WSC_SECURITY_PROVIDER_HEALTH(1i32);
587#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
588pub const WSC_SECURITY_PROVIDER_HEALTH_POOR: WSC_SECURITY_PROVIDER_HEALTH = WSC_SECURITY_PROVIDER_HEALTH(2i32);
589#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
590pub const WSC_SECURITY_PROVIDER_HEALTH_SNOOZE: WSC_SECURITY_PROVIDER_HEALTH = WSC_SECURITY_PROVIDER_HEALTH(3i32);
591impl ::core::marker::Copy for WSC_SECURITY_PROVIDER_HEALTH {}
592impl ::core::clone::Clone for WSC_SECURITY_PROVIDER_HEALTH {
593 fn clone(&self) -> Self {
594 *self
595 }
596}
597impl ::core::default::Default for WSC_SECURITY_PROVIDER_HEALTH {
598 fn default() -> Self {
599 Self(0)
600 }
601}
602impl ::windows::core::TypeKind for WSC_SECURITY_PROVIDER_HEALTH {
603 type TypeKind = ::windows::core::CopyType;
604}
605impl ::core::fmt::Debug for WSC_SECURITY_PROVIDER_HEALTH {
606 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
607 f.debug_tuple("WSC_SECURITY_PROVIDER_HEALTH").field(&self.0).finish()
608 }
609}
610#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
611#[repr(transparent)]
612#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
613pub struct WSC_SECURITY_SIGNATURE_STATUS(pub i32);
614#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
615pub const WSC_SECURITY_PRODUCT_OUT_OF_DATE: WSC_SECURITY_SIGNATURE_STATUS = WSC_SECURITY_SIGNATURE_STATUS(0i32);
616#[doc = "*Required features: `\"Win32_System_SecurityCenter\"`*"]
617pub const WSC_SECURITY_PRODUCT_UP_TO_DATE: WSC_SECURITY_SIGNATURE_STATUS = WSC_SECURITY_SIGNATURE_STATUS(1i32);
618impl ::core::marker::Copy for WSC_SECURITY_SIGNATURE_STATUS {}
619impl ::core::clone::Clone for WSC_SECURITY_SIGNATURE_STATUS {
620 fn clone(&self) -> Self {
621 *self
622 }
623}
624impl ::core::default::Default for WSC_SECURITY_SIGNATURE_STATUS {
625 fn default() -> Self {
626 Self(0)
627 }
628}
629impl ::windows::core::TypeKind for WSC_SECURITY_SIGNATURE_STATUS {
630 type TypeKind = ::windows::core::CopyType;
631}
632impl ::core::fmt::Debug for WSC_SECURITY_SIGNATURE_STATUS {
633 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
634 f.debug_tuple("WSC_SECURITY_SIGNATURE_STATUS").field(&self.0).finish()
635 }
636}
637#[cfg(feature = "implement")]
638::core::include!("impl.rs");