1 #![allow(unused_variables, non_upper_case_globals, non_snake_case, unused_unsafe, non_camel_case_types, dead_code, clippy::all)]
2 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3 #[repr(transparent)]
4 pub struct ICS_TARGETTYPE(pub i32);
5 pub const ICSTT_NAME: ICS_TARGETTYPE = ICS_TARGETTYPE(0i32);
6 pub const ICSTT_IPADDRESS: ICS_TARGETTYPE = ICS_TARGETTYPE(1i32);
7 impl ::std::convert::From<i32> for ICS_TARGETTYPE {
8     fn from(value: i32) -> Self {
9         Self(value)
10     }
11 }
12 unsafe impl ::windows::runtime::Abi for ICS_TARGETTYPE {
13     type Abi = Self;
14     type DefaultType = Self;
15 }
16 #[repr(transparent)]
17 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
18 pub struct IDynamicPortMapping(::windows::runtime::IUnknown);
19 impl IDynamicPortMapping {
20     #[cfg(feature = "Win32_Foundation")]
21     pub unsafe fn ExternalIPAddress(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
22         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
23         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
24     }
25     #[cfg(feature = "Win32_Foundation")]
26     pub unsafe fn RemoteHost(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
27         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
28         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
29     }
30     pub unsafe fn ExternalPort(&self) -> ::windows::runtime::Result<i32> {
31         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
32         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
33     }
apply(&self, length: u16) -> u1634     #[cfg(feature = "Win32_Foundation")]
35     pub unsafe fn Protocol(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
36         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
37         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
38     }
39     pub unsafe fn InternalPort(&self) -> ::windows::runtime::Result<i32> {
40         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
41         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
42     }
43     #[cfg(feature = "Win32_Foundation")]
44     pub unsafe fn InternalClient(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
45         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
46         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
47     }
48     pub unsafe fn Enabled(&self) -> ::windows::runtime::Result<i16> {
49         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
50         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i16>(result__)
51     }
52     #[cfg(feature = "Win32_Foundation")]
53     pub unsafe fn Description(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
54         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
55         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
56     }
57     pub unsafe fn LeaseDuration(&self) -> ::windows::runtime::Result<i32> {
58         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
59         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
60     }
61     pub unsafe fn RenewLease(&self, lleasedurationdesired: i32) -> ::windows::runtime::Result<i32> {
62         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
63         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), ::std::mem::transmute(lleasedurationdesired), &mut result__).from_abi::<i32>(result__)
64     }
65     #[cfg(feature = "Win32_Foundation")]
66     pub unsafe fn EditInternalClient<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, bstrinternalclient: Param0) -> ::windows::runtime::Result<()> {
67         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), bstrinternalclient.into_param().abi()).ok()
68     }
69     pub unsafe fn Enable(&self, vb: i16) -> ::windows::runtime::Result<()> {
70         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), ::std::mem::transmute(vb)).ok()
71     }
72     #[cfg(feature = "Win32_Foundation")]
73     pub unsafe fn EditDescription<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, bstrdescription: Param0) -> ::windows::runtime::Result<()> {
74         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), bstrdescription.into_param().abi()).ok()
75     }
default() -> Layout76     pub unsafe fn EditInternalPort(&self, linternalport: i32) -> ::windows::runtime::Result<()> {
77         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(linternalport)).ok()
78     }
79 }
80 unsafe impl ::windows::runtime::Interface for IDynamicPortMapping {
81     type Vtable = IDynamicPortMapping_abi;
82     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1338507906, 9142, 17272, [154, 39, 205, 143, 23, 201, 64, 12]);
83 }
84 impl ::std::convert::From<IDynamicPortMapping> for ::windows::runtime::IUnknown {
85     fn from(value: IDynamicPortMapping) -> Self {
86         unsafe { ::std::mem::transmute(value) }
87     }
88 }
89 impl ::std::convert::From<&IDynamicPortMapping> for ::windows::runtime::IUnknown {
constraints<C>(mut self, constraints: C) -> Layout where C: Into<Vec<Constraint>>,90     fn from(value: &IDynamicPortMapping) -> Self {
91         ::std::convert::From::from(::std::clone::Clone::clone(value))
92     }
93 }
94 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDynamicPortMapping {
95     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
96         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
97     }
margin(mut self, margin: u16) -> Layout98 }
99 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDynamicPortMapping {
100     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
101         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
102     }
103 }
104 #[cfg(feature = "Win32_System_Ole_Automation")]
105 impl ::std::convert::From<IDynamicPortMapping> for super::super::System::Ole::Automation::IDispatch {
horizontal_margin(mut self, horizontal: u16) -> Layout106     fn from(value: IDynamicPortMapping) -> Self {
107         unsafe { ::std::mem::transmute(value) }
108     }
109 }
110 #[cfg(feature = "Win32_System_Ole_Automation")]
vertical_margin(mut self, vertical: u16) -> Layout111 impl ::std::convert::From<&IDynamicPortMapping> for super::super::System::Ole::Automation::IDispatch {
112     fn from(value: &IDynamicPortMapping) -> Self {
113         ::std::convert::From::from(::std::clone::Clone::clone(value))
114     }
115 }
direction(mut self, direction: Direction) -> Layout116 #[cfg(feature = "Win32_System_Ole_Automation")]
117 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for IDynamicPortMapping {
118     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
119         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
120     }
121 }
122 #[cfg(feature = "Win32_System_Ole_Automation")]
123 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &IDynamicPortMapping {
124     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
125         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
126     }
127 }
128 #[repr(C)]
129 #[doc(hidden)]
130 pub struct IDynamicPortMapping_abi(
131     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
132     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
133     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
134     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
135     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
136     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
137     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
138     #[cfg(not(feature = "Win32_Foundation"))] usize,
139     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
140     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
141     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
142     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pval: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
143     #[cfg(not(feature = "Win32_Foundation"))] usize,
144     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pval: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
145     #[cfg(not(feature = "Win32_Foundation"))] usize,
146     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pval: *mut i32) -> ::windows::runtime::HRESULT,
147     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pval: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
148     #[cfg(not(feature = "Win32_Foundation"))] usize,
149     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pval: *mut i32) -> ::windows::runtime::HRESULT,
150     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pval: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
151     #[cfg(not(feature = "Win32_Foundation"))] usize,
152     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pval: *mut i16) -> ::windows::runtime::HRESULT,
153     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pval: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
154     #[cfg(not(feature = "Win32_Foundation"))] usize,
155     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pval: *mut i32) -> ::windows::runtime::HRESULT,
156     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lleasedurationdesired: i32, pleasedurationreturned: *mut i32) -> ::windows::runtime::HRESULT,
157     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, bstrinternalclient: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
158     #[cfg(not(feature = "Win32_Foundation"))] usize,
159     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, vb: i16) -> ::windows::runtime::HRESULT,
160     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, bstrdescription: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
161     #[cfg(not(feature = "Win32_Foundation"))] usize,
162     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linternalport: i32) -> ::windows::runtime::HRESULT,
163 );
164 #[repr(transparent)]
165 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
166 pub struct IDynamicPortMappingCollection(::windows::runtime::IUnknown);
167 impl IDynamicPortMappingCollection {
168     pub unsafe fn _NewEnum(&self) -> ::windows::runtime::Result<::windows::runtime::IUnknown> {
169         let mut result__: <::windows::runtime::IUnknown as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
170         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<::windows::runtime::IUnknown>(result__)
171     }
172     #[cfg(feature = "Win32_Foundation")]
173     pub unsafe fn Item<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, bstrremotehost: Param0, lexternalport: i32, bstrprotocol: Param2) -> ::windows::runtime::Result<IDynamicPortMapping> {
174         let mut result__: <IDynamicPortMapping as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
175         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), bstrremotehost.into_param().abi(), ::std::mem::transmute(lexternalport), bstrprotocol.into_param().abi(), &mut result__).from_abi::<IDynamicPortMapping>(result__)
176     }
177     pub unsafe fn Count(&self) -> ::windows::runtime::Result<i32> {
178         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
179         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
180     }
181     #[cfg(feature = "Win32_Foundation")]
182     pub unsafe fn Remove<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, bstrremotehost: Param0, lexternalport: i32, bstrprotocol: Param2) -> ::windows::runtime::Result<()> {
183         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), bstrremotehost.into_param().abi(), ::std::mem::transmute(lexternalport), bstrprotocol.into_param().abi()).ok()
184     }
185     #[cfg(feature = "Win32_Foundation")]
split(&self, area: Rect) -> Vec<Rect>186     pub unsafe fn Add<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(
187         &self,
188         bstrremotehost: Param0,
189         lexternalport: i32,
190         bstrprotocol: Param2,
191         linternalport: i32,
192         bstrinternalclient: Param4,
193         benabled: i16,
194         bstrdescription: Param6,
195         lleaseduration: i32,
196     ) -> ::windows::runtime::Result<IDynamicPortMapping> {
197         let mut result__: <IDynamicPortMapping as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
198         (::windows::runtime::Interface::vtable(self).11)(
199             ::std::mem::transmute_copy(self),
200             bstrremotehost.into_param().abi(),
201             ::std::mem::transmute(lexternalport),
202             bstrprotocol.into_param().abi(),
203             ::std::mem::transmute(linternalport),
204             bstrinternalclient.into_param().abi(),
205             ::std::mem::transmute(benabled),
206             bstrdescription.into_param().abi(),
207             ::std::mem::transmute(lleaseduration),
208             &mut result__,
209         )
210         .from_abi::<IDynamicPortMapping>(result__)
211     }
212 }
213 unsafe impl ::windows::runtime::Interface for IDynamicPortMappingCollection {
214     type Vtable = IDynamicPortMappingCollection_abi;
215     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3054362639, 5486, 20109, [158, 193, 58, 35, 66, 193, 8, 153]);
216 }
217 impl ::std::convert::From<IDynamicPortMappingCollection> for ::windows::runtime::IUnknown {
218     fn from(value: IDynamicPortMappingCollection) -> Self {
219         unsafe { ::std::mem::transmute(value) }
220     }
221 }
222 impl ::std::convert::From<&IDynamicPortMappingCollection> for ::windows::runtime::IUnknown {
223     fn from(value: &IDynamicPortMappingCollection) -> Self {
224         ::std::convert::From::from(::std::clone::Clone::clone(value))
225     }
226 }
227 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDynamicPortMappingCollection {
228     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
229         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
230     }
231 }
232 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDynamicPortMappingCollection {
233     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
234         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
235     }
236 }
237 #[cfg(feature = "Win32_System_Ole_Automation")]
238 impl ::std::convert::From<IDynamicPortMappingCollection> for super::super::System::Ole::Automation::IDispatch {
239     fn from(value: IDynamicPortMappingCollection) -> Self {
240         unsafe { ::std::mem::transmute(value) }
241     }
242 }
243 #[cfg(feature = "Win32_System_Ole_Automation")]
244 impl ::std::convert::From<&IDynamicPortMappingCollection> for super::super::System::Ole::Automation::IDispatch {
245     fn from(value: &IDynamicPortMappingCollection) -> Self {
246         ::std::convert::From::from(::std::clone::Clone::clone(value))
247     }
248 }
249 #[cfg(feature = "Win32_System_Ole_Automation")]
250 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for IDynamicPortMappingCollection {
251     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
252         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
253     }
254 }
255 #[cfg(feature = "Win32_System_Ole_Automation")]
256 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &IDynamicPortMappingCollection {
257     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
258         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
259     }
260 }
261 #[repr(C)]
262 #[doc(hidden)]
263 pub struct IDynamicPortMappingCollection_abi(
264     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
265     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
266     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
267     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
268     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
269     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
270     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
271     #[cfg(not(feature = "Win32_Foundation"))] usize,
272     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
273     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
274     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
275     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pval: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
276     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, bstrremotehost: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, lexternalport: i32, bstrprotocol: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, ppdpm: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
277     #[cfg(not(feature = "Win32_Foundation"))] usize,
278     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pval: *mut i32) -> ::windows::runtime::HRESULT,
279     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, bstrremotehost: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, lexternalport: i32, bstrprotocol: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
280     #[cfg(not(feature = "Win32_Foundation"))] usize,
281     #[cfg(feature = "Win32_Foundation")]
282     pub  unsafe extern "system" fn(
283         this: ::windows::runtime::RawPtr,
284         bstrremotehost: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
285         lexternalport: i32,
286         bstrprotocol: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
287         linternalport: i32,
288         bstrinternalclient: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
289         benabled: i16,
290         bstrdescription: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
291         lleaseduration: i32,
292         ppdpm: *mut ::windows::runtime::RawPtr,
293     ) -> ::windows::runtime::HRESULT,
294     #[cfg(not(feature = "Win32_Foundation"))] usize,
295 );
296 #[repr(transparent)]
297 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
298 pub struct IEnumNetConnection(::windows::runtime::IUnknown);
299 impl IEnumNetConnection {
300     pub unsafe fn Next(&self, celt: u32, rgelt: *mut ::std::option::Option<INetConnection>, pceltfetched: *mut u32) -> ::windows::runtime::Result<()> {
301         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(celt), ::std::mem::transmute(rgelt), ::std::mem::transmute(pceltfetched)).ok()
302     }
303     pub unsafe fn Skip(&self, celt: u32) -> ::windows::runtime::Result<()> {
304         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(celt)).ok()
305     }
306     pub unsafe fn Reset(&self) -> ::windows::runtime::Result<()> {
307         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)).ok()
308     }
309     pub unsafe fn Clone(&self) -> ::windows::runtime::Result<IEnumNetConnection> {
310         let mut result__: <IEnumNetConnection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
311         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IEnumNetConnection>(result__)
312     }
313 }
314 unsafe impl ::windows::runtime::Interface for IEnumNetConnection {
315     type Vtable = IEnumNetConnection_abi;
316     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3230226080, 7379, 4561, [177, 197, 0, 128, 95, 193, 39, 14]);
317 }
318 impl ::std::convert::From<IEnumNetConnection> for ::windows::runtime::IUnknown {
319     fn from(value: IEnumNetConnection) -> Self {
320         unsafe { ::std::mem::transmute(value) }
321     }
322 }
323 impl ::std::convert::From<&IEnumNetConnection> for ::windows::runtime::IUnknown {
324     fn from(value: &IEnumNetConnection) -> Self {
325         ::std::convert::From::from(::std::clone::Clone::clone(value))
326     }
327 }
328 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IEnumNetConnection {
329     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
330         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
331     }
332 }
333 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IEnumNetConnection {
334     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
335         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
336     }
337 }
new() -> Element338 #[repr(C)]
339 #[doc(hidden)]
340 pub struct IEnumNetConnection_abi(
341     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
342     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
343     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
344     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, celt: u32, rgelt: *mut ::windows::runtime::RawPtr, pceltfetched: *mut u32) -> ::windows::runtime::HRESULT,
345     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, celt: u32) -> ::windows::runtime::HRESULT,
346     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
347     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
348 );
349 #[repr(transparent)]
350 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
top(&self) -> Variable351 pub struct IEnumNetSharingEveryConnection(::windows::runtime::IUnknown);
352 impl IEnumNetSharingEveryConnection {
353     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
354     pub unsafe fn Next(&self, celt: u32, rgvar: *mut super::super::System::Com::VARIANT, pceltfetched: *mut u32) -> ::windows::runtime::Result<()> {
right(&self) -> Expression355         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(celt), ::std::mem::transmute(rgvar), ::std::mem::transmute(pceltfetched)).ok()
356     }
357     pub unsafe fn Skip(&self, celt: u32) -> ::windows::runtime::Result<()> {
358         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(celt)).ok()
359     }
360     pub unsafe fn Reset(&self) -> ::windows::runtime::Result<()> {
361         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)).ok()
362     }
363     pub unsafe fn Clone(&self) -> ::windows::runtime::Result<IEnumNetSharingEveryConnection> {
364         let mut result__: <IEnumNetSharingEveryConnection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
365         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IEnumNetSharingEveryConnection>(result__)
366     }
367 }
368 unsafe impl ::windows::runtime::Interface for IEnumNetSharingEveryConnection {
369     type Vtable = IEnumNetSharingEveryConnection_abi;
370     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3230226104, 7379, 4561, [177, 197, 0, 128, 95, 193, 39, 14]);
371 }
372 impl ::std::convert::From<IEnumNetSharingEveryConnection> for ::windows::runtime::IUnknown {
373     fn from(value: IEnumNetSharingEveryConnection) -> Self {
374         unsafe { ::std::mem::transmute(value) }
default() -> Rect375     }
376 }
377 impl ::std::convert::From<&IEnumNetSharingEveryConnection> for ::windows::runtime::IUnknown {
378     fn from(value: &IEnumNetSharingEveryConnection) -> Self {
379         ::std::convert::From::from(::std::clone::Clone::clone(value))
380     }
381 }
382 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IEnumNetSharingEveryConnection {
383     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
384         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
385     }
386 }
387 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IEnumNetSharingEveryConnection {
new(x: u16, y: u16, width: u16, height: u16) -> Rect388     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
389         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
390     }
391 }
392 #[repr(C)]
393 #[doc(hidden)]
394 pub struct IEnumNetSharingEveryConnection_abi(
395     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
396     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
397     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
398     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, celt: u32, rgvar: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pceltfetched: *mut u32) -> ::windows::runtime::HRESULT,
399     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
400     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, celt: u32) -> ::windows::runtime::HRESULT,
401     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
402     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
403 );
404 #[repr(transparent)]
405 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
406 pub struct IEnumNetSharingPortMapping(::windows::runtime::IUnknown);
407 impl IEnumNetSharingPortMapping {
area(self) -> u16408     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
409     pub unsafe fn Next(&self, celt: u32, rgvar: *mut super::super::System::Com::VARIANT, pceltfetched: *mut u32) -> ::windows::runtime::Result<()> {
410         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(celt), ::std::mem::transmute(rgvar), ::std::mem::transmute(pceltfetched)).ok()
411     }
left(self) -> u16412     pub unsafe fn Skip(&self, celt: u32) -> ::windows::runtime::Result<()> {
413         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(celt)).ok()
414     }
415     pub unsafe fn Reset(&self) -> ::windows::runtime::Result<()> {
right(self) -> u16416         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)).ok()
417     }
418     pub unsafe fn Clone(&self) -> ::windows::runtime::Result<IEnumNetSharingPortMapping> {
419         let mut result__: <IEnumNetSharingPortMapping as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
420         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IEnumNetSharingPortMapping>(result__)
421     }
422 }
423 unsafe impl ::windows::runtime::Interface for IEnumNetSharingPortMapping {
bottom(self) -> u16424     type Vtable = IEnumNetSharingPortMapping_abi;
425     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3230226096, 7379, 4561, [177, 197, 0, 128, 95, 193, 39, 14]);
426 }
427 impl ::std::convert::From<IEnumNetSharingPortMapping> for ::windows::runtime::IUnknown {
inner(self, margin: &Margin) -> Rect428     fn from(value: IEnumNetSharingPortMapping) -> Self {
429         unsafe { ::std::mem::transmute(value) }
430     }
431 }
432 impl ::std::convert::From<&IEnumNetSharingPortMapping> for ::windows::runtime::IUnknown {
433     fn from(value: &IEnumNetSharingPortMapping) -> Self {
434         ::std::convert::From::from(::std::clone::Clone::clone(value))
435     }
436 }
437 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IEnumNetSharingPortMapping {
438     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
439         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
440     }
union(self, other: Rect) -> Rect441 }
442 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IEnumNetSharingPortMapping {
443     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
444         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
445     }
446 }
447 #[repr(C)]
448 #[doc(hidden)]
449 pub struct IEnumNetSharingPortMapping_abi(
450     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
451     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
452     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
453     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, celt: u32, rgvar: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pceltfetched: *mut u32) -> ::windows::runtime::HRESULT,
intersection(self, other: Rect) -> Rect454     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
455     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, celt: u32) -> ::windows::runtime::HRESULT,
456     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
457     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
458 );
459 #[repr(transparent)]
460 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
461 pub struct IEnumNetSharingPrivateConnection(::windows::runtime::IUnknown);
462 impl IEnumNetSharingPrivateConnection {
463     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
464     pub unsafe fn Next(&self, celt: u32, rgvar: *mut super::super::System::Com::VARIANT, pceltfetched: *mut u32) -> ::windows::runtime::Result<()> {
465         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(celt), ::std::mem::transmute(rgvar), ::std::mem::transmute(pceltfetched)).ok()
466     }
intersects(self, other: Rect) -> bool467     pub unsafe fn Skip(&self, celt: u32) -> ::windows::runtime::Result<()> {
468         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(celt)).ok()
469     }
470     pub unsafe fn Reset(&self) -> ::windows::runtime::Result<()> {
471         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)).ok()
472     }
473     pub unsafe fn Clone(&self) -> ::windows::runtime::Result<IEnumNetSharingPrivateConnection> {
474         let mut result__: <IEnumNetSharingPrivateConnection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
475         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IEnumNetSharingPrivateConnection>(result__)
476     }
477 }
478 unsafe impl ::windows::runtime::Interface for IEnumNetSharingPrivateConnection {
479     type Vtable = IEnumNetSharingPrivateConnection_abi;
test_vertical_split_by_height()480     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3230226101, 7379, 4561, [177, 197, 0, 128, 95, 193, 39, 14]);
481 }
482 impl ::std::convert::From<IEnumNetSharingPrivateConnection> for ::windows::runtime::IUnknown {
483     fn from(value: IEnumNetSharingPrivateConnection) -> Self {
484         unsafe { ::std::mem::transmute(value) }
485     }
486 }
487 impl ::std::convert::From<&IEnumNetSharingPrivateConnection> for ::windows::runtime::IUnknown {
488     fn from(value: &IEnumNetSharingPrivateConnection) -> Self {
489         ::std::convert::From::from(::std::clone::Clone::clone(value))
490     }
491 }
492 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IEnumNetSharingPrivateConnection {
493     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
494         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
495     }
496 }
497 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IEnumNetSharingPrivateConnection {
498     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
499         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
500     }
501 }
502 #[repr(C)]
503 #[doc(hidden)]
504 pub struct IEnumNetSharingPrivateConnection_abi(
test_rect_size_truncation()505     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
506     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
507     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
508     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, celt: u32, rgvar: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pceltfetched: *mut u32) -> ::windows::runtime::HRESULT,
509     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
510     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, celt: u32) -> ::windows::runtime::HRESULT,
511     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
512     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
513 );
514 #[repr(transparent)]
515 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
516 pub struct IEnumNetSharingPublicConnection(::windows::runtime::IUnknown);
517 impl IEnumNetSharingPublicConnection {
518     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
519     pub unsafe fn Next(&self, celt: u32, rgvar: *mut super::super::System::Com::VARIANT, pceltfetched: *mut u32) -> ::windows::runtime::Result<()> {
520         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(celt), ::std::mem::transmute(rgvar), ::std::mem::transmute(pceltfetched)).ok()
521     }
522     pub unsafe fn Skip(&self, celt: u32) -> ::windows::runtime::Result<()> {
523         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(celt)).ok()
524     }
525     pub unsafe fn Reset(&self) -> ::windows::runtime::Result<()> {
526         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)).ok()
527     }
528     pub unsafe fn Clone(&self) -> ::windows::runtime::Result<IEnumNetSharingPublicConnection> {
529         let mut result__: <IEnumNetSharingPublicConnection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
530         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IEnumNetSharingPublicConnection>(result__)
531     }
test_rect_size_preservation()532 }
533 unsafe impl ::windows::runtime::Interface for IEnumNetSharingPublicConnection {
534     type Vtable = IEnumNetSharingPublicConnection_abi;
535     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3230226100, 7379, 4561, [177, 197, 0, 128, 95, 193, 39, 14]);
536 }
537 impl ::std::convert::From<IEnumNetSharingPublicConnection> for ::windows::runtime::IUnknown {
538     fn from(value: IEnumNetSharingPublicConnection) -> Self {
539         unsafe { ::std::mem::transmute(value) }
540     }
541 }
542 impl ::std::convert::From<&IEnumNetSharingPublicConnection> for ::windows::runtime::IUnknown {
543     fn from(value: &IEnumNetSharingPublicConnection) -> Self {
544         ::std::convert::From::from(::std::clone::Clone::clone(value))
545     }
546 }
547 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IEnumNetSharingPublicConnection {
548     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
549         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
550     }
551 }
552 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IEnumNetSharingPublicConnection {
553     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
554         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
555     }
556 }
557 #[repr(C)]
558 #[doc(hidden)]
559 pub struct IEnumNetSharingPublicConnection_abi(
560     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
561     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
562     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
563     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, celt: u32, rgvar: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pceltfetched: *mut u32) -> ::windows::runtime::HRESULT,
564     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
565     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, celt: u32) -> ::windows::runtime::HRESULT,
566     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
567     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
568 );
569 #[repr(transparent)]
570 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
571 pub struct INATEventManager(::windows::runtime::IUnknown);
572 impl INATEventManager {
573     pub unsafe fn SetExternalIPAddressCallback<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, punk: Param0) -> ::windows::runtime::Result<()> {
574         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), punk.into_param().abi()).ok()
575     }
576     pub unsafe fn SetNumberOfEntriesCallback<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, punk: Param0) -> ::windows::runtime::Result<()> {
577         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), punk.into_param().abi()).ok()
578     }
579 }
580 unsafe impl ::windows::runtime::Interface for INATEventManager {
581     type Vtable = INATEventManager_abi;
582     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1649137032, 36960, 16649, [176, 176, 26, 219, 188, 172, 50, 223]);
583 }
584 impl ::std::convert::From<INATEventManager> for ::windows::runtime::IUnknown {
585     fn from(value: INATEventManager) -> Self {
586         unsafe { ::std::mem::transmute(value) }
587     }
588 }
589 impl ::std::convert::From<&INATEventManager> for ::windows::runtime::IUnknown {
590     fn from(value: &INATEventManager) -> Self {
591         ::std::convert::From::from(::std::clone::Clone::clone(value))
592     }
593 }
594 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INATEventManager {
595     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
596         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
597     }
598 }
599 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INATEventManager {
600     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
601         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
602     }
603 }
604 #[cfg(feature = "Win32_System_Ole_Automation")]
605 impl ::std::convert::From<INATEventManager> for super::super::System::Ole::Automation::IDispatch {
606     fn from(value: INATEventManager) -> Self {
607         unsafe { ::std::mem::transmute(value) }
608     }
609 }
610 #[cfg(feature = "Win32_System_Ole_Automation")]
611 impl ::std::convert::From<&INATEventManager> for super::super::System::Ole::Automation::IDispatch {
612     fn from(value: &INATEventManager) -> Self {
613         ::std::convert::From::from(::std::clone::Clone::clone(value))
614     }
615 }
616 #[cfg(feature = "Win32_System_Ole_Automation")]
617 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for INATEventManager {
618     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
619         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
620     }
621 }
622 #[cfg(feature = "Win32_System_Ole_Automation")]
623 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &INATEventManager {
624     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
625         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
626     }
627 }
628 #[repr(C)]
629 #[doc(hidden)]
630 pub struct INATEventManager_abi(
631     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
632     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
633     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
634     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
635     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
636     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
637     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
638     #[cfg(not(feature = "Win32_Foundation"))] usize,
639     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
640     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
641     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
642     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, punk: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
643     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, punk: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
644 );
645 #[repr(transparent)]
646 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
647 pub struct INATExternalIPAddressCallback(::windows::runtime::IUnknown);
648 impl INATExternalIPAddressCallback {
649     #[cfg(feature = "Win32_Foundation")]
650     pub unsafe fn NewExternalIPAddress<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, bstrnewexternalipaddress: Param0) -> ::windows::runtime::Result<()> {
651         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), bstrnewexternalipaddress.into_param().abi()).ok()
652     }
653 }
654 unsafe impl ::windows::runtime::Interface for INATExternalIPAddressCallback {
655     type Vtable = INATExternalIPAddressCallback_abi;
656     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2621531968, 41806, 17519, [186, 6, 171, 208, 76, 49, 73, 174]);
657 }
658 impl ::std::convert::From<INATExternalIPAddressCallback> for ::windows::runtime::IUnknown {
659     fn from(value: INATExternalIPAddressCallback) -> Self {
660         unsafe { ::std::mem::transmute(value) }
661     }
662 }
663 impl ::std::convert::From<&INATExternalIPAddressCallback> for ::windows::runtime::IUnknown {
664     fn from(value: &INATExternalIPAddressCallback) -> Self {
665         ::std::convert::From::from(::std::clone::Clone::clone(value))
666     }
667 }
668 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INATExternalIPAddressCallback {
669     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
670         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
671     }
672 }
673 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INATExternalIPAddressCallback {
674     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
675         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
676     }
677 }
678 #[repr(C)]
679 #[doc(hidden)]
680 pub struct INATExternalIPAddressCallback_abi(
681     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
682     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
683     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
684     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, bstrnewexternalipaddress: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
685     #[cfg(not(feature = "Win32_Foundation"))] usize,
686 );
687 #[repr(transparent)]
688 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
689 pub struct INATNumberOfEntriesCallback(::windows::runtime::IUnknown);
690 impl INATNumberOfEntriesCallback {
691     pub unsafe fn NewNumberOfEntries(&self, lnewnumberofentries: i32) -> ::windows::runtime::Result<()> {
692         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(lnewnumberofentries)).ok()
693     }
694 }
695 unsafe impl ::windows::runtime::Interface for INATNumberOfEntriesCallback {
696     type Vtable = INATNumberOfEntriesCallback_abi;
697     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3359246964, 37358, 16822, [182, 122, 103, 224, 240, 11, 189, 120]);
698 }
699 impl ::std::convert::From<INATNumberOfEntriesCallback> for ::windows::runtime::IUnknown {
700     fn from(value: INATNumberOfEntriesCallback) -> Self {
701         unsafe { ::std::mem::transmute(value) }
702     }
703 }
704 impl ::std::convert::From<&INATNumberOfEntriesCallback> for ::windows::runtime::IUnknown {
705     fn from(value: &INATNumberOfEntriesCallback) -> Self {
706         ::std::convert::From::from(::std::clone::Clone::clone(value))
707     }
708 }
709 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INATNumberOfEntriesCallback {
710     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
711         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
712     }
713 }
714 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INATNumberOfEntriesCallback {
715     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
716         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
717     }
718 }
719 #[repr(C)]
720 #[doc(hidden)]
721 pub struct INATNumberOfEntriesCallback_abi(
722     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
723     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
724     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
725     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lnewnumberofentries: i32) -> ::windows::runtime::HRESULT,
726 );
727 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
728 #[repr(C)]
729 #[cfg(feature = "Win32_Foundation")]
730 pub struct INET_FIREWALL_AC_BINARIES {
731     pub count: u32,
732     pub binaries: *mut super::super::Foundation::PWSTR,
733 }
734 #[cfg(feature = "Win32_Foundation")]
735 impl INET_FIREWALL_AC_BINARIES {}
736 #[cfg(feature = "Win32_Foundation")]
737 impl ::std::default::Default for INET_FIREWALL_AC_BINARIES {
738     fn default() -> Self {
739         unsafe { ::std::mem::zeroed() }
740     }
741 }
742 #[cfg(feature = "Win32_Foundation")]
743 impl ::std::fmt::Debug for INET_FIREWALL_AC_BINARIES {
744     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
745         fmt.debug_struct("INET_FIREWALL_AC_BINARIES").field("count", &self.count).field("binaries", &self.binaries).finish()
746     }
747 }
748 #[cfg(feature = "Win32_Foundation")]
749 impl ::std::cmp::PartialEq for INET_FIREWALL_AC_BINARIES {
750     fn eq(&self, other: &Self) -> bool {
751         self.count == other.count && self.binaries == other.binaries
752     }
753 }
754 #[cfg(feature = "Win32_Foundation")]
755 impl ::std::cmp::Eq for INET_FIREWALL_AC_BINARIES {}
756 #[cfg(feature = "Win32_Foundation")]
757 unsafe impl ::windows::runtime::Abi for INET_FIREWALL_AC_BINARIES {
758     type Abi = Self;
759     type DefaultType = Self;
760 }
761 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
762 #[repr(C)]
763 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
764 pub struct INET_FIREWALL_AC_CAPABILITIES {
765     pub count: u32,
766     pub capabilities: *mut super::super::Security::SID_AND_ATTRIBUTES,
767 }
768 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
769 impl INET_FIREWALL_AC_CAPABILITIES {}
770 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
771 impl ::std::default::Default for INET_FIREWALL_AC_CAPABILITIES {
772     fn default() -> Self {
773         unsafe { ::std::mem::zeroed() }
774     }
775 }
776 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
777 impl ::std::fmt::Debug for INET_FIREWALL_AC_CAPABILITIES {
778     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
779         fmt.debug_struct("INET_FIREWALL_AC_CAPABILITIES").field("count", &self.count).field("capabilities", &self.capabilities).finish()
780     }
781 }
782 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
783 impl ::std::cmp::PartialEq for INET_FIREWALL_AC_CAPABILITIES {
784     fn eq(&self, other: &Self) -> bool {
785         self.count == other.count && self.capabilities == other.capabilities
786     }
787 }
788 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
789 impl ::std::cmp::Eq for INET_FIREWALL_AC_CAPABILITIES {}
790 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
791 unsafe impl ::windows::runtime::Abi for INET_FIREWALL_AC_CAPABILITIES {
792     type Abi = Self;
793     type DefaultType = Self;
794 }
795 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
796 #[repr(C)]
797 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
798 pub struct INET_FIREWALL_AC_CHANGE {
799     pub changeType: INET_FIREWALL_AC_CHANGE_TYPE,
800     pub createType: INET_FIREWALL_AC_CREATION_TYPE,
801     pub appContainerSid: *mut super::super::Security::SID,
802     pub userSid: *mut super::super::Security::SID,
803     pub displayName: super::super::Foundation::PWSTR,
804     pub Anonymous: INET_FIREWALL_AC_CHANGE_0,
805 }
806 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
807 impl INET_FIREWALL_AC_CHANGE {}
808 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
809 impl ::std::default::Default for INET_FIREWALL_AC_CHANGE {
810     fn default() -> Self {
811         unsafe { ::std::mem::zeroed() }
812     }
813 }
814 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
815 impl ::std::cmp::PartialEq for INET_FIREWALL_AC_CHANGE {
816     fn eq(&self, _other: &Self) -> bool {
817         unimplemented!()
818     }
819 }
820 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
821 impl ::std::cmp::Eq for INET_FIREWALL_AC_CHANGE {}
822 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
823 unsafe impl ::windows::runtime::Abi for INET_FIREWALL_AC_CHANGE {
824     type Abi = Self;
825     type DefaultType = Self;
826 }
827 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
828 #[repr(C)]
829 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
830 pub union INET_FIREWALL_AC_CHANGE_0 {
831     pub capabilities: INET_FIREWALL_AC_CAPABILITIES,
832     pub binaries: INET_FIREWALL_AC_BINARIES,
833 }
834 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
835 impl INET_FIREWALL_AC_CHANGE_0 {}
836 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
837 impl ::std::default::Default for INET_FIREWALL_AC_CHANGE_0 {
838     fn default() -> Self {
839         unsafe { ::std::mem::zeroed() }
840     }
841 }
842 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
843 impl ::std::cmp::PartialEq for INET_FIREWALL_AC_CHANGE_0 {
844     fn eq(&self, _other: &Self) -> bool {
845         unimplemented!()
846     }
847 }
848 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
849 impl ::std::cmp::Eq for INET_FIREWALL_AC_CHANGE_0 {}
850 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
851 unsafe impl ::windows::runtime::Abi for INET_FIREWALL_AC_CHANGE_0 {
852     type Abi = Self;
853     type DefaultType = Self;
854 }
855 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
856 #[repr(transparent)]
857 pub struct INET_FIREWALL_AC_CHANGE_TYPE(pub i32);
858 pub const INET_FIREWALL_AC_CHANGE_INVALID: INET_FIREWALL_AC_CHANGE_TYPE = INET_FIREWALL_AC_CHANGE_TYPE(0i32);
859 pub const INET_FIREWALL_AC_CHANGE_CREATE: INET_FIREWALL_AC_CHANGE_TYPE = INET_FIREWALL_AC_CHANGE_TYPE(1i32);
860 pub const INET_FIREWALL_AC_CHANGE_DELETE: INET_FIREWALL_AC_CHANGE_TYPE = INET_FIREWALL_AC_CHANGE_TYPE(2i32);
861 pub const INET_FIREWALL_AC_CHANGE_MAX: INET_FIREWALL_AC_CHANGE_TYPE = INET_FIREWALL_AC_CHANGE_TYPE(3i32);
862 impl ::std::convert::From<i32> for INET_FIREWALL_AC_CHANGE_TYPE {
863     fn from(value: i32) -> Self {
864         Self(value)
865     }
866 }
867 unsafe impl ::windows::runtime::Abi for INET_FIREWALL_AC_CHANGE_TYPE {
868     type Abi = Self;
869     type DefaultType = Self;
870 }
871 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
872 #[repr(transparent)]
873 pub struct INET_FIREWALL_AC_CREATION_TYPE(pub i32);
874 pub const INET_FIREWALL_AC_NONE: INET_FIREWALL_AC_CREATION_TYPE = INET_FIREWALL_AC_CREATION_TYPE(0i32);
875 pub const INET_FIREWALL_AC_PACKAGE_ID_ONLY: INET_FIREWALL_AC_CREATION_TYPE = INET_FIREWALL_AC_CREATION_TYPE(1i32);
876 pub const INET_FIREWALL_AC_BINARY: INET_FIREWALL_AC_CREATION_TYPE = INET_FIREWALL_AC_CREATION_TYPE(2i32);
877 pub const INET_FIREWALL_AC_MAX: INET_FIREWALL_AC_CREATION_TYPE = INET_FIREWALL_AC_CREATION_TYPE(4i32);
878 impl ::std::convert::From<i32> for INET_FIREWALL_AC_CREATION_TYPE {
879     fn from(value: i32) -> Self {
880         Self(value)
881     }
882 }
883 unsafe impl ::windows::runtime::Abi for INET_FIREWALL_AC_CREATION_TYPE {
884     type Abi = Self;
885     type DefaultType = Self;
886 }
887 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
888 #[repr(C)]
889 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
890 pub struct INET_FIREWALL_APP_CONTAINER {
891     pub appContainerSid: *mut super::super::Security::SID,
892     pub userSid: *mut super::super::Security::SID,
893     pub appContainerName: super::super::Foundation::PWSTR,
894     pub displayName: super::super::Foundation::PWSTR,
895     pub description: super::super::Foundation::PWSTR,
896     pub capabilities: INET_FIREWALL_AC_CAPABILITIES,
897     pub binaries: INET_FIREWALL_AC_BINARIES,
898     pub workingDirectory: super::super::Foundation::PWSTR,
899     pub packageFullName: super::super::Foundation::PWSTR,
900 }
901 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
902 impl INET_FIREWALL_APP_CONTAINER {}
903 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
904 impl ::std::default::Default for INET_FIREWALL_APP_CONTAINER {
905     fn default() -> Self {
906         unsafe { ::std::mem::zeroed() }
907     }
908 }
909 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
910 impl ::std::fmt::Debug for INET_FIREWALL_APP_CONTAINER {
911     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
912         fmt.debug_struct("INET_FIREWALL_APP_CONTAINER")
913             .field("appContainerSid", &self.appContainerSid)
914             .field("userSid", &self.userSid)
915             .field("appContainerName", &self.appContainerName)
916             .field("displayName", &self.displayName)
917             .field("description", &self.description)
918             .field("capabilities", &self.capabilities)
919             .field("binaries", &self.binaries)
920             .field("workingDirectory", &self.workingDirectory)
921             .field("packageFullName", &self.packageFullName)
922             .finish()
923     }
924 }
925 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
926 impl ::std::cmp::PartialEq for INET_FIREWALL_APP_CONTAINER {
927     fn eq(&self, other: &Self) -> bool {
928         self.appContainerSid == other.appContainerSid && self.userSid == other.userSid && self.appContainerName == other.appContainerName && self.displayName == other.displayName && self.description == other.description && self.capabilities == other.capabilities && self.binaries == other.binaries && self.workingDirectory == other.workingDirectory && self.packageFullName == other.packageFullName
929     }
930 }
931 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
932 impl ::std::cmp::Eq for INET_FIREWALL_APP_CONTAINER {}
933 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
934 unsafe impl ::windows::runtime::Abi for INET_FIREWALL_APP_CONTAINER {
935     type Abi = Self;
936     type DefaultType = Self;
937 }
938 #[repr(transparent)]
939 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
940 pub struct INetConnection(::windows::runtime::IUnknown);
941 impl INetConnection {
942     pub unsafe fn Connect(&self) -> ::windows::runtime::Result<()> {
943         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)).ok()
944     }
945     pub unsafe fn Disconnect(&self) -> ::windows::runtime::Result<()> {
946         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)).ok()
947     }
948     pub unsafe fn Delete(&self) -> ::windows::runtime::Result<()> {
949         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)).ok()
950     }
951     #[cfg(feature = "Win32_Foundation")]
952     pub unsafe fn Duplicate<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, pszwduplicatename: Param0) -> ::windows::runtime::Result<INetConnection> {
953         let mut result__: <INetConnection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
954         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), pszwduplicatename.into_param().abi(), &mut result__).from_abi::<INetConnection>(result__)
955     }
956     #[cfg(feature = "Win32_Foundation")]
957     pub unsafe fn GetProperties(&self) -> ::windows::runtime::Result<*mut NETCON_PROPERTIES> {
958         let mut result__: <*mut NETCON_PROPERTIES as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
959         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<*mut NETCON_PROPERTIES>(result__)
960     }
961     pub unsafe fn GetUiObjectClassId(&self) -> ::windows::runtime::Result<::windows::runtime::GUID> {
962         let mut result__: <::windows::runtime::GUID as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
963         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), &mut result__).from_abi::<::windows::runtime::GUID>(result__)
964     }
965     #[cfg(feature = "Win32_Foundation")]
966     pub unsafe fn Rename<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, pszwnewname: Param0) -> ::windows::runtime::Result<()> {
967         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), pszwnewname.into_param().abi()).ok()
968     }
969 }
970 unsafe impl ::windows::runtime::Interface for INetConnection {
971     type Vtable = INetConnection_abi;
972     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3230226081, 7379, 4561, [177, 197, 0, 128, 95, 193, 39, 14]);
973 }
974 impl ::std::convert::From<INetConnection> for ::windows::runtime::IUnknown {
975     fn from(value: INetConnection) -> Self {
976         unsafe { ::std::mem::transmute(value) }
977     }
978 }
979 impl ::std::convert::From<&INetConnection> for ::windows::runtime::IUnknown {
980     fn from(value: &INetConnection) -> Self {
981         ::std::convert::From::from(::std::clone::Clone::clone(value))
982     }
983 }
984 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INetConnection {
985     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
986         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
987     }
988 }
989 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INetConnection {
990     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
991         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
992     }
993 }
994 #[repr(C)]
995 #[doc(hidden)]
996 pub struct INetConnection_abi(
997     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
998     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
999     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1000     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1001     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1002     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1003     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pszwduplicatename: super::super::Foundation::PWSTR, ppcon: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1004     #[cfg(not(feature = "Win32_Foundation"))] usize,
1005     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppprops: *mut *mut NETCON_PROPERTIES) -> ::windows::runtime::HRESULT,
1006     #[cfg(not(feature = "Win32_Foundation"))] usize,
1007     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pclsid: *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1008     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pszwnewname: super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
1009     #[cfg(not(feature = "Win32_Foundation"))] usize,
1010 );
1011 #[repr(transparent)]
1012 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1013 pub struct INetConnectionConnectUi(::windows::runtime::IUnknown);
1014 impl INetConnectionConnectUi {
1015     pub unsafe fn SetConnection<'a, Param0: ::windows::runtime::IntoParam<'a, INetConnection>>(&self, pcon: Param0) -> ::windows::runtime::Result<()> {
1016         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), pcon.into_param().abi()).ok()
1017     }
1018     #[cfg(feature = "Win32_Foundation")]
1019     pub unsafe fn Connect<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, hwndparent: Param0, dwflags: u32) -> ::windows::runtime::Result<()> {
1020         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), hwndparent.into_param().abi(), ::std::mem::transmute(dwflags)).ok()
1021     }
1022     #[cfg(feature = "Win32_Foundation")]
1023     pub unsafe fn Disconnect<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, hwndparent: Param0, dwflags: u32) -> ::windows::runtime::Result<()> {
1024         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), hwndparent.into_param().abi(), ::std::mem::transmute(dwflags)).ok()
1025     }
1026 }
1027 unsafe impl ::windows::runtime::Interface for INetConnectionConnectUi {
1028     type Vtable = INetConnectionConnectUi_abi;
1029     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3230226083, 7379, 4561, [177, 197, 0, 128, 95, 193, 39, 14]);
1030 }
1031 impl ::std::convert::From<INetConnectionConnectUi> for ::windows::runtime::IUnknown {
1032     fn from(value: INetConnectionConnectUi) -> Self {
1033         unsafe { ::std::mem::transmute(value) }
1034     }
1035 }
1036 impl ::std::convert::From<&INetConnectionConnectUi> for ::windows::runtime::IUnknown {
1037     fn from(value: &INetConnectionConnectUi) -> Self {
1038         ::std::convert::From::from(::std::clone::Clone::clone(value))
1039     }
1040 }
1041 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INetConnectionConnectUi {
1042     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1043         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1044     }
1045 }
1046 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INetConnectionConnectUi {
1047     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1048         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1049     }
1050 }
1051 #[repr(C)]
1052 #[doc(hidden)]
1053 pub struct INetConnectionConnectUi_abi(
1054     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1055     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1056     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1057     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcon: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1058     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hwndparent: super::super::Foundation::HWND, dwflags: u32) -> ::windows::runtime::HRESULT,
1059     #[cfg(not(feature = "Win32_Foundation"))] usize,
1060     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hwndparent: super::super::Foundation::HWND, dwflags: u32) -> ::windows::runtime::HRESULT,
1061     #[cfg(not(feature = "Win32_Foundation"))] usize,
1062 );
1063 #[repr(transparent)]
1064 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1065 pub struct INetConnectionManager(::windows::runtime::IUnknown);
1066 impl INetConnectionManager {
1067     pub unsafe fn EnumConnections(&self, flags: NETCONMGR_ENUM_FLAGS) -> ::windows::runtime::Result<IEnumNetConnection> {
1068         let mut result__: <IEnumNetConnection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1069         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(flags), &mut result__).from_abi::<IEnumNetConnection>(result__)
1070     }
1071 }
1072 unsafe impl ::windows::runtime::Interface for INetConnectionManager {
1073     type Vtable = INetConnectionManager_abi;
1074     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3230226082, 7379, 4561, [177, 197, 0, 128, 95, 193, 39, 14]);
1075 }
1076 impl ::std::convert::From<INetConnectionManager> for ::windows::runtime::IUnknown {
1077     fn from(value: INetConnectionManager) -> Self {
1078         unsafe { ::std::mem::transmute(value) }
1079     }
1080 }
1081 impl ::std::convert::From<&INetConnectionManager> for ::windows::runtime::IUnknown {
1082     fn from(value: &INetConnectionManager) -> Self {
1083         ::std::convert::From::from(::std::clone::Clone::clone(value))
1084     }
1085 }
1086 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INetConnectionManager {
1087     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1088         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1089     }
1090 }
1091 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INetConnectionManager {
1092     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1093         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1094     }
1095 }
1096 #[repr(C)]
1097 #[doc(hidden)]
1098 pub struct INetConnectionManager_abi(
1099     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1100     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1101     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1102     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, flags: NETCONMGR_ENUM_FLAGS, ppenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1103 );
1104 #[repr(transparent)]
1105 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1106 pub struct INetConnectionProps(::windows::runtime::IUnknown);
1107 impl INetConnectionProps {
1108     #[cfg(feature = "Win32_Foundation")]
1109     pub unsafe fn Guid(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
1110         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1111         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
1112     }
1113     #[cfg(feature = "Win32_Foundation")]
1114     pub unsafe fn Name(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
1115         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1116         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
1117     }
1118     #[cfg(feature = "Win32_Foundation")]
1119     pub unsafe fn DeviceName(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
1120         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1121         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
1122     }
1123     pub unsafe fn Status(&self) -> ::windows::runtime::Result<NETCON_STATUS> {
1124         let mut result__: <NETCON_STATUS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1125         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), &mut result__).from_abi::<NETCON_STATUS>(result__)
1126     }
1127     pub unsafe fn MediaType(&self) -> ::windows::runtime::Result<NETCON_MEDIATYPE> {
1128         let mut result__: <NETCON_MEDIATYPE as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1129         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<NETCON_MEDIATYPE>(result__)
1130     }
1131     pub unsafe fn Characteristics(&self) -> ::windows::runtime::Result<u32> {
1132         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1133         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
1134     }
1135 }
1136 unsafe impl ::windows::runtime::Interface for INetConnectionProps {
1137     type Vtable = INetConnectionProps_abi;
1138     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4096228501, 52827, 17981, [129, 103, 86, 98, 217, 188, 170, 114]);
1139 }
1140 impl ::std::convert::From<INetConnectionProps> for ::windows::runtime::IUnknown {
1141     fn from(value: INetConnectionProps) -> Self {
1142         unsafe { ::std::mem::transmute(value) }
1143     }
1144 }
1145 impl ::std::convert::From<&INetConnectionProps> for ::windows::runtime::IUnknown {
1146     fn from(value: &INetConnectionProps) -> Self {
1147         ::std::convert::From::from(::std::clone::Clone::clone(value))
1148     }
1149 }
1150 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INetConnectionProps {
1151     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1152         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1153     }
1154 }
1155 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INetConnectionProps {
1156     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1157         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1158     }
1159 }
1160 #[cfg(feature = "Win32_System_Ole_Automation")]
1161 impl ::std::convert::From<INetConnectionProps> for super::super::System::Ole::Automation::IDispatch {
1162     fn from(value: INetConnectionProps) -> Self {
1163         unsafe { ::std::mem::transmute(value) }
1164     }
1165 }
1166 #[cfg(feature = "Win32_System_Ole_Automation")]
1167 impl ::std::convert::From<&INetConnectionProps> for super::super::System::Ole::Automation::IDispatch {
1168     fn from(value: &INetConnectionProps) -> Self {
1169         ::std::convert::From::from(::std::clone::Clone::clone(value))
1170     }
1171 }
1172 #[cfg(feature = "Win32_System_Ole_Automation")]
1173 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for INetConnectionProps {
1174     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
1175         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
1176     }
1177 }
1178 #[cfg(feature = "Win32_System_Ole_Automation")]
1179 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &INetConnectionProps {
1180     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
1181         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
1182     }
1183 }
1184 #[repr(C)]
1185 #[doc(hidden)]
1186 pub struct INetConnectionProps_abi(
1187     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1188     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1189     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1190     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
1191     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1192     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
1193     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
1194     #[cfg(not(feature = "Win32_Foundation"))] usize,
1195     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
1196     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
1197     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
1198     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrguid: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1199     #[cfg(not(feature = "Win32_Foundation"))] usize,
1200     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrname: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1201     #[cfg(not(feature = "Win32_Foundation"))] usize,
1202     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrdevicename: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1203     #[cfg(not(feature = "Win32_Foundation"))] usize,
1204     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pstatus: *mut NETCON_STATUS) -> ::windows::runtime::HRESULT,
1205     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pmediatype: *mut NETCON_MEDIATYPE) -> ::windows::runtime::HRESULT,
1206     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdwflags: *mut u32) -> ::windows::runtime::HRESULT,
1207 );
1208 #[repr(transparent)]
1209 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1210 pub struct INetFwAuthorizedApplication(::windows::runtime::IUnknown);
1211 impl INetFwAuthorizedApplication {
1212     #[cfg(feature = "Win32_Foundation")]
1213     pub unsafe fn Name(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
1214         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1215         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
1216     }
1217     #[cfg(feature = "Win32_Foundation")]
1218     pub unsafe fn SetName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, name: Param0) -> ::windows::runtime::Result<()> {
1219         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), name.into_param().abi()).ok()
1220     }
1221     #[cfg(feature = "Win32_Foundation")]
1222     pub unsafe fn ProcessImageFileName(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
1223         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1224         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
1225     }
1226     #[cfg(feature = "Win32_Foundation")]
1227     pub unsafe fn SetProcessImageFileName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, imagefilename: Param0) -> ::windows::runtime::Result<()> {
1228         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), imagefilename.into_param().abi()).ok()
1229     }
1230     pub unsafe fn IpVersion(&self) -> ::windows::runtime::Result<NET_FW_IP_VERSION> {
1231         let mut result__: <NET_FW_IP_VERSION as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1232         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<NET_FW_IP_VERSION>(result__)
1233     }
1234     pub unsafe fn SetIpVersion(&self, ipversion: NET_FW_IP_VERSION) -> ::windows::runtime::Result<()> {
1235         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(ipversion)).ok()
1236     }
1237     pub unsafe fn Scope(&self) -> ::windows::runtime::Result<NET_FW_SCOPE> {
1238         let mut result__: <NET_FW_SCOPE as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1239         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<NET_FW_SCOPE>(result__)
1240     }
1241     pub unsafe fn SetScope(&self, scope: NET_FW_SCOPE) -> ::windows::runtime::Result<()> {
1242         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(scope)).ok()
1243     }
1244     #[cfg(feature = "Win32_Foundation")]
1245     pub unsafe fn RemoteAddresses(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
1246         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1247         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
1248     }
1249     #[cfg(feature = "Win32_Foundation")]
1250     pub unsafe fn SetRemoteAddresses<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, remoteaddrs: Param0) -> ::windows::runtime::Result<()> {
1251         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), remoteaddrs.into_param().abi()).ok()
1252     }
1253     pub unsafe fn Enabled(&self) -> ::windows::runtime::Result<i16> {
1254         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1255         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i16>(result__)
1256     }
1257     pub unsafe fn SetEnabled(&self, enabled: i16) -> ::windows::runtime::Result<()> {
1258         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), ::std::mem::transmute(enabled)).ok()
1259     }
1260 }
1261 unsafe impl ::windows::runtime::Interface for INetFwAuthorizedApplication {
1262     type Vtable = INetFwAuthorizedApplication_abi;
1263     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3051769850, 49861, 17486, [163, 1, 251, 94, 0, 1, 128, 80]);
1264 }
1265 impl ::std::convert::From<INetFwAuthorizedApplication> for ::windows::runtime::IUnknown {
1266     fn from(value: INetFwAuthorizedApplication) -> Self {
1267         unsafe { ::std::mem::transmute(value) }
1268     }
1269 }
1270 impl ::std::convert::From<&INetFwAuthorizedApplication> for ::windows::runtime::IUnknown {
1271     fn from(value: &INetFwAuthorizedApplication) -> Self {
1272         ::std::convert::From::from(::std::clone::Clone::clone(value))
1273     }
1274 }
1275 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INetFwAuthorizedApplication {
1276     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1277         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1278     }
1279 }
1280 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INetFwAuthorizedApplication {
1281     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1282         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1283     }
1284 }
1285 #[cfg(feature = "Win32_System_Ole_Automation")]
1286 impl ::std::convert::From<INetFwAuthorizedApplication> for super::super::System::Ole::Automation::IDispatch {
1287     fn from(value: INetFwAuthorizedApplication) -> Self {
1288         unsafe { ::std::mem::transmute(value) }
1289     }
1290 }
1291 #[cfg(feature = "Win32_System_Ole_Automation")]
1292 impl ::std::convert::From<&INetFwAuthorizedApplication> for super::super::System::Ole::Automation::IDispatch {
1293     fn from(value: &INetFwAuthorizedApplication) -> Self {
1294         ::std::convert::From::from(::std::clone::Clone::clone(value))
1295     }
1296 }
1297 #[cfg(feature = "Win32_System_Ole_Automation")]
1298 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for INetFwAuthorizedApplication {
1299     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
1300         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
1301     }
1302 }
1303 #[cfg(feature = "Win32_System_Ole_Automation")]
1304 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &INetFwAuthorizedApplication {
1305     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
1306         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
1307     }
1308 }
1309 #[repr(C)]
1310 #[doc(hidden)]
1311 pub struct INetFwAuthorizedApplication_abi(
1312     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1313     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1314     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1315     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
1316     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1317     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
1318     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
1319     #[cfg(not(feature = "Win32_Foundation"))] usize,
1320     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
1321     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
1322     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
1323     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1324     #[cfg(not(feature = "Win32_Foundation"))] usize,
1325     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1326     #[cfg(not(feature = "Win32_Foundation"))] usize,
1327     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, imagefilename: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1328     #[cfg(not(feature = "Win32_Foundation"))] usize,
1329     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, imagefilename: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1330     #[cfg(not(feature = "Win32_Foundation"))] usize,
1331     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ipversion: *mut NET_FW_IP_VERSION) -> ::windows::runtime::HRESULT,
1332     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ipversion: NET_FW_IP_VERSION) -> ::windows::runtime::HRESULT,
1333     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, scope: *mut NET_FW_SCOPE) -> ::windows::runtime::HRESULT,
1334     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, scope: NET_FW_SCOPE) -> ::windows::runtime::HRESULT,
1335     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, remoteaddrs: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1336     #[cfg(not(feature = "Win32_Foundation"))] usize,
1337     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, remoteaddrs: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1338     #[cfg(not(feature = "Win32_Foundation"))] usize,
1339     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enabled: *mut i16) -> ::windows::runtime::HRESULT,
1340     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enabled: i16) -> ::windows::runtime::HRESULT,
1341 );
1342 #[repr(transparent)]
1343 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1344 pub struct INetFwAuthorizedApplications(::windows::runtime::IUnknown);
1345 impl INetFwAuthorizedApplications {
1346     pub unsafe fn Count(&self) -> ::windows::runtime::Result<i32> {
1347         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1348         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
1349     }
1350     pub unsafe fn Add<'a, Param0: ::windows::runtime::IntoParam<'a, INetFwAuthorizedApplication>>(&self, app: Param0) -> ::windows::runtime::Result<()> {
1351         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), app.into_param().abi()).ok()
1352     }
1353     #[cfg(feature = "Win32_Foundation")]
1354     pub unsafe fn Remove<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, imagefilename: Param0) -> ::windows::runtime::Result<()> {
1355         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), imagefilename.into_param().abi()).ok()
1356     }
1357     #[cfg(feature = "Win32_Foundation")]
1358     pub unsafe fn Item<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, imagefilename: Param0) -> ::windows::runtime::Result<INetFwAuthorizedApplication> {
1359         let mut result__: <INetFwAuthorizedApplication as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1360         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), imagefilename.into_param().abi(), &mut result__).from_abi::<INetFwAuthorizedApplication>(result__)
1361     }
1362     pub unsafe fn _NewEnum(&self) -> ::windows::runtime::Result<::windows::runtime::IUnknown> {
1363         let mut result__: <::windows::runtime::IUnknown as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1364         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<::windows::runtime::IUnknown>(result__)
1365     }
1366 }
1367 unsafe impl ::windows::runtime::Interface for INetFwAuthorizedApplications {
1368     type Vtable = INetFwAuthorizedApplications_abi;
1369     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1682898258, 52473, 18540, [151, 162, 57, 243, 82, 87, 11, 48]);
1370 }
1371 impl ::std::convert::From<INetFwAuthorizedApplications> for ::windows::runtime::IUnknown {
1372     fn from(value: INetFwAuthorizedApplications) -> Self {
1373         unsafe { ::std::mem::transmute(value) }
1374     }
1375 }
1376 impl ::std::convert::From<&INetFwAuthorizedApplications> for ::windows::runtime::IUnknown {
1377     fn from(value: &INetFwAuthorizedApplications) -> Self {
1378         ::std::convert::From::from(::std::clone::Clone::clone(value))
1379     }
1380 }
1381 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INetFwAuthorizedApplications {
1382     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1383         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1384     }
1385 }
1386 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INetFwAuthorizedApplications {
1387     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1388         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1389     }
1390 }
1391 #[cfg(feature = "Win32_System_Ole_Automation")]
1392 impl ::std::convert::From<INetFwAuthorizedApplications> for super::super::System::Ole::Automation::IDispatch {
1393     fn from(value: INetFwAuthorizedApplications) -> Self {
1394         unsafe { ::std::mem::transmute(value) }
1395     }
1396 }
1397 #[cfg(feature = "Win32_System_Ole_Automation")]
1398 impl ::std::convert::From<&INetFwAuthorizedApplications> for super::super::System::Ole::Automation::IDispatch {
1399     fn from(value: &INetFwAuthorizedApplications) -> Self {
1400         ::std::convert::From::from(::std::clone::Clone::clone(value))
1401     }
1402 }
1403 #[cfg(feature = "Win32_System_Ole_Automation")]
1404 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for INetFwAuthorizedApplications {
1405     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
1406         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
1407     }
1408 }
1409 #[cfg(feature = "Win32_System_Ole_Automation")]
1410 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &INetFwAuthorizedApplications {
1411     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
1412         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
1413     }
1414 }
1415 #[repr(C)]
1416 #[doc(hidden)]
1417 pub struct INetFwAuthorizedApplications_abi(
1418     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1419     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1420     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1421     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
1422     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1423     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
1424     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
1425     #[cfg(not(feature = "Win32_Foundation"))] usize,
1426     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
1427     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
1428     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
1429     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut i32) -> ::windows::runtime::HRESULT,
1430     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, app: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1431     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, imagefilename: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1432     #[cfg(not(feature = "Win32_Foundation"))] usize,
1433     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, imagefilename: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, app: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1434     #[cfg(not(feature = "Win32_Foundation"))] usize,
1435     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, newenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1436 );
1437 #[repr(transparent)]
1438 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1439 pub struct INetFwIcmpSettings(::windows::runtime::IUnknown);
1440 impl INetFwIcmpSettings {
1441     pub unsafe fn AllowOutboundDestinationUnreachable(&self) -> ::windows::runtime::Result<i16> {
1442         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1443         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i16>(result__)
1444     }
1445     pub unsafe fn SetAllowOutboundDestinationUnreachable(&self, allow: i16) -> ::windows::runtime::Result<()> {
1446         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(allow)).ok()
1447     }
1448     pub unsafe fn AllowRedirect(&self) -> ::windows::runtime::Result<i16> {
1449         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1450         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i16>(result__)
1451     }
1452     pub unsafe fn SetAllowRedirect(&self, allow: i16) -> ::windows::runtime::Result<()> {
1453         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(allow)).ok()
1454     }
1455     pub unsafe fn AllowInboundEchoRequest(&self) -> ::windows::runtime::Result<i16> {
1456         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1457         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i16>(result__)
1458     }
1459     pub unsafe fn SetAllowInboundEchoRequest(&self, allow: i16) -> ::windows::runtime::Result<()> {
1460         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(allow)).ok()
1461     }
1462     pub unsafe fn AllowOutboundTimeExceeded(&self) -> ::windows::runtime::Result<i16> {
1463         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1464         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i16>(result__)
1465     }
1466     pub unsafe fn SetAllowOutboundTimeExceeded(&self, allow: i16) -> ::windows::runtime::Result<()> {
1467         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(allow)).ok()
1468     }
1469     pub unsafe fn AllowOutboundParameterProblem(&self) -> ::windows::runtime::Result<i16> {
1470         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1471         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i16>(result__)
1472     }
1473     pub unsafe fn SetAllowOutboundParameterProblem(&self, allow: i16) -> ::windows::runtime::Result<()> {
1474         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), ::std::mem::transmute(allow)).ok()
1475     }
1476     pub unsafe fn AllowOutboundSourceQuench(&self) -> ::windows::runtime::Result<i16> {
1477         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1478         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i16>(result__)
1479     }
1480     pub unsafe fn SetAllowOutboundSourceQuench(&self, allow: i16) -> ::windows::runtime::Result<()> {
1481         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), ::std::mem::transmute(allow)).ok()
1482     }
1483     pub unsafe fn AllowInboundRouterRequest(&self) -> ::windows::runtime::Result<i16> {
1484         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1485         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i16>(result__)
1486     }
1487     pub unsafe fn SetAllowInboundRouterRequest(&self, allow: i16) -> ::windows::runtime::Result<()> {
1488         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(allow)).ok()
1489     }
1490     pub unsafe fn AllowInboundTimestampRequest(&self) -> ::windows::runtime::Result<i16> {
1491         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1492         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i16>(result__)
1493     }
1494     pub unsafe fn SetAllowInboundTimestampRequest(&self, allow: i16) -> ::windows::runtime::Result<()> {
1495         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), ::std::mem::transmute(allow)).ok()
1496     }
1497     pub unsafe fn AllowInboundMaskRequest(&self) -> ::windows::runtime::Result<i16> {
1498         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1499         (::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i16>(result__)
1500     }
1501     pub unsafe fn SetAllowInboundMaskRequest(&self, allow: i16) -> ::windows::runtime::Result<()> {
1502         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), ::std::mem::transmute(allow)).ok()
1503     }
1504     pub unsafe fn AllowOutboundPacketTooBig(&self) -> ::windows::runtime::Result<i16> {
1505         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1506         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i16>(result__)
1507     }
1508     pub unsafe fn SetAllowOutboundPacketTooBig(&self, allow: i16) -> ::windows::runtime::Result<()> {
1509         (::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self), ::std::mem::transmute(allow)).ok()
1510     }
1511 }
1512 unsafe impl ::windows::runtime::Interface for INetFwIcmpSettings {
1513     type Vtable = INetFwIcmpSettings_abi;
1514     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2787146542, 31965, 17002, [149, 30, 94, 28, 188, 90, 254, 173]);
1515 }
1516 impl ::std::convert::From<INetFwIcmpSettings> for ::windows::runtime::IUnknown {
1517     fn from(value: INetFwIcmpSettings) -> Self {
1518         unsafe { ::std::mem::transmute(value) }
1519     }
1520 }
1521 impl ::std::convert::From<&INetFwIcmpSettings> for ::windows::runtime::IUnknown {
1522     fn from(value: &INetFwIcmpSettings) -> Self {
1523         ::std::convert::From::from(::std::clone::Clone::clone(value))
1524     }
1525 }
1526 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INetFwIcmpSettings {
1527     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1528         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1529     }
1530 }
1531 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INetFwIcmpSettings {
1532     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1533         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1534     }
1535 }
1536 #[cfg(feature = "Win32_System_Ole_Automation")]
1537 impl ::std::convert::From<INetFwIcmpSettings> for super::super::System::Ole::Automation::IDispatch {
1538     fn from(value: INetFwIcmpSettings) -> Self {
1539         unsafe { ::std::mem::transmute(value) }
1540     }
1541 }
1542 #[cfg(feature = "Win32_System_Ole_Automation")]
1543 impl ::std::convert::From<&INetFwIcmpSettings> for super::super::System::Ole::Automation::IDispatch {
1544     fn from(value: &INetFwIcmpSettings) -> Self {
1545         ::std::convert::From::from(::std::clone::Clone::clone(value))
1546     }
1547 }
1548 #[cfg(feature = "Win32_System_Ole_Automation")]
1549 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for INetFwIcmpSettings {
1550     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
1551         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
1552     }
1553 }
1554 #[cfg(feature = "Win32_System_Ole_Automation")]
1555 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &INetFwIcmpSettings {
1556     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
1557         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
1558     }
1559 }
1560 #[repr(C)]
1561 #[doc(hidden)]
1562 pub struct INetFwIcmpSettings_abi(
1563     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1564     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1565     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1566     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
1567     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1568     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
1569     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
1570     #[cfg(not(feature = "Win32_Foundation"))] usize,
1571     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
1572     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
1573     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
1574     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, allow: *mut i16) -> ::windows::runtime::HRESULT,
1575     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, allow: i16) -> ::windows::runtime::HRESULT,
1576     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, allow: *mut i16) -> ::windows::runtime::HRESULT,
1577     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, allow: i16) -> ::windows::runtime::HRESULT,
1578     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, allow: *mut i16) -> ::windows::runtime::HRESULT,
1579     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, allow: i16) -> ::windows::runtime::HRESULT,
1580     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, allow: *mut i16) -> ::windows::runtime::HRESULT,
1581     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, allow: i16) -> ::windows::runtime::HRESULT,
1582     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, allow: *mut i16) -> ::windows::runtime::HRESULT,
1583     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, allow: i16) -> ::windows::runtime::HRESULT,
1584     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, allow: *mut i16) -> ::windows::runtime::HRESULT,
1585     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, allow: i16) -> ::windows::runtime::HRESULT,
1586     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, allow: *mut i16) -> ::windows::runtime::HRESULT,
1587     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, allow: i16) -> ::windows::runtime::HRESULT,
1588     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, allow: *mut i16) -> ::windows::runtime::HRESULT,
1589     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, allow: i16) -> ::windows::runtime::HRESULT,
1590     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, allow: *mut i16) -> ::windows::runtime::HRESULT,
1591     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, allow: i16) -> ::windows::runtime::HRESULT,
1592     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, allow: *mut i16) -> ::windows::runtime::HRESULT,
1593     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, allow: i16) -> ::windows::runtime::HRESULT,
1594 );
1595 #[repr(transparent)]
1596 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1597 pub struct INetFwMgr(::windows::runtime::IUnknown);
1598 impl INetFwMgr {
1599     pub unsafe fn LocalPolicy(&self) -> ::windows::runtime::Result<INetFwPolicy> {
1600         let mut result__: <INetFwPolicy as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1601         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<INetFwPolicy>(result__)
1602     }
1603     pub unsafe fn CurrentProfileType(&self) -> ::windows::runtime::Result<NET_FW_PROFILE_TYPE> {
1604         let mut result__: <NET_FW_PROFILE_TYPE as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1605         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), &mut result__).from_abi::<NET_FW_PROFILE_TYPE>(result__)
1606     }
1607     pub unsafe fn RestoreDefaults(&self) -> ::windows::runtime::Result<()> {
1608         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self)).ok()
1609     }
1610     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
1611     pub unsafe fn IsPortAllowed<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, imagefilename: Param0, ipversion: NET_FW_IP_VERSION, portnumber: i32, localaddress: Param3, ipprotocol: NET_FW_IP_PROTOCOL, allowed: *mut super::super::System::Com::VARIANT, restricted: *mut super::super::System::Com::VARIANT) -> ::windows::runtime::Result<()> {
1612         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), imagefilename.into_param().abi(), ::std::mem::transmute(ipversion), ::std::mem::transmute(portnumber), localaddress.into_param().abi(), ::std::mem::transmute(ipprotocol), ::std::mem::transmute(allowed), ::std::mem::transmute(restricted)).ok()
1613     }
1614     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
1615     pub unsafe fn IsIcmpTypeAllowed<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, ipversion: NET_FW_IP_VERSION, localaddress: Param1, r#type: u8, allowed: *mut super::super::System::Com::VARIANT, restricted: *mut super::super::System::Com::VARIANT) -> ::windows::runtime::Result<()> {
1616         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(ipversion), localaddress.into_param().abi(), ::std::mem::transmute(r#type), ::std::mem::transmute(allowed), ::std::mem::transmute(restricted)).ok()
1617     }
1618 }
1619 unsafe impl ::windows::runtime::Interface for INetFwMgr {
1620     type Vtable = INetFwMgr_abi;
1621     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4152986357, 51908, 17970, [162, 236, 218, 6, 229, 17, 26, 242]);
1622 }
1623 impl ::std::convert::From<INetFwMgr> for ::windows::runtime::IUnknown {
1624     fn from(value: INetFwMgr) -> Self {
1625         unsafe { ::std::mem::transmute(value) }
1626     }
1627 }
1628 impl ::std::convert::From<&INetFwMgr> for ::windows::runtime::IUnknown {
1629     fn from(value: &INetFwMgr) -> Self {
1630         ::std::convert::From::from(::std::clone::Clone::clone(value))
1631     }
1632 }
1633 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INetFwMgr {
1634     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1635         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1636     }
1637 }
1638 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INetFwMgr {
1639     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1640         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1641     }
1642 }
1643 #[cfg(feature = "Win32_System_Ole_Automation")]
1644 impl ::std::convert::From<INetFwMgr> for super::super::System::Ole::Automation::IDispatch {
1645     fn from(value: INetFwMgr) -> Self {
1646         unsafe { ::std::mem::transmute(value) }
1647     }
1648 }
1649 #[cfg(feature = "Win32_System_Ole_Automation")]
1650 impl ::std::convert::From<&INetFwMgr> for super::super::System::Ole::Automation::IDispatch {
1651     fn from(value: &INetFwMgr) -> Self {
1652         ::std::convert::From::from(::std::clone::Clone::clone(value))
1653     }
1654 }
1655 #[cfg(feature = "Win32_System_Ole_Automation")]
1656 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for INetFwMgr {
1657     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
1658         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
1659     }
1660 }
1661 #[cfg(feature = "Win32_System_Ole_Automation")]
1662 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &INetFwMgr {
1663     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
1664         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
1665     }
1666 }
1667 #[repr(C)]
1668 #[doc(hidden)]
1669 pub struct INetFwMgr_abi(
1670     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1671     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1672     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1673     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
1674     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1675     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
1676     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
1677     #[cfg(not(feature = "Win32_Foundation"))] usize,
1678     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
1679     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
1680     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
1681     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, localpolicy: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1682     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, profiletype: *mut NET_FW_PROFILE_TYPE) -> ::windows::runtime::HRESULT,
1683     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1684     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
1685     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, imagefilename: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, ipversion: NET_FW_IP_VERSION, portnumber: i32, localaddress: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, ipprotocol: NET_FW_IP_PROTOCOL, allowed: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, restricted: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>) -> ::windows::runtime::HRESULT,
1686     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
1687     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ipversion: NET_FW_IP_VERSION, localaddress: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, r#type: u8, allowed: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, restricted: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>) -> ::windows::runtime::HRESULT,
1688     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
1689 );
1690 #[repr(transparent)]
1691 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1692 pub struct INetFwOpenPort(::windows::runtime::IUnknown);
1693 impl INetFwOpenPort {
1694     #[cfg(feature = "Win32_Foundation")]
1695     pub unsafe fn Name(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
1696         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1697         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
1698     }
1699     #[cfg(feature = "Win32_Foundation")]
1700     pub unsafe fn SetName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, name: Param0) -> ::windows::runtime::Result<()> {
1701         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), name.into_param().abi()).ok()
1702     }
1703     pub unsafe fn IpVersion(&self) -> ::windows::runtime::Result<NET_FW_IP_VERSION> {
1704         let mut result__: <NET_FW_IP_VERSION as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1705         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<NET_FW_IP_VERSION>(result__)
1706     }
1707     pub unsafe fn SetIpVersion(&self, ipversion: NET_FW_IP_VERSION) -> ::windows::runtime::Result<()> {
1708         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(ipversion)).ok()
1709     }
1710     pub unsafe fn Protocol(&self) -> ::windows::runtime::Result<NET_FW_IP_PROTOCOL> {
1711         let mut result__: <NET_FW_IP_PROTOCOL as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1712         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<NET_FW_IP_PROTOCOL>(result__)
1713     }
1714     pub unsafe fn SetProtocol(&self, ipprotocol: NET_FW_IP_PROTOCOL) -> ::windows::runtime::Result<()> {
1715         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(ipprotocol)).ok()
1716     }
1717     pub unsafe fn Port(&self) -> ::windows::runtime::Result<i32> {
1718         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1719         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
1720     }
1721     pub unsafe fn SetPort(&self, portnumber: i32) -> ::windows::runtime::Result<()> {
1722         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(portnumber)).ok()
1723     }
1724     pub unsafe fn Scope(&self) -> ::windows::runtime::Result<NET_FW_SCOPE> {
1725         let mut result__: <NET_FW_SCOPE as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1726         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), &mut result__).from_abi::<NET_FW_SCOPE>(result__)
1727     }
1728     pub unsafe fn SetScope(&self, scope: NET_FW_SCOPE) -> ::windows::runtime::Result<()> {
1729         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), ::std::mem::transmute(scope)).ok()
1730     }
1731     #[cfg(feature = "Win32_Foundation")]
1732     pub unsafe fn RemoteAddresses(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
1733         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1734         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
1735     }
1736     #[cfg(feature = "Win32_Foundation")]
1737     pub unsafe fn SetRemoteAddresses<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, remoteaddrs: Param0) -> ::windows::runtime::Result<()> {
1738         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), remoteaddrs.into_param().abi()).ok()
1739     }
1740     pub unsafe fn Enabled(&self) -> ::windows::runtime::Result<i16> {
1741         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1742         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i16>(result__)
1743     }
1744     pub unsafe fn SetEnabled(&self, enabled: i16) -> ::windows::runtime::Result<()> {
1745         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(enabled)).ok()
1746     }
1747     pub unsafe fn BuiltIn(&self) -> ::windows::runtime::Result<i16> {
1748         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1749         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i16>(result__)
1750     }
1751 }
1752 unsafe impl ::windows::runtime::Interface for INetFwOpenPort {
1753     type Vtable = INetFwOpenPort_abi;
1754     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3762830240, 18431, 19868, [166, 214, 119, 65, 208, 177, 149, 247]);
1755 }
1756 impl ::std::convert::From<INetFwOpenPort> for ::windows::runtime::IUnknown {
1757     fn from(value: INetFwOpenPort) -> Self {
1758         unsafe { ::std::mem::transmute(value) }
1759     }
1760 }
1761 impl ::std::convert::From<&INetFwOpenPort> for ::windows::runtime::IUnknown {
1762     fn from(value: &INetFwOpenPort) -> Self {
1763         ::std::convert::From::from(::std::clone::Clone::clone(value))
1764     }
1765 }
1766 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INetFwOpenPort {
1767     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1768         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1769     }
1770 }
1771 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INetFwOpenPort {
1772     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1773         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1774     }
1775 }
1776 #[cfg(feature = "Win32_System_Ole_Automation")]
1777 impl ::std::convert::From<INetFwOpenPort> for super::super::System::Ole::Automation::IDispatch {
1778     fn from(value: INetFwOpenPort) -> Self {
1779         unsafe { ::std::mem::transmute(value) }
1780     }
1781 }
1782 #[cfg(feature = "Win32_System_Ole_Automation")]
1783 impl ::std::convert::From<&INetFwOpenPort> for super::super::System::Ole::Automation::IDispatch {
1784     fn from(value: &INetFwOpenPort) -> Self {
1785         ::std::convert::From::from(::std::clone::Clone::clone(value))
1786     }
1787 }
1788 #[cfg(feature = "Win32_System_Ole_Automation")]
1789 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for INetFwOpenPort {
1790     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
1791         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
1792     }
1793 }
1794 #[cfg(feature = "Win32_System_Ole_Automation")]
1795 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &INetFwOpenPort {
1796     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
1797         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
1798     }
1799 }
1800 #[repr(C)]
1801 #[doc(hidden)]
1802 pub struct INetFwOpenPort_abi(
1803     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1804     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1805     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1806     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
1807     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1808     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
1809     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
1810     #[cfg(not(feature = "Win32_Foundation"))] usize,
1811     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
1812     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
1813     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
1814     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1815     #[cfg(not(feature = "Win32_Foundation"))] usize,
1816     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1817     #[cfg(not(feature = "Win32_Foundation"))] usize,
1818     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ipversion: *mut NET_FW_IP_VERSION) -> ::windows::runtime::HRESULT,
1819     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ipversion: NET_FW_IP_VERSION) -> ::windows::runtime::HRESULT,
1820     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ipprotocol: *mut NET_FW_IP_PROTOCOL) -> ::windows::runtime::HRESULT,
1821     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ipprotocol: NET_FW_IP_PROTOCOL) -> ::windows::runtime::HRESULT,
1822     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, portnumber: *mut i32) -> ::windows::runtime::HRESULT,
1823     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, portnumber: i32) -> ::windows::runtime::HRESULT,
1824     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, scope: *mut NET_FW_SCOPE) -> ::windows::runtime::HRESULT,
1825     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, scope: NET_FW_SCOPE) -> ::windows::runtime::HRESULT,
1826     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, remoteaddrs: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1827     #[cfg(not(feature = "Win32_Foundation"))] usize,
1828     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, remoteaddrs: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1829     #[cfg(not(feature = "Win32_Foundation"))] usize,
1830     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enabled: *mut i16) -> ::windows::runtime::HRESULT,
1831     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enabled: i16) -> ::windows::runtime::HRESULT,
1832     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, builtin: *mut i16) -> ::windows::runtime::HRESULT,
1833 );
1834 #[repr(transparent)]
1835 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1836 pub struct INetFwOpenPorts(::windows::runtime::IUnknown);
1837 impl INetFwOpenPorts {
1838     pub unsafe fn Count(&self) -> ::windows::runtime::Result<i32> {
1839         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1840         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
1841     }
1842     pub unsafe fn Add<'a, Param0: ::windows::runtime::IntoParam<'a, INetFwOpenPort>>(&self, port: Param0) -> ::windows::runtime::Result<()> {
1843         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), port.into_param().abi()).ok()
1844     }
1845     pub unsafe fn Remove(&self, portnumber: i32, ipprotocol: NET_FW_IP_PROTOCOL) -> ::windows::runtime::Result<()> {
1846         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(portnumber), ::std::mem::transmute(ipprotocol)).ok()
1847     }
1848     pub unsafe fn Item(&self, portnumber: i32, ipprotocol: NET_FW_IP_PROTOCOL) -> ::windows::runtime::Result<INetFwOpenPort> {
1849         let mut result__: <INetFwOpenPort as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1850         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(portnumber), ::std::mem::transmute(ipprotocol), &mut result__).from_abi::<INetFwOpenPort>(result__)
1851     }
1852     pub unsafe fn _NewEnum(&self) -> ::windows::runtime::Result<::windows::runtime::IUnknown> {
1853         let mut result__: <::windows::runtime::IUnknown as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1854         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<::windows::runtime::IUnknown>(result__)
1855     }
1856 }
1857 unsafe impl ::windows::runtime::Interface for INetFwOpenPorts {
1858     type Vtable = INetFwOpenPorts_abi;
1859     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3236550650, 57470, 17162, [177, 154, 9, 12, 232, 45, 146, 226]);
1860 }
1861 impl ::std::convert::From<INetFwOpenPorts> for ::windows::runtime::IUnknown {
1862     fn from(value: INetFwOpenPorts) -> Self {
1863         unsafe { ::std::mem::transmute(value) }
1864     }
1865 }
1866 impl ::std::convert::From<&INetFwOpenPorts> for ::windows::runtime::IUnknown {
1867     fn from(value: &INetFwOpenPorts) -> Self {
1868         ::std::convert::From::from(::std::clone::Clone::clone(value))
1869     }
1870 }
1871 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INetFwOpenPorts {
1872     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1873         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1874     }
1875 }
1876 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INetFwOpenPorts {
1877     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1878         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1879     }
1880 }
1881 #[cfg(feature = "Win32_System_Ole_Automation")]
1882 impl ::std::convert::From<INetFwOpenPorts> for super::super::System::Ole::Automation::IDispatch {
1883     fn from(value: INetFwOpenPorts) -> Self {
1884         unsafe { ::std::mem::transmute(value) }
1885     }
1886 }
1887 #[cfg(feature = "Win32_System_Ole_Automation")]
1888 impl ::std::convert::From<&INetFwOpenPorts> for super::super::System::Ole::Automation::IDispatch {
1889     fn from(value: &INetFwOpenPorts) -> Self {
1890         ::std::convert::From::from(::std::clone::Clone::clone(value))
1891     }
1892 }
1893 #[cfg(feature = "Win32_System_Ole_Automation")]
1894 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for INetFwOpenPorts {
1895     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
1896         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
1897     }
1898 }
1899 #[cfg(feature = "Win32_System_Ole_Automation")]
1900 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &INetFwOpenPorts {
1901     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
1902         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
1903     }
1904 }
1905 #[repr(C)]
1906 #[doc(hidden)]
1907 pub struct INetFwOpenPorts_abi(
1908     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1909     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1910     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1911     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
1912     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1913     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
1914     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
1915     #[cfg(not(feature = "Win32_Foundation"))] usize,
1916     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
1917     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
1918     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
1919     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut i32) -> ::windows::runtime::HRESULT,
1920     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, port: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1921     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, portnumber: i32, ipprotocol: NET_FW_IP_PROTOCOL) -> ::windows::runtime::HRESULT,
1922     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, portnumber: i32, ipprotocol: NET_FW_IP_PROTOCOL, openport: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1923     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, newenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1924 );
1925 #[repr(transparent)]
1926 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1927 pub struct INetFwPolicy(::windows::runtime::IUnknown);
1928 impl INetFwPolicy {
1929     pub unsafe fn CurrentProfile(&self) -> ::windows::runtime::Result<INetFwProfile> {
1930         let mut result__: <INetFwProfile as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1931         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<INetFwProfile>(result__)
1932     }
1933     pub unsafe fn GetProfileByType(&self, profiletype: NET_FW_PROFILE_TYPE) -> ::windows::runtime::Result<INetFwProfile> {
1934         let mut result__: <INetFwProfile as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1935         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(profiletype), &mut result__).from_abi::<INetFwProfile>(result__)
1936     }
1937 }
1938 unsafe impl ::windows::runtime::Interface for INetFwPolicy {
1939     type Vtable = INetFwPolicy_abi;
1940     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3563922552, 39625, 16392, [157, 199, 85, 99, 206, 85, 54, 204]);
1941 }
1942 impl ::std::convert::From<INetFwPolicy> for ::windows::runtime::IUnknown {
1943     fn from(value: INetFwPolicy) -> Self {
1944         unsafe { ::std::mem::transmute(value) }
1945     }
1946 }
1947 impl ::std::convert::From<&INetFwPolicy> for ::windows::runtime::IUnknown {
1948     fn from(value: &INetFwPolicy) -> Self {
1949         ::std::convert::From::from(::std::clone::Clone::clone(value))
1950     }
1951 }
1952 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INetFwPolicy {
1953     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1954         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1955     }
1956 }
1957 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INetFwPolicy {
1958     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1959         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1960     }
1961 }
1962 #[cfg(feature = "Win32_System_Ole_Automation")]
1963 impl ::std::convert::From<INetFwPolicy> for super::super::System::Ole::Automation::IDispatch {
1964     fn from(value: INetFwPolicy) -> Self {
1965         unsafe { ::std::mem::transmute(value) }
1966     }
1967 }
1968 #[cfg(feature = "Win32_System_Ole_Automation")]
1969 impl ::std::convert::From<&INetFwPolicy> for super::super::System::Ole::Automation::IDispatch {
1970     fn from(value: &INetFwPolicy) -> Self {
1971         ::std::convert::From::from(::std::clone::Clone::clone(value))
1972     }
1973 }
1974 #[cfg(feature = "Win32_System_Ole_Automation")]
1975 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for INetFwPolicy {
1976     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
1977         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
1978     }
1979 }
1980 #[cfg(feature = "Win32_System_Ole_Automation")]
1981 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &INetFwPolicy {
1982     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
1983         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
1984     }
1985 }
1986 #[repr(C)]
1987 #[doc(hidden)]
1988 pub struct INetFwPolicy_abi(
1989     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1990     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1991     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1992     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
1993     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1994     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
1995     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
1996     #[cfg(not(feature = "Win32_Foundation"))] usize,
1997     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
1998     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
1999     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
2000     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, profile: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2001     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, profiletype: NET_FW_PROFILE_TYPE, profile: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2002 );
2003 #[repr(transparent)]
2004 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2005 pub struct INetFwPolicy2(::windows::runtime::IUnknown);
2006 impl INetFwPolicy2 {
2007     pub unsafe fn CurrentProfileTypes(&self) -> ::windows::runtime::Result<i32> {
2008         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2009         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
2010     }
2011     pub unsafe fn FirewallEnabled(&self, profiletype: NET_FW_PROFILE_TYPE2) -> ::windows::runtime::Result<i16> {
2012         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2013         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(profiletype), &mut result__).from_abi::<i16>(result__)
2014     }
2015     pub unsafe fn SetFirewallEnabled(&self, profiletype: NET_FW_PROFILE_TYPE2, enabled: i16) -> ::windows::runtime::Result<()> {
2016         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(profiletype), ::std::mem::transmute(enabled)).ok()
2017     }
2018     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
2019     pub unsafe fn ExcludedInterfaces(&self, profiletype: NET_FW_PROFILE_TYPE2) -> ::windows::runtime::Result<super::super::System::Com::VARIANT> {
2020         let mut result__: <super::super::System::Com::VARIANT as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2021         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(profiletype), &mut result__).from_abi::<super::super::System::Com::VARIANT>(result__)
2022     }
2023     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
2024     pub unsafe fn SetExcludedInterfaces<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::System::Com::VARIANT>>(&self, profiletype: NET_FW_PROFILE_TYPE2, interfaces: Param1) -> ::windows::runtime::Result<()> {
2025         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(profiletype), interfaces.into_param().abi()).ok()
2026     }
2027     pub unsafe fn BlockAllInboundTraffic(&self, profiletype: NET_FW_PROFILE_TYPE2) -> ::windows::runtime::Result<i16> {
2028         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2029         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(profiletype), &mut result__).from_abi::<i16>(result__)
2030     }
2031     pub unsafe fn SetBlockAllInboundTraffic(&self, profiletype: NET_FW_PROFILE_TYPE2, block: i16) -> ::windows::runtime::Result<()> {
2032         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(profiletype), ::std::mem::transmute(block)).ok()
2033     }
2034     pub unsafe fn NotificationsDisabled(&self, profiletype: NET_FW_PROFILE_TYPE2) -> ::windows::runtime::Result<i16> {
2035         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2036         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(profiletype), &mut result__).from_abi::<i16>(result__)
2037     }
2038     pub unsafe fn SetNotificationsDisabled(&self, profiletype: NET_FW_PROFILE_TYPE2, disabled: i16) -> ::windows::runtime::Result<()> {
2039         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(profiletype), ::std::mem::transmute(disabled)).ok()
2040     }
2041     pub unsafe fn UnicastResponsesToMulticastBroadcastDisabled(&self, profiletype: NET_FW_PROFILE_TYPE2) -> ::windows::runtime::Result<i16> {
2042         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2043         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), ::std::mem::transmute(profiletype), &mut result__).from_abi::<i16>(result__)
2044     }
2045     pub unsafe fn SetUnicastResponsesToMulticastBroadcastDisabled(&self, profiletype: NET_FW_PROFILE_TYPE2, disabled: i16) -> ::windows::runtime::Result<()> {
2046         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), ::std::mem::transmute(profiletype), ::std::mem::transmute(disabled)).ok()
2047     }
2048     pub unsafe fn Rules(&self) -> ::windows::runtime::Result<INetFwRules> {
2049         let mut result__: <INetFwRules as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2050         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), &mut result__).from_abi::<INetFwRules>(result__)
2051     }
2052     pub unsafe fn ServiceRestriction(&self) -> ::windows::runtime::Result<INetFwServiceRestriction> {
2053         let mut result__: <INetFwServiceRestriction as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2054         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), &mut result__).from_abi::<INetFwServiceRestriction>(result__)
2055     }
2056     #[cfg(feature = "Win32_Foundation")]
2057     pub unsafe fn EnableRuleGroup<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, profiletypesbitmask: i32, group: Param1, enable: i16) -> ::windows::runtime::Result<()> {
2058         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(profiletypesbitmask), group.into_param().abi(), ::std::mem::transmute(enable)).ok()
2059     }
2060     #[cfg(feature = "Win32_Foundation")]
2061     pub unsafe fn IsRuleGroupEnabled<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, profiletypesbitmask: i32, group: Param1) -> ::windows::runtime::Result<i16> {
2062         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2063         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), ::std::mem::transmute(profiletypesbitmask), group.into_param().abi(), &mut result__).from_abi::<i16>(result__)
2064     }
2065     pub unsafe fn RestoreLocalFirewallDefaults(&self) -> ::windows::runtime::Result<()> {
2066         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self)).ok()
2067     }
2068     pub unsafe fn DefaultInboundAction(&self, profiletype: NET_FW_PROFILE_TYPE2) -> ::windows::runtime::Result<NET_FW_ACTION> {
2069         let mut result__: <NET_FW_ACTION as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2070         (::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self), ::std::mem::transmute(profiletype), &mut result__).from_abi::<NET_FW_ACTION>(result__)
2071     }
2072     pub unsafe fn SetDefaultInboundAction(&self, profiletype: NET_FW_PROFILE_TYPE2, action: NET_FW_ACTION) -> ::windows::runtime::Result<()> {
2073         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), ::std::mem::transmute(profiletype), ::std::mem::transmute(action)).ok()
2074     }
2075     pub unsafe fn DefaultOutboundAction(&self, profiletype: NET_FW_PROFILE_TYPE2) -> ::windows::runtime::Result<NET_FW_ACTION> {
2076         let mut result__: <NET_FW_ACTION as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2077         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), ::std::mem::transmute(profiletype), &mut result__).from_abi::<NET_FW_ACTION>(result__)
2078     }
2079     pub unsafe fn SetDefaultOutboundAction(&self, profiletype: NET_FW_PROFILE_TYPE2, action: NET_FW_ACTION) -> ::windows::runtime::Result<()> {
2080         (::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self), ::std::mem::transmute(profiletype), ::std::mem::transmute(action)).ok()
2081     }
2082     #[cfg(feature = "Win32_Foundation")]
2083     pub unsafe fn IsRuleGroupCurrentlyEnabled<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, group: Param0) -> ::windows::runtime::Result<i16> {
2084         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2085         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), group.into_param().abi(), &mut result__).from_abi::<i16>(result__)
2086     }
2087     pub unsafe fn LocalPolicyModifyState(&self) -> ::windows::runtime::Result<NET_FW_MODIFY_STATE> {
2088         let mut result__: <NET_FW_MODIFY_STATE as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2089         (::windows::runtime::Interface::vtable(self).28)(::std::mem::transmute_copy(self), &mut result__).from_abi::<NET_FW_MODIFY_STATE>(result__)
2090     }
2091 }
2092 unsafe impl ::windows::runtime::Interface for INetFwPolicy2 {
2093     type Vtable = INetFwPolicy2_abi;
2094     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2553434183, 50801, 16756, [141, 129, 222, 252, 211, 240, 49, 134]);
2095 }
2096 impl ::std::convert::From<INetFwPolicy2> for ::windows::runtime::IUnknown {
2097     fn from(value: INetFwPolicy2) -> Self {
2098         unsafe { ::std::mem::transmute(value) }
2099     }
2100 }
2101 impl ::std::convert::From<&INetFwPolicy2> for ::windows::runtime::IUnknown {
2102     fn from(value: &INetFwPolicy2) -> Self {
2103         ::std::convert::From::from(::std::clone::Clone::clone(value))
2104     }
2105 }
2106 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INetFwPolicy2 {
2107     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2108         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2109     }
2110 }
2111 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INetFwPolicy2 {
2112     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2113         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2114     }
2115 }
2116 #[cfg(feature = "Win32_System_Ole_Automation")]
2117 impl ::std::convert::From<INetFwPolicy2> for super::super::System::Ole::Automation::IDispatch {
2118     fn from(value: INetFwPolicy2) -> Self {
2119         unsafe { ::std::mem::transmute(value) }
2120     }
2121 }
2122 #[cfg(feature = "Win32_System_Ole_Automation")]
2123 impl ::std::convert::From<&INetFwPolicy2> for super::super::System::Ole::Automation::IDispatch {
2124     fn from(value: &INetFwPolicy2) -> Self {
2125         ::std::convert::From::from(::std::clone::Clone::clone(value))
2126     }
2127 }
2128 #[cfg(feature = "Win32_System_Ole_Automation")]
2129 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for INetFwPolicy2 {
2130     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
2131         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
2132     }
2133 }
2134 #[cfg(feature = "Win32_System_Ole_Automation")]
2135 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &INetFwPolicy2 {
2136     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
2137         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
2138     }
2139 }
2140 #[repr(C)]
2141 #[doc(hidden)]
2142 pub struct INetFwPolicy2_abi(
2143     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2144     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2145     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2146     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
2147     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2148     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
2149     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
2150     #[cfg(not(feature = "Win32_Foundation"))] usize,
2151     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
2152     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
2153     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
2154     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, profiletypesbitmask: *mut i32) -> ::windows::runtime::HRESULT,
2155     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, profiletype: NET_FW_PROFILE_TYPE2, enabled: *mut i16) -> ::windows::runtime::HRESULT,
2156     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, profiletype: NET_FW_PROFILE_TYPE2, enabled: i16) -> ::windows::runtime::HRESULT,
2157     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, profiletype: NET_FW_PROFILE_TYPE2, interfaces: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>) -> ::windows::runtime::HRESULT,
2158     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
2159     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, profiletype: NET_FW_PROFILE_TYPE2, interfaces: ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>) -> ::windows::runtime::HRESULT,
2160     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
2161     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, profiletype: NET_FW_PROFILE_TYPE2, block: *mut i16) -> ::windows::runtime::HRESULT,
2162     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, profiletype: NET_FW_PROFILE_TYPE2, block: i16) -> ::windows::runtime::HRESULT,
2163     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, profiletype: NET_FW_PROFILE_TYPE2, disabled: *mut i16) -> ::windows::runtime::HRESULT,
2164     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, profiletype: NET_FW_PROFILE_TYPE2, disabled: i16) -> ::windows::runtime::HRESULT,
2165     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, profiletype: NET_FW_PROFILE_TYPE2, disabled: *mut i16) -> ::windows::runtime::HRESULT,
2166     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, profiletype: NET_FW_PROFILE_TYPE2, disabled: i16) -> ::windows::runtime::HRESULT,
2167     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, rules: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2168     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, servicerestriction: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2169     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, profiletypesbitmask: i32, group: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, enable: i16) -> ::windows::runtime::HRESULT,
2170     #[cfg(not(feature = "Win32_Foundation"))] usize,
2171     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, profiletypesbitmask: i32, group: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, enabled: *mut i16) -> ::windows::runtime::HRESULT,
2172     #[cfg(not(feature = "Win32_Foundation"))] usize,
2173     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2174     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, profiletype: NET_FW_PROFILE_TYPE2, action: *mut NET_FW_ACTION) -> ::windows::runtime::HRESULT,
2175     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, profiletype: NET_FW_PROFILE_TYPE2, action: NET_FW_ACTION) -> ::windows::runtime::HRESULT,
2176     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, profiletype: NET_FW_PROFILE_TYPE2, action: *mut NET_FW_ACTION) -> ::windows::runtime::HRESULT,
2177     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, profiletype: NET_FW_PROFILE_TYPE2, action: NET_FW_ACTION) -> ::windows::runtime::HRESULT,
2178     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, group: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, enabled: *mut i16) -> ::windows::runtime::HRESULT,
2179     #[cfg(not(feature = "Win32_Foundation"))] usize,
2180     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, modifystate: *mut NET_FW_MODIFY_STATE) -> ::windows::runtime::HRESULT,
2181 );
2182 #[repr(transparent)]
2183 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2184 pub struct INetFwProduct(::windows::runtime::IUnknown);
2185 impl INetFwProduct {
2186     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
2187     pub unsafe fn RuleCategories(&self) -> ::windows::runtime::Result<super::super::System::Com::VARIANT> {
2188         let mut result__: <super::super::System::Com::VARIANT as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2189         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::System::Com::VARIANT>(result__)
2190     }
2191     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
2192     pub unsafe fn SetRuleCategories<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::System::Com::VARIANT>>(&self, rulecategories: Param0) -> ::windows::runtime::Result<()> {
2193         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), rulecategories.into_param().abi()).ok()
2194     }
2195     #[cfg(feature = "Win32_Foundation")]
2196     pub unsafe fn DisplayName(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2197         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2198         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2199     }
2200     #[cfg(feature = "Win32_Foundation")]
2201     pub unsafe fn SetDisplayName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, displayname: Param0) -> ::windows::runtime::Result<()> {
2202         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), displayname.into_param().abi()).ok()
2203     }
2204     #[cfg(feature = "Win32_Foundation")]
2205     pub unsafe fn PathToSignedProductExe(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2206         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2207         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2208     }
2209 }
2210 unsafe impl ::windows::runtime::Interface for INetFwProduct {
2211     type Vtable = INetFwProduct_abi;
2212     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1904744089, 6388, 17803, [184, 146, 63, 252, 229, 224, 127, 117]);
2213 }
2214 impl ::std::convert::From<INetFwProduct> for ::windows::runtime::IUnknown {
2215     fn from(value: INetFwProduct) -> Self {
2216         unsafe { ::std::mem::transmute(value) }
2217     }
2218 }
2219 impl ::std::convert::From<&INetFwProduct> for ::windows::runtime::IUnknown {
2220     fn from(value: &INetFwProduct) -> Self {
2221         ::std::convert::From::from(::std::clone::Clone::clone(value))
2222     }
2223 }
2224 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INetFwProduct {
2225     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2226         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2227     }
2228 }
2229 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INetFwProduct {
2230     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2231         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2232     }
2233 }
2234 #[cfg(feature = "Win32_System_Ole_Automation")]
2235 impl ::std::convert::From<INetFwProduct> for super::super::System::Ole::Automation::IDispatch {
2236     fn from(value: INetFwProduct) -> Self {
2237         unsafe { ::std::mem::transmute(value) }
2238     }
2239 }
2240 #[cfg(feature = "Win32_System_Ole_Automation")]
2241 impl ::std::convert::From<&INetFwProduct> for super::super::System::Ole::Automation::IDispatch {
2242     fn from(value: &INetFwProduct) -> Self {
2243         ::std::convert::From::from(::std::clone::Clone::clone(value))
2244     }
2245 }
2246 #[cfg(feature = "Win32_System_Ole_Automation")]
2247 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for INetFwProduct {
2248     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
2249         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
2250     }
2251 }
2252 #[cfg(feature = "Win32_System_Ole_Automation")]
2253 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &INetFwProduct {
2254     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
2255         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
2256     }
2257 }
2258 #[repr(C)]
2259 #[doc(hidden)]
2260 pub struct INetFwProduct_abi(
2261     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2262     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2263     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2264     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
2265     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2266     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
2267     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
2268     #[cfg(not(feature = "Win32_Foundation"))] usize,
2269     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
2270     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
2271     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
2272     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, rulecategories: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>) -> ::windows::runtime::HRESULT,
2273     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
2274     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, rulecategories: ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>) -> ::windows::runtime::HRESULT,
2275     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
2276     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, displayname: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2277     #[cfg(not(feature = "Win32_Foundation"))] usize,
2278     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, displayname: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2279     #[cfg(not(feature = "Win32_Foundation"))] usize,
2280     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, path: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2281     #[cfg(not(feature = "Win32_Foundation"))] usize,
2282 );
2283 #[repr(transparent)]
2284 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2285 pub struct INetFwProducts(::windows::runtime::IUnknown);
2286 impl INetFwProducts {
2287     pub unsafe fn Count(&self) -> ::windows::runtime::Result<i32> {
2288         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2289         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
2290     }
2291     pub unsafe fn Register<'a, Param0: ::windows::runtime::IntoParam<'a, INetFwProduct>>(&self, product: Param0) -> ::windows::runtime::Result<::windows::runtime::IUnknown> {
2292         let mut result__: <::windows::runtime::IUnknown as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2293         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), product.into_param().abi(), &mut result__).from_abi::<::windows::runtime::IUnknown>(result__)
2294     }
2295     pub unsafe fn Item(&self, index: i32) -> ::windows::runtime::Result<INetFwProduct> {
2296         let mut result__: <INetFwProduct as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2297         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), &mut result__).from_abi::<INetFwProduct>(result__)
2298     }
2299     pub unsafe fn _NewEnum(&self) -> ::windows::runtime::Result<::windows::runtime::IUnknown> {
2300         let mut result__: <::windows::runtime::IUnknown as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2301         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), &mut result__).from_abi::<::windows::runtime::IUnknown>(result__)
2302     }
2303 }
2304 unsafe impl ::windows::runtime::Interface for INetFwProducts {
2305     type Vtable = INetFwProducts_abi;
2306     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(971716320, 8343, 16573, [138, 242, 99, 161, 59, 82, 83, 98]);
2307 }
2308 impl ::std::convert::From<INetFwProducts> for ::windows::runtime::IUnknown {
2309     fn from(value: INetFwProducts) -> Self {
2310         unsafe { ::std::mem::transmute(value) }
2311     }
2312 }
2313 impl ::std::convert::From<&INetFwProducts> for ::windows::runtime::IUnknown {
2314     fn from(value: &INetFwProducts) -> Self {
2315         ::std::convert::From::from(::std::clone::Clone::clone(value))
2316     }
2317 }
2318 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INetFwProducts {
2319     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2320         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2321     }
2322 }
2323 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INetFwProducts {
2324     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2325         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2326     }
2327 }
2328 #[cfg(feature = "Win32_System_Ole_Automation")]
2329 impl ::std::convert::From<INetFwProducts> for super::super::System::Ole::Automation::IDispatch {
2330     fn from(value: INetFwProducts) -> Self {
2331         unsafe { ::std::mem::transmute(value) }
2332     }
2333 }
2334 #[cfg(feature = "Win32_System_Ole_Automation")]
2335 impl ::std::convert::From<&INetFwProducts> for super::super::System::Ole::Automation::IDispatch {
2336     fn from(value: &INetFwProducts) -> Self {
2337         ::std::convert::From::from(::std::clone::Clone::clone(value))
2338     }
2339 }
2340 #[cfg(feature = "Win32_System_Ole_Automation")]
2341 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for INetFwProducts {
2342     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
2343         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
2344     }
2345 }
2346 #[cfg(feature = "Win32_System_Ole_Automation")]
2347 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &INetFwProducts {
2348     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
2349         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
2350     }
2351 }
2352 #[repr(C)]
2353 #[doc(hidden)]
2354 pub struct INetFwProducts_abi(
2355     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2356     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2357     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2358     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
2359     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2360     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
2361     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
2362     #[cfg(not(feature = "Win32_Foundation"))] usize,
2363     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
2364     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
2365     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
2366     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut i32) -> ::windows::runtime::HRESULT,
2367     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, product: ::windows::runtime::RawPtr, registration: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2368     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: i32, product: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2369     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, newenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2370 );
2371 #[repr(transparent)]
2372 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2373 pub struct INetFwProfile(::windows::runtime::IUnknown);
2374 impl INetFwProfile {
2375     pub unsafe fn Type(&self) -> ::windows::runtime::Result<NET_FW_PROFILE_TYPE> {
2376         let mut result__: <NET_FW_PROFILE_TYPE as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2377         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<NET_FW_PROFILE_TYPE>(result__)
2378     }
2379     pub unsafe fn FirewallEnabled(&self) -> ::windows::runtime::Result<i16> {
2380         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2381         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i16>(result__)
2382     }
2383     pub unsafe fn SetFirewallEnabled(&self, enabled: i16) -> ::windows::runtime::Result<()> {
2384         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(enabled)).ok()
2385     }
2386     pub unsafe fn ExceptionsNotAllowed(&self) -> ::windows::runtime::Result<i16> {
2387         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2388         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i16>(result__)
2389     }
2390     pub unsafe fn SetExceptionsNotAllowed(&self, notallowed: i16) -> ::windows::runtime::Result<()> {
2391         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(notallowed)).ok()
2392     }
2393     pub unsafe fn NotificationsDisabled(&self) -> ::windows::runtime::Result<i16> {
2394         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2395         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i16>(result__)
2396     }
2397     pub unsafe fn SetNotificationsDisabled(&self, disabled: i16) -> ::windows::runtime::Result<()> {
2398         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(disabled)).ok()
2399     }
2400     pub unsafe fn UnicastResponsesToMulticastBroadcastDisabled(&self) -> ::windows::runtime::Result<i16> {
2401         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2402         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i16>(result__)
2403     }
2404     pub unsafe fn SetUnicastResponsesToMulticastBroadcastDisabled(&self, disabled: i16) -> ::windows::runtime::Result<()> {
2405         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(disabled)).ok()
2406     }
2407     pub unsafe fn RemoteAdminSettings(&self) -> ::windows::runtime::Result<INetFwRemoteAdminSettings> {
2408         let mut result__: <INetFwRemoteAdminSettings as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2409         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), &mut result__).from_abi::<INetFwRemoteAdminSettings>(result__)
2410     }
2411     pub unsafe fn IcmpSettings(&self) -> ::windows::runtime::Result<INetFwIcmpSettings> {
2412         let mut result__: <INetFwIcmpSettings as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2413         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), &mut result__).from_abi::<INetFwIcmpSettings>(result__)
2414     }
2415     pub unsafe fn GloballyOpenPorts(&self) -> ::windows::runtime::Result<INetFwOpenPorts> {
2416         let mut result__: <INetFwOpenPorts as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2417         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), &mut result__).from_abi::<INetFwOpenPorts>(result__)
2418     }
2419     pub unsafe fn Services(&self) -> ::windows::runtime::Result<INetFwServices> {
2420         let mut result__: <INetFwServices as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2421         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), &mut result__).from_abi::<INetFwServices>(result__)
2422     }
2423     pub unsafe fn AuthorizedApplications(&self) -> ::windows::runtime::Result<INetFwAuthorizedApplications> {
2424         let mut result__: <INetFwAuthorizedApplications as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2425         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), &mut result__).from_abi::<INetFwAuthorizedApplications>(result__)
2426     }
2427 }
2428 unsafe impl ::windows::runtime::Interface for INetFwProfile {
2429     type Vtable = INetFwProfile_abi;
2430     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(390729178, 59897, 17565, [153, 59, 33, 171, 102, 124, 164, 86]);
2431 }
2432 impl ::std::convert::From<INetFwProfile> for ::windows::runtime::IUnknown {
2433     fn from(value: INetFwProfile) -> Self {
2434         unsafe { ::std::mem::transmute(value) }
2435     }
2436 }
2437 impl ::std::convert::From<&INetFwProfile> for ::windows::runtime::IUnknown {
2438     fn from(value: &INetFwProfile) -> Self {
2439         ::std::convert::From::from(::std::clone::Clone::clone(value))
2440     }
2441 }
2442 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INetFwProfile {
2443     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2444         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2445     }
2446 }
2447 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INetFwProfile {
2448     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2449         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2450     }
2451 }
2452 #[cfg(feature = "Win32_System_Ole_Automation")]
2453 impl ::std::convert::From<INetFwProfile> for super::super::System::Ole::Automation::IDispatch {
2454     fn from(value: INetFwProfile) -> Self {
2455         unsafe { ::std::mem::transmute(value) }
2456     }
2457 }
2458 #[cfg(feature = "Win32_System_Ole_Automation")]
2459 impl ::std::convert::From<&INetFwProfile> for super::super::System::Ole::Automation::IDispatch {
2460     fn from(value: &INetFwProfile) -> Self {
2461         ::std::convert::From::from(::std::clone::Clone::clone(value))
2462     }
2463 }
2464 #[cfg(feature = "Win32_System_Ole_Automation")]
2465 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for INetFwProfile {
2466     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
2467         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
2468     }
2469 }
2470 #[cfg(feature = "Win32_System_Ole_Automation")]
2471 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &INetFwProfile {
2472     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
2473         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
2474     }
2475 }
2476 #[repr(C)]
2477 #[doc(hidden)]
2478 pub struct INetFwProfile_abi(
2479     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2480     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2481     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2482     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
2483     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2484     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
2485     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
2486     #[cfg(not(feature = "Win32_Foundation"))] usize,
2487     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
2488     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
2489     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
2490     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, r#type: *mut NET_FW_PROFILE_TYPE) -> ::windows::runtime::HRESULT,
2491     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enabled: *mut i16) -> ::windows::runtime::HRESULT,
2492     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enabled: i16) -> ::windows::runtime::HRESULT,
2493     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, notallowed: *mut i16) -> ::windows::runtime::HRESULT,
2494     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, notallowed: i16) -> ::windows::runtime::HRESULT,
2495     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, disabled: *mut i16) -> ::windows::runtime::HRESULT,
2496     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, disabled: i16) -> ::windows::runtime::HRESULT,
2497     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, disabled: *mut i16) -> ::windows::runtime::HRESULT,
2498     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, disabled: i16) -> ::windows::runtime::HRESULT,
2499     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, remoteadminsettings: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2500     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, icmpsettings: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2501     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, openports: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2502     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, services: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2503     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, apps: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2504 );
2505 #[repr(transparent)]
2506 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2507 pub struct INetFwRemoteAdminSettings(::windows::runtime::IUnknown);
2508 impl INetFwRemoteAdminSettings {
2509     pub unsafe fn IpVersion(&self) -> ::windows::runtime::Result<NET_FW_IP_VERSION> {
2510         let mut result__: <NET_FW_IP_VERSION as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2511         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<NET_FW_IP_VERSION>(result__)
2512     }
2513     pub unsafe fn SetIpVersion(&self, ipversion: NET_FW_IP_VERSION) -> ::windows::runtime::Result<()> {
2514         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(ipversion)).ok()
2515     }
2516     pub unsafe fn Scope(&self) -> ::windows::runtime::Result<NET_FW_SCOPE> {
2517         let mut result__: <NET_FW_SCOPE as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2518         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<NET_FW_SCOPE>(result__)
2519     }
2520     pub unsafe fn SetScope(&self, scope: NET_FW_SCOPE) -> ::windows::runtime::Result<()> {
2521         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(scope)).ok()
2522     }
2523     #[cfg(feature = "Win32_Foundation")]
2524     pub unsafe fn RemoteAddresses(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2525         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2526         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2527     }
2528     #[cfg(feature = "Win32_Foundation")]
2529     pub unsafe fn SetRemoteAddresses<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, remoteaddrs: Param0) -> ::windows::runtime::Result<()> {
2530         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), remoteaddrs.into_param().abi()).ok()
2531     }
2532     pub unsafe fn Enabled(&self) -> ::windows::runtime::Result<i16> {
2533         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2534         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i16>(result__)
2535     }
2536     pub unsafe fn SetEnabled(&self, enabled: i16) -> ::windows::runtime::Result<()> {
2537         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(enabled)).ok()
2538     }
2539 }
2540 unsafe impl ::windows::runtime::Interface for INetFwRemoteAdminSettings {
2541     type Vtable = INetFwRemoteAdminSettings_abi;
2542     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3569274335, 28531, 19075, [184, 50, 156, 102, 135, 76, 210, 14]);
2543 }
2544 impl ::std::convert::From<INetFwRemoteAdminSettings> for ::windows::runtime::IUnknown {
2545     fn from(value: INetFwRemoteAdminSettings) -> Self {
2546         unsafe { ::std::mem::transmute(value) }
2547     }
2548 }
2549 impl ::std::convert::From<&INetFwRemoteAdminSettings> for ::windows::runtime::IUnknown {
2550     fn from(value: &INetFwRemoteAdminSettings) -> Self {
2551         ::std::convert::From::from(::std::clone::Clone::clone(value))
2552     }
2553 }
2554 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INetFwRemoteAdminSettings {
2555     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2556         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2557     }
2558 }
2559 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INetFwRemoteAdminSettings {
2560     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2561         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2562     }
2563 }
2564 #[cfg(feature = "Win32_System_Ole_Automation")]
2565 impl ::std::convert::From<INetFwRemoteAdminSettings> for super::super::System::Ole::Automation::IDispatch {
2566     fn from(value: INetFwRemoteAdminSettings) -> Self {
2567         unsafe { ::std::mem::transmute(value) }
2568     }
2569 }
2570 #[cfg(feature = "Win32_System_Ole_Automation")]
2571 impl ::std::convert::From<&INetFwRemoteAdminSettings> for super::super::System::Ole::Automation::IDispatch {
2572     fn from(value: &INetFwRemoteAdminSettings) -> Self {
2573         ::std::convert::From::from(::std::clone::Clone::clone(value))
2574     }
2575 }
2576 #[cfg(feature = "Win32_System_Ole_Automation")]
2577 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for INetFwRemoteAdminSettings {
2578     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
2579         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
2580     }
2581 }
2582 #[cfg(feature = "Win32_System_Ole_Automation")]
2583 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &INetFwRemoteAdminSettings {
2584     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
2585         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
2586     }
2587 }
2588 #[repr(C)]
2589 #[doc(hidden)]
2590 pub struct INetFwRemoteAdminSettings_abi(
2591     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2592     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2593     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2594     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
2595     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2596     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
2597     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
2598     #[cfg(not(feature = "Win32_Foundation"))] usize,
2599     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
2600     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
2601     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
2602     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ipversion: *mut NET_FW_IP_VERSION) -> ::windows::runtime::HRESULT,
2603     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ipversion: NET_FW_IP_VERSION) -> ::windows::runtime::HRESULT,
2604     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, scope: *mut NET_FW_SCOPE) -> ::windows::runtime::HRESULT,
2605     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, scope: NET_FW_SCOPE) -> ::windows::runtime::HRESULT,
2606     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, remoteaddrs: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2607     #[cfg(not(feature = "Win32_Foundation"))] usize,
2608     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, remoteaddrs: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2609     #[cfg(not(feature = "Win32_Foundation"))] usize,
2610     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enabled: *mut i16) -> ::windows::runtime::HRESULT,
2611     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enabled: i16) -> ::windows::runtime::HRESULT,
2612 );
2613 #[repr(transparent)]
2614 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2615 pub struct INetFwRule(::windows::runtime::IUnknown);
2616 impl INetFwRule {
2617     #[cfg(feature = "Win32_Foundation")]
2618     pub unsafe fn Name(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2619         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2620         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2621     }
2622     #[cfg(feature = "Win32_Foundation")]
2623     pub unsafe fn SetName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, name: Param0) -> ::windows::runtime::Result<()> {
2624         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), name.into_param().abi()).ok()
2625     }
2626     #[cfg(feature = "Win32_Foundation")]
2627     pub unsafe fn Description(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2628         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2629         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2630     }
2631     #[cfg(feature = "Win32_Foundation")]
2632     pub unsafe fn SetDescription<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, desc: Param0) -> ::windows::runtime::Result<()> {
2633         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), desc.into_param().abi()).ok()
2634     }
2635     #[cfg(feature = "Win32_Foundation")]
2636     pub unsafe fn ApplicationName(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2637         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2638         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2639     }
2640     #[cfg(feature = "Win32_Foundation")]
2641     pub unsafe fn SetApplicationName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, imagefilename: Param0) -> ::windows::runtime::Result<()> {
2642         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), imagefilename.into_param().abi()).ok()
2643     }
2644     #[cfg(feature = "Win32_Foundation")]
2645     pub unsafe fn ServiceName(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2646         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2647         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2648     }
2649     #[cfg(feature = "Win32_Foundation")]
2650     pub unsafe fn SetServiceName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, servicename: Param0) -> ::windows::runtime::Result<()> {
2651         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), servicename.into_param().abi()).ok()
2652     }
2653     pub unsafe fn Protocol(&self) -> ::windows::runtime::Result<i32> {
2654         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2655         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
2656     }
2657     pub unsafe fn SetProtocol(&self, protocol: i32) -> ::windows::runtime::Result<()> {
2658         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), ::std::mem::transmute(protocol)).ok()
2659     }
2660     #[cfg(feature = "Win32_Foundation")]
2661     pub unsafe fn LocalPorts(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2662         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2663         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2664     }
2665     #[cfg(feature = "Win32_Foundation")]
2666     pub unsafe fn SetLocalPorts<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, portnumbers: Param0) -> ::windows::runtime::Result<()> {
2667         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), portnumbers.into_param().abi()).ok()
2668     }
2669     #[cfg(feature = "Win32_Foundation")]
2670     pub unsafe fn RemotePorts(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2671         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2672         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2673     }
2674     #[cfg(feature = "Win32_Foundation")]
2675     pub unsafe fn SetRemotePorts<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, portnumbers: Param0) -> ::windows::runtime::Result<()> {
2676         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), portnumbers.into_param().abi()).ok()
2677     }
2678     #[cfg(feature = "Win32_Foundation")]
2679     pub unsafe fn LocalAddresses(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2680         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2681         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2682     }
2683     #[cfg(feature = "Win32_Foundation")]
2684     pub unsafe fn SetLocalAddresses<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, localaddrs: Param0) -> ::windows::runtime::Result<()> {
2685         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), localaddrs.into_param().abi()).ok()
2686     }
2687     #[cfg(feature = "Win32_Foundation")]
2688     pub unsafe fn RemoteAddresses(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2689         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2690         (::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2691     }
2692     #[cfg(feature = "Win32_Foundation")]
2693     pub unsafe fn SetRemoteAddresses<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, remoteaddrs: Param0) -> ::windows::runtime::Result<()> {
2694         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), remoteaddrs.into_param().abi()).ok()
2695     }
2696     #[cfg(feature = "Win32_Foundation")]
2697     pub unsafe fn IcmpTypesAndCodes(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2698         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2699         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2700     }
2701     #[cfg(feature = "Win32_Foundation")]
2702     pub unsafe fn SetIcmpTypesAndCodes<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, icmptypesandcodes: Param0) -> ::windows::runtime::Result<()> {
2703         (::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self), icmptypesandcodes.into_param().abi()).ok()
2704     }
2705     pub unsafe fn Direction(&self) -> ::windows::runtime::Result<NET_FW_RULE_DIRECTION> {
2706         let mut result__: <NET_FW_RULE_DIRECTION as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2707         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), &mut result__).from_abi::<NET_FW_RULE_DIRECTION>(result__)
2708     }
2709     pub unsafe fn SetDirection(&self, dir: NET_FW_RULE_DIRECTION) -> ::windows::runtime::Result<()> {
2710         (::windows::runtime::Interface::vtable(self).28)(::std::mem::transmute_copy(self), ::std::mem::transmute(dir)).ok()
2711     }
2712     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
2713     pub unsafe fn Interfaces(&self) -> ::windows::runtime::Result<super::super::System::Com::VARIANT> {
2714         let mut result__: <super::super::System::Com::VARIANT as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2715         (::windows::runtime::Interface::vtable(self).29)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::System::Com::VARIANT>(result__)
2716     }
2717     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
2718     pub unsafe fn SetInterfaces<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::System::Com::VARIANT>>(&self, interfaces: Param0) -> ::windows::runtime::Result<()> {
2719         (::windows::runtime::Interface::vtable(self).30)(::std::mem::transmute_copy(self), interfaces.into_param().abi()).ok()
2720     }
2721     #[cfg(feature = "Win32_Foundation")]
2722     pub unsafe fn InterfaceTypes(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2723         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2724         (::windows::runtime::Interface::vtable(self).31)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2725     }
2726     #[cfg(feature = "Win32_Foundation")]
2727     pub unsafe fn SetInterfaceTypes<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, interfacetypes: Param0) -> ::windows::runtime::Result<()> {
2728         (::windows::runtime::Interface::vtable(self).32)(::std::mem::transmute_copy(self), interfacetypes.into_param().abi()).ok()
2729     }
2730     pub unsafe fn Enabled(&self) -> ::windows::runtime::Result<i16> {
2731         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2732         (::windows::runtime::Interface::vtable(self).33)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i16>(result__)
2733     }
2734     pub unsafe fn SetEnabled(&self, enabled: i16) -> ::windows::runtime::Result<()> {
2735         (::windows::runtime::Interface::vtable(self).34)(::std::mem::transmute_copy(self), ::std::mem::transmute(enabled)).ok()
2736     }
2737     #[cfg(feature = "Win32_Foundation")]
2738     pub unsafe fn Grouping(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2739         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2740         (::windows::runtime::Interface::vtable(self).35)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2741     }
2742     #[cfg(feature = "Win32_Foundation")]
2743     pub unsafe fn SetGrouping<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, context: Param0) -> ::windows::runtime::Result<()> {
2744         (::windows::runtime::Interface::vtable(self).36)(::std::mem::transmute_copy(self), context.into_param().abi()).ok()
2745     }
2746     pub unsafe fn Profiles(&self) -> ::windows::runtime::Result<i32> {
2747         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2748         (::windows::runtime::Interface::vtable(self).37)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
2749     }
2750     pub unsafe fn SetProfiles(&self, profiletypesbitmask: i32) -> ::windows::runtime::Result<()> {
2751         (::windows::runtime::Interface::vtable(self).38)(::std::mem::transmute_copy(self), ::std::mem::transmute(profiletypesbitmask)).ok()
2752     }
2753     pub unsafe fn EdgeTraversal(&self) -> ::windows::runtime::Result<i16> {
2754         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2755         (::windows::runtime::Interface::vtable(self).39)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i16>(result__)
2756     }
2757     pub unsafe fn SetEdgeTraversal(&self, enabled: i16) -> ::windows::runtime::Result<()> {
2758         (::windows::runtime::Interface::vtable(self).40)(::std::mem::transmute_copy(self), ::std::mem::transmute(enabled)).ok()
2759     }
2760     pub unsafe fn Action(&self) -> ::windows::runtime::Result<NET_FW_ACTION> {
2761         let mut result__: <NET_FW_ACTION as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2762         (::windows::runtime::Interface::vtable(self).41)(::std::mem::transmute_copy(self), &mut result__).from_abi::<NET_FW_ACTION>(result__)
2763     }
2764     pub unsafe fn SetAction(&self, action: NET_FW_ACTION) -> ::windows::runtime::Result<()> {
2765         (::windows::runtime::Interface::vtable(self).42)(::std::mem::transmute_copy(self), ::std::mem::transmute(action)).ok()
2766     }
2767 }
2768 unsafe impl ::windows::runtime::Interface for INetFwRule {
2769     type Vtable = INetFwRule_abi;
2770     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2938309927, 47802, 20034, [172, 237, 245, 36, 242, 44, 252, 226]);
2771 }
2772 impl ::std::convert::From<INetFwRule> for ::windows::runtime::IUnknown {
2773     fn from(value: INetFwRule) -> Self {
2774         unsafe { ::std::mem::transmute(value) }
2775     }
2776 }
2777 impl ::std::convert::From<&INetFwRule> for ::windows::runtime::IUnknown {
2778     fn from(value: &INetFwRule) -> Self {
2779         ::std::convert::From::from(::std::clone::Clone::clone(value))
2780     }
2781 }
2782 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INetFwRule {
2783     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2784         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2785     }
2786 }
2787 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INetFwRule {
2788     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2789         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2790     }
2791 }
2792 #[cfg(feature = "Win32_System_Ole_Automation")]
2793 impl ::std::convert::From<INetFwRule> for super::super::System::Ole::Automation::IDispatch {
2794     fn from(value: INetFwRule) -> Self {
2795         unsafe { ::std::mem::transmute(value) }
2796     }
2797 }
2798 #[cfg(feature = "Win32_System_Ole_Automation")]
2799 impl ::std::convert::From<&INetFwRule> for super::super::System::Ole::Automation::IDispatch {
2800     fn from(value: &INetFwRule) -> Self {
2801         ::std::convert::From::from(::std::clone::Clone::clone(value))
2802     }
2803 }
2804 #[cfg(feature = "Win32_System_Ole_Automation")]
2805 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for INetFwRule {
2806     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
2807         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
2808     }
2809 }
2810 #[cfg(feature = "Win32_System_Ole_Automation")]
2811 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &INetFwRule {
2812     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
2813         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
2814     }
2815 }
2816 #[repr(C)]
2817 #[doc(hidden)]
2818 pub struct INetFwRule_abi(
2819     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2820     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2821     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2822     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
2823     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2824     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
2825     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
2826     #[cfg(not(feature = "Win32_Foundation"))] usize,
2827     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
2828     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
2829     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
2830     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2831     #[cfg(not(feature = "Win32_Foundation"))] usize,
2832     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2833     #[cfg(not(feature = "Win32_Foundation"))] usize,
2834     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, desc: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2835     #[cfg(not(feature = "Win32_Foundation"))] usize,
2836     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, desc: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2837     #[cfg(not(feature = "Win32_Foundation"))] usize,
2838     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, imagefilename: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2839     #[cfg(not(feature = "Win32_Foundation"))] usize,
2840     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, imagefilename: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2841     #[cfg(not(feature = "Win32_Foundation"))] usize,
2842     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, servicename: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2843     #[cfg(not(feature = "Win32_Foundation"))] usize,
2844     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, servicename: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2845     #[cfg(not(feature = "Win32_Foundation"))] usize,
2846     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, protocol: *mut i32) -> ::windows::runtime::HRESULT,
2847     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, protocol: i32) -> ::windows::runtime::HRESULT,
2848     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, portnumbers: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2849     #[cfg(not(feature = "Win32_Foundation"))] usize,
2850     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, portnumbers: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2851     #[cfg(not(feature = "Win32_Foundation"))] usize,
2852     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, portnumbers: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2853     #[cfg(not(feature = "Win32_Foundation"))] usize,
2854     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, portnumbers: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2855     #[cfg(not(feature = "Win32_Foundation"))] usize,
2856     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, localaddrs: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2857     #[cfg(not(feature = "Win32_Foundation"))] usize,
2858     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, localaddrs: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2859     #[cfg(not(feature = "Win32_Foundation"))] usize,
2860     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, remoteaddrs: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2861     #[cfg(not(feature = "Win32_Foundation"))] usize,
2862     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, remoteaddrs: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2863     #[cfg(not(feature = "Win32_Foundation"))] usize,
2864     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, icmptypesandcodes: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2865     #[cfg(not(feature = "Win32_Foundation"))] usize,
2866     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, icmptypesandcodes: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2867     #[cfg(not(feature = "Win32_Foundation"))] usize,
2868     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dir: *mut NET_FW_RULE_DIRECTION) -> ::windows::runtime::HRESULT,
2869     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dir: NET_FW_RULE_DIRECTION) -> ::windows::runtime::HRESULT,
2870     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, interfaces: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>) -> ::windows::runtime::HRESULT,
2871     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
2872     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, interfaces: ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>) -> ::windows::runtime::HRESULT,
2873     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
2874     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, interfacetypes: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2875     #[cfg(not(feature = "Win32_Foundation"))] usize,
2876     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, interfacetypes: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2877     #[cfg(not(feature = "Win32_Foundation"))] usize,
2878     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enabled: *mut i16) -> ::windows::runtime::HRESULT,
2879     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enabled: i16) -> ::windows::runtime::HRESULT,
2880     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, context: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2881     #[cfg(not(feature = "Win32_Foundation"))] usize,
2882     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, context: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2883     #[cfg(not(feature = "Win32_Foundation"))] usize,
2884     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, profiletypesbitmask: *mut i32) -> ::windows::runtime::HRESULT,
2885     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, profiletypesbitmask: i32) -> ::windows::runtime::HRESULT,
2886     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enabled: *mut i16) -> ::windows::runtime::HRESULT,
2887     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enabled: i16) -> ::windows::runtime::HRESULT,
2888     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, action: *mut NET_FW_ACTION) -> ::windows::runtime::HRESULT,
2889     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, action: NET_FW_ACTION) -> ::windows::runtime::HRESULT,
2890 );
2891 #[repr(transparent)]
2892 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2893 pub struct INetFwRule2(::windows::runtime::IUnknown);
2894 impl INetFwRule2 {
2895     pub unsafe fn GetTypeInfoCount(&self) -> ::windows::runtime::Result<u32> {
2896         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2897         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
2898     }
2899     #[cfg(feature = "Win32_System_Ole_Automation")]
2900     pub unsafe fn GetTypeInfo(&self, itinfo: u32, lcid: u32) -> ::windows::runtime::Result<super::super::System::Ole::Automation::ITypeInfo> {
2901         let mut result__: <super::super::System::Ole::Automation::ITypeInfo as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2902         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(itinfo), ::std::mem::transmute(lcid), &mut result__).from_abi::<super::super::System::Ole::Automation::ITypeInfo>(result__)
2903     }
2904     #[cfg(feature = "Win32_Foundation")]
2905     pub unsafe fn GetIDsOfNames(&self, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::Result<()> {
2906         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(riid), ::std::mem::transmute(rgsznames), ::std::mem::transmute(cnames), ::std::mem::transmute(lcid), ::std::mem::transmute(rgdispid)).ok()
2907     }
2908     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
2909     pub unsafe fn Invoke(&self, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut super::super::System::Com::VARIANT, pexcepinfo: *mut super::super::System::Ole::Automation::EXCEPINFO, puargerr: *mut u32) -> ::windows::runtime::Result<()> {
2910         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(dispidmember), ::std::mem::transmute(riid), ::std::mem::transmute(lcid), ::std::mem::transmute(wflags), ::std::mem::transmute(pdispparams), ::std::mem::transmute(pvarresult), ::std::mem::transmute(pexcepinfo), ::std::mem::transmute(puargerr)).ok()
2911     }
2912     #[cfg(feature = "Win32_Foundation")]
2913     pub unsafe fn Name(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2914         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2915         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2916     }
2917     #[cfg(feature = "Win32_Foundation")]
2918     pub unsafe fn SetName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, name: Param0) -> ::windows::runtime::Result<()> {
2919         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), name.into_param().abi()).ok()
2920     }
2921     #[cfg(feature = "Win32_Foundation")]
2922     pub unsafe fn Description(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2923         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2924         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2925     }
2926     #[cfg(feature = "Win32_Foundation")]
2927     pub unsafe fn SetDescription<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, desc: Param0) -> ::windows::runtime::Result<()> {
2928         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), desc.into_param().abi()).ok()
2929     }
2930     #[cfg(feature = "Win32_Foundation")]
2931     pub unsafe fn ApplicationName(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2932         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2933         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2934     }
2935     #[cfg(feature = "Win32_Foundation")]
2936     pub unsafe fn SetApplicationName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, imagefilename: Param0) -> ::windows::runtime::Result<()> {
2937         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), imagefilename.into_param().abi()).ok()
2938     }
2939     #[cfg(feature = "Win32_Foundation")]
2940     pub unsafe fn ServiceName(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2941         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2942         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2943     }
2944     #[cfg(feature = "Win32_Foundation")]
2945     pub unsafe fn SetServiceName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, servicename: Param0) -> ::windows::runtime::Result<()> {
2946         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), servicename.into_param().abi()).ok()
2947     }
2948     pub unsafe fn Protocol(&self) -> ::windows::runtime::Result<i32> {
2949         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2950         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
2951     }
2952     pub unsafe fn SetProtocol(&self, protocol: i32) -> ::windows::runtime::Result<()> {
2953         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), ::std::mem::transmute(protocol)).ok()
2954     }
2955     #[cfg(feature = "Win32_Foundation")]
2956     pub unsafe fn LocalPorts(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2957         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2958         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2959     }
2960     #[cfg(feature = "Win32_Foundation")]
2961     pub unsafe fn SetLocalPorts<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, portnumbers: Param0) -> ::windows::runtime::Result<()> {
2962         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), portnumbers.into_param().abi()).ok()
2963     }
2964     #[cfg(feature = "Win32_Foundation")]
2965     pub unsafe fn RemotePorts(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2966         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2967         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2968     }
2969     #[cfg(feature = "Win32_Foundation")]
2970     pub unsafe fn SetRemotePorts<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, portnumbers: Param0) -> ::windows::runtime::Result<()> {
2971         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), portnumbers.into_param().abi()).ok()
2972     }
2973     #[cfg(feature = "Win32_Foundation")]
2974     pub unsafe fn LocalAddresses(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2975         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2976         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2977     }
2978     #[cfg(feature = "Win32_Foundation")]
2979     pub unsafe fn SetLocalAddresses<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, localaddrs: Param0) -> ::windows::runtime::Result<()> {
2980         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), localaddrs.into_param().abi()).ok()
2981     }
2982     #[cfg(feature = "Win32_Foundation")]
2983     pub unsafe fn RemoteAddresses(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2984         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2985         (::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2986     }
2987     #[cfg(feature = "Win32_Foundation")]
2988     pub unsafe fn SetRemoteAddresses<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, remoteaddrs: Param0) -> ::windows::runtime::Result<()> {
2989         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), remoteaddrs.into_param().abi()).ok()
2990     }
2991     #[cfg(feature = "Win32_Foundation")]
2992     pub unsafe fn IcmpTypesAndCodes(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2993         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2994         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2995     }
2996     #[cfg(feature = "Win32_Foundation")]
2997     pub unsafe fn SetIcmpTypesAndCodes<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, icmptypesandcodes: Param0) -> ::windows::runtime::Result<()> {
2998         (::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self), icmptypesandcodes.into_param().abi()).ok()
2999     }
3000     pub unsafe fn Direction(&self) -> ::windows::runtime::Result<NET_FW_RULE_DIRECTION> {
3001         let mut result__: <NET_FW_RULE_DIRECTION as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3002         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), &mut result__).from_abi::<NET_FW_RULE_DIRECTION>(result__)
3003     }
3004     pub unsafe fn SetDirection(&self, dir: NET_FW_RULE_DIRECTION) -> ::windows::runtime::Result<()> {
3005         (::windows::runtime::Interface::vtable(self).28)(::std::mem::transmute_copy(self), ::std::mem::transmute(dir)).ok()
3006     }
3007     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
3008     pub unsafe fn Interfaces(&self) -> ::windows::runtime::Result<super::super::System::Com::VARIANT> {
3009         let mut result__: <super::super::System::Com::VARIANT as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3010         (::windows::runtime::Interface::vtable(self).29)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::System::Com::VARIANT>(result__)
3011     }
3012     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
3013     pub unsafe fn SetInterfaces<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::System::Com::VARIANT>>(&self, interfaces: Param0) -> ::windows::runtime::Result<()> {
3014         (::windows::runtime::Interface::vtable(self).30)(::std::mem::transmute_copy(self), interfaces.into_param().abi()).ok()
3015     }
3016     #[cfg(feature = "Win32_Foundation")]
3017     pub unsafe fn InterfaceTypes(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
3018         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3019         (::windows::runtime::Interface::vtable(self).31)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
3020     }
3021     #[cfg(feature = "Win32_Foundation")]
3022     pub unsafe fn SetInterfaceTypes<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, interfacetypes: Param0) -> ::windows::runtime::Result<()> {
3023         (::windows::runtime::Interface::vtable(self).32)(::std::mem::transmute_copy(self), interfacetypes.into_param().abi()).ok()
3024     }
3025     pub unsafe fn Enabled(&self) -> ::windows::runtime::Result<i16> {
3026         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3027         (::windows::runtime::Interface::vtable(self).33)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i16>(result__)
3028     }
3029     pub unsafe fn SetEnabled(&self, enabled: i16) -> ::windows::runtime::Result<()> {
3030         (::windows::runtime::Interface::vtable(self).34)(::std::mem::transmute_copy(self), ::std::mem::transmute(enabled)).ok()
3031     }
3032     #[cfg(feature = "Win32_Foundation")]
3033     pub unsafe fn Grouping(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
3034         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3035         (::windows::runtime::Interface::vtable(self).35)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
3036     }
3037     #[cfg(feature = "Win32_Foundation")]
3038     pub unsafe fn SetGrouping<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, context: Param0) -> ::windows::runtime::Result<()> {
3039         (::windows::runtime::Interface::vtable(self).36)(::std::mem::transmute_copy(self), context.into_param().abi()).ok()
3040     }
3041     pub unsafe fn Profiles(&self) -> ::windows::runtime::Result<i32> {
3042         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3043         (::windows::runtime::Interface::vtable(self).37)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
3044     }
3045     pub unsafe fn SetProfiles(&self, profiletypesbitmask: i32) -> ::windows::runtime::Result<()> {
3046         (::windows::runtime::Interface::vtable(self).38)(::std::mem::transmute_copy(self), ::std::mem::transmute(profiletypesbitmask)).ok()
3047     }
3048     pub unsafe fn EdgeTraversal(&self) -> ::windows::runtime::Result<i16> {
3049         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3050         (::windows::runtime::Interface::vtable(self).39)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i16>(result__)
3051     }
3052     pub unsafe fn SetEdgeTraversal(&self, enabled: i16) -> ::windows::runtime::Result<()> {
3053         (::windows::runtime::Interface::vtable(self).40)(::std::mem::transmute_copy(self), ::std::mem::transmute(enabled)).ok()
3054     }
3055     pub unsafe fn Action(&self) -> ::windows::runtime::Result<NET_FW_ACTION> {
3056         let mut result__: <NET_FW_ACTION as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3057         (::windows::runtime::Interface::vtable(self).41)(::std::mem::transmute_copy(self), &mut result__).from_abi::<NET_FW_ACTION>(result__)
3058     }
3059     pub unsafe fn SetAction(&self, action: NET_FW_ACTION) -> ::windows::runtime::Result<()> {
3060         (::windows::runtime::Interface::vtable(self).42)(::std::mem::transmute_copy(self), ::std::mem::transmute(action)).ok()
3061     }
3062     pub unsafe fn EdgeTraversalOptions(&self) -> ::windows::runtime::Result<i32> {
3063         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3064         (::windows::runtime::Interface::vtable(self).43)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
3065     }
3066     pub unsafe fn SetEdgeTraversalOptions(&self, loptions: i32) -> ::windows::runtime::Result<()> {
3067         (::windows::runtime::Interface::vtable(self).44)(::std::mem::transmute_copy(self), ::std::mem::transmute(loptions)).ok()
3068     }
3069 }
3070 unsafe impl ::windows::runtime::Interface for INetFwRule2 {
3071     type Vtable = INetFwRule2_abi;
3072     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2619853018, 6299, 19934, [137, 247, 139, 57, 163, 22, 120, 44]);
3073 }
3074 impl ::std::convert::From<INetFwRule2> for ::windows::runtime::IUnknown {
3075     fn from(value: INetFwRule2) -> Self {
3076         unsafe { ::std::mem::transmute(value) }
3077     }
3078 }
3079 impl ::std::convert::From<&INetFwRule2> for ::windows::runtime::IUnknown {
3080     fn from(value: &INetFwRule2) -> Self {
3081         ::std::convert::From::from(::std::clone::Clone::clone(value))
3082     }
3083 }
3084 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INetFwRule2 {
3085     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3086         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3087     }
3088 }
3089 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INetFwRule2 {
3090     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3091         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3092     }
3093 }
3094 impl ::std::convert::From<INetFwRule2> for INetFwRule {
3095     fn from(value: INetFwRule2) -> Self {
3096         unsafe { ::std::mem::transmute(value) }
3097     }
3098 }
3099 impl ::std::convert::From<&INetFwRule2> for INetFwRule {
3100     fn from(value: &INetFwRule2) -> Self {
3101         ::std::convert::From::from(::std::clone::Clone::clone(value))
3102     }
3103 }
3104 impl<'a> ::windows::runtime::IntoParam<'a, INetFwRule> for INetFwRule2 {
3105     fn into_param(self) -> ::windows::runtime::Param<'a, INetFwRule> {
3106         ::windows::runtime::Param::Owned(::std::convert::Into::<INetFwRule>::into(self))
3107     }
3108 }
3109 impl<'a> ::windows::runtime::IntoParam<'a, INetFwRule> for &INetFwRule2 {
3110     fn into_param(self) -> ::windows::runtime::Param<'a, INetFwRule> {
3111         ::windows::runtime::Param::Owned(::std::convert::Into::<INetFwRule>::into(::std::clone::Clone::clone(self)))
3112     }
3113 }
3114 #[cfg(feature = "Win32_System_Ole_Automation")]
3115 impl ::std::convert::From<INetFwRule2> for super::super::System::Ole::Automation::IDispatch {
3116     fn from(value: INetFwRule2) -> Self {
3117         unsafe { ::std::mem::transmute(value) }
3118     }
3119 }
3120 #[cfg(feature = "Win32_System_Ole_Automation")]
3121 impl ::std::convert::From<&INetFwRule2> for super::super::System::Ole::Automation::IDispatch {
3122     fn from(value: &INetFwRule2) -> Self {
3123         ::std::convert::From::from(::std::clone::Clone::clone(value))
3124     }
3125 }
3126 #[cfg(feature = "Win32_System_Ole_Automation")]
3127 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for INetFwRule2 {
3128     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
3129         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
3130     }
3131 }
3132 #[cfg(feature = "Win32_System_Ole_Automation")]
3133 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &INetFwRule2 {
3134     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
3135         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
3136     }
3137 }
3138 #[repr(C)]
3139 #[doc(hidden)]
3140 pub struct INetFwRule2_abi(
3141     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3142     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3143     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3144     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
3145     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3146     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
3147     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
3148     #[cfg(not(feature = "Win32_Foundation"))] usize,
3149     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
3150     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
3151     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
3152     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3153     #[cfg(not(feature = "Win32_Foundation"))] usize,
3154     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3155     #[cfg(not(feature = "Win32_Foundation"))] usize,
3156     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, desc: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3157     #[cfg(not(feature = "Win32_Foundation"))] usize,
3158     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, desc: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3159     #[cfg(not(feature = "Win32_Foundation"))] usize,
3160     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, imagefilename: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3161     #[cfg(not(feature = "Win32_Foundation"))] usize,
3162     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, imagefilename: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3163     #[cfg(not(feature = "Win32_Foundation"))] usize,
3164     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, servicename: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3165     #[cfg(not(feature = "Win32_Foundation"))] usize,
3166     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, servicename: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3167     #[cfg(not(feature = "Win32_Foundation"))] usize,
3168     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, protocol: *mut i32) -> ::windows::runtime::HRESULT,
3169     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, protocol: i32) -> ::windows::runtime::HRESULT,
3170     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, portnumbers: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3171     #[cfg(not(feature = "Win32_Foundation"))] usize,
3172     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, portnumbers: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3173     #[cfg(not(feature = "Win32_Foundation"))] usize,
3174     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, portnumbers: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3175     #[cfg(not(feature = "Win32_Foundation"))] usize,
3176     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, portnumbers: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3177     #[cfg(not(feature = "Win32_Foundation"))] usize,
3178     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, localaddrs: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3179     #[cfg(not(feature = "Win32_Foundation"))] usize,
3180     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, localaddrs: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3181     #[cfg(not(feature = "Win32_Foundation"))] usize,
3182     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, remoteaddrs: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3183     #[cfg(not(feature = "Win32_Foundation"))] usize,
3184     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, remoteaddrs: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3185     #[cfg(not(feature = "Win32_Foundation"))] usize,
3186     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, icmptypesandcodes: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3187     #[cfg(not(feature = "Win32_Foundation"))] usize,
3188     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, icmptypesandcodes: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3189     #[cfg(not(feature = "Win32_Foundation"))] usize,
3190     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dir: *mut NET_FW_RULE_DIRECTION) -> ::windows::runtime::HRESULT,
3191     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dir: NET_FW_RULE_DIRECTION) -> ::windows::runtime::HRESULT,
3192     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, interfaces: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>) -> ::windows::runtime::HRESULT,
3193     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
3194     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, interfaces: ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>) -> ::windows::runtime::HRESULT,
3195     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
3196     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, interfacetypes: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3197     #[cfg(not(feature = "Win32_Foundation"))] usize,
3198     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, interfacetypes: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3199     #[cfg(not(feature = "Win32_Foundation"))] usize,
3200     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enabled: *mut i16) -> ::windows::runtime::HRESULT,
3201     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enabled: i16) -> ::windows::runtime::HRESULT,
3202     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, context: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3203     #[cfg(not(feature = "Win32_Foundation"))] usize,
3204     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, context: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3205     #[cfg(not(feature = "Win32_Foundation"))] usize,
3206     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, profiletypesbitmask: *mut i32) -> ::windows::runtime::HRESULT,
3207     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, profiletypesbitmask: i32) -> ::windows::runtime::HRESULT,
3208     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enabled: *mut i16) -> ::windows::runtime::HRESULT,
3209     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enabled: i16) -> ::windows::runtime::HRESULT,
3210     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, action: *mut NET_FW_ACTION) -> ::windows::runtime::HRESULT,
3211     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, action: NET_FW_ACTION) -> ::windows::runtime::HRESULT,
3212     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, loptions: *mut i32) -> ::windows::runtime::HRESULT,
3213     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, loptions: i32) -> ::windows::runtime::HRESULT,
3214 );
3215 #[repr(transparent)]
3216 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3217 pub struct INetFwRule3(::windows::runtime::IUnknown);
3218 impl INetFwRule3 {
3219     pub unsafe fn GetTypeInfoCount(&self) -> ::windows::runtime::Result<u32> {
3220         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3221         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
3222     }
3223     #[cfg(feature = "Win32_System_Ole_Automation")]
3224     pub unsafe fn GetTypeInfo(&self, itinfo: u32, lcid: u32) -> ::windows::runtime::Result<super::super::System::Ole::Automation::ITypeInfo> {
3225         let mut result__: <super::super::System::Ole::Automation::ITypeInfo as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3226         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(itinfo), ::std::mem::transmute(lcid), &mut result__).from_abi::<super::super::System::Ole::Automation::ITypeInfo>(result__)
3227     }
3228     #[cfg(feature = "Win32_Foundation")]
3229     pub unsafe fn GetIDsOfNames(&self, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::Result<()> {
3230         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(riid), ::std::mem::transmute(rgsznames), ::std::mem::transmute(cnames), ::std::mem::transmute(lcid), ::std::mem::transmute(rgdispid)).ok()
3231     }
3232     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
3233     pub unsafe fn Invoke(&self, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut super::super::System::Com::VARIANT, pexcepinfo: *mut super::super::System::Ole::Automation::EXCEPINFO, puargerr: *mut u32) -> ::windows::runtime::Result<()> {
3234         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(dispidmember), ::std::mem::transmute(riid), ::std::mem::transmute(lcid), ::std::mem::transmute(wflags), ::std::mem::transmute(pdispparams), ::std::mem::transmute(pvarresult), ::std::mem::transmute(pexcepinfo), ::std::mem::transmute(puargerr)).ok()
3235     }
3236     #[cfg(feature = "Win32_Foundation")]
3237     pub unsafe fn Name(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
3238         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3239         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
3240     }
3241     #[cfg(feature = "Win32_Foundation")]
3242     pub unsafe fn SetName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, name: Param0) -> ::windows::runtime::Result<()> {
3243         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), name.into_param().abi()).ok()
3244     }
3245     #[cfg(feature = "Win32_Foundation")]
3246     pub unsafe fn Description(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
3247         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3248         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
3249     }
3250     #[cfg(feature = "Win32_Foundation")]
3251     pub unsafe fn SetDescription<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, desc: Param0) -> ::windows::runtime::Result<()> {
3252         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), desc.into_param().abi()).ok()
3253     }
3254     #[cfg(feature = "Win32_Foundation")]
3255     pub unsafe fn ApplicationName(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
3256         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3257         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
3258     }
3259     #[cfg(feature = "Win32_Foundation")]
3260     pub unsafe fn SetApplicationName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, imagefilename: Param0) -> ::windows::runtime::Result<()> {
3261         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), imagefilename.into_param().abi()).ok()
3262     }
3263     #[cfg(feature = "Win32_Foundation")]
3264     pub unsafe fn ServiceName(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
3265         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3266         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
3267     }
3268     #[cfg(feature = "Win32_Foundation")]
3269     pub unsafe fn SetServiceName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, servicename: Param0) -> ::windows::runtime::Result<()> {
3270         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), servicename.into_param().abi()).ok()
3271     }
3272     pub unsafe fn Protocol(&self) -> ::windows::runtime::Result<i32> {
3273         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3274         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
3275     }
3276     pub unsafe fn SetProtocol(&self, protocol: i32) -> ::windows::runtime::Result<()> {
3277         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), ::std::mem::transmute(protocol)).ok()
3278     }
3279     #[cfg(feature = "Win32_Foundation")]
3280     pub unsafe fn LocalPorts(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
3281         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3282         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
3283     }
3284     #[cfg(feature = "Win32_Foundation")]
3285     pub unsafe fn SetLocalPorts<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, portnumbers: Param0) -> ::windows::runtime::Result<()> {
3286         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), portnumbers.into_param().abi()).ok()
3287     }
3288     #[cfg(feature = "Win32_Foundation")]
3289     pub unsafe fn RemotePorts(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
3290         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3291         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
3292     }
3293     #[cfg(feature = "Win32_Foundation")]
3294     pub unsafe fn SetRemotePorts<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, portnumbers: Param0) -> ::windows::runtime::Result<()> {
3295         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), portnumbers.into_param().abi()).ok()
3296     }
3297     #[cfg(feature = "Win32_Foundation")]
3298     pub unsafe fn LocalAddresses(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
3299         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3300         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
3301     }
3302     #[cfg(feature = "Win32_Foundation")]
3303     pub unsafe fn SetLocalAddresses<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, localaddrs: Param0) -> ::windows::runtime::Result<()> {
3304         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), localaddrs.into_param().abi()).ok()
3305     }
3306     #[cfg(feature = "Win32_Foundation")]
3307     pub unsafe fn RemoteAddresses(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
3308         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3309         (::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
3310     }
3311     #[cfg(feature = "Win32_Foundation")]
3312     pub unsafe fn SetRemoteAddresses<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, remoteaddrs: Param0) -> ::windows::runtime::Result<()> {
3313         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), remoteaddrs.into_param().abi()).ok()
3314     }
3315     #[cfg(feature = "Win32_Foundation")]
3316     pub unsafe fn IcmpTypesAndCodes(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
3317         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3318         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
3319     }
3320     #[cfg(feature = "Win32_Foundation")]
3321     pub unsafe fn SetIcmpTypesAndCodes<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, icmptypesandcodes: Param0) -> ::windows::runtime::Result<()> {
3322         (::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self), icmptypesandcodes.into_param().abi()).ok()
3323     }
3324     pub unsafe fn Direction(&self) -> ::windows::runtime::Result<NET_FW_RULE_DIRECTION> {
3325         let mut result__: <NET_FW_RULE_DIRECTION as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3326         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), &mut result__).from_abi::<NET_FW_RULE_DIRECTION>(result__)
3327     }
3328     pub unsafe fn SetDirection(&self, dir: NET_FW_RULE_DIRECTION) -> ::windows::runtime::Result<()> {
3329         (::windows::runtime::Interface::vtable(self).28)(::std::mem::transmute_copy(self), ::std::mem::transmute(dir)).ok()
3330     }
3331     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
3332     pub unsafe fn Interfaces(&self) -> ::windows::runtime::Result<super::super::System::Com::VARIANT> {
3333         let mut result__: <super::super::System::Com::VARIANT as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3334         (::windows::runtime::Interface::vtable(self).29)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::System::Com::VARIANT>(result__)
3335     }
3336     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
3337     pub unsafe fn SetInterfaces<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::System::Com::VARIANT>>(&self, interfaces: Param0) -> ::windows::runtime::Result<()> {
3338         (::windows::runtime::Interface::vtable(self).30)(::std::mem::transmute_copy(self), interfaces.into_param().abi()).ok()
3339     }
3340     #[cfg(feature = "Win32_Foundation")]
3341     pub unsafe fn InterfaceTypes(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
3342         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3343         (::windows::runtime::Interface::vtable(self).31)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
3344     }
3345     #[cfg(feature = "Win32_Foundation")]
3346     pub unsafe fn SetInterfaceTypes<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, interfacetypes: Param0) -> ::windows::runtime::Result<()> {
3347         (::windows::runtime::Interface::vtable(self).32)(::std::mem::transmute_copy(self), interfacetypes.into_param().abi()).ok()
3348     }
3349     pub unsafe fn Enabled(&self) -> ::windows::runtime::Result<i16> {
3350         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3351         (::windows::runtime::Interface::vtable(self).33)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i16>(result__)
3352     }
3353     pub unsafe fn SetEnabled(&self, enabled: i16) -> ::windows::runtime::Result<()> {
3354         (::windows::runtime::Interface::vtable(self).34)(::std::mem::transmute_copy(self), ::std::mem::transmute(enabled)).ok()
3355     }
3356     #[cfg(feature = "Win32_Foundation")]
3357     pub unsafe fn Grouping(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
3358         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3359         (::windows::runtime::Interface::vtable(self).35)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
3360     }
3361     #[cfg(feature = "Win32_Foundation")]
3362     pub unsafe fn SetGrouping<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, context: Param0) -> ::windows::runtime::Result<()> {
3363         (::windows::runtime::Interface::vtable(self).36)(::std::mem::transmute_copy(self), context.into_param().abi()).ok()
3364     }
3365     pub unsafe fn Profiles(&self) -> ::windows::runtime::Result<i32> {
3366         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3367         (::windows::runtime::Interface::vtable(self).37)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
3368     }
3369     pub unsafe fn SetProfiles(&self, profiletypesbitmask: i32) -> ::windows::runtime::Result<()> {
3370         (::windows::runtime::Interface::vtable(self).38)(::std::mem::transmute_copy(self), ::std::mem::transmute(profiletypesbitmask)).ok()
3371     }
3372     pub unsafe fn EdgeTraversal(&self) -> ::windows::runtime::Result<i16> {
3373         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3374         (::windows::runtime::Interface::vtable(self).39)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i16>(result__)
3375     }
3376     pub unsafe fn SetEdgeTraversal(&self, enabled: i16) -> ::windows::runtime::Result<()> {
3377         (::windows::runtime::Interface::vtable(self).40)(::std::mem::transmute_copy(self), ::std::mem::transmute(enabled)).ok()
3378     }
3379     pub unsafe fn Action(&self) -> ::windows::runtime::Result<NET_FW_ACTION> {
3380         let mut result__: <NET_FW_ACTION as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3381         (::windows::runtime::Interface::vtable(self).41)(::std::mem::transmute_copy(self), &mut result__).from_abi::<NET_FW_ACTION>(result__)
3382     }
3383     pub unsafe fn SetAction(&self, action: NET_FW_ACTION) -> ::windows::runtime::Result<()> {
3384         (::windows::runtime::Interface::vtable(self).42)(::std::mem::transmute_copy(self), ::std::mem::transmute(action)).ok()
3385     }
3386     pub unsafe fn EdgeTraversalOptions(&self) -> ::windows::runtime::Result<i32> {
3387         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3388         (::windows::runtime::Interface::vtable(self).43)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
3389     }
3390     pub unsafe fn SetEdgeTraversalOptions(&self, loptions: i32) -> ::windows::runtime::Result<()> {
3391         (::windows::runtime::Interface::vtable(self).44)(::std::mem::transmute_copy(self), ::std::mem::transmute(loptions)).ok()
3392     }
3393     #[cfg(feature = "Win32_Foundation")]
3394     pub unsafe fn LocalAppPackageId(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
3395         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3396         (::windows::runtime::Interface::vtable(self).45)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
3397     }
3398     #[cfg(feature = "Win32_Foundation")]
3399     pub unsafe fn SetLocalAppPackageId<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, wszpackageid: Param0) -> ::windows::runtime::Result<()> {
3400         (::windows::runtime::Interface::vtable(self).46)(::std::mem::transmute_copy(self), wszpackageid.into_param().abi()).ok()
3401     }
3402     #[cfg(feature = "Win32_Foundation")]
3403     pub unsafe fn LocalUserOwner(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
3404         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3405         (::windows::runtime::Interface::vtable(self).47)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
3406     }
3407     #[cfg(feature = "Win32_Foundation")]
3408     pub unsafe fn SetLocalUserOwner<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, wszuserowner: Param0) -> ::windows::runtime::Result<()> {
3409         (::windows::runtime::Interface::vtable(self).48)(::std::mem::transmute_copy(self), wszuserowner.into_param().abi()).ok()
3410     }
3411     #[cfg(feature = "Win32_Foundation")]
3412     pub unsafe fn LocalUserAuthorizedList(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
3413         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3414         (::windows::runtime::Interface::vtable(self).49)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
3415     }
3416     #[cfg(feature = "Win32_Foundation")]
3417     pub unsafe fn SetLocalUserAuthorizedList<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, wszuserauthlist: Param0) -> ::windows::runtime::Result<()> {
3418         (::windows::runtime::Interface::vtable(self).50)(::std::mem::transmute_copy(self), wszuserauthlist.into_param().abi()).ok()
3419     }
3420     #[cfg(feature = "Win32_Foundation")]
3421     pub unsafe fn RemoteUserAuthorizedList(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
3422         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3423         (::windows::runtime::Interface::vtable(self).51)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
3424     }
3425     #[cfg(feature = "Win32_Foundation")]
3426     pub unsafe fn SetRemoteUserAuthorizedList<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, wszuserauthlist: Param0) -> ::windows::runtime::Result<()> {
3427         (::windows::runtime::Interface::vtable(self).52)(::std::mem::transmute_copy(self), wszuserauthlist.into_param().abi()).ok()
3428     }
3429     #[cfg(feature = "Win32_Foundation")]
3430     pub unsafe fn RemoteMachineAuthorizedList(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
3431         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3432         (::windows::runtime::Interface::vtable(self).53)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
3433     }
3434     #[cfg(feature = "Win32_Foundation")]
3435     pub unsafe fn SetRemoteMachineAuthorizedList<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, wszuserauthlist: Param0) -> ::windows::runtime::Result<()> {
3436         (::windows::runtime::Interface::vtable(self).54)(::std::mem::transmute_copy(self), wszuserauthlist.into_param().abi()).ok()
3437     }
3438     pub unsafe fn SecureFlags(&self) -> ::windows::runtime::Result<i32> {
3439         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3440         (::windows::runtime::Interface::vtable(self).55)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
3441     }
3442     pub unsafe fn SetSecureFlags(&self, loptions: i32) -> ::windows::runtime::Result<()> {
3443         (::windows::runtime::Interface::vtable(self).56)(::std::mem::transmute_copy(self), ::std::mem::transmute(loptions)).ok()
3444     }
3445 }
3446 unsafe impl ::windows::runtime::Interface for INetFwRule3 {
3447     type Vtable = INetFwRule3_abi;
3448     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2987746303, 54934, 16930, [171, 70, 78, 137, 183, 58, 179, 74]);
3449 }
3450 impl ::std::convert::From<INetFwRule3> for ::windows::runtime::IUnknown {
3451     fn from(value: INetFwRule3) -> Self {
3452         unsafe { ::std::mem::transmute(value) }
3453     }
3454 }
3455 impl ::std::convert::From<&INetFwRule3> for ::windows::runtime::IUnknown {
3456     fn from(value: &INetFwRule3) -> Self {
3457         ::std::convert::From::from(::std::clone::Clone::clone(value))
3458     }
3459 }
3460 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INetFwRule3 {
3461     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3462         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3463     }
3464 }
3465 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INetFwRule3 {
3466     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3467         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3468     }
3469 }
3470 impl ::std::convert::From<INetFwRule3> for INetFwRule2 {
3471     fn from(value: INetFwRule3) -> Self {
3472         unsafe { ::std::mem::transmute(value) }
3473     }
3474 }
3475 impl ::std::convert::From<&INetFwRule3> for INetFwRule2 {
3476     fn from(value: &INetFwRule3) -> Self {
3477         ::std::convert::From::from(::std::clone::Clone::clone(value))
3478     }
3479 }
3480 impl<'a> ::windows::runtime::IntoParam<'a, INetFwRule2> for INetFwRule3 {
3481     fn into_param(self) -> ::windows::runtime::Param<'a, INetFwRule2> {
3482         ::windows::runtime::Param::Owned(::std::convert::Into::<INetFwRule2>::into(self))
3483     }
3484 }
3485 impl<'a> ::windows::runtime::IntoParam<'a, INetFwRule2> for &INetFwRule3 {
3486     fn into_param(self) -> ::windows::runtime::Param<'a, INetFwRule2> {
3487         ::windows::runtime::Param::Owned(::std::convert::Into::<INetFwRule2>::into(::std::clone::Clone::clone(self)))
3488     }
3489 }
3490 impl ::std::convert::From<INetFwRule3> for INetFwRule {
3491     fn from(value: INetFwRule3) -> Self {
3492         unsafe { ::std::mem::transmute(value) }
3493     }
3494 }
3495 impl ::std::convert::From<&INetFwRule3> for INetFwRule {
3496     fn from(value: &INetFwRule3) -> Self {
3497         ::std::convert::From::from(::std::clone::Clone::clone(value))
3498     }
3499 }
3500 impl<'a> ::windows::runtime::IntoParam<'a, INetFwRule> for INetFwRule3 {
3501     fn into_param(self) -> ::windows::runtime::Param<'a, INetFwRule> {
3502         ::windows::runtime::Param::Owned(::std::convert::Into::<INetFwRule>::into(self))
3503     }
3504 }
3505 impl<'a> ::windows::runtime::IntoParam<'a, INetFwRule> for &INetFwRule3 {
3506     fn into_param(self) -> ::windows::runtime::Param<'a, INetFwRule> {
3507         ::windows::runtime::Param::Owned(::std::convert::Into::<INetFwRule>::into(::std::clone::Clone::clone(self)))
3508     }
3509 }
3510 #[cfg(feature = "Win32_System_Ole_Automation")]
3511 impl ::std::convert::From<INetFwRule3> for super::super::System::Ole::Automation::IDispatch {
3512     fn from(value: INetFwRule3) -> Self {
3513         unsafe { ::std::mem::transmute(value) }
3514     }
3515 }
3516 #[cfg(feature = "Win32_System_Ole_Automation")]
3517 impl ::std::convert::From<&INetFwRule3> for super::super::System::Ole::Automation::IDispatch {
3518     fn from(value: &INetFwRule3) -> Self {
3519         ::std::convert::From::from(::std::clone::Clone::clone(value))
3520     }
3521 }
3522 #[cfg(feature = "Win32_System_Ole_Automation")]
3523 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for INetFwRule3 {
3524     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
3525         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
3526     }
3527 }
3528 #[cfg(feature = "Win32_System_Ole_Automation")]
3529 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &INetFwRule3 {
3530     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
3531         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
3532     }
3533 }
3534 #[repr(C)]
3535 #[doc(hidden)]
3536 pub struct INetFwRule3_abi(
3537     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3538     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3539     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3540     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
3541     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3542     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
3543     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
3544     #[cfg(not(feature = "Win32_Foundation"))] usize,
3545     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
3546     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
3547     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
3548     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3549     #[cfg(not(feature = "Win32_Foundation"))] usize,
3550     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3551     #[cfg(not(feature = "Win32_Foundation"))] usize,
3552     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, desc: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3553     #[cfg(not(feature = "Win32_Foundation"))] usize,
3554     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, desc: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3555     #[cfg(not(feature = "Win32_Foundation"))] usize,
3556     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, imagefilename: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3557     #[cfg(not(feature = "Win32_Foundation"))] usize,
3558     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, imagefilename: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3559     #[cfg(not(feature = "Win32_Foundation"))] usize,
3560     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, servicename: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3561     #[cfg(not(feature = "Win32_Foundation"))] usize,
3562     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, servicename: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3563     #[cfg(not(feature = "Win32_Foundation"))] usize,
3564     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, protocol: *mut i32) -> ::windows::runtime::HRESULT,
3565     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, protocol: i32) -> ::windows::runtime::HRESULT,
3566     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, portnumbers: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3567     #[cfg(not(feature = "Win32_Foundation"))] usize,
3568     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, portnumbers: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3569     #[cfg(not(feature = "Win32_Foundation"))] usize,
3570     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, portnumbers: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3571     #[cfg(not(feature = "Win32_Foundation"))] usize,
3572     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, portnumbers: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3573     #[cfg(not(feature = "Win32_Foundation"))] usize,
3574     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, localaddrs: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3575     #[cfg(not(feature = "Win32_Foundation"))] usize,
3576     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, localaddrs: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3577     #[cfg(not(feature = "Win32_Foundation"))] usize,
3578     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, remoteaddrs: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3579     #[cfg(not(feature = "Win32_Foundation"))] usize,
3580     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, remoteaddrs: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3581     #[cfg(not(feature = "Win32_Foundation"))] usize,
3582     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, icmptypesandcodes: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3583     #[cfg(not(feature = "Win32_Foundation"))] usize,
3584     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, icmptypesandcodes: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3585     #[cfg(not(feature = "Win32_Foundation"))] usize,
3586     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dir: *mut NET_FW_RULE_DIRECTION) -> ::windows::runtime::HRESULT,
3587     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dir: NET_FW_RULE_DIRECTION) -> ::windows::runtime::HRESULT,
3588     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, interfaces: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>) -> ::windows::runtime::HRESULT,
3589     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
3590     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, interfaces: ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>) -> ::windows::runtime::HRESULT,
3591     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
3592     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, interfacetypes: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3593     #[cfg(not(feature = "Win32_Foundation"))] usize,
3594     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, interfacetypes: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3595     #[cfg(not(feature = "Win32_Foundation"))] usize,
3596     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enabled: *mut i16) -> ::windows::runtime::HRESULT,
3597     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enabled: i16) -> ::windows::runtime::HRESULT,
3598     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, context: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3599     #[cfg(not(feature = "Win32_Foundation"))] usize,
3600     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, context: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3601     #[cfg(not(feature = "Win32_Foundation"))] usize,
3602     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, profiletypesbitmask: *mut i32) -> ::windows::runtime::HRESULT,
3603     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, profiletypesbitmask: i32) -> ::windows::runtime::HRESULT,
3604     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enabled: *mut i16) -> ::windows::runtime::HRESULT,
3605     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enabled: i16) -> ::windows::runtime::HRESULT,
3606     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, action: *mut NET_FW_ACTION) -> ::windows::runtime::HRESULT,
3607     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, action: NET_FW_ACTION) -> ::windows::runtime::HRESULT,
3608     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, loptions: *mut i32) -> ::windows::runtime::HRESULT,
3609     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, loptions: i32) -> ::windows::runtime::HRESULT,
3610     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszpackageid: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3611     #[cfg(not(feature = "Win32_Foundation"))] usize,
3612     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszpackageid: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3613     #[cfg(not(feature = "Win32_Foundation"))] usize,
3614     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszuserowner: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3615     #[cfg(not(feature = "Win32_Foundation"))] usize,
3616     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszuserowner: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3617     #[cfg(not(feature = "Win32_Foundation"))] usize,
3618     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszuserauthlist: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3619     #[cfg(not(feature = "Win32_Foundation"))] usize,
3620     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszuserauthlist: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3621     #[cfg(not(feature = "Win32_Foundation"))] usize,
3622     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszuserauthlist: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3623     #[cfg(not(feature = "Win32_Foundation"))] usize,
3624     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszuserauthlist: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3625     #[cfg(not(feature = "Win32_Foundation"))] usize,
3626     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszuserauthlist: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3627     #[cfg(not(feature = "Win32_Foundation"))] usize,
3628     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszuserauthlist: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3629     #[cfg(not(feature = "Win32_Foundation"))] usize,
3630     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, loptions: *mut i32) -> ::windows::runtime::HRESULT,
3631     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, loptions: i32) -> ::windows::runtime::HRESULT,
3632 );
3633 #[repr(transparent)]
3634 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3635 pub struct INetFwRules(::windows::runtime::IUnknown);
3636 impl INetFwRules {
3637     pub unsafe fn Count(&self) -> ::windows::runtime::Result<i32> {
3638         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3639         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
3640     }
3641     pub unsafe fn Add<'a, Param0: ::windows::runtime::IntoParam<'a, INetFwRule>>(&self, rule: Param0) -> ::windows::runtime::Result<()> {
3642         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), rule.into_param().abi()).ok()
3643     }
3644     #[cfg(feature = "Win32_Foundation")]
3645     pub unsafe fn Remove<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, name: Param0) -> ::windows::runtime::Result<()> {
3646         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), name.into_param().abi()).ok()
3647     }
3648     #[cfg(feature = "Win32_Foundation")]
3649     pub unsafe fn Item<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, name: Param0) -> ::windows::runtime::Result<INetFwRule> {
3650         let mut result__: <INetFwRule as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3651         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), name.into_param().abi(), &mut result__).from_abi::<INetFwRule>(result__)
3652     }
3653     pub unsafe fn _NewEnum(&self) -> ::windows::runtime::Result<::windows::runtime::IUnknown> {
3654         let mut result__: <::windows::runtime::IUnknown as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3655         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<::windows::runtime::IUnknown>(result__)
3656     }
3657 }
3658 unsafe impl ::windows::runtime::Interface for INetFwRules {
3659     type Vtable = INetFwRules_abi;
3660     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2622251639, 20519, 17438, [175, 174, 202, 31, 84, 45, 160, 9]);
3661 }
3662 impl ::std::convert::From<INetFwRules> for ::windows::runtime::IUnknown {
3663     fn from(value: INetFwRules) -> Self {
3664         unsafe { ::std::mem::transmute(value) }
3665     }
3666 }
3667 impl ::std::convert::From<&INetFwRules> for ::windows::runtime::IUnknown {
3668     fn from(value: &INetFwRules) -> Self {
3669         ::std::convert::From::from(::std::clone::Clone::clone(value))
3670     }
3671 }
3672 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INetFwRules {
3673     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3674         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3675     }
3676 }
3677 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INetFwRules {
3678     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3679         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3680     }
3681 }
3682 #[cfg(feature = "Win32_System_Ole_Automation")]
3683 impl ::std::convert::From<INetFwRules> for super::super::System::Ole::Automation::IDispatch {
3684     fn from(value: INetFwRules) -> Self {
3685         unsafe { ::std::mem::transmute(value) }
3686     }
3687 }
3688 #[cfg(feature = "Win32_System_Ole_Automation")]
3689 impl ::std::convert::From<&INetFwRules> for super::super::System::Ole::Automation::IDispatch {
3690     fn from(value: &INetFwRules) -> Self {
3691         ::std::convert::From::from(::std::clone::Clone::clone(value))
3692     }
3693 }
3694 #[cfg(feature = "Win32_System_Ole_Automation")]
3695 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for INetFwRules {
3696     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
3697         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
3698     }
3699 }
3700 #[cfg(feature = "Win32_System_Ole_Automation")]
3701 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &INetFwRules {
3702     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
3703         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
3704     }
3705 }
3706 #[repr(C)]
3707 #[doc(hidden)]
3708 pub struct INetFwRules_abi(
3709     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3710     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3711     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3712     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
3713     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3714     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
3715     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
3716     #[cfg(not(feature = "Win32_Foundation"))] usize,
3717     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
3718     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
3719     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
3720     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut i32) -> ::windows::runtime::HRESULT,
3721     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, rule: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3722     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3723     #[cfg(not(feature = "Win32_Foundation"))] usize,
3724     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, rule: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3725     #[cfg(not(feature = "Win32_Foundation"))] usize,
3726     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, newenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3727 );
3728 #[repr(transparent)]
3729 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3730 pub struct INetFwService(::windows::runtime::IUnknown);
3731 impl INetFwService {
3732     #[cfg(feature = "Win32_Foundation")]
3733     pub unsafe fn Name(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
3734         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3735         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
3736     }
3737     pub unsafe fn Type(&self) -> ::windows::runtime::Result<NET_FW_SERVICE_TYPE> {
3738         let mut result__: <NET_FW_SERVICE_TYPE as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3739         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), &mut result__).from_abi::<NET_FW_SERVICE_TYPE>(result__)
3740     }
3741     pub unsafe fn Customized(&self) -> ::windows::runtime::Result<i16> {
3742         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3743         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i16>(result__)
3744     }
3745     pub unsafe fn IpVersion(&self) -> ::windows::runtime::Result<NET_FW_IP_VERSION> {
3746         let mut result__: <NET_FW_IP_VERSION as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3747         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), &mut result__).from_abi::<NET_FW_IP_VERSION>(result__)
3748     }
3749     pub unsafe fn SetIpVersion(&self, ipversion: NET_FW_IP_VERSION) -> ::windows::runtime::Result<()> {
3750         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(ipversion)).ok()
3751     }
3752     pub unsafe fn Scope(&self) -> ::windows::runtime::Result<NET_FW_SCOPE> {
3753         let mut result__: <NET_FW_SCOPE as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3754         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), &mut result__).from_abi::<NET_FW_SCOPE>(result__)
3755     }
3756     pub unsafe fn SetScope(&self, scope: NET_FW_SCOPE) -> ::windows::runtime::Result<()> {
3757         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(scope)).ok()
3758     }
3759     #[cfg(feature = "Win32_Foundation")]
3760     pub unsafe fn RemoteAddresses(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
3761         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3762         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
3763     }
3764     #[cfg(feature = "Win32_Foundation")]
3765     pub unsafe fn SetRemoteAddresses<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, remoteaddrs: Param0) -> ::windows::runtime::Result<()> {
3766         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), remoteaddrs.into_param().abi()).ok()
3767     }
3768     pub unsafe fn Enabled(&self) -> ::windows::runtime::Result<i16> {
3769         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3770         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i16>(result__)
3771     }
3772     pub unsafe fn SetEnabled(&self, enabled: i16) -> ::windows::runtime::Result<()> {
3773         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), ::std::mem::transmute(enabled)).ok()
3774     }
3775     pub unsafe fn GloballyOpenPorts(&self) -> ::windows::runtime::Result<INetFwOpenPorts> {
3776         let mut result__: <INetFwOpenPorts as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3777         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), &mut result__).from_abi::<INetFwOpenPorts>(result__)
3778     }
3779 }
3780 unsafe impl ::windows::runtime::Interface for INetFwService {
3781     type Vtable = INetFwService_abi;
3782     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2046646216, 37006, 18998, [152, 136, 213, 179, 240, 164, 68, 207]);
3783 }
3784 impl ::std::convert::From<INetFwService> for ::windows::runtime::IUnknown {
3785     fn from(value: INetFwService) -> Self {
3786         unsafe { ::std::mem::transmute(value) }
3787     }
3788 }
3789 impl ::std::convert::From<&INetFwService> for ::windows::runtime::IUnknown {
3790     fn from(value: &INetFwService) -> Self {
3791         ::std::convert::From::from(::std::clone::Clone::clone(value))
3792     }
3793 }
3794 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INetFwService {
3795     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3796         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3797     }
3798 }
3799 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INetFwService {
3800     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3801         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3802     }
3803 }
3804 #[cfg(feature = "Win32_System_Ole_Automation")]
3805 impl ::std::convert::From<INetFwService> for super::super::System::Ole::Automation::IDispatch {
3806     fn from(value: INetFwService) -> Self {
3807         unsafe { ::std::mem::transmute(value) }
3808     }
3809 }
3810 #[cfg(feature = "Win32_System_Ole_Automation")]
3811 impl ::std::convert::From<&INetFwService> for super::super::System::Ole::Automation::IDispatch {
3812     fn from(value: &INetFwService) -> Self {
3813         ::std::convert::From::from(::std::clone::Clone::clone(value))
3814     }
3815 }
3816 #[cfg(feature = "Win32_System_Ole_Automation")]
3817 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for INetFwService {
3818     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
3819         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
3820     }
3821 }
3822 #[cfg(feature = "Win32_System_Ole_Automation")]
3823 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &INetFwService {
3824     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
3825         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
3826     }
3827 }
3828 #[repr(C)]
3829 #[doc(hidden)]
3830 pub struct INetFwService_abi(
3831     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3832     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3833     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3834     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
3835     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3836     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
3837     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
3838     #[cfg(not(feature = "Win32_Foundation"))] usize,
3839     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
3840     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
3841     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
3842     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3843     #[cfg(not(feature = "Win32_Foundation"))] usize,
3844     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, r#type: *mut NET_FW_SERVICE_TYPE) -> ::windows::runtime::HRESULT,
3845     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, customized: *mut i16) -> ::windows::runtime::HRESULT,
3846     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ipversion: *mut NET_FW_IP_VERSION) -> ::windows::runtime::HRESULT,
3847     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ipversion: NET_FW_IP_VERSION) -> ::windows::runtime::HRESULT,
3848     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, scope: *mut NET_FW_SCOPE) -> ::windows::runtime::HRESULT,
3849     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, scope: NET_FW_SCOPE) -> ::windows::runtime::HRESULT,
3850     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, remoteaddrs: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3851     #[cfg(not(feature = "Win32_Foundation"))] usize,
3852     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, remoteaddrs: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
3853     #[cfg(not(feature = "Win32_Foundation"))] usize,
3854     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enabled: *mut i16) -> ::windows::runtime::HRESULT,
3855     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enabled: i16) -> ::windows::runtime::HRESULT,
3856     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, openports: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3857 );
3858 #[repr(transparent)]
3859 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3860 pub struct INetFwServiceRestriction(::windows::runtime::IUnknown);
3861 impl INetFwServiceRestriction {
3862     #[cfg(feature = "Win32_Foundation")]
3863     pub unsafe fn RestrictService<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, servicename: Param0, appname: Param1, restrictservice: i16, servicesidrestricted: i16) -> ::windows::runtime::Result<()> {
3864         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), servicename.into_param().abi(), appname.into_param().abi(), ::std::mem::transmute(restrictservice), ::std::mem::transmute(servicesidrestricted)).ok()
3865     }
3866     #[cfg(feature = "Win32_Foundation")]
3867     pub unsafe fn ServiceRestricted<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, servicename: Param0, appname: Param1) -> ::windows::runtime::Result<i16> {
3868         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3869         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), servicename.into_param().abi(), appname.into_param().abi(), &mut result__).from_abi::<i16>(result__)
3870     }
3871     pub unsafe fn Rules(&self) -> ::windows::runtime::Result<INetFwRules> {
3872         let mut result__: <INetFwRules as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3873         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<INetFwRules>(result__)
3874     }
3875 }
3876 unsafe impl ::windows::runtime::Interface for INetFwServiceRestriction {
3877     type Vtable = INetFwServiceRestriction_abi;
3878     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2187836387, 63632, 18716, [183, 182, 45, 177, 239, 14, 93, 43]);
3879 }
3880 impl ::std::convert::From<INetFwServiceRestriction> for ::windows::runtime::IUnknown {
3881     fn from(value: INetFwServiceRestriction) -> Self {
3882         unsafe { ::std::mem::transmute(value) }
3883     }
3884 }
3885 impl ::std::convert::From<&INetFwServiceRestriction> for ::windows::runtime::IUnknown {
3886     fn from(value: &INetFwServiceRestriction) -> Self {
3887         ::std::convert::From::from(::std::clone::Clone::clone(value))
3888     }
3889 }
3890 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INetFwServiceRestriction {
3891     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3892         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3893     }
3894 }
3895 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INetFwServiceRestriction {
3896     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3897         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3898     }
3899 }
3900 #[cfg(feature = "Win32_System_Ole_Automation")]
3901 impl ::std::convert::From<INetFwServiceRestriction> for super::super::System::Ole::Automation::IDispatch {
3902     fn from(value: INetFwServiceRestriction) -> Self {
3903         unsafe { ::std::mem::transmute(value) }
3904     }
3905 }
3906 #[cfg(feature = "Win32_System_Ole_Automation")]
3907 impl ::std::convert::From<&INetFwServiceRestriction> for super::super::System::Ole::Automation::IDispatch {
3908     fn from(value: &INetFwServiceRestriction) -> Self {
3909         ::std::convert::From::from(::std::clone::Clone::clone(value))
3910     }
3911 }
3912 #[cfg(feature = "Win32_System_Ole_Automation")]
3913 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for INetFwServiceRestriction {
3914     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
3915         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
3916     }
3917 }
3918 #[cfg(feature = "Win32_System_Ole_Automation")]
3919 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &INetFwServiceRestriction {
3920     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
3921         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
3922     }
3923 }
3924 #[repr(C)]
3925 #[doc(hidden)]
3926 pub struct INetFwServiceRestriction_abi(
3927     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3928     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3929     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3930     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
3931     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3932     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
3933     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
3934     #[cfg(not(feature = "Win32_Foundation"))] usize,
3935     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
3936     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
3937     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
3938     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, servicename: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, appname: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, restrictservice: i16, servicesidrestricted: i16) -> ::windows::runtime::HRESULT,
3939     #[cfg(not(feature = "Win32_Foundation"))] usize,
3940     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, servicename: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, appname: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, servicerestricted: *mut i16) -> ::windows::runtime::HRESULT,
3941     #[cfg(not(feature = "Win32_Foundation"))] usize,
3942     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, rules: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3943 );
3944 #[repr(transparent)]
3945 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3946 pub struct INetFwServices(::windows::runtime::IUnknown);
3947 impl INetFwServices {
3948     pub unsafe fn Count(&self) -> ::windows::runtime::Result<i32> {
3949         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3950         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
3951     }
3952     pub unsafe fn Item(&self, svctype: NET_FW_SERVICE_TYPE) -> ::windows::runtime::Result<INetFwService> {
3953         let mut result__: <INetFwService as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3954         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(svctype), &mut result__).from_abi::<INetFwService>(result__)
3955     }
3956     pub unsafe fn _NewEnum(&self) -> ::windows::runtime::Result<::windows::runtime::IUnknown> {
3957         let mut result__: <::windows::runtime::IUnknown as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3958         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<::windows::runtime::IUnknown>(result__)
3959     }
3960 }
3961 unsafe impl ::windows::runtime::Interface for INetFwServices {
3962     type Vtable = INetFwServices_abi;
3963     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2036636596, 36926, 16923, [148, 201, 121, 132, 142, 121, 246, 238]);
3964 }
3965 impl ::std::convert::From<INetFwServices> for ::windows::runtime::IUnknown {
3966     fn from(value: INetFwServices) -> Self {
3967         unsafe { ::std::mem::transmute(value) }
3968     }
3969 }
3970 impl ::std::convert::From<&INetFwServices> for ::windows::runtime::IUnknown {
3971     fn from(value: &INetFwServices) -> Self {
3972         ::std::convert::From::from(::std::clone::Clone::clone(value))
3973     }
3974 }
3975 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INetFwServices {
3976     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3977         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3978     }
3979 }
3980 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INetFwServices {
3981     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3982         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3983     }
3984 }
3985 #[cfg(feature = "Win32_System_Ole_Automation")]
3986 impl ::std::convert::From<INetFwServices> for super::super::System::Ole::Automation::IDispatch {
3987     fn from(value: INetFwServices) -> Self {
3988         unsafe { ::std::mem::transmute(value) }
3989     }
3990 }
3991 #[cfg(feature = "Win32_System_Ole_Automation")]
3992 impl ::std::convert::From<&INetFwServices> for super::super::System::Ole::Automation::IDispatch {
3993     fn from(value: &INetFwServices) -> Self {
3994         ::std::convert::From::from(::std::clone::Clone::clone(value))
3995     }
3996 }
3997 #[cfg(feature = "Win32_System_Ole_Automation")]
3998 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for INetFwServices {
3999     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
4000         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
4001     }
4002 }
4003 #[cfg(feature = "Win32_System_Ole_Automation")]
4004 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &INetFwServices {
4005     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
4006         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
4007     }
4008 }
4009 #[repr(C)]
4010 #[doc(hidden)]
4011 pub struct INetFwServices_abi(
4012     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4013     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4014     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4015     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
4016     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4017     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
4018     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
4019     #[cfg(not(feature = "Win32_Foundation"))] usize,
4020     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
4021     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
4022     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
4023     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut i32) -> ::windows::runtime::HRESULT,
4024     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, svctype: NET_FW_SERVICE_TYPE, service: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4025     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, newenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4026 );
4027 #[repr(transparent)]
4028 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4029 pub struct INetSharingConfiguration(::windows::runtime::IUnknown);
4030 impl INetSharingConfiguration {
4031     pub unsafe fn SharingEnabled(&self) -> ::windows::runtime::Result<i16> {
4032         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4033         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i16>(result__)
4034     }
4035     pub unsafe fn SharingConnectionType(&self) -> ::windows::runtime::Result<SHARINGCONNECTIONTYPE> {
4036         let mut result__: <SHARINGCONNECTIONTYPE as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4037         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), &mut result__).from_abi::<SHARINGCONNECTIONTYPE>(result__)
4038     }
4039     pub unsafe fn DisableSharing(&self) -> ::windows::runtime::Result<()> {
4040         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self)).ok()
4041     }
4042     pub unsafe fn EnableSharing(&self, r#type: SHARINGCONNECTIONTYPE) -> ::windows::runtime::Result<()> {
4043         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(r#type)).ok()
4044     }
4045     pub unsafe fn InternetFirewallEnabled(&self) -> ::windows::runtime::Result<i16> {
4046         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4047         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i16>(result__)
4048     }
4049     pub unsafe fn DisableInternetFirewall(&self) -> ::windows::runtime::Result<()> {
4050         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self)).ok()
4051     }
4052     pub unsafe fn EnableInternetFirewall(&self) -> ::windows::runtime::Result<()> {
4053         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self)).ok()
4054     }
4055     pub unsafe fn EnumPortMappings(&self, flags: SHARINGCONNECTION_ENUM_FLAGS) -> ::windows::runtime::Result<INetSharingPortMappingCollection> {
4056         let mut result__: <INetSharingPortMappingCollection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4057         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(flags), &mut result__).from_abi::<INetSharingPortMappingCollection>(result__)
4058     }
4059     #[cfg(feature = "Win32_Foundation")]
4060     pub unsafe fn AddPortMapping<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, bstrname: Param0, ucipprotocol: u8, usexternalport: u16, usinternalport: u16, dwoptions: u32, bstrtargetnameoripaddress: Param5, etargettype: ICS_TARGETTYPE) -> ::windows::runtime::Result<INetSharingPortMapping> {
4061         let mut result__: <INetSharingPortMapping as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4062         (::windows::runtime::Interface::vtable(self).15)(
4063             ::std::mem::transmute_copy(self),
4064             bstrname.into_param().abi(),
4065             ::std::mem::transmute(ucipprotocol),
4066             ::std::mem::transmute(usexternalport),
4067             ::std::mem::transmute(usinternalport),
4068             ::std::mem::transmute(dwoptions),
4069             bstrtargetnameoripaddress.into_param().abi(),
4070             ::std::mem::transmute(etargettype),
4071             &mut result__,
4072         )
4073         .from_abi::<INetSharingPortMapping>(result__)
4074     }
4075     pub unsafe fn RemovePortMapping<'a, Param0: ::windows::runtime::IntoParam<'a, INetSharingPortMapping>>(&self, pmapping: Param0) -> ::windows::runtime::Result<()> {
4076         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), pmapping.into_param().abi()).ok()
4077     }
4078 }
4079 unsafe impl ::windows::runtime::Interface for INetSharingConfiguration {
4080     type Vtable = INetSharingConfiguration_abi;
4081     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3230226102, 7379, 4561, [177, 197, 0, 128, 95, 193, 39, 14]);
4082 }
4083 impl ::std::convert::From<INetSharingConfiguration> for ::windows::runtime::IUnknown {
4084     fn from(value: INetSharingConfiguration) -> Self {
4085         unsafe { ::std::mem::transmute(value) }
4086     }
4087 }
4088 impl ::std::convert::From<&INetSharingConfiguration> for ::windows::runtime::IUnknown {
4089     fn from(value: &INetSharingConfiguration) -> Self {
4090         ::std::convert::From::from(::std::clone::Clone::clone(value))
4091     }
4092 }
4093 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INetSharingConfiguration {
4094     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4095         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4096     }
4097 }
4098 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INetSharingConfiguration {
4099     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4100         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4101     }
4102 }
4103 #[cfg(feature = "Win32_System_Ole_Automation")]
4104 impl ::std::convert::From<INetSharingConfiguration> for super::super::System::Ole::Automation::IDispatch {
4105     fn from(value: INetSharingConfiguration) -> Self {
4106         unsafe { ::std::mem::transmute(value) }
4107     }
4108 }
4109 #[cfg(feature = "Win32_System_Ole_Automation")]
4110 impl ::std::convert::From<&INetSharingConfiguration> for super::super::System::Ole::Automation::IDispatch {
4111     fn from(value: &INetSharingConfiguration) -> Self {
4112         ::std::convert::From::from(::std::clone::Clone::clone(value))
4113     }
4114 }
4115 #[cfg(feature = "Win32_System_Ole_Automation")]
4116 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for INetSharingConfiguration {
4117     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
4118         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
4119     }
4120 }
4121 #[cfg(feature = "Win32_System_Ole_Automation")]
4122 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &INetSharingConfiguration {
4123     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
4124         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
4125     }
4126 }
4127 #[repr(C)]
4128 #[doc(hidden)]
4129 pub struct INetSharingConfiguration_abi(
4130     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4131     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4132     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4133     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
4134     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4135     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
4136     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
4137     #[cfg(not(feature = "Win32_Foundation"))] usize,
4138     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
4139     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
4140     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
4141     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbenabled: *mut i16) -> ::windows::runtime::HRESULT,
4142     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ptype: *mut SHARINGCONNECTIONTYPE) -> ::windows::runtime::HRESULT,
4143     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4144     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, r#type: SHARINGCONNECTIONTYPE) -> ::windows::runtime::HRESULT,
4145     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbenabled: *mut i16) -> ::windows::runtime::HRESULT,
4146     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4147     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4148     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, flags: SHARINGCONNECTION_ENUM_FLAGS, ppcoll: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4149     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, bstrname: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, ucipprotocol: u8, usexternalport: u16, usinternalport: u16, dwoptions: u32, bstrtargetnameoripaddress: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, etargettype: ICS_TARGETTYPE, ppmapping: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4150     #[cfg(not(feature = "Win32_Foundation"))] usize,
4151     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pmapping: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4152 );
4153 #[repr(transparent)]
4154 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4155 pub struct INetSharingEveryConnectionCollection(::windows::runtime::IUnknown);
4156 impl INetSharingEveryConnectionCollection {
4157     pub unsafe fn _NewEnum(&self) -> ::windows::runtime::Result<::windows::runtime::IUnknown> {
4158         let mut result__: <::windows::runtime::IUnknown as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4159         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<::windows::runtime::IUnknown>(result__)
4160     }
4161     pub unsafe fn Count(&self) -> ::windows::runtime::Result<i32> {
4162         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4163         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
4164     }
4165 }
4166 unsafe impl ::windows::runtime::Interface for INetSharingEveryConnectionCollection {
4167     type Vtable = INetSharingEveryConnectionCollection_abi;
4168     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(868508732, 30737, 18170, [168, 154, 118, 133, 151, 189, 114, 35]);
4169 }
4170 impl ::std::convert::From<INetSharingEveryConnectionCollection> for ::windows::runtime::IUnknown {
4171     fn from(value: INetSharingEveryConnectionCollection) -> Self {
4172         unsafe { ::std::mem::transmute(value) }
4173     }
4174 }
4175 impl ::std::convert::From<&INetSharingEveryConnectionCollection> for ::windows::runtime::IUnknown {
4176     fn from(value: &INetSharingEveryConnectionCollection) -> Self {
4177         ::std::convert::From::from(::std::clone::Clone::clone(value))
4178     }
4179 }
4180 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INetSharingEveryConnectionCollection {
4181     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4182         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4183     }
4184 }
4185 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INetSharingEveryConnectionCollection {
4186     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4187         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4188     }
4189 }
4190 #[cfg(feature = "Win32_System_Ole_Automation")]
4191 impl ::std::convert::From<INetSharingEveryConnectionCollection> for super::super::System::Ole::Automation::IDispatch {
4192     fn from(value: INetSharingEveryConnectionCollection) -> Self {
4193         unsafe { ::std::mem::transmute(value) }
4194     }
4195 }
4196 #[cfg(feature = "Win32_System_Ole_Automation")]
4197 impl ::std::convert::From<&INetSharingEveryConnectionCollection> for super::super::System::Ole::Automation::IDispatch {
4198     fn from(value: &INetSharingEveryConnectionCollection) -> Self {
4199         ::std::convert::From::from(::std::clone::Clone::clone(value))
4200     }
4201 }
4202 #[cfg(feature = "Win32_System_Ole_Automation")]
4203 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for INetSharingEveryConnectionCollection {
4204     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
4205         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
4206     }
4207 }
4208 #[cfg(feature = "Win32_System_Ole_Automation")]
4209 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &INetSharingEveryConnectionCollection {
4210     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
4211         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
4212     }
4213 }
4214 #[repr(C)]
4215 #[doc(hidden)]
4216 pub struct INetSharingEveryConnectionCollection_abi(
4217     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4218     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4219     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4220     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
4221     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4222     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
4223     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
4224     #[cfg(not(feature = "Win32_Foundation"))] usize,
4225     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
4226     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
4227     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
4228     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pval: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4229     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pval: *mut i32) -> ::windows::runtime::HRESULT,
4230 );
4231 #[repr(transparent)]
4232 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4233 pub struct INetSharingManager(::windows::runtime::IUnknown);
4234 impl INetSharingManager {
4235     pub unsafe fn SharingInstalled(&self) -> ::windows::runtime::Result<i16> {
4236         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4237         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i16>(result__)
4238     }
4239     pub unsafe fn EnumPublicConnections(&self, flags: SHARINGCONNECTION_ENUM_FLAGS) -> ::windows::runtime::Result<INetSharingPublicConnectionCollection> {
4240         let mut result__: <INetSharingPublicConnectionCollection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4241         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(flags), &mut result__).from_abi::<INetSharingPublicConnectionCollection>(result__)
4242     }
4243     pub unsafe fn EnumPrivateConnections(&self, flags: SHARINGCONNECTION_ENUM_FLAGS) -> ::windows::runtime::Result<INetSharingPrivateConnectionCollection> {
4244         let mut result__: <INetSharingPrivateConnectionCollection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4245         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(flags), &mut result__).from_abi::<INetSharingPrivateConnectionCollection>(result__)
4246     }
4247     pub unsafe fn INetSharingConfigurationForINetConnection<'a, Param0: ::windows::runtime::IntoParam<'a, INetConnection>>(&self, pnetconnection: Param0) -> ::windows::runtime::Result<INetSharingConfiguration> {
4248         let mut result__: <INetSharingConfiguration as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4249         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), pnetconnection.into_param().abi(), &mut result__).from_abi::<INetSharingConfiguration>(result__)
4250     }
4251     pub unsafe fn EnumEveryConnection(&self) -> ::windows::runtime::Result<INetSharingEveryConnectionCollection> {
4252         let mut result__: <INetSharingEveryConnectionCollection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4253         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<INetSharingEveryConnectionCollection>(result__)
4254     }
4255     pub unsafe fn NetConnectionProps<'a, Param0: ::windows::runtime::IntoParam<'a, INetConnection>>(&self, pnetconnection: Param0) -> ::windows::runtime::Result<INetConnectionProps> {
4256         let mut result__: <INetConnectionProps as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4257         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), pnetconnection.into_param().abi(), &mut result__).from_abi::<INetConnectionProps>(result__)
4258     }
4259 }
4260 unsafe impl ::windows::runtime::Interface for INetSharingManager {
4261     type Vtable = INetSharingManager_abi;
4262     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3230226103, 7379, 4561, [177, 197, 0, 128, 95, 193, 39, 14]);
4263 }
4264 impl ::std::convert::From<INetSharingManager> for ::windows::runtime::IUnknown {
4265     fn from(value: INetSharingManager) -> Self {
4266         unsafe { ::std::mem::transmute(value) }
4267     }
4268 }
4269 impl ::std::convert::From<&INetSharingManager> for ::windows::runtime::IUnknown {
4270     fn from(value: &INetSharingManager) -> Self {
4271         ::std::convert::From::from(::std::clone::Clone::clone(value))
4272     }
4273 }
4274 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INetSharingManager {
4275     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4276         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4277     }
4278 }
4279 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INetSharingManager {
4280     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4281         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4282     }
4283 }
4284 #[cfg(feature = "Win32_System_Ole_Automation")]
4285 impl ::std::convert::From<INetSharingManager> for super::super::System::Ole::Automation::IDispatch {
4286     fn from(value: INetSharingManager) -> Self {
4287         unsafe { ::std::mem::transmute(value) }
4288     }
4289 }
4290 #[cfg(feature = "Win32_System_Ole_Automation")]
4291 impl ::std::convert::From<&INetSharingManager> for super::super::System::Ole::Automation::IDispatch {
4292     fn from(value: &INetSharingManager) -> Self {
4293         ::std::convert::From::from(::std::clone::Clone::clone(value))
4294     }
4295 }
4296 #[cfg(feature = "Win32_System_Ole_Automation")]
4297 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for INetSharingManager {
4298     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
4299         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
4300     }
4301 }
4302 #[cfg(feature = "Win32_System_Ole_Automation")]
4303 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &INetSharingManager {
4304     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
4305         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
4306     }
4307 }
4308 #[repr(C)]
4309 #[doc(hidden)]
4310 pub struct INetSharingManager_abi(
4311     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4312     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4313     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4314     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
4315     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4316     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
4317     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
4318     #[cfg(not(feature = "Win32_Foundation"))] usize,
4319     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
4320     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
4321     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
4322     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbinstalled: *mut i16) -> ::windows::runtime::HRESULT,
4323     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, flags: SHARINGCONNECTION_ENUM_FLAGS, ppcoll: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4324     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, flags: SHARINGCONNECTION_ENUM_FLAGS, ppcoll: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4325     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pnetconnection: ::windows::runtime::RawPtr, ppnetsharingconfiguration: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4326     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppcoll: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4327     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pnetconnection: ::windows::runtime::RawPtr, ppprops: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4328 );
4329 #[repr(transparent)]
4330 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4331 pub struct INetSharingPortMapping(::windows::runtime::IUnknown);
4332 impl INetSharingPortMapping {
4333     pub unsafe fn Disable(&self) -> ::windows::runtime::Result<()> {
4334         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self)).ok()
4335     }
4336     pub unsafe fn Enable(&self) -> ::windows::runtime::Result<()> {
4337         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self)).ok()
4338     }
4339     pub unsafe fn Properties(&self) -> ::windows::runtime::Result<INetSharingPortMappingProps> {
4340         let mut result__: <INetSharingPortMappingProps as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4341         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<INetSharingPortMappingProps>(result__)
4342     }
4343     pub unsafe fn Delete(&self) -> ::windows::runtime::Result<()> {
4344         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self)).ok()
4345     }
4346 }
4347 unsafe impl ::windows::runtime::Interface for INetSharingPortMapping {
4348     type Vtable = INetSharingPortMapping_abi;
4349     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3230226097, 7379, 4561, [177, 197, 0, 128, 95, 193, 39, 14]);
4350 }
4351 impl ::std::convert::From<INetSharingPortMapping> for ::windows::runtime::IUnknown {
4352     fn from(value: INetSharingPortMapping) -> Self {
4353         unsafe { ::std::mem::transmute(value) }
4354     }
4355 }
4356 impl ::std::convert::From<&INetSharingPortMapping> for ::windows::runtime::IUnknown {
4357     fn from(value: &INetSharingPortMapping) -> Self {
4358         ::std::convert::From::from(::std::clone::Clone::clone(value))
4359     }
4360 }
4361 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INetSharingPortMapping {
4362     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4363         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4364     }
4365 }
4366 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INetSharingPortMapping {
4367     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4368         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4369     }
4370 }
4371 #[cfg(feature = "Win32_System_Ole_Automation")]
4372 impl ::std::convert::From<INetSharingPortMapping> for super::super::System::Ole::Automation::IDispatch {
4373     fn from(value: INetSharingPortMapping) -> Self {
4374         unsafe { ::std::mem::transmute(value) }
4375     }
4376 }
4377 #[cfg(feature = "Win32_System_Ole_Automation")]
4378 impl ::std::convert::From<&INetSharingPortMapping> for super::super::System::Ole::Automation::IDispatch {
4379     fn from(value: &INetSharingPortMapping) -> Self {
4380         ::std::convert::From::from(::std::clone::Clone::clone(value))
4381     }
4382 }
4383 #[cfg(feature = "Win32_System_Ole_Automation")]
4384 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for INetSharingPortMapping {
4385     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
4386         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
4387     }
4388 }
4389 #[cfg(feature = "Win32_System_Ole_Automation")]
4390 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &INetSharingPortMapping {
4391     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
4392         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
4393     }
4394 }
4395 #[repr(C)]
4396 #[doc(hidden)]
4397 pub struct INetSharingPortMapping_abi(
4398     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4399     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4400     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4401     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
4402     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4403     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
4404     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
4405     #[cfg(not(feature = "Win32_Foundation"))] usize,
4406     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
4407     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
4408     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
4409     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4410     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4411     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppnspmp: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4412     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4413 );
4414 #[repr(transparent)]
4415 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4416 pub struct INetSharingPortMappingCollection(::windows::runtime::IUnknown);
4417 impl INetSharingPortMappingCollection {
4418     pub unsafe fn _NewEnum(&self) -> ::windows::runtime::Result<::windows::runtime::IUnknown> {
4419         let mut result__: <::windows::runtime::IUnknown as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4420         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<::windows::runtime::IUnknown>(result__)
4421     }
4422     pub unsafe fn Count(&self) -> ::windows::runtime::Result<i32> {
4423         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4424         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
4425     }
4426 }
4427 unsafe impl ::windows::runtime::Interface for INetSharingPortMappingCollection {
4428     type Vtable = INetSharingPortMappingCollection_abi;
4429     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(48538334, 55840, 20020, [137, 200, 172, 34, 39, 90, 1, 11]);
4430 }
4431 impl ::std::convert::From<INetSharingPortMappingCollection> for ::windows::runtime::IUnknown {
4432     fn from(value: INetSharingPortMappingCollection) -> Self {
4433         unsafe { ::std::mem::transmute(value) }
4434     }
4435 }
4436 impl ::std::convert::From<&INetSharingPortMappingCollection> for ::windows::runtime::IUnknown {
4437     fn from(value: &INetSharingPortMappingCollection) -> Self {
4438         ::std::convert::From::from(::std::clone::Clone::clone(value))
4439     }
4440 }
4441 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INetSharingPortMappingCollection {
4442     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4443         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4444     }
4445 }
4446 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INetSharingPortMappingCollection {
4447     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4448         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4449     }
4450 }
4451 #[cfg(feature = "Win32_System_Ole_Automation")]
4452 impl ::std::convert::From<INetSharingPortMappingCollection> for super::super::System::Ole::Automation::IDispatch {
4453     fn from(value: INetSharingPortMappingCollection) -> Self {
4454         unsafe { ::std::mem::transmute(value) }
4455     }
4456 }
4457 #[cfg(feature = "Win32_System_Ole_Automation")]
4458 impl ::std::convert::From<&INetSharingPortMappingCollection> for super::super::System::Ole::Automation::IDispatch {
4459     fn from(value: &INetSharingPortMappingCollection) -> Self {
4460         ::std::convert::From::from(::std::clone::Clone::clone(value))
4461     }
4462 }
4463 #[cfg(feature = "Win32_System_Ole_Automation")]
4464 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for INetSharingPortMappingCollection {
4465     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
4466         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
4467     }
4468 }
4469 #[cfg(feature = "Win32_System_Ole_Automation")]
4470 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &INetSharingPortMappingCollection {
4471     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
4472         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
4473     }
4474 }
4475 #[repr(C)]
4476 #[doc(hidden)]
4477 pub struct INetSharingPortMappingCollection_abi(
4478     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4479     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4480     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4481     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
4482     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4483     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
4484     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
4485     #[cfg(not(feature = "Win32_Foundation"))] usize,
4486     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
4487     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
4488     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
4489     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pval: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4490     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pval: *mut i32) -> ::windows::runtime::HRESULT,
4491 );
4492 #[repr(transparent)]
4493 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4494 pub struct INetSharingPortMappingProps(::windows::runtime::IUnknown);
4495 impl INetSharingPortMappingProps {
4496     #[cfg(feature = "Win32_Foundation")]
4497     pub unsafe fn Name(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
4498         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4499         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
4500     }
4501     pub unsafe fn IPProtocol(&self) -> ::windows::runtime::Result<u8> {
4502         let mut result__: <u8 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4503         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u8>(result__)
4504     }
4505     pub unsafe fn ExternalPort(&self) -> ::windows::runtime::Result<i32> {
4506         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4507         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
4508     }
4509     pub unsafe fn InternalPort(&self) -> ::windows::runtime::Result<i32> {
4510         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4511         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
4512     }
4513     pub unsafe fn Options(&self) -> ::windows::runtime::Result<i32> {
4514         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4515         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
4516     }
4517     #[cfg(feature = "Win32_Foundation")]
4518     pub unsafe fn TargetName(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
4519         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4520         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
4521     }
4522     #[cfg(feature = "Win32_Foundation")]
4523     pub unsafe fn TargetIPAddress(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
4524         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4525         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
4526     }
4527     pub unsafe fn Enabled(&self) -> ::windows::runtime::Result<i16> {
4528         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4529         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i16>(result__)
4530     }
4531 }
4532 unsafe impl ::windows::runtime::Interface for INetSharingPortMappingProps {
4533     type Vtable = INetSharingPortMappingProps_abi;
4534     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(616032693, 58255, 18053, [133, 27, 0, 137, 44, 245, 249, 64]);
4535 }
4536 impl ::std::convert::From<INetSharingPortMappingProps> for ::windows::runtime::IUnknown {
4537     fn from(value: INetSharingPortMappingProps) -> Self {
4538         unsafe { ::std::mem::transmute(value) }
4539     }
4540 }
4541 impl ::std::convert::From<&INetSharingPortMappingProps> for ::windows::runtime::IUnknown {
4542     fn from(value: &INetSharingPortMappingProps) -> Self {
4543         ::std::convert::From::from(::std::clone::Clone::clone(value))
4544     }
4545 }
4546 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INetSharingPortMappingProps {
4547     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4548         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4549     }
4550 }
4551 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INetSharingPortMappingProps {
4552     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4553         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4554     }
4555 }
4556 #[cfg(feature = "Win32_System_Ole_Automation")]
4557 impl ::std::convert::From<INetSharingPortMappingProps> for super::super::System::Ole::Automation::IDispatch {
4558     fn from(value: INetSharingPortMappingProps) -> Self {
4559         unsafe { ::std::mem::transmute(value) }
4560     }
4561 }
4562 #[cfg(feature = "Win32_System_Ole_Automation")]
4563 impl ::std::convert::From<&INetSharingPortMappingProps> for super::super::System::Ole::Automation::IDispatch {
4564     fn from(value: &INetSharingPortMappingProps) -> Self {
4565         ::std::convert::From::from(::std::clone::Clone::clone(value))
4566     }
4567 }
4568 #[cfg(feature = "Win32_System_Ole_Automation")]
4569 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for INetSharingPortMappingProps {
4570     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
4571         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
4572     }
4573 }
4574 #[cfg(feature = "Win32_System_Ole_Automation")]
4575 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &INetSharingPortMappingProps {
4576     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
4577         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
4578     }
4579 }
4580 #[repr(C)]
4581 #[doc(hidden)]
4582 pub struct INetSharingPortMappingProps_abi(
4583     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4584     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4585     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4586     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
4587     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4588     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
4589     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
4590     #[cfg(not(feature = "Win32_Foundation"))] usize,
4591     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
4592     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
4593     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
4594     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrname: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
4595     #[cfg(not(feature = "Win32_Foundation"))] usize,
4596     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pucipprot: *mut u8) -> ::windows::runtime::HRESULT,
4597     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pusport: *mut i32) -> ::windows::runtime::HRESULT,
4598     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pusport: *mut i32) -> ::windows::runtime::HRESULT,
4599     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdwoptions: *mut i32) -> ::windows::runtime::HRESULT,
4600     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrtargetname: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
4601     #[cfg(not(feature = "Win32_Foundation"))] usize,
4602     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrtargetipaddress: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
4603     #[cfg(not(feature = "Win32_Foundation"))] usize,
4604     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbool: *mut i16) -> ::windows::runtime::HRESULT,
4605 );
4606 #[repr(transparent)]
4607 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4608 pub struct INetSharingPrivateConnectionCollection(::windows::runtime::IUnknown);
4609 impl INetSharingPrivateConnectionCollection {
4610     pub unsafe fn _NewEnum(&self) -> ::windows::runtime::Result<::windows::runtime::IUnknown> {
4611         let mut result__: <::windows::runtime::IUnknown as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4612         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<::windows::runtime::IUnknown>(result__)
4613     }
4614     pub unsafe fn Count(&self) -> ::windows::runtime::Result<i32> {
4615         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4616         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
4617     }
4618 }
4619 unsafe impl ::windows::runtime::Interface for INetSharingPrivateConnectionCollection {
4620     type Vtable = INetSharingPrivateConnectionCollection_abi;
4621     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(950954464, 17417, 16426, [162, 203, 233, 101, 199, 39, 248, 64]);
4622 }
4623 impl ::std::convert::From<INetSharingPrivateConnectionCollection> for ::windows::runtime::IUnknown {
4624     fn from(value: INetSharingPrivateConnectionCollection) -> Self {
4625         unsafe { ::std::mem::transmute(value) }
4626     }
4627 }
4628 impl ::std::convert::From<&INetSharingPrivateConnectionCollection> for ::windows::runtime::IUnknown {
4629     fn from(value: &INetSharingPrivateConnectionCollection) -> Self {
4630         ::std::convert::From::from(::std::clone::Clone::clone(value))
4631     }
4632 }
4633 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INetSharingPrivateConnectionCollection {
4634     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4635         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4636     }
4637 }
4638 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INetSharingPrivateConnectionCollection {
4639     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4640         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4641     }
4642 }
4643 #[cfg(feature = "Win32_System_Ole_Automation")]
4644 impl ::std::convert::From<INetSharingPrivateConnectionCollection> for super::super::System::Ole::Automation::IDispatch {
4645     fn from(value: INetSharingPrivateConnectionCollection) -> Self {
4646         unsafe { ::std::mem::transmute(value) }
4647     }
4648 }
4649 #[cfg(feature = "Win32_System_Ole_Automation")]
4650 impl ::std::convert::From<&INetSharingPrivateConnectionCollection> for super::super::System::Ole::Automation::IDispatch {
4651     fn from(value: &INetSharingPrivateConnectionCollection) -> Self {
4652         ::std::convert::From::from(::std::clone::Clone::clone(value))
4653     }
4654 }
4655 #[cfg(feature = "Win32_System_Ole_Automation")]
4656 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for INetSharingPrivateConnectionCollection {
4657     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
4658         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
4659     }
4660 }
4661 #[cfg(feature = "Win32_System_Ole_Automation")]
4662 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &INetSharingPrivateConnectionCollection {
4663     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
4664         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
4665     }
4666 }
4667 #[repr(C)]
4668 #[doc(hidden)]
4669 pub struct INetSharingPrivateConnectionCollection_abi(
4670     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4671     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4672     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4673     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
4674     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4675     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
4676     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
4677     #[cfg(not(feature = "Win32_Foundation"))] usize,
4678     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
4679     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
4680     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
4681     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pval: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4682     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pval: *mut i32) -> ::windows::runtime::HRESULT,
4683 );
4684 #[repr(transparent)]
4685 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4686 pub struct INetSharingPublicConnectionCollection(::windows::runtime::IUnknown);
4687 impl INetSharingPublicConnectionCollection {
4688     pub unsafe fn _NewEnum(&self) -> ::windows::runtime::Result<::windows::runtime::IUnknown> {
4689         let mut result__: <::windows::runtime::IUnknown as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4690         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<::windows::runtime::IUnknown>(result__)
4691     }
4692     pub unsafe fn Count(&self) -> ::windows::runtime::Result<i32> {
4693         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4694         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
4695     }
4696 }
4697 unsafe impl ::windows::runtime::Interface for INetSharingPublicConnectionCollection {
4698     type Vtable = INetSharingPublicConnectionCollection_abi;
4699     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2105172821, 62322, 18801, [161, 73, 191, 201, 39, 190, 118, 42]);
4700 }
4701 impl ::std::convert::From<INetSharingPublicConnectionCollection> for ::windows::runtime::IUnknown {
4702     fn from(value: INetSharingPublicConnectionCollection) -> Self {
4703         unsafe { ::std::mem::transmute(value) }
4704     }
4705 }
4706 impl ::std::convert::From<&INetSharingPublicConnectionCollection> for ::windows::runtime::IUnknown {
4707     fn from(value: &INetSharingPublicConnectionCollection) -> Self {
4708         ::std::convert::From::from(::std::clone::Clone::clone(value))
4709     }
4710 }
4711 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for INetSharingPublicConnectionCollection {
4712     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4713         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4714     }
4715 }
4716 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &INetSharingPublicConnectionCollection {
4717     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4718         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4719     }
4720 }
4721 #[cfg(feature = "Win32_System_Ole_Automation")]
4722 impl ::std::convert::From<INetSharingPublicConnectionCollection> for super::super::System::Ole::Automation::IDispatch {
4723     fn from(value: INetSharingPublicConnectionCollection) -> Self {
4724         unsafe { ::std::mem::transmute(value) }
4725     }
4726 }
4727 #[cfg(feature = "Win32_System_Ole_Automation")]
4728 impl ::std::convert::From<&INetSharingPublicConnectionCollection> for super::super::System::Ole::Automation::IDispatch {
4729     fn from(value: &INetSharingPublicConnectionCollection) -> Self {
4730         ::std::convert::From::from(::std::clone::Clone::clone(value))
4731     }
4732 }
4733 #[cfg(feature = "Win32_System_Ole_Automation")]
4734 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for INetSharingPublicConnectionCollection {
4735     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
4736         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
4737     }
4738 }
4739 #[cfg(feature = "Win32_System_Ole_Automation")]
4740 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &INetSharingPublicConnectionCollection {
4741     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
4742         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
4743     }
4744 }
4745 #[repr(C)]
4746 #[doc(hidden)]
4747 pub struct INetSharingPublicConnectionCollection_abi(
4748     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4749     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4750     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4751     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
4752     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4753     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
4754     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
4755     #[cfg(not(feature = "Win32_Foundation"))] usize,
4756     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
4757     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
4758     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
4759     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pval: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4760     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pval: *mut i32) -> ::windows::runtime::HRESULT,
4761 );
4762 #[repr(transparent)]
4763 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4764 pub struct IStaticPortMapping(::windows::runtime::IUnknown);
4765 impl IStaticPortMapping {
4766     #[cfg(feature = "Win32_Foundation")]
4767     pub unsafe fn ExternalIPAddress(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
4768         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4769         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
4770     }
4771     pub unsafe fn ExternalPort(&self) -> ::windows::runtime::Result<i32> {
4772         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4773         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
4774     }
4775     pub unsafe fn InternalPort(&self) -> ::windows::runtime::Result<i32> {
4776         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4777         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
4778     }
4779     #[cfg(feature = "Win32_Foundation")]
4780     pub unsafe fn Protocol(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
4781         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4782         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
4783     }
4784     #[cfg(feature = "Win32_Foundation")]
4785     pub unsafe fn InternalClient(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
4786         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4787         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
4788     }
4789     pub unsafe fn Enabled(&self) -> ::windows::runtime::Result<i16> {
4790         let mut result__: <i16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4791         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i16>(result__)
4792     }
4793     #[cfg(feature = "Win32_Foundation")]
4794     pub unsafe fn Description(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
4795         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4796         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
4797     }
4798     #[cfg(feature = "Win32_Foundation")]
4799     pub unsafe fn EditInternalClient<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, bstrinternalclient: Param0) -> ::windows::runtime::Result<()> {
4800         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), bstrinternalclient.into_param().abi()).ok()
4801     }
4802     pub unsafe fn Enable(&self, vb: i16) -> ::windows::runtime::Result<()> {
4803         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(vb)).ok()
4804     }
4805     #[cfg(feature = "Win32_Foundation")]
4806     pub unsafe fn EditDescription<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, bstrdescription: Param0) -> ::windows::runtime::Result<()> {
4807         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), bstrdescription.into_param().abi()).ok()
4808     }
4809     pub unsafe fn EditInternalPort(&self, linternalport: i32) -> ::windows::runtime::Result<()> {
4810         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), ::std::mem::transmute(linternalport)).ok()
4811     }
4812 }
4813 unsafe impl ::windows::runtime::Interface for IStaticPortMapping {
4814     type Vtable = IStaticPortMapping_abi;
4815     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1863348511, 29339, 16869, [147, 184, 242, 29, 15, 129, 141, 241]);
4816 }
4817 impl ::std::convert::From<IStaticPortMapping> for ::windows::runtime::IUnknown {
4818     fn from(value: IStaticPortMapping) -> Self {
4819         unsafe { ::std::mem::transmute(value) }
4820     }
4821 }
4822 impl ::std::convert::From<&IStaticPortMapping> for ::windows::runtime::IUnknown {
4823     fn from(value: &IStaticPortMapping) -> Self {
4824         ::std::convert::From::from(::std::clone::Clone::clone(value))
4825     }
4826 }
4827 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IStaticPortMapping {
4828     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4829         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4830     }
4831 }
4832 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IStaticPortMapping {
4833     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4834         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4835     }
4836 }
4837 #[cfg(feature = "Win32_System_Ole_Automation")]
4838 impl ::std::convert::From<IStaticPortMapping> for super::super::System::Ole::Automation::IDispatch {
4839     fn from(value: IStaticPortMapping) -> Self {
4840         unsafe { ::std::mem::transmute(value) }
4841     }
4842 }
4843 #[cfg(feature = "Win32_System_Ole_Automation")]
4844 impl ::std::convert::From<&IStaticPortMapping> for super::super::System::Ole::Automation::IDispatch {
4845     fn from(value: &IStaticPortMapping) -> Self {
4846         ::std::convert::From::from(::std::clone::Clone::clone(value))
4847     }
4848 }
4849 #[cfg(feature = "Win32_System_Ole_Automation")]
4850 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for IStaticPortMapping {
4851     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
4852         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
4853     }
4854 }
4855 #[cfg(feature = "Win32_System_Ole_Automation")]
4856 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &IStaticPortMapping {
4857     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
4858         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
4859     }
4860 }
4861 #[repr(C)]
4862 #[doc(hidden)]
4863 pub struct IStaticPortMapping_abi(
4864     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4865     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4866     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4867     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
4868     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4869     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
4870     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
4871     #[cfg(not(feature = "Win32_Foundation"))] usize,
4872     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
4873     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
4874     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
4875     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pval: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
4876     #[cfg(not(feature = "Win32_Foundation"))] usize,
4877     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pval: *mut i32) -> ::windows::runtime::HRESULT,
4878     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pval: *mut i32) -> ::windows::runtime::HRESULT,
4879     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pval: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
4880     #[cfg(not(feature = "Win32_Foundation"))] usize,
4881     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pval: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
4882     #[cfg(not(feature = "Win32_Foundation"))] usize,
4883     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pval: *mut i16) -> ::windows::runtime::HRESULT,
4884     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pval: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
4885     #[cfg(not(feature = "Win32_Foundation"))] usize,
4886     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, bstrinternalclient: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
4887     #[cfg(not(feature = "Win32_Foundation"))] usize,
4888     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, vb: i16) -> ::windows::runtime::HRESULT,
4889     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, bstrdescription: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
4890     #[cfg(not(feature = "Win32_Foundation"))] usize,
4891     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linternalport: i32) -> ::windows::runtime::HRESULT,
4892 );
4893 #[repr(transparent)]
4894 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4895 pub struct IStaticPortMappingCollection(::windows::runtime::IUnknown);
4896 impl IStaticPortMappingCollection {
4897     pub unsafe fn _NewEnum(&self) -> ::windows::runtime::Result<::windows::runtime::IUnknown> {
4898         let mut result__: <::windows::runtime::IUnknown as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4899         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<::windows::runtime::IUnknown>(result__)
4900     }
4901     #[cfg(feature = "Win32_Foundation")]
4902     pub unsafe fn Item<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, lexternalport: i32, bstrprotocol: Param1) -> ::windows::runtime::Result<IStaticPortMapping> {
4903         let mut result__: <IStaticPortMapping as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4904         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(lexternalport), bstrprotocol.into_param().abi(), &mut result__).from_abi::<IStaticPortMapping>(result__)
4905     }
4906     pub unsafe fn Count(&self) -> ::windows::runtime::Result<i32> {
4907         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4908         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
4909     }
4910     #[cfg(feature = "Win32_Foundation")]
4911     pub unsafe fn Remove<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, lexternalport: i32, bstrprotocol: Param1) -> ::windows::runtime::Result<()> {
4912         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(lexternalport), bstrprotocol.into_param().abi()).ok()
4913     }
4914     #[cfg(feature = "Win32_Foundation")]
4915     pub unsafe fn Add<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, lexternalport: i32, bstrprotocol: Param1, linternalport: i32, bstrinternalclient: Param3, benabled: i16, bstrdescription: Param5) -> ::windows::runtime::Result<IStaticPortMapping> {
4916         let mut result__: <IStaticPortMapping as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4917         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(lexternalport), bstrprotocol.into_param().abi(), ::std::mem::transmute(linternalport), bstrinternalclient.into_param().abi(), ::std::mem::transmute(benabled), bstrdescription.into_param().abi(), &mut result__).from_abi::<IStaticPortMapping>(result__)
4918     }
4919 }
4920 unsafe impl ::windows::runtime::Interface for IStaticPortMappingCollection {
4921     type Vtable = IStaticPortMappingCollection_abi;
4922     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3441376887, 26326, 18020, [130, 199, 54, 219, 182, 65, 208, 241]);
4923 }
4924 impl ::std::convert::From<IStaticPortMappingCollection> for ::windows::runtime::IUnknown {
4925     fn from(value: IStaticPortMappingCollection) -> Self {
4926         unsafe { ::std::mem::transmute(value) }
4927     }
4928 }
4929 impl ::std::convert::From<&IStaticPortMappingCollection> for ::windows::runtime::IUnknown {
4930     fn from(value: &IStaticPortMappingCollection) -> Self {
4931         ::std::convert::From::from(::std::clone::Clone::clone(value))
4932     }
4933 }
4934 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IStaticPortMappingCollection {
4935     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4936         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4937     }
4938 }
4939 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IStaticPortMappingCollection {
4940     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4941         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4942     }
4943 }
4944 #[cfg(feature = "Win32_System_Ole_Automation")]
4945 impl ::std::convert::From<IStaticPortMappingCollection> for super::super::System::Ole::Automation::IDispatch {
4946     fn from(value: IStaticPortMappingCollection) -> Self {
4947         unsafe { ::std::mem::transmute(value) }
4948     }
4949 }
4950 #[cfg(feature = "Win32_System_Ole_Automation")]
4951 impl ::std::convert::From<&IStaticPortMappingCollection> for super::super::System::Ole::Automation::IDispatch {
4952     fn from(value: &IStaticPortMappingCollection) -> Self {
4953         ::std::convert::From::from(::std::clone::Clone::clone(value))
4954     }
4955 }
4956 #[cfg(feature = "Win32_System_Ole_Automation")]
4957 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for IStaticPortMappingCollection {
4958     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
4959         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
4960     }
4961 }
4962 #[cfg(feature = "Win32_System_Ole_Automation")]
4963 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &IStaticPortMappingCollection {
4964     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
4965         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
4966     }
4967 }
4968 #[repr(C)]
4969 #[doc(hidden)]
4970 pub struct IStaticPortMappingCollection_abi(
4971     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4972     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4973     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4974     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
4975     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4976     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
4977     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
4978     #[cfg(not(feature = "Win32_Foundation"))] usize,
4979     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
4980     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
4981     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
4982     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pval: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4983     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lexternalport: i32, bstrprotocol: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, ppspm: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4984     #[cfg(not(feature = "Win32_Foundation"))] usize,
4985     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pval: *mut i32) -> ::windows::runtime::HRESULT,
4986     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lexternalport: i32, bstrprotocol: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
4987     #[cfg(not(feature = "Win32_Foundation"))] usize,
4988     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lexternalport: i32, bstrprotocol: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, linternalport: i32, bstrinternalclient: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, benabled: i16, bstrdescription: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, ppspm: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4989     #[cfg(not(feature = "Win32_Foundation"))] usize,
4990 );
4991 #[repr(transparent)]
4992 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4993 pub struct IUPnPNAT(::windows::runtime::IUnknown);
4994 impl IUPnPNAT {
4995     pub unsafe fn StaticPortMappingCollection(&self) -> ::windows::runtime::Result<IStaticPortMappingCollection> {
4996         let mut result__: <IStaticPortMappingCollection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4997         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IStaticPortMappingCollection>(result__)
4998     }
4999     pub unsafe fn DynamicPortMappingCollection(&self) -> ::windows::runtime::Result<IDynamicPortMappingCollection> {
5000         let mut result__: <IDynamicPortMappingCollection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5001         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDynamicPortMappingCollection>(result__)
5002     }
5003     pub unsafe fn NATEventManager(&self) -> ::windows::runtime::Result<INATEventManager> {
5004         let mut result__: <INATEventManager as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5005         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<INATEventManager>(result__)
5006     }
5007 }
5008 unsafe impl ::windows::runtime::Interface for IUPnPNAT {
5009     type Vtable = IUPnPNAT_abi;
5010     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2977024018, 52342, 18522, [148, 216, 182, 179, 162, 121, 78, 153]);
5011 }
5012 impl ::std::convert::From<IUPnPNAT> for ::windows::runtime::IUnknown {
5013     fn from(value: IUPnPNAT) -> Self {
5014         unsafe { ::std::mem::transmute(value) }
5015     }
5016 }
5017 impl ::std::convert::From<&IUPnPNAT> for ::windows::runtime::IUnknown {
5018     fn from(value: &IUPnPNAT) -> Self {
5019         ::std::convert::From::from(::std::clone::Clone::clone(value))
5020     }
5021 }
5022 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IUPnPNAT {
5023     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5024         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
5025     }
5026 }
5027 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IUPnPNAT {
5028     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5029         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
5030     }
5031 }
5032 #[cfg(feature = "Win32_System_Ole_Automation")]
5033 impl ::std::convert::From<IUPnPNAT> for super::super::System::Ole::Automation::IDispatch {
5034     fn from(value: IUPnPNAT) -> Self {
5035         unsafe { ::std::mem::transmute(value) }
5036     }
5037 }
5038 #[cfg(feature = "Win32_System_Ole_Automation")]
5039 impl ::std::convert::From<&IUPnPNAT> for super::super::System::Ole::Automation::IDispatch {
5040     fn from(value: &IUPnPNAT) -> Self {
5041         ::std::convert::From::from(::std::clone::Clone::clone(value))
5042     }
5043 }
5044 #[cfg(feature = "Win32_System_Ole_Automation")]
5045 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for IUPnPNAT {
5046     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
5047         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(self))
5048     }
5049 }
5050 #[cfg(feature = "Win32_System_Ole_Automation")]
5051 impl<'a> ::windows::runtime::IntoParam<'a, super::super::System::Ole::Automation::IDispatch> for &IUPnPNAT {
5052     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::System::Ole::Automation::IDispatch> {
5053         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::System::Ole::Automation::IDispatch>::into(::std::clone::Clone::clone(self)))
5054     }
5055 }
5056 #[repr(C)]
5057 #[doc(hidden)]
5058 pub struct IUPnPNAT_abi(
5059     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5060     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5061     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5062     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctinfo: *mut u32) -> ::windows::runtime::HRESULT,
5063     #[cfg(feature = "Win32_System_Ole_Automation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, itinfo: u32, lcid: u32, pptinfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5064     #[cfg(not(feature = "Win32_System_Ole_Automation"))] usize,
5065     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, rgsznames: *const super::super::Foundation::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::runtime::HRESULT,
5066     #[cfg(not(feature = "Win32_Foundation"))] usize,
5067     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
5068     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dispidmember: i32, riid: *const ::windows::runtime::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Ole::Automation::DISPPARAMS, pvarresult: *mut ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>, pexcepinfo: *mut ::std::mem::ManuallyDrop<super::super::System::Ole::Automation::EXCEPINFO>, puargerr: *mut u32) -> ::windows::runtime::HRESULT,
5069     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
5070     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppspms: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5071     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppdpms: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5072     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppnem: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5073 );
5074 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
5075 #[repr(transparent)]
5076 pub struct NETCONMGR_ENUM_FLAGS(pub i32);
5077 pub const NCME_DEFAULT: NETCONMGR_ENUM_FLAGS = NETCONMGR_ENUM_FLAGS(0i32);
5078 pub const NCME_HIDDEN: NETCONMGR_ENUM_FLAGS = NETCONMGR_ENUM_FLAGS(1i32);
5079 impl ::std::convert::From<i32> for NETCONMGR_ENUM_FLAGS {
5080     fn from(value: i32) -> Self {
5081         Self(value)
5082     }
5083 }
5084 unsafe impl ::windows::runtime::Abi for NETCONMGR_ENUM_FLAGS {
5085     type Abi = Self;
5086     type DefaultType = Self;
5087 }
5088 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
5089 #[repr(transparent)]
5090 pub struct NETCONUI_CONNECT_FLAGS(pub i32);
5091 pub const NCUC_DEFAULT: NETCONUI_CONNECT_FLAGS = NETCONUI_CONNECT_FLAGS(0i32);
5092 pub const NCUC_NO_UI: NETCONUI_CONNECT_FLAGS = NETCONUI_CONNECT_FLAGS(1i32);
5093 pub const NCUC_ENABLE_DISABLE: NETCONUI_CONNECT_FLAGS = NETCONUI_CONNECT_FLAGS(2i32);
5094 impl ::std::convert::From<i32> for NETCONUI_CONNECT_FLAGS {
5095     fn from(value: i32) -> Self {
5096         Self(value)
5097     }
5098 }
5099 unsafe impl ::windows::runtime::Abi for NETCONUI_CONNECT_FLAGS {
5100     type Abi = Self;
5101     type DefaultType = Self;
5102 }
5103 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
5104 #[repr(transparent)]
5105 pub struct NETCON_CHARACTERISTIC_FLAGS(pub i32);
5106 pub const NCCF_NONE: NETCON_CHARACTERISTIC_FLAGS = NETCON_CHARACTERISTIC_FLAGS(0i32);
5107 pub const NCCF_ALL_USERS: NETCON_CHARACTERISTIC_FLAGS = NETCON_CHARACTERISTIC_FLAGS(1i32);
5108 pub const NCCF_ALLOW_DUPLICATION: NETCON_CHARACTERISTIC_FLAGS = NETCON_CHARACTERISTIC_FLAGS(2i32);
5109 pub const NCCF_ALLOW_REMOVAL: NETCON_CHARACTERISTIC_FLAGS = NETCON_CHARACTERISTIC_FLAGS(4i32);
5110 pub const NCCF_ALLOW_RENAME: NETCON_CHARACTERISTIC_FLAGS = NETCON_CHARACTERISTIC_FLAGS(8i32);
5111 pub const NCCF_INCOMING_ONLY: NETCON_CHARACTERISTIC_FLAGS = NETCON_CHARACTERISTIC_FLAGS(32i32);
5112 pub const NCCF_OUTGOING_ONLY: NETCON_CHARACTERISTIC_FLAGS = NETCON_CHARACTERISTIC_FLAGS(64i32);
5113 pub const NCCF_BRANDED: NETCON_CHARACTERISTIC_FLAGS = NETCON_CHARACTERISTIC_FLAGS(128i32);
5114 pub const NCCF_SHARED: NETCON_CHARACTERISTIC_FLAGS = NETCON_CHARACTERISTIC_FLAGS(256i32);
5115 pub const NCCF_BRIDGED: NETCON_CHARACTERISTIC_FLAGS = NETCON_CHARACTERISTIC_FLAGS(512i32);
5116 pub const NCCF_FIREWALLED: NETCON_CHARACTERISTIC_FLAGS = NETCON_CHARACTERISTIC_FLAGS(1024i32);
5117 pub const NCCF_DEFAULT: NETCON_CHARACTERISTIC_FLAGS = NETCON_CHARACTERISTIC_FLAGS(2048i32);
5118 pub const NCCF_HOMENET_CAPABLE: NETCON_CHARACTERISTIC_FLAGS = NETCON_CHARACTERISTIC_FLAGS(4096i32);
5119 pub const NCCF_SHARED_PRIVATE: NETCON_CHARACTERISTIC_FLAGS = NETCON_CHARACTERISTIC_FLAGS(8192i32);
5120 pub const NCCF_QUARANTINED: NETCON_CHARACTERISTIC_FLAGS = NETCON_CHARACTERISTIC_FLAGS(16384i32);
5121 pub const NCCF_RESERVED: NETCON_CHARACTERISTIC_FLAGS = NETCON_CHARACTERISTIC_FLAGS(32768i32);
5122 pub const NCCF_HOSTED_NETWORK: NETCON_CHARACTERISTIC_FLAGS = NETCON_CHARACTERISTIC_FLAGS(65536i32);
5123 pub const NCCF_VIRTUAL_STATION: NETCON_CHARACTERISTIC_FLAGS = NETCON_CHARACTERISTIC_FLAGS(131072i32);
5124 pub const NCCF_WIFI_DIRECT: NETCON_CHARACTERISTIC_FLAGS = NETCON_CHARACTERISTIC_FLAGS(262144i32);
5125 pub const NCCF_BLUETOOTH_MASK: NETCON_CHARACTERISTIC_FLAGS = NETCON_CHARACTERISTIC_FLAGS(983040i32);
5126 pub const NCCF_LAN_MASK: NETCON_CHARACTERISTIC_FLAGS = NETCON_CHARACTERISTIC_FLAGS(15728640i32);
5127 impl ::std::convert::From<i32> for NETCON_CHARACTERISTIC_FLAGS {
5128     fn from(value: i32) -> Self {
5129         Self(value)
5130     }
5131 }
5132 unsafe impl ::windows::runtime::Abi for NETCON_CHARACTERISTIC_FLAGS {
5133     type Abi = Self;
5134     type DefaultType = Self;
5135 }
5136 pub const NETCON_MAX_NAME_LEN: u32 = 256u32;
5137 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
5138 #[repr(transparent)]
5139 pub struct NETCON_MEDIATYPE(pub i32);
5140 pub const NCM_NONE: NETCON_MEDIATYPE = NETCON_MEDIATYPE(0i32);
5141 pub const NCM_DIRECT: NETCON_MEDIATYPE = NETCON_MEDIATYPE(1i32);
5142 pub const NCM_ISDN: NETCON_MEDIATYPE = NETCON_MEDIATYPE(2i32);
5143 pub const NCM_LAN: NETCON_MEDIATYPE = NETCON_MEDIATYPE(3i32);
5144 pub const NCM_PHONE: NETCON_MEDIATYPE = NETCON_MEDIATYPE(4i32);
5145 pub const NCM_TUNNEL: NETCON_MEDIATYPE = NETCON_MEDIATYPE(5i32);
5146 pub const NCM_PPPOE: NETCON_MEDIATYPE = NETCON_MEDIATYPE(6i32);
5147 pub const NCM_BRIDGE: NETCON_MEDIATYPE = NETCON_MEDIATYPE(7i32);
5148 pub const NCM_SHAREDACCESSHOST_LAN: NETCON_MEDIATYPE = NETCON_MEDIATYPE(8i32);
5149 pub const NCM_SHAREDACCESSHOST_RAS: NETCON_MEDIATYPE = NETCON_MEDIATYPE(9i32);
5150 impl ::std::convert::From<i32> for NETCON_MEDIATYPE {
5151     fn from(value: i32) -> Self {
5152         Self(value)
5153     }
5154 }
5155 unsafe impl ::windows::runtime::Abi for NETCON_MEDIATYPE {
5156     type Abi = Self;
5157     type DefaultType = Self;
5158 }
5159 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
5160 #[repr(C)]
5161 #[cfg(feature = "Win32_Foundation")]
5162 pub struct NETCON_PROPERTIES {
5163     pub guidId: ::windows::runtime::GUID,
5164     pub pszwName: super::super::Foundation::PWSTR,
5165     pub pszwDeviceName: super::super::Foundation::PWSTR,
5166     pub Status: NETCON_STATUS,
5167     pub MediaType: NETCON_MEDIATYPE,
5168     pub dwCharacter: u32,
5169     pub clsidThisObject: ::windows::runtime::GUID,
5170     pub clsidUiObject: ::windows::runtime::GUID,
5171 }
5172 #[cfg(feature = "Win32_Foundation")]
5173 impl NETCON_PROPERTIES {}
5174 #[cfg(feature = "Win32_Foundation")]
5175 impl ::std::default::Default for NETCON_PROPERTIES {
5176     fn default() -> Self {
5177         unsafe { ::std::mem::zeroed() }
5178     }
5179 }
5180 #[cfg(feature = "Win32_Foundation")]
5181 impl ::std::fmt::Debug for NETCON_PROPERTIES {
5182     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5183         fmt.debug_struct("NETCON_PROPERTIES")
5184             .field("guidId", &self.guidId)
5185             .field("pszwName", &self.pszwName)
5186             .field("pszwDeviceName", &self.pszwDeviceName)
5187             .field("Status", &self.Status)
5188             .field("MediaType", &self.MediaType)
5189             .field("dwCharacter", &self.dwCharacter)
5190             .field("clsidThisObject", &self.clsidThisObject)
5191             .field("clsidUiObject", &self.clsidUiObject)
5192             .finish()
5193     }
5194 }
5195 #[cfg(feature = "Win32_Foundation")]
5196 impl ::std::cmp::PartialEq for NETCON_PROPERTIES {
5197     fn eq(&self, other: &Self) -> bool {
5198         self.guidId == other.guidId && self.pszwName == other.pszwName && self.pszwDeviceName == other.pszwDeviceName && self.Status == other.Status && self.MediaType == other.MediaType && self.dwCharacter == other.dwCharacter && self.clsidThisObject == other.clsidThisObject && self.clsidUiObject == other.clsidUiObject
5199     }
5200 }
5201 #[cfg(feature = "Win32_Foundation")]
5202 impl ::std::cmp::Eq for NETCON_PROPERTIES {}
5203 #[cfg(feature = "Win32_Foundation")]
5204 unsafe impl ::windows::runtime::Abi for NETCON_PROPERTIES {
5205     type Abi = Self;
5206     type DefaultType = Self;
5207 }
5208 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
5209 #[repr(transparent)]
5210 pub struct NETCON_STATUS(pub i32);
5211 pub const NCS_DISCONNECTED: NETCON_STATUS = NETCON_STATUS(0i32);
5212 pub const NCS_CONNECTING: NETCON_STATUS = NETCON_STATUS(1i32);
5213 pub const NCS_CONNECTED: NETCON_STATUS = NETCON_STATUS(2i32);
5214 pub const NCS_DISCONNECTING: NETCON_STATUS = NETCON_STATUS(3i32);
5215 pub const NCS_HARDWARE_NOT_PRESENT: NETCON_STATUS = NETCON_STATUS(4i32);
5216 pub const NCS_HARDWARE_DISABLED: NETCON_STATUS = NETCON_STATUS(5i32);
5217 pub const NCS_HARDWARE_MALFUNCTION: NETCON_STATUS = NETCON_STATUS(6i32);
5218 pub const NCS_MEDIA_DISCONNECTED: NETCON_STATUS = NETCON_STATUS(7i32);
5219 pub const NCS_AUTHENTICATING: NETCON_STATUS = NETCON_STATUS(8i32);
5220 pub const NCS_AUTHENTICATION_SUCCEEDED: NETCON_STATUS = NETCON_STATUS(9i32);
5221 pub const NCS_AUTHENTICATION_FAILED: NETCON_STATUS = NETCON_STATUS(10i32);
5222 pub const NCS_INVALID_ADDRESS: NETCON_STATUS = NETCON_STATUS(11i32);
5223 pub const NCS_CREDENTIALS_REQUIRED: NETCON_STATUS = NETCON_STATUS(12i32);
5224 pub const NCS_ACTION_REQUIRED: NETCON_STATUS = NETCON_STATUS(13i32);
5225 pub const NCS_ACTION_REQUIRED_RETRY: NETCON_STATUS = NETCON_STATUS(14i32);
5226 pub const NCS_CONNECT_FAILED: NETCON_STATUS = NETCON_STATUS(15i32);
5227 impl ::std::convert::From<i32> for NETCON_STATUS {
5228     fn from(value: i32) -> Self {
5229         Self(value)
5230     }
5231 }
5232 unsafe impl ::windows::runtime::Abi for NETCON_STATUS {
5233     type Abi = Self;
5234     type DefaultType = Self;
5235 }
5236 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
5237 #[repr(transparent)]
5238 pub struct NETCON_TYPE(pub i32);
5239 pub const NCT_DIRECT_CONNECT: NETCON_TYPE = NETCON_TYPE(0i32);
5240 pub const NCT_INBOUND: NETCON_TYPE = NETCON_TYPE(1i32);
5241 pub const NCT_INTERNET: NETCON_TYPE = NETCON_TYPE(2i32);
5242 pub const NCT_LAN: NETCON_TYPE = NETCON_TYPE(3i32);
5243 pub const NCT_PHONE: NETCON_TYPE = NETCON_TYPE(4i32);
5244 pub const NCT_TUNNEL: NETCON_TYPE = NETCON_TYPE(5i32);
5245 pub const NCT_BRIDGE: NETCON_TYPE = NETCON_TYPE(6i32);
5246 impl ::std::convert::From<i32> for NETCON_TYPE {
5247     fn from(value: i32) -> Self {
5248         Self(value)
5249     }
5250 }
5251 unsafe impl ::windows::runtime::Abi for NETCON_TYPE {
5252     type Abi = Self;
5253     type DefaultType = Self;
5254 }
5255 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
5256 #[repr(transparent)]
5257 pub struct NETISO_ERROR_TYPE(pub i32);
5258 pub const NETISO_ERROR_TYPE_NONE: NETISO_ERROR_TYPE = NETISO_ERROR_TYPE(0i32);
5259 pub const NETISO_ERROR_TYPE_PRIVATE_NETWORK: NETISO_ERROR_TYPE = NETISO_ERROR_TYPE(1i32);
5260 pub const NETISO_ERROR_TYPE_INTERNET_CLIENT: NETISO_ERROR_TYPE = NETISO_ERROR_TYPE(2i32);
5261 pub const NETISO_ERROR_TYPE_INTERNET_CLIENT_SERVER: NETISO_ERROR_TYPE = NETISO_ERROR_TYPE(3i32);
5262 pub const NETISO_ERROR_TYPE_MAX: NETISO_ERROR_TYPE = NETISO_ERROR_TYPE(4i32);
5263 impl ::std::convert::From<i32> for NETISO_ERROR_TYPE {
5264     fn from(value: i32) -> Self {
5265         Self(value)
5266     }
5267 }
5268 unsafe impl ::windows::runtime::Abi for NETISO_ERROR_TYPE {
5269     type Abi = Self;
5270     type DefaultType = Self;
5271 }
5272 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
5273 #[repr(transparent)]
5274 pub struct NETISO_FLAG(pub i32);
5275 pub const NETISO_FLAG_FORCE_COMPUTE_BINARIES: NETISO_FLAG = NETISO_FLAG(1i32);
5276 pub const NETISO_FLAG_MAX: NETISO_FLAG = NETISO_FLAG(2i32);
5277 impl ::std::convert::From<i32> for NETISO_FLAG {
5278     fn from(value: i32) -> Self {
5279         Self(value)
5280     }
5281 }
5282 unsafe impl ::windows::runtime::Abi for NETISO_FLAG {
5283     type Abi = Self;
5284     type DefaultType = Self;
5285 }
5286 pub const NETISO_GEID_FOR_NEUTRAL_AWARE: u32 = 2u32;
5287 pub const NETISO_GEID_FOR_WDAG: u32 = 1u32;
5288 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
5289 #[repr(transparent)]
5290 pub struct NET_FW_ACTION(pub i32);
5291 pub const NET_FW_ACTION_BLOCK: NET_FW_ACTION = NET_FW_ACTION(0i32);
5292 pub const NET_FW_ACTION_ALLOW: NET_FW_ACTION = NET_FW_ACTION(1i32);
5293 pub const NET_FW_ACTION_MAX: NET_FW_ACTION = NET_FW_ACTION(2i32);
5294 impl ::std::convert::From<i32> for NET_FW_ACTION {
5295     fn from(value: i32) -> Self {
5296         Self(value)
5297     }
5298 }
5299 unsafe impl ::windows::runtime::Abi for NET_FW_ACTION {
5300     type Abi = Self;
5301     type DefaultType = Self;
5302 }
5303 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
5304 #[repr(transparent)]
5305 pub struct NET_FW_AUTHENTICATE_TYPE(pub i32);
5306 pub const NET_FW_AUTHENTICATE_NONE: NET_FW_AUTHENTICATE_TYPE = NET_FW_AUTHENTICATE_TYPE(0i32);
5307 pub const NET_FW_AUTHENTICATE_NO_ENCAPSULATION: NET_FW_AUTHENTICATE_TYPE = NET_FW_AUTHENTICATE_TYPE(1i32);
5308 pub const NET_FW_AUTHENTICATE_WITH_INTEGRITY: NET_FW_AUTHENTICATE_TYPE = NET_FW_AUTHENTICATE_TYPE(2i32);
5309 pub const NET_FW_AUTHENTICATE_AND_NEGOTIATE_ENCRYPTION: NET_FW_AUTHENTICATE_TYPE = NET_FW_AUTHENTICATE_TYPE(3i32);
5310 pub const NET_FW_AUTHENTICATE_AND_ENCRYPT: NET_FW_AUTHENTICATE_TYPE = NET_FW_AUTHENTICATE_TYPE(4i32);
5311 impl ::std::convert::From<i32> for NET_FW_AUTHENTICATE_TYPE {
5312     fn from(value: i32) -> Self {
5313         Self(value)
5314     }
5315 }
5316 unsafe impl ::windows::runtime::Abi for NET_FW_AUTHENTICATE_TYPE {
5317     type Abi = Self;
5318     type DefaultType = Self;
5319 }
5320 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
5321 #[repr(transparent)]
5322 pub struct NET_FW_EDGE_TRAVERSAL_TYPE(pub i32);
5323 pub const NET_FW_EDGE_TRAVERSAL_TYPE_DENY: NET_FW_EDGE_TRAVERSAL_TYPE = NET_FW_EDGE_TRAVERSAL_TYPE(0i32);
5324 pub const NET_FW_EDGE_TRAVERSAL_TYPE_ALLOW: NET_FW_EDGE_TRAVERSAL_TYPE = NET_FW_EDGE_TRAVERSAL_TYPE(1i32);
5325 pub const NET_FW_EDGE_TRAVERSAL_TYPE_DEFER_TO_APP: NET_FW_EDGE_TRAVERSAL_TYPE = NET_FW_EDGE_TRAVERSAL_TYPE(2i32);
5326 pub const NET_FW_EDGE_TRAVERSAL_TYPE_DEFER_TO_USER: NET_FW_EDGE_TRAVERSAL_TYPE = NET_FW_EDGE_TRAVERSAL_TYPE(3i32);
5327 impl ::std::convert::From<i32> for NET_FW_EDGE_TRAVERSAL_TYPE {
5328     fn from(value: i32) -> Self {
5329         Self(value)
5330     }
5331 }
5332 unsafe impl ::windows::runtime::Abi for NET_FW_EDGE_TRAVERSAL_TYPE {
5333     type Abi = Self;
5334     type DefaultType = Self;
5335 }
5336 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
5337 #[repr(transparent)]
5338 pub struct NET_FW_IP_PROTOCOL(pub i32);
5339 pub const NET_FW_IP_PROTOCOL_TCP: NET_FW_IP_PROTOCOL = NET_FW_IP_PROTOCOL(6i32);
5340 pub const NET_FW_IP_PROTOCOL_UDP: NET_FW_IP_PROTOCOL = NET_FW_IP_PROTOCOL(17i32);
5341 pub const NET_FW_IP_PROTOCOL_ANY: NET_FW_IP_PROTOCOL = NET_FW_IP_PROTOCOL(256i32);
5342 impl ::std::convert::From<i32> for NET_FW_IP_PROTOCOL {
5343     fn from(value: i32) -> Self {
5344         Self(value)
5345     }
5346 }
5347 unsafe impl ::windows::runtime::Abi for NET_FW_IP_PROTOCOL {
5348     type Abi = Self;
5349     type DefaultType = Self;
5350 }
5351 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
5352 #[repr(transparent)]
5353 pub struct NET_FW_IP_VERSION(pub i32);
5354 pub const NET_FW_IP_VERSION_V4: NET_FW_IP_VERSION = NET_FW_IP_VERSION(0i32);
5355 pub const NET_FW_IP_VERSION_V6: NET_FW_IP_VERSION = NET_FW_IP_VERSION(1i32);
5356 pub const NET_FW_IP_VERSION_ANY: NET_FW_IP_VERSION = NET_FW_IP_VERSION(2i32);
5357 pub const NET_FW_IP_VERSION_MAX: NET_FW_IP_VERSION = NET_FW_IP_VERSION(3i32);
5358 impl ::std::convert::From<i32> for NET_FW_IP_VERSION {
5359     fn from(value: i32) -> Self {
5360         Self(value)
5361     }
5362 }
5363 unsafe impl ::windows::runtime::Abi for NET_FW_IP_VERSION {
5364     type Abi = Self;
5365     type DefaultType = Self;
5366 }
5367 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
5368 #[repr(transparent)]
5369 pub struct NET_FW_MODIFY_STATE(pub i32);
5370 pub const NET_FW_MODIFY_STATE_OK: NET_FW_MODIFY_STATE = NET_FW_MODIFY_STATE(0i32);
5371 pub const NET_FW_MODIFY_STATE_GP_OVERRIDE: NET_FW_MODIFY_STATE = NET_FW_MODIFY_STATE(1i32);
5372 pub const NET_FW_MODIFY_STATE_INBOUND_BLOCKED: NET_FW_MODIFY_STATE = NET_FW_MODIFY_STATE(2i32);
5373 impl ::std::convert::From<i32> for NET_FW_MODIFY_STATE {
5374     fn from(value: i32) -> Self {
5375         Self(value)
5376     }
5377 }
5378 unsafe impl ::windows::runtime::Abi for NET_FW_MODIFY_STATE {
5379     type Abi = Self;
5380     type DefaultType = Self;
5381 }
5382 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
5383 #[repr(transparent)]
5384 pub struct NET_FW_POLICY_TYPE(pub i32);
5385 pub const NET_FW_POLICY_GROUP: NET_FW_POLICY_TYPE = NET_FW_POLICY_TYPE(0i32);
5386 pub const NET_FW_POLICY_LOCAL: NET_FW_POLICY_TYPE = NET_FW_POLICY_TYPE(1i32);
5387 pub const NET_FW_POLICY_EFFECTIVE: NET_FW_POLICY_TYPE = NET_FW_POLICY_TYPE(2i32);
5388 pub const NET_FW_POLICY_TYPE_MAX: NET_FW_POLICY_TYPE = NET_FW_POLICY_TYPE(3i32);
5389 impl ::std::convert::From<i32> for NET_FW_POLICY_TYPE {
5390     fn from(value: i32) -> Self {
5391         Self(value)
5392     }
5393 }
5394 unsafe impl ::windows::runtime::Abi for NET_FW_POLICY_TYPE {
5395     type Abi = Self;
5396     type DefaultType = Self;
5397 }
5398 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
5399 #[repr(transparent)]
5400 pub struct NET_FW_PROFILE_TYPE(pub i32);
5401 pub const NET_FW_PROFILE_DOMAIN: NET_FW_PROFILE_TYPE = NET_FW_PROFILE_TYPE(0i32);
5402 pub const NET_FW_PROFILE_STANDARD: NET_FW_PROFILE_TYPE = NET_FW_PROFILE_TYPE(1i32);
5403 pub const NET_FW_PROFILE_CURRENT: NET_FW_PROFILE_TYPE = NET_FW_PROFILE_TYPE(2i32);
5404 pub const NET_FW_PROFILE_TYPE_MAX: NET_FW_PROFILE_TYPE = NET_FW_PROFILE_TYPE(3i32);
5405 impl ::std::convert::From<i32> for NET_FW_PROFILE_TYPE {
5406     fn from(value: i32) -> Self {
5407         Self(value)
5408     }
5409 }
5410 unsafe impl ::windows::runtime::Abi for NET_FW_PROFILE_TYPE {
5411     type Abi = Self;
5412     type DefaultType = Self;
5413 }
5414 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
5415 #[repr(transparent)]
5416 pub struct NET_FW_PROFILE_TYPE2(pub i32);
5417 pub const NET_FW_PROFILE2_DOMAIN: NET_FW_PROFILE_TYPE2 = NET_FW_PROFILE_TYPE2(1i32);
5418 pub const NET_FW_PROFILE2_PRIVATE: NET_FW_PROFILE_TYPE2 = NET_FW_PROFILE_TYPE2(2i32);
5419 pub const NET_FW_PROFILE2_PUBLIC: NET_FW_PROFILE_TYPE2 = NET_FW_PROFILE_TYPE2(4i32);
5420 pub const NET_FW_PROFILE2_ALL: NET_FW_PROFILE_TYPE2 = NET_FW_PROFILE_TYPE2(2147483647i32);
5421 impl ::std::convert::From<i32> for NET_FW_PROFILE_TYPE2 {
5422     fn from(value: i32) -> Self {
5423         Self(value)
5424     }
5425 }
5426 unsafe impl ::windows::runtime::Abi for NET_FW_PROFILE_TYPE2 {
5427     type Abi = Self;
5428     type DefaultType = Self;
5429 }
5430 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
5431 #[repr(transparent)]
5432 pub struct NET_FW_RULE_CATEGORY(pub i32);
5433 pub const NET_FW_RULE_CATEGORY_BOOT: NET_FW_RULE_CATEGORY = NET_FW_RULE_CATEGORY(0i32);
5434 pub const NET_FW_RULE_CATEGORY_STEALTH: NET_FW_RULE_CATEGORY = NET_FW_RULE_CATEGORY(1i32);
5435 pub const NET_FW_RULE_CATEGORY_FIREWALL: NET_FW_RULE_CATEGORY = NET_FW_RULE_CATEGORY(2i32);
5436 pub const NET_FW_RULE_CATEGORY_CONSEC: NET_FW_RULE_CATEGORY = NET_FW_RULE_CATEGORY(3i32);
5437 pub const NET_FW_RULE_CATEGORY_MAX: NET_FW_RULE_CATEGORY = NET_FW_RULE_CATEGORY(4i32);
5438 impl ::std::convert::From<i32> for NET_FW_RULE_CATEGORY {
5439     fn from(value: i32) -> Self {
5440         Self(value)
5441     }
5442 }
5443 unsafe impl ::windows::runtime::Abi for NET_FW_RULE_CATEGORY {
5444     type Abi = Self;
5445     type DefaultType = Self;
5446 }
5447 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
5448 #[repr(transparent)]
5449 pub struct NET_FW_RULE_DIRECTION(pub i32);
5450 pub const NET_FW_RULE_DIR_IN: NET_FW_RULE_DIRECTION = NET_FW_RULE_DIRECTION(1i32);
5451 pub const NET_FW_RULE_DIR_OUT: NET_FW_RULE_DIRECTION = NET_FW_RULE_DIRECTION(2i32);
5452 pub const NET_FW_RULE_DIR_MAX: NET_FW_RULE_DIRECTION = NET_FW_RULE_DIRECTION(3i32);
5453 impl ::std::convert::From<i32> for NET_FW_RULE_DIRECTION {
5454     fn from(value: i32) -> Self {
5455         Self(value)
5456     }
5457 }
5458 unsafe impl ::windows::runtime::Abi for NET_FW_RULE_DIRECTION {
5459     type Abi = Self;
5460     type DefaultType = Self;
5461 }
5462 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
5463 #[repr(transparent)]
5464 pub struct NET_FW_SCOPE(pub i32);
5465 pub const NET_FW_SCOPE_ALL: NET_FW_SCOPE = NET_FW_SCOPE(0i32);
5466 pub const NET_FW_SCOPE_LOCAL_SUBNET: NET_FW_SCOPE = NET_FW_SCOPE(1i32);
5467 pub const NET_FW_SCOPE_CUSTOM: NET_FW_SCOPE = NET_FW_SCOPE(2i32);
5468 pub const NET_FW_SCOPE_MAX: NET_FW_SCOPE = NET_FW_SCOPE(3i32);
5469 impl ::std::convert::From<i32> for NET_FW_SCOPE {
5470     fn from(value: i32) -> Self {
5471         Self(value)
5472     }
5473 }
5474 unsafe impl ::windows::runtime::Abi for NET_FW_SCOPE {
5475     type Abi = Self;
5476     type DefaultType = Self;
5477 }
5478 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
5479 #[repr(transparent)]
5480 pub struct NET_FW_SERVICE_TYPE(pub i32);
5481 pub const NET_FW_SERVICE_FILE_AND_PRINT: NET_FW_SERVICE_TYPE = NET_FW_SERVICE_TYPE(0i32);
5482 pub const NET_FW_SERVICE_UPNP: NET_FW_SERVICE_TYPE = NET_FW_SERVICE_TYPE(1i32);
5483 pub const NET_FW_SERVICE_REMOTE_DESKTOP: NET_FW_SERVICE_TYPE = NET_FW_SERVICE_TYPE(2i32);
5484 pub const NET_FW_SERVICE_NONE: NET_FW_SERVICE_TYPE = NET_FW_SERVICE_TYPE(3i32);
5485 pub const NET_FW_SERVICE_TYPE_MAX: NET_FW_SERVICE_TYPE = NET_FW_SERVICE_TYPE(4i32);
5486 impl ::std::convert::From<i32> for NET_FW_SERVICE_TYPE {
5487     fn from(value: i32) -> Self {
5488         Self(value)
5489     }
5490 }
5491 unsafe impl ::windows::runtime::Abi for NET_FW_SERVICE_TYPE {
5492     type Abi = Self;
5493     type DefaultType = Self;
5494 }
5495 pub const NetFwAuthorizedApplication: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3969402547, 10082, 19051, [162, 20, 106, 203, 96, 52, 98, 210]);
5496 pub const NetFwMgr: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(810346818, 28217, 16600, [148, 58, 185, 19, 196, 12, 156, 212]);
5497 pub const NetFwOpenPort: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(212157894, 14253, 19052, [191, 146, 159, 118, 16, 6, 126, 245]);
5498 pub const NetFwPolicy2: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3803433343, 27361, 16812, [129, 122, 246, 249, 33, 102, 215, 221]);
5499 pub const NetFwProduct: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2641649368, 50452, 19741, [191, 66, 117, 31, 237, 45, 90, 199]);
5500 pub const NetFwProducts: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3424192411, 33394, 19827, [187, 112, 205, 181, 51, 82, 123, 97]);
5501 pub const NetFwRule: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(744211518, 13161, 19507, [171, 12, 190, 148, 105, 103, 122, 244]);
5502 pub const NetSharingManager: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1550041517, 14678, 20472, [132, 134, 64, 3, 71, 88, 49, 91]);
5503 #[cfg(feature = "Win32_Foundation")]
5504 #[inline]
5505 pub unsafe fn NetworkIsolationDiagnoseConnectFailureAndGetInfo<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(wszservername: Param0, netisoerror: *mut NETISO_ERROR_TYPE) -> u32 {
5506     #[cfg(windows)]
5507     {
5508         #[link(name = "windows")]
5509         extern "system" {
5510             fn NetworkIsolationDiagnoseConnectFailureAndGetInfo(wszservername: super::super::Foundation::PWSTR, netisoerror: *mut NETISO_ERROR_TYPE) -> u32;
5511         }
5512         ::std::mem::transmute(NetworkIsolationDiagnoseConnectFailureAndGetInfo(wszservername.into_param().abi(), ::std::mem::transmute(netisoerror)))
5513     }
5514     #[cfg(not(windows))]
5515     unimplemented!("Unsupported target OS");
5516 }
5517 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
5518 #[inline]
5519 pub unsafe fn NetworkIsolationEnumAppContainers(flags: u32, pdwnumpublicappcs: *mut u32, pppublicappcs: *mut *mut INET_FIREWALL_APP_CONTAINER) -> u32 {
5520     #[cfg(windows)]
5521     {
5522         #[link(name = "windows")]
5523         extern "system" {
5524             fn NetworkIsolationEnumAppContainers(flags: u32, pdwnumpublicappcs: *mut u32, pppublicappcs: *mut *mut INET_FIREWALL_APP_CONTAINER) -> u32;
5525         }
5526         ::std::mem::transmute(NetworkIsolationEnumAppContainers(::std::mem::transmute(flags), ::std::mem::transmute(pdwnumpublicappcs), ::std::mem::transmute(pppublicappcs)))
5527     }
5528     #[cfg(not(windows))]
5529     unimplemented!("Unsupported target OS");
5530 }
5531 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
5532 #[inline]
5533 pub unsafe fn NetworkIsolationFreeAppContainers(ppublicappcs: *const INET_FIREWALL_APP_CONTAINER) -> u32 {
5534     #[cfg(windows)]
5535     {
5536         #[link(name = "windows")]
5537         extern "system" {
5538             fn NetworkIsolationFreeAppContainers(ppublicappcs: *const INET_FIREWALL_APP_CONTAINER) -> u32;
5539         }
5540         ::std::mem::transmute(NetworkIsolationFreeAppContainers(::std::mem::transmute(ppublicappcs)))
5541     }
5542     #[cfg(not(windows))]
5543     unimplemented!("Unsupported target OS");
5544 }
5545 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
5546 #[inline]
5547 pub unsafe fn NetworkIsolationGetAppContainerConfig(pdwnumpublicappcs: *mut u32, appcontainersids: *mut *mut super::super::Security::SID_AND_ATTRIBUTES) -> u32 {
5548     #[cfg(windows)]
5549     {
5550         #[link(name = "windows")]
5551         extern "system" {
5552             fn NetworkIsolationGetAppContainerConfig(pdwnumpublicappcs: *mut u32, appcontainersids: *mut *mut super::super::Security::SID_AND_ATTRIBUTES) -> u32;
5553         }
5554         ::std::mem::transmute(NetworkIsolationGetAppContainerConfig(::std::mem::transmute(pdwnumpublicappcs), ::std::mem::transmute(appcontainersids)))
5555     }
5556     #[cfg(not(windows))]
5557     unimplemented!("Unsupported target OS");
5558 }
5559 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
5560 #[inline]
5561 pub unsafe fn NetworkIsolationRegisterForAppContainerChanges(flags: u32, callback: ::std::option::Option<PAC_CHANGES_CALLBACK_FN>, context: *const ::std::ffi::c_void, registrationobject: *mut super::super::Foundation::HANDLE) -> u32 {
5562     #[cfg(windows)]
5563     {
5564         #[link(name = "windows")]
5565         extern "system" {
5566             fn NetworkIsolationRegisterForAppContainerChanges(flags: u32, callback: ::windows::runtime::RawPtr, context: *const ::std::ffi::c_void, registrationobject: *mut super::super::Foundation::HANDLE) -> u32;
5567         }
5568         ::std::mem::transmute(NetworkIsolationRegisterForAppContainerChanges(::std::mem::transmute(flags), ::std::mem::transmute(callback), ::std::mem::transmute(context), ::std::mem::transmute(registrationobject)))
5569     }
5570     #[cfg(not(windows))]
5571     unimplemented!("Unsupported target OS");
5572 }
5573 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
5574 #[inline]
5575 pub unsafe fn NetworkIsolationSetAppContainerConfig(dwnumpublicappcs: u32, appcontainersids: *const super::super::Security::SID_AND_ATTRIBUTES) -> u32 {
5576     #[cfg(windows)]
5577     {
5578         #[link(name = "windows")]
5579         extern "system" {
5580             fn NetworkIsolationSetAppContainerConfig(dwnumpublicappcs: u32, appcontainersids: *const super::super::Security::SID_AND_ATTRIBUTES) -> u32;
5581         }
5582         ::std::mem::transmute(NetworkIsolationSetAppContainerConfig(::std::mem::transmute(dwnumpublicappcs), ::std::mem::transmute(appcontainersids)))
5583     }
5584     #[cfg(not(windows))]
5585     unimplemented!("Unsupported target OS");
5586 }
5587 #[cfg(feature = "Win32_Foundation")]
5588 #[inline]
5589 pub unsafe fn NetworkIsolationSetupAppContainerBinaries<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PSID>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(
5590     applicationcontainersid: Param0,
5591     packagefullname: Param1,
5592     packagefolder: Param2,
5593     displayname: Param3,
5594     bbinariesfullycomputed: Param4,
5595     binaries: *const super::super::Foundation::PWSTR,
5596     binariescount: u32,
5597 ) -> ::windows::runtime::Result<()> {
5598     #[cfg(windows)]
5599     {
5600         #[link(name = "windows")]
5601         extern "system" {
5602             fn NetworkIsolationSetupAppContainerBinaries(applicationcontainersid: super::super::Foundation::PSID, packagefullname: super::super::Foundation::PWSTR, packagefolder: super::super::Foundation::PWSTR, displayname: super::super::Foundation::PWSTR, bbinariesfullycomputed: super::super::Foundation::BOOL, binaries: *const super::super::Foundation::PWSTR, binariescount: u32) -> ::windows::runtime::HRESULT;
5603         }
5604         NetworkIsolationSetupAppContainerBinaries(applicationcontainersid.into_param().abi(), packagefullname.into_param().abi(), packagefolder.into_param().abi(), displayname.into_param().abi(), bbinariesfullycomputed.into_param().abi(), ::std::mem::transmute(binaries), ::std::mem::transmute(binariescount)).ok()
5605     }
5606     #[cfg(not(windows))]
5607     unimplemented!("Unsupported target OS");
5608 }
5609 #[cfg(feature = "Win32_Foundation")]
5610 #[inline]
5611 pub unsafe fn NetworkIsolationUnregisterForAppContainerChanges<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(registrationobject: Param0) -> u32 {
5612     #[cfg(windows)]
5613     {
5614         #[link(name = "windows")]
5615         extern "system" {
5616             fn NetworkIsolationUnregisterForAppContainerChanges(registrationobject: super::super::Foundation::HANDLE) -> u32;
5617         }
5618         ::std::mem::transmute(NetworkIsolationUnregisterForAppContainerChanges(registrationobject.into_param().abi()))
5619     }
5620     #[cfg(not(windows))]
5621     unimplemented!("Unsupported target OS");
5622 }
5623 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
5624 pub type PAC_CHANGES_CALLBACK_FN = unsafe extern "system" fn(context: *const ::std::ffi::c_void, pchange: *const INET_FIREWALL_AC_CHANGE);
5625 #[cfg(feature = "Win32_Foundation")]
5626 pub type PFN_FWADDDYNAMICKEYWORDADDRESS0 = unsafe extern "system" fn(dynamickeywordaddress: *const _tag_FW_DYNAMIC_KEYWORD_ADDRESS0) -> u32;
5627 pub type PFN_FWDELETEDYNAMICKEYWORDADDRESS0 = unsafe extern "system" fn(dynamickeywordaddressid: ::windows::runtime::GUID) -> u32;
5628 #[cfg(feature = "Win32_Foundation")]
5629 pub type PFN_FWENUMDYNAMICKEYWORDADDRESSBYID0 = unsafe extern "system" fn(dynamickeywordaddressid: ::windows::runtime::GUID, dynamickeywordaddressdata: *mut *mut _tag_FW_DYNAMIC_KEYWORD_ADDRESS_DATA0) -> u32;
5630 #[cfg(feature = "Win32_Foundation")]
5631 pub type PFN_FWENUMDYNAMICKEYWORDADDRESSESBYTYPE0 = unsafe extern "system" fn(flags: u32, dynamickeywordaddressdata: *mut *mut _tag_FW_DYNAMIC_KEYWORD_ADDRESS_DATA0) -> u32;
5632 #[cfg(feature = "Win32_Foundation")]
5633 pub type PFN_FWFREEDYNAMICKEYWORDADDRESSDATA0 = unsafe extern "system" fn(dynamickeywordaddressdata: *const _tag_FW_DYNAMIC_KEYWORD_ADDRESS_DATA0) -> u32;
5634 #[cfg(feature = "Win32_Foundation")]
5635 pub type PFN_FWUPDATEDYNAMICKEYWORDADDRESS0 = unsafe extern "system" fn(dynamickeywordaddressid: ::windows::runtime::GUID, updatedaddresses: super::super::Foundation::PWSTR, append: super::super::Foundation::BOOL) -> u32;
5636 #[cfg(feature = "Win32_Foundation")]
5637 pub type PNETISO_EDP_ID_CALLBACK_FN = unsafe extern "system" fn(context: *mut ::std::ffi::c_void, wszenterpriseid: super::super::Foundation::PWSTR, dwerr: u32);
5638 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
5639 #[repr(transparent)]
5640 pub struct SHARINGCONNECTIONTYPE(pub i32);
5641 pub const ICSSHARINGTYPE_PUBLIC: SHARINGCONNECTIONTYPE = SHARINGCONNECTIONTYPE(0i32);
5642 pub const ICSSHARINGTYPE_PRIVATE: SHARINGCONNECTIONTYPE = SHARINGCONNECTIONTYPE(1i32);
5643 impl ::std::convert::From<i32> for SHARINGCONNECTIONTYPE {
5644     fn from(value: i32) -> Self {
5645         Self(value)
5646     }
5647 }
5648 unsafe impl ::windows::runtime::Abi for SHARINGCONNECTIONTYPE {
5649     type Abi = Self;
5650     type DefaultType = Self;
5651 }
5652 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
5653 #[repr(transparent)]
5654 pub struct SHARINGCONNECTION_ENUM_FLAGS(pub i32);
5655 pub const ICSSC_DEFAULT: SHARINGCONNECTION_ENUM_FLAGS = SHARINGCONNECTION_ENUM_FLAGS(0i32);
5656 pub const ICSSC_ENABLED: SHARINGCONNECTION_ENUM_FLAGS = SHARINGCONNECTION_ENUM_FLAGS(1i32);
5657 impl ::std::convert::From<i32> for SHARINGCONNECTION_ENUM_FLAGS {
5658     fn from(value: i32) -> Self {
5659         Self(value)
5660     }
5661 }
5662 unsafe impl ::windows::runtime::Abi for SHARINGCONNECTION_ENUM_FLAGS {
5663     type Abi = Self;
5664     type DefaultType = Self;
5665 }
5666 pub const S_OBJECT_NO_LONGER_VALID: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(2i32 as _);
5667 pub const UPnPNAT: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2921201834, 16341, 16444, [138, 39, 43, 189, 195, 12, 208, 225]);
5668 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
5669 #[repr(C)]
5670 #[cfg(feature = "Win32_Foundation")]
5671 pub struct _tag_FW_DYNAMIC_KEYWORD_ADDRESS0 {
5672     pub id: ::windows::runtime::GUID,
5673     pub keyword: super::super::Foundation::PWSTR,
5674     pub flags: u32,
5675     pub addresses: super::super::Foundation::PWSTR,
5676 }
5677 #[cfg(feature = "Win32_Foundation")]
5678 impl _tag_FW_DYNAMIC_KEYWORD_ADDRESS0 {}
5679 #[cfg(feature = "Win32_Foundation")]
5680 impl ::std::default::Default for _tag_FW_DYNAMIC_KEYWORD_ADDRESS0 {
5681     fn default() -> Self {
5682         unsafe { ::std::mem::zeroed() }
5683     }
5684 }
5685 #[cfg(feature = "Win32_Foundation")]
5686 impl ::std::fmt::Debug for _tag_FW_DYNAMIC_KEYWORD_ADDRESS0 {
5687     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5688         fmt.debug_struct("_tag_FW_DYNAMIC_KEYWORD_ADDRESS0").field("id", &self.id).field("keyword", &self.keyword).field("flags", &self.flags).field("addresses", &self.addresses).finish()
5689     }
5690 }
5691 #[cfg(feature = "Win32_Foundation")]
5692 impl ::std::cmp::PartialEq for _tag_FW_DYNAMIC_KEYWORD_ADDRESS0 {
5693     fn eq(&self, other: &Self) -> bool {
5694         self.id == other.id && self.keyword == other.keyword && self.flags == other.flags && self.addresses == other.addresses
5695     }
5696 }
5697 #[cfg(feature = "Win32_Foundation")]
5698 impl ::std::cmp::Eq for _tag_FW_DYNAMIC_KEYWORD_ADDRESS0 {}
5699 #[cfg(feature = "Win32_Foundation")]
5700 unsafe impl ::windows::runtime::Abi for _tag_FW_DYNAMIC_KEYWORD_ADDRESS0 {
5701     type Abi = Self;
5702     type DefaultType = Self;
5703 }
5704 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
5705 #[repr(C)]
5706 #[cfg(feature = "Win32_Foundation")]
5707 pub struct _tag_FW_DYNAMIC_KEYWORD_ADDRESS_DATA0 {
5708     pub dynamicKeywordAddress: _tag_FW_DYNAMIC_KEYWORD_ADDRESS0,
5709     pub next: *mut _tag_FW_DYNAMIC_KEYWORD_ADDRESS_DATA0,
5710     pub schemaVersion: u16,
5711     pub originType: _tag_FW_DYNAMIC_KEYWORD_ORIGIN_TYPE,
5712 }
5713 #[cfg(feature = "Win32_Foundation")]
5714 impl _tag_FW_DYNAMIC_KEYWORD_ADDRESS_DATA0 {}
5715 #[cfg(feature = "Win32_Foundation")]
5716 impl ::std::default::Default for _tag_FW_DYNAMIC_KEYWORD_ADDRESS_DATA0 {
5717     fn default() -> Self {
5718         unsafe { ::std::mem::zeroed() }
5719     }
5720 }
5721 #[cfg(feature = "Win32_Foundation")]
5722 impl ::std::fmt::Debug for _tag_FW_DYNAMIC_KEYWORD_ADDRESS_DATA0 {
5723     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5724         fmt.debug_struct("_tag_FW_DYNAMIC_KEYWORD_ADDRESS_DATA0").field("dynamicKeywordAddress", &self.dynamicKeywordAddress).field("next", &self.next).field("schemaVersion", &self.schemaVersion).field("originType", &self.originType).finish()
5725     }
5726 }
5727 #[cfg(feature = "Win32_Foundation")]
5728 impl ::std::cmp::PartialEq for _tag_FW_DYNAMIC_KEYWORD_ADDRESS_DATA0 {
5729     fn eq(&self, other: &Self) -> bool {
5730         self.dynamicKeywordAddress == other.dynamicKeywordAddress && self.next == other.next && self.schemaVersion == other.schemaVersion && self.originType == other.originType
5731     }
5732 }
5733 #[cfg(feature = "Win32_Foundation")]
5734 impl ::std::cmp::Eq for _tag_FW_DYNAMIC_KEYWORD_ADDRESS_DATA0 {}
5735 #[cfg(feature = "Win32_Foundation")]
5736 unsafe impl ::windows::runtime::Abi for _tag_FW_DYNAMIC_KEYWORD_ADDRESS_DATA0 {
5737     type Abi = Self;
5738     type DefaultType = Self;
5739 }
5740 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
5741 #[repr(transparent)]
5742 pub struct _tag_FW_DYNAMIC_KEYWORD_ADDRESS_ENUM_FLAGS(pub i32);
5743 pub const FW_DYNAMIC_KEYWORD_ADDRESS_ENUM_FLAGS_AUTO_RESOLVE: _tag_FW_DYNAMIC_KEYWORD_ADDRESS_ENUM_FLAGS = _tag_FW_DYNAMIC_KEYWORD_ADDRESS_ENUM_FLAGS(1i32);
5744 pub const FW_DYNAMIC_KEYWORD_ADDRESS_ENUM_FLAGS_NON_AUTO_RESOLVE: _tag_FW_DYNAMIC_KEYWORD_ADDRESS_ENUM_FLAGS = _tag_FW_DYNAMIC_KEYWORD_ADDRESS_ENUM_FLAGS(2i32);
5745 pub const FW_DYNAMIC_KEYWORD_ADDRESS_ENUM_FLAGS_ALL: _tag_FW_DYNAMIC_KEYWORD_ADDRESS_ENUM_FLAGS = _tag_FW_DYNAMIC_KEYWORD_ADDRESS_ENUM_FLAGS(3i32);
5746 impl ::std::convert::From<i32> for _tag_FW_DYNAMIC_KEYWORD_ADDRESS_ENUM_FLAGS {
5747     fn from(value: i32) -> Self {
5748         Self(value)
5749     }
5750 }
5751 unsafe impl ::windows::runtime::Abi for _tag_FW_DYNAMIC_KEYWORD_ADDRESS_ENUM_FLAGS {
5752     type Abi = Self;
5753     type DefaultType = Self;
5754 }
5755 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
5756 #[repr(transparent)]
5757 pub struct _tag_FW_DYNAMIC_KEYWORD_ADDRESS_FLAGS(pub i32);
5758 pub const FW_DYNAMIC_KEYWORD_ADDRESS_FLAGS_AUTO_RESOLVE: _tag_FW_DYNAMIC_KEYWORD_ADDRESS_FLAGS = _tag_FW_DYNAMIC_KEYWORD_ADDRESS_FLAGS(1i32);
5759 impl ::std::convert::From<i32> for _tag_FW_DYNAMIC_KEYWORD_ADDRESS_FLAGS {
5760     fn from(value: i32) -> Self {
5761         Self(value)
5762     }
5763 }
5764 unsafe impl ::windows::runtime::Abi for _tag_FW_DYNAMIC_KEYWORD_ADDRESS_FLAGS {
5765     type Abi = Self;
5766     type DefaultType = Self;
5767 }
5768 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
5769 #[repr(transparent)]
5770 pub struct _tag_FW_DYNAMIC_KEYWORD_ORIGIN_TYPE(pub i32);
5771 pub const FW_DYNAMIC_KEYWORD_ORIGIN_INVALID: _tag_FW_DYNAMIC_KEYWORD_ORIGIN_TYPE = _tag_FW_DYNAMIC_KEYWORD_ORIGIN_TYPE(0i32);
5772 pub const FW_DYNAMIC_KEYWORD_ORIGIN_LOCAL: _tag_FW_DYNAMIC_KEYWORD_ORIGIN_TYPE = _tag_FW_DYNAMIC_KEYWORD_ORIGIN_TYPE(1i32);
5773 pub const FW_DYNAMIC_KEYWORD_ORIGIN_MDM: _tag_FW_DYNAMIC_KEYWORD_ORIGIN_TYPE = _tag_FW_DYNAMIC_KEYWORD_ORIGIN_TYPE(2i32);
5774 impl ::std::convert::From<i32> for _tag_FW_DYNAMIC_KEYWORD_ORIGIN_TYPE {
5775     fn from(value: i32) -> Self {
5776         Self(value)
5777     }
5778 }
5779 unsafe impl ::windows::runtime::Abi for _tag_FW_DYNAMIC_KEYWORD_ORIGIN_TYPE {
5780     type Abi = Self;
5781     type DefaultType = Self;
5782 }
5783