1 #[doc = "*Required features: `\"Win32_System_SecurityCenter\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
2 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
3 pub trait IWSCDefaultProduct_Impl
: Sized
+ super::Com
::IDispatch_Impl
{
4 fn SetDefaultProduct(&self, etype
: SECURITY_PRODUCT_TYPE
, pguid
: &::windows
::core
::BSTR
) -> ::windows
::core
::Result
<()>;
6 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
7 impl ::windows
::core
::RuntimeName
for IWSCDefaultProduct {}
8 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
9 impl IWSCDefaultProduct_Vtbl
{
10 pub const fn new
<Identity
: ::windows
::core
::IUnknownImpl
<Impl
= Impl
>, Impl
: IWSCDefaultProduct_Impl
, const OFFSET
: isize>() -> IWSCDefaultProduct_Vtbl
{
11 unsafe extern "system" fn SetDefaultProduct
<Identity
: ::windows
::core
::IUnknownImpl
<Impl
= Impl
>, Impl
: IWSCDefaultProduct_Impl
, const OFFSET
: isize>(this
: *mut ::core
::ffi
::c_void
, etype
: SECURITY_PRODUCT_TYPE
, pguid
: ::std
::mem
::MaybeUninit
<::windows
::core
::BSTR
>) -> ::windows
::core
::HRESULT
{
12 let this
= (this
as *const *const ()).offset(OFFSET
) as *const Identity
;
13 let this
= (*this
).get_impl();
14 this
.SetDefaultProduct(::core
::mem
::transmute_copy(&etype
), ::core
::mem
::transmute(&pguid
)).into()
16 Self { base__: super::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(), SetDefaultProduct: SetDefaultProduct::<Identity, Impl, OFFSET> }
18 pub fn matches(iid
: &windows
::core
::GUID
) -> bool
{
19 iid
== &<IWSCDefaultProduct
as ::windows
::core
::ComInterface
>::IID
|| iid
== &<super::Com
::IDispatch
as ::windows
::core
::ComInterface
>::IID
22 #[doc = "*Required features: `\"Win32_System_SecurityCenter\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
23 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
24 pub trait IWSCProductList_Impl
: Sized
+ super::Com
::IDispatch_Impl
{
25 fn Initialize(&self, provider
: WSC_SECURITY_PROVIDER
) -> ::windows
::core
::Result
<()>;
26 fn Count(&self) -> ::windows
::core
::Result
<i32>;
27 fn get_Item(&self, index
: u32) -> ::windows
::core
::Result
<IWscProduct
>;
29 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
30 impl ::windows
::core
::RuntimeName
for IWSCProductList {}
31 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
32 impl IWSCProductList_Vtbl
{
33 pub const fn new
<Identity
: ::windows
::core
::IUnknownImpl
<Impl
= Impl
>, Impl
: IWSCProductList_Impl
, const OFFSET
: isize>() -> IWSCProductList_Vtbl
{
34 unsafe extern "system" fn Initialize
<Identity
: ::windows
::core
::IUnknownImpl
<Impl
= Impl
>, Impl
: IWSCProductList_Impl
, const OFFSET
: isize>(this
: *mut ::core
::ffi
::c_void
, provider
: WSC_SECURITY_PROVIDER
) -> ::windows
::core
::HRESULT
{
35 let this
= (this
as *const *const ()).offset(OFFSET
) as *const Identity
;
36 let this
= (*this
).get_impl();
37 this
.Initialize(::core
::mem
::transmute_copy(&provider
)).into()
39 unsafe extern "system" fn Count
<Identity
: ::windows
::core
::IUnknownImpl
<Impl
= Impl
>, Impl
: IWSCProductList_Impl
, const OFFSET
: isize>(this
: *mut ::core
::ffi
::c_void
, pval
: *mut i32) -> ::windows
::core
::HRESULT
{
40 let this
= (this
as *const *const ()).offset(OFFSET
) as *const Identity
;
41 let this
= (*this
).get_impl();
43 ::core
::result
::Result
::Ok(ok__
) => {
44 ::core
::ptr
::write(pval
, ::core
::mem
::transmute(ok__
));
45 ::windows
::core
::HRESULT(0)
47 ::core
::result
::Result
::Err(err
) => err
.into(),
50 unsafe extern "system" fn get_Item
<Identity
: ::windows
::core
::IUnknownImpl
<Impl
= Impl
>, Impl
: IWSCProductList_Impl
, const OFFSET
: isize>(this
: *mut ::core
::ffi
::c_void
, index
: u32, pval
: *mut *mut ::core
::ffi
::c_void
) -> ::windows
::core
::HRESULT
{
51 let this
= (this
as *const *const ()).offset(OFFSET
) as *const Identity
;
52 let this
= (*this
).get_impl();
53 match this
.get_Item(::core
::mem
::transmute_copy(&index
)) {
54 ::core
::result
::Result
::Ok(ok__
) => {
55 ::core
::ptr
::write(pval
, ::core
::mem
::transmute(ok__
));
56 ::windows
::core
::HRESULT(0)
58 ::core
::result
::Result
::Err(err
) => err
.into(),
62 base__
: super::Com
::IDispatch_Vtbl
::new
::<Identity
, Impl
, OFFSET
>(),
63 Initialize
: Initialize
::<Identity
, Impl
, OFFSET
>,
64 Count
: Count
::<Identity
, Impl
, OFFSET
>,
65 get_Item
: get_Item
::<Identity
, Impl
, OFFSET
>,
68 pub fn matches(iid
: &windows
::core
::GUID
) -> bool
{
69 iid
== &<IWSCProductList
as ::windows
::core
::ComInterface
>::IID
|| iid
== &<super::Com
::IDispatch
as ::windows
::core
::ComInterface
>::IID
72 #[doc = "*Required features: `\"Win32_System_SecurityCenter\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
73 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
74 pub trait IWscProduct_Impl
: Sized
+ super::Com
::IDispatch_Impl
{
75 fn ProductName(&self) -> ::windows
::core
::Result
<::windows
::core
::BSTR
>;
76 fn ProductState(&self) -> ::windows
::core
::Result
<WSC_SECURITY_PRODUCT_STATE
>;
77 fn SignatureStatus(&self) -> ::windows
::core
::Result
<WSC_SECURITY_SIGNATURE_STATUS
>;
78 fn RemediationPath(&self) -> ::windows
::core
::Result
<::windows
::core
::BSTR
>;
79 fn ProductStateTimestamp(&self) -> ::windows
::core
::Result
<::windows
::core
::BSTR
>;
80 fn ProductGuid(&self) -> ::windows
::core
::Result
<::windows
::core
::BSTR
>;
81 fn ProductIsDefault(&self) -> ::windows
::core
::Result
<super::super::Foundation
::BOOL
>;
83 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
84 impl ::windows
::core
::RuntimeName
for IWscProduct {}
85 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
86 impl IWscProduct_Vtbl
{
87 pub const fn new
<Identity
: ::windows
::core
::IUnknownImpl
<Impl
= Impl
>, Impl
: IWscProduct_Impl
, const OFFSET
: isize>() -> IWscProduct_Vtbl
{
88 unsafe extern "system" fn ProductName
<Identity
: ::windows
::core
::IUnknownImpl
<Impl
= Impl
>, Impl
: IWscProduct_Impl
, const OFFSET
: isize>(this
: *mut ::core
::ffi
::c_void
, pval
: *mut ::std
::mem
::MaybeUninit
<::windows
::core
::BSTR
>) -> ::windows
::core
::HRESULT
{
89 let this
= (this
as *const *const ()).offset(OFFSET
) as *const Identity
;
90 let this
= (*this
).get_impl();
91 match this
.ProductName() {
92 ::core
::result
::Result
::Ok(ok__
) => {
93 ::core
::ptr
::write(pval
, ::core
::mem
::transmute(ok__
));
94 ::windows
::core
::HRESULT(0)
96 ::core
::result
::Result
::Err(err
) => err
.into(),
99 unsafe extern "system" fn ProductState
<Identity
: ::windows
::core
::IUnknownImpl
<Impl
= Impl
>, Impl
: IWscProduct_Impl
, const OFFSET
: isize>(this
: *mut ::core
::ffi
::c_void
, pval
: *mut WSC_SECURITY_PRODUCT_STATE
) -> ::windows
::core
::HRESULT
{
100 let this
= (this
as *const *const ()).offset(OFFSET
) as *const Identity
;
101 let this
= (*this
).get_impl();
102 match this
.ProductState() {
103 ::core
::result
::Result
::Ok(ok__
) => {
104 ::core
::ptr
::write(pval
, ::core
::mem
::transmute(ok__
));
105 ::windows
::core
::HRESULT(0)
107 ::core
::result
::Result
::Err(err
) => err
.into(),
110 unsafe extern "system" fn SignatureStatus
<Identity
: ::windows
::core
::IUnknownImpl
<Impl
= Impl
>, Impl
: IWscProduct_Impl
, const OFFSET
: isize>(this
: *mut ::core
::ffi
::c_void
, pval
: *mut WSC_SECURITY_SIGNATURE_STATUS
) -> ::windows
::core
::HRESULT
{
111 let this
= (this
as *const *const ()).offset(OFFSET
) as *const Identity
;
112 let this
= (*this
).get_impl();
113 match this
.SignatureStatus() {
114 ::core
::result
::Result
::Ok(ok__
) => {
115 ::core
::ptr
::write(pval
, ::core
::mem
::transmute(ok__
));
116 ::windows
::core
::HRESULT(0)
118 ::core
::result
::Result
::Err(err
) => err
.into(),
121 unsafe extern "system" fn RemediationPath
<Identity
: ::windows
::core
::IUnknownImpl
<Impl
= Impl
>, Impl
: IWscProduct_Impl
, const OFFSET
: isize>(this
: *mut ::core
::ffi
::c_void
, pval
: *mut ::std
::mem
::MaybeUninit
<::windows
::core
::BSTR
>) -> ::windows
::core
::HRESULT
{
122 let this
= (this
as *const *const ()).offset(OFFSET
) as *const Identity
;
123 let this
= (*this
).get_impl();
124 match this
.RemediationPath() {
125 ::core
::result
::Result
::Ok(ok__
) => {
126 ::core
::ptr
::write(pval
, ::core
::mem
::transmute(ok__
));
127 ::windows
::core
::HRESULT(0)
129 ::core
::result
::Result
::Err(err
) => err
.into(),
132 unsafe extern "system" fn ProductStateTimestamp
<Identity
: ::windows
::core
::IUnknownImpl
<Impl
= Impl
>, Impl
: IWscProduct_Impl
, const OFFSET
: isize>(this
: *mut ::core
::ffi
::c_void
, pval
: *mut ::std
::mem
::MaybeUninit
<::windows
::core
::BSTR
>) -> ::windows
::core
::HRESULT
{
133 let this
= (this
as *const *const ()).offset(OFFSET
) as *const Identity
;
134 let this
= (*this
).get_impl();
135 match this
.ProductStateTimestamp() {
136 ::core
::result
::Result
::Ok(ok__
) => {
137 ::core
::ptr
::write(pval
, ::core
::mem
::transmute(ok__
));
138 ::windows
::core
::HRESULT(0)
140 ::core
::result
::Result
::Err(err
) => err
.into(),
143 unsafe extern "system" fn ProductGuid
<Identity
: ::windows
::core
::IUnknownImpl
<Impl
= Impl
>, Impl
: IWscProduct_Impl
, const OFFSET
: isize>(this
: *mut ::core
::ffi
::c_void
, pval
: *mut ::std
::mem
::MaybeUninit
<::windows
::core
::BSTR
>) -> ::windows
::core
::HRESULT
{
144 let this
= (this
as *const *const ()).offset(OFFSET
) as *const Identity
;
145 let this
= (*this
).get_impl();
146 match this
.ProductGuid() {
147 ::core
::result
::Result
::Ok(ok__
) => {
148 ::core
::ptr
::write(pval
, ::core
::mem
::transmute(ok__
));
149 ::windows
::core
::HRESULT(0)
151 ::core
::result
::Result
::Err(err
) => err
.into(),
154 unsafe extern "system" fn ProductIsDefault
<Identity
: ::windows
::core
::IUnknownImpl
<Impl
= Impl
>, Impl
: IWscProduct_Impl
, const OFFSET
: isize>(this
: *mut ::core
::ffi
::c_void
, pval
: *mut super::super::Foundation
::BOOL
) -> ::windows
::core
::HRESULT
{
155 let this
= (this
as *const *const ()).offset(OFFSET
) as *const Identity
;
156 let this
= (*this
).get_impl();
157 match this
.ProductIsDefault() {
158 ::core
::result
::Result
::Ok(ok__
) => {
159 ::core
::ptr
::write(pval
, ::core
::mem
::transmute(ok__
));
160 ::windows
::core
::HRESULT(0)
162 ::core
::result
::Result
::Err(err
) => err
.into(),
166 base__
: super::Com
::IDispatch_Vtbl
::new
::<Identity
, Impl
, OFFSET
>(),
167 ProductName
: ProductName
::<Identity
, Impl
, OFFSET
>,
168 ProductState
: ProductState
::<Identity
, Impl
, OFFSET
>,
169 SignatureStatus
: SignatureStatus
::<Identity
, Impl
, OFFSET
>,
170 RemediationPath
: RemediationPath
::<Identity
, Impl
, OFFSET
>,
171 ProductStateTimestamp
: ProductStateTimestamp
::<Identity
, Impl
, OFFSET
>,
172 ProductGuid
: ProductGuid
::<Identity
, Impl
, OFFSET
>,
173 ProductIsDefault
: ProductIsDefault
::<Identity
, Impl
, OFFSET
>,
176 pub fn matches(iid
: &windows
::core
::GUID
) -> bool
{
177 iid
== &<IWscProduct
as ::windows
::core
::ComInterface
>::IID
|| iid
== &<super::Com
::IDispatch
as ::windows
::core
::ComInterface
>::IID
180 #[doc = "*Required features: `\"Win32_System_SecurityCenter\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
181 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
182 pub trait IWscProduct2_Impl
: Sized
+ IWscProduct_Impl
{
183 fn AntivirusScanSubstatus(&self) -> ::windows
::core
::Result
<WSC_SECURITY_PRODUCT_SUBSTATUS
>;
184 fn AntivirusSettingsSubstatus(&self) -> ::windows
::core
::Result
<WSC_SECURITY_PRODUCT_SUBSTATUS
>;
185 fn AntivirusProtectionUpdateSubstatus(&self) -> ::windows
::core
::Result
<WSC_SECURITY_PRODUCT_SUBSTATUS
>;
186 fn FirewallDomainProfileSubstatus(&self) -> ::windows
::core
::Result
<WSC_SECURITY_PRODUCT_SUBSTATUS
>;
187 fn FirewallPrivateProfileSubstatus(&self) -> ::windows
::core
::Result
<WSC_SECURITY_PRODUCT_SUBSTATUS
>;
188 fn FirewallPublicProfileSubstatus(&self) -> ::windows
::core
::Result
<WSC_SECURITY_PRODUCT_SUBSTATUS
>;
190 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
191 impl ::windows
::core
::RuntimeName
for IWscProduct2 {}
192 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
193 impl IWscProduct2_Vtbl
{
194 pub const fn new
<Identity
: ::windows
::core
::IUnknownImpl
<Impl
= Impl
>, Impl
: IWscProduct2_Impl
, const OFFSET
: isize>() -> IWscProduct2_Vtbl
{
195 unsafe extern "system" fn AntivirusScanSubstatus
<Identity
: ::windows
::core
::IUnknownImpl
<Impl
= Impl
>, Impl
: IWscProduct2_Impl
, const OFFSET
: isize>(this
: *mut ::core
::ffi
::c_void
, pestatus
: *mut WSC_SECURITY_PRODUCT_SUBSTATUS
) -> ::windows
::core
::HRESULT
{
196 let this
= (this
as *const *const ()).offset(OFFSET
) as *const Identity
;
197 let this
= (*this
).get_impl();
198 match this
.AntivirusScanSubstatus() {
199 ::core
::result
::Result
::Ok(ok__
) => {
200 ::core
::ptr
::write(pestatus
, ::core
::mem
::transmute(ok__
));
201 ::windows
::core
::HRESULT(0)
203 ::core
::result
::Result
::Err(err
) => err
.into(),
206 unsafe extern "system" fn AntivirusSettingsSubstatus
<Identity
: ::windows
::core
::IUnknownImpl
<Impl
= Impl
>, Impl
: IWscProduct2_Impl
, const OFFSET
: isize>(this
: *mut ::core
::ffi
::c_void
, pestatus
: *mut WSC_SECURITY_PRODUCT_SUBSTATUS
) -> ::windows
::core
::HRESULT
{
207 let this
= (this
as *const *const ()).offset(OFFSET
) as *const Identity
;
208 let this
= (*this
).get_impl();
209 match this
.AntivirusSettingsSubstatus() {
210 ::core
::result
::Result
::Ok(ok__
) => {
211 ::core
::ptr
::write(pestatus
, ::core
::mem
::transmute(ok__
));
212 ::windows
::core
::HRESULT(0)
214 ::core
::result
::Result
::Err(err
) => err
.into(),
217 unsafe extern "system" fn AntivirusProtectionUpdateSubstatus
<Identity
: ::windows
::core
::IUnknownImpl
<Impl
= Impl
>, Impl
: IWscProduct2_Impl
, const OFFSET
: isize>(this
: *mut ::core
::ffi
::c_void
, pestatus
: *mut WSC_SECURITY_PRODUCT_SUBSTATUS
) -> ::windows
::core
::HRESULT
{
218 let this
= (this
as *const *const ()).offset(OFFSET
) as *const Identity
;
219 let this
= (*this
).get_impl();
220 match this
.AntivirusProtectionUpdateSubstatus() {
221 ::core
::result
::Result
::Ok(ok__
) => {
222 ::core
::ptr
::write(pestatus
, ::core
::mem
::transmute(ok__
));
223 ::windows
::core
::HRESULT(0)
225 ::core
::result
::Result
::Err(err
) => err
.into(),
228 unsafe extern "system" fn FirewallDomainProfileSubstatus
<Identity
: ::windows
::core
::IUnknownImpl
<Impl
= Impl
>, Impl
: IWscProduct2_Impl
, const OFFSET
: isize>(this
: *mut ::core
::ffi
::c_void
, pestatus
: *mut WSC_SECURITY_PRODUCT_SUBSTATUS
) -> ::windows
::core
::HRESULT
{
229 let this
= (this
as *const *const ()).offset(OFFSET
) as *const Identity
;
230 let this
= (*this
).get_impl();
231 match this
.FirewallDomainProfileSubstatus() {
232 ::core
::result
::Result
::Ok(ok__
) => {
233 ::core
::ptr
::write(pestatus
, ::core
::mem
::transmute(ok__
));
234 ::windows
::core
::HRESULT(0)
236 ::core
::result
::Result
::Err(err
) => err
.into(),
239 unsafe extern "system" fn FirewallPrivateProfileSubstatus
<Identity
: ::windows
::core
::IUnknownImpl
<Impl
= Impl
>, Impl
: IWscProduct2_Impl
, const OFFSET
: isize>(this
: *mut ::core
::ffi
::c_void
, pestatus
: *mut WSC_SECURITY_PRODUCT_SUBSTATUS
) -> ::windows
::core
::HRESULT
{
240 let this
= (this
as *const *const ()).offset(OFFSET
) as *const Identity
;
241 let this
= (*this
).get_impl();
242 match this
.FirewallPrivateProfileSubstatus() {
243 ::core
::result
::Result
::Ok(ok__
) => {
244 ::core
::ptr
::write(pestatus
, ::core
::mem
::transmute(ok__
));
245 ::windows
::core
::HRESULT(0)
247 ::core
::result
::Result
::Err(err
) => err
.into(),
250 unsafe extern "system" fn FirewallPublicProfileSubstatus
<Identity
: ::windows
::core
::IUnknownImpl
<Impl
= Impl
>, Impl
: IWscProduct2_Impl
, const OFFSET
: isize>(this
: *mut ::core
::ffi
::c_void
, pestatus
: *mut WSC_SECURITY_PRODUCT_SUBSTATUS
) -> ::windows
::core
::HRESULT
{
251 let this
= (this
as *const *const ()).offset(OFFSET
) as *const Identity
;
252 let this
= (*this
).get_impl();
253 match this
.FirewallPublicProfileSubstatus() {
254 ::core
::result
::Result
::Ok(ok__
) => {
255 ::core
::ptr
::write(pestatus
, ::core
::mem
::transmute(ok__
));
256 ::windows
::core
::HRESULT(0)
258 ::core
::result
::Result
::Err(err
) => err
.into(),
262 base__
: IWscProduct_Vtbl
::new
::<Identity
, Impl
, OFFSET
>(),
263 AntivirusScanSubstatus
: AntivirusScanSubstatus
::<Identity
, Impl
, OFFSET
>,
264 AntivirusSettingsSubstatus
: AntivirusSettingsSubstatus
::<Identity
, Impl
, OFFSET
>,
265 AntivirusProtectionUpdateSubstatus
: AntivirusProtectionUpdateSubstatus
::<Identity
, Impl
, OFFSET
>,
266 FirewallDomainProfileSubstatus
: FirewallDomainProfileSubstatus
::<Identity
, Impl
, OFFSET
>,
267 FirewallPrivateProfileSubstatus
: FirewallPrivateProfileSubstatus
::<Identity
, Impl
, OFFSET
>,
268 FirewallPublicProfileSubstatus
: FirewallPublicProfileSubstatus
::<Identity
, Impl
, OFFSET
>,
271 pub fn matches(iid
: &windows
::core
::GUID
) -> bool
{
272 iid
== &<IWscProduct2
as ::windows
::core
::ComInterface
>::IID
|| iid
== &<super::Com
::IDispatch
as ::windows
::core
::ComInterface
>::IID
|| iid
== &<IWscProduct
as ::windows
::core
::ComInterface
>::IID
275 #[doc = "*Required features: `\"Win32_System_SecurityCenter\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
276 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
277 pub trait IWscProduct3_Impl
: Sized
+ IWscProduct2_Impl
{
278 fn AntivirusDaysUntilExpired(&self) -> ::windows
::core
::Result
<u32>;
280 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
281 impl ::windows
::core
::RuntimeName
for IWscProduct3 {}
282 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
283 impl IWscProduct3_Vtbl
{
284 pub const fn new
<Identity
: ::windows
::core
::IUnknownImpl
<Impl
= Impl
>, Impl
: IWscProduct3_Impl
, const OFFSET
: isize>() -> IWscProduct3_Vtbl
{
285 unsafe extern "system" fn AntivirusDaysUntilExpired
<Identity
: ::windows
::core
::IUnknownImpl
<Impl
= Impl
>, Impl
: IWscProduct3_Impl
, const OFFSET
: isize>(this
: *mut ::core
::ffi
::c_void
, pdwdays
: *mut u32) -> ::windows
::core
::HRESULT
{
286 let this
= (this
as *const *const ()).offset(OFFSET
) as *const Identity
;
287 let this
= (*this
).get_impl();
288 match this
.AntivirusDaysUntilExpired() {
289 ::core
::result
::Result
::Ok(ok__
) => {
290 ::core
::ptr
::write(pdwdays
, ::core
::mem
::transmute(ok__
));
291 ::windows
::core
::HRESULT(0)
293 ::core
::result
::Result
::Err(err
) => err
.into(),
296 Self { base__: IWscProduct2_Vtbl::new::<Identity, Impl, OFFSET>(), AntivirusDaysUntilExpired: AntivirusDaysUntilExpired::<Identity, Impl, OFFSET> }
298 pub fn matches(iid
: &windows
::core
::GUID
) -> bool
{
299 iid
== &<IWscProduct3
as ::windows
::core
::ComInterface
>::IID
|| iid
== &<super::Com
::IDispatch
as ::windows
::core
::ComInterface
>::IID
|| iid
== &<IWscProduct
as ::windows
::core
::ComInterface
>::IID
|| iid
== &<IWscProduct2
as ::windows
::core
::ComInterface
>::IID