1 #![allow(unused_variables, non_upper_case_globals, non_snake_case, unused_unsafe, non_camel_case_types, dead_code, clippy::all)]
2 #[repr(transparent)]
3 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4 pub struct AudioDeviceInputNode(::windows::runtime::IInspectable);
5 impl AudioDeviceInputNode {
6     #[cfg(feature = "Devices_Enumeration")]
Device(&self) -> ::windows::runtime::Result<super::super::Devices::Enumeration::DeviceInformation>7     pub fn Device(&self) -> ::windows::runtime::Result<super::super::Devices::Enumeration::DeviceInformation> {
8         let this = self;
9         unsafe {
10             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
11             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Devices::Enumeration::DeviceInformation>(result__)
12         }
13     }
14     #[cfg(feature = "Foundation")]
Close(&self) -> ::windows::runtime::Result<()>15     pub fn Close(&self) -> ::windows::runtime::Result<()> {
16         let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?;
17         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() }
18     }
19     #[cfg(feature = "Foundation_Collections")]
OutgoingConnections(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<AudioGraphConnection>>20     pub fn OutgoingConnections(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<AudioGraphConnection>> {
21         let this = &::windows::runtime::Interface::cast::<IAudioInputNode>(self)?;
22         unsafe {
23             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
24             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<AudioGraphConnection>>(result__)
25         }
26     }
AddOutgoingConnection<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0) -> ::windows::runtime::Result<()>27     pub fn AddOutgoingConnection<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0) -> ::windows::runtime::Result<()> {
28         let this = &::windows::runtime::Interface::cast::<IAudioInputNode>(self)?;
29         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), destination.into_param().abi()).ok() }
30     }
AddOutgoingConnectionWithGain<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0, gain: f64) -> ::windows::runtime::Result<()>31     pub fn AddOutgoingConnectionWithGain<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0, gain: f64) -> ::windows::runtime::Result<()> {
32         let this = &::windows::runtime::Interface::cast::<IAudioInputNode>(self)?;
33         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), destination.into_param().abi(), gain).ok() }
34     }
RemoveOutgoingConnection<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0) -> ::windows::runtime::Result<()>35     pub fn RemoveOutgoingConnection<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0) -> ::windows::runtime::Result<()> {
36         let this = &::windows::runtime::Interface::cast::<IAudioInputNode>(self)?;
37         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), destination.into_param().abi()).ok() }
38     }
39     #[cfg(all(feature = "Foundation_Collections", feature = "Media_Effects"))]
EffectDefinitions(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>>40     pub fn EffectDefinitions(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>> {
41         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
42         unsafe {
43             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
44             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>>(result__)
45         }
46     }
SetOutgoingGain(&self, value: f64) -> ::windows::runtime::Result<()>47     pub fn SetOutgoingGain(&self, value: f64) -> ::windows::runtime::Result<()> {
48         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
49         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() }
50     }
OutgoingGain(&self) -> ::windows::runtime::Result<f64>51     pub fn OutgoingGain(&self) -> ::windows::runtime::Result<f64> {
52         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
53         unsafe {
54             let mut result__: f64 = ::std::mem::zeroed();
55             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
56         }
57     }
58     #[cfg(feature = "Media_MediaProperties")]
EncodingProperties(&self) -> ::windows::runtime::Result<super::MediaProperties::AudioEncodingProperties>59     pub fn EncodingProperties(&self) -> ::windows::runtime::Result<super::MediaProperties::AudioEncodingProperties> {
60         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
61         unsafe {
62             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
63             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::MediaProperties::AudioEncodingProperties>(result__)
64         }
65     }
ConsumeInput(&self) -> ::windows::runtime::Result<bool>66     pub fn ConsumeInput(&self) -> ::windows::runtime::Result<bool> {
67         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
68         unsafe {
69             let mut result__: bool = ::std::mem::zeroed();
70             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
71         }
72     }
SetConsumeInput(&self, value: bool) -> ::windows::runtime::Result<()>73     pub fn SetConsumeInput(&self, value: bool) -> ::windows::runtime::Result<()> {
74         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
75         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value).ok() }
76     }
Start(&self) -> ::windows::runtime::Result<()>77     pub fn Start(&self) -> ::windows::runtime::Result<()> {
78         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
79         unsafe { (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this)).ok() }
80     }
Stop(&self) -> ::windows::runtime::Result<()>81     pub fn Stop(&self) -> ::windows::runtime::Result<()> {
82         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
83         unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this)).ok() }
84     }
Reset(&self) -> ::windows::runtime::Result<()>85     pub fn Reset(&self) -> ::windows::runtime::Result<()> {
86         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
87         unsafe { (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this)).ok() }
88     }
89     #[cfg(feature = "Media_Effects")]
DisableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()>90     pub fn DisableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()> {
91         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
92         unsafe { (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), definition.into_param().abi()).ok() }
93     }
94     #[cfg(feature = "Media_Effects")]
EnableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()>95     pub fn EnableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()> {
96         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
97         unsafe { (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), definition.into_param().abi()).ok() }
98     }
Emitter(&self) -> ::windows::runtime::Result<AudioNodeEmitter>99     pub fn Emitter(&self) -> ::windows::runtime::Result<AudioNodeEmitter> {
100         let this = &::windows::runtime::Interface::cast::<IAudioInputNode2>(self)?;
101         unsafe {
102             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
103             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioNodeEmitter>(result__)
104         }
105     }
106 }
107 unsafe impl ::windows::runtime::RuntimeType for AudioDeviceInputNode {
108     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.AudioDeviceInputNode;{b01b6be1-6f4e-49e2-ac01-559d62beb3a9})");
109 }
110 unsafe impl ::windows::runtime::Interface for AudioDeviceInputNode {
111     type Vtable = IAudioDeviceInputNode_abi;
112     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2954587105, 28494, 18914, [172, 1, 85, 157, 98, 190, 179, 169]);
113 }
114 impl ::windows::runtime::RuntimeName for AudioDeviceInputNode {
115     const NAME: &'static str = "Windows.Media.Audio.AudioDeviceInputNode";
116 }
117 impl ::std::convert::From<AudioDeviceInputNode> for ::windows::runtime::IUnknown {
from(value: AudioDeviceInputNode) -> Self118     fn from(value: AudioDeviceInputNode) -> Self {
119         unsafe { ::std::mem::transmute(value) }
120     }
121 }
122 impl ::std::convert::From<&AudioDeviceInputNode> for ::windows::runtime::IUnknown {
from(value: &AudioDeviceInputNode) -> Self123     fn from(value: &AudioDeviceInputNode) -> Self {
124         ::std::convert::From::from(::std::clone::Clone::clone(value))
125     }
126 }
127 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for AudioDeviceInputNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>128     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
129         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
130     }
131 }
132 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &AudioDeviceInputNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>133     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
134         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
135     }
136 }
137 impl ::std::convert::From<AudioDeviceInputNode> for ::windows::runtime::IInspectable {
from(value: AudioDeviceInputNode) -> Self138     fn from(value: AudioDeviceInputNode) -> Self {
139         value.0
140     }
141 }
142 impl ::std::convert::From<&AudioDeviceInputNode> for ::windows::runtime::IInspectable {
from(value: &AudioDeviceInputNode) -> Self143     fn from(value: &AudioDeviceInputNode) -> Self {
144         value.0.clone()
145     }
146 }
147 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for AudioDeviceInputNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>148     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
149         ::windows::runtime::Param::Owned(self.0)
150     }
151 }
152 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a AudioDeviceInputNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>153     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
154         ::windows::runtime::Param::Borrowed(&self.0)
155     }
156 }
157 #[cfg(feature = "Foundation")]
158 impl ::std::convert::TryFrom<AudioDeviceInputNode> for super::super::Foundation::IClosable {
159     type Error = ::windows::runtime::Error;
try_from(value: AudioDeviceInputNode) -> ::windows::runtime::Result<Self>160     fn try_from(value: AudioDeviceInputNode) -> ::windows::runtime::Result<Self> {
161         ::std::convert::TryFrom::try_from(&value)
162     }
163 }
164 #[cfg(feature = "Foundation")]
165 impl ::std::convert::TryFrom<&AudioDeviceInputNode> for super::super::Foundation::IClosable {
166     type Error = ::windows::runtime::Error;
try_from(value: &AudioDeviceInputNode) -> ::windows::runtime::Result<Self>167     fn try_from(value: &AudioDeviceInputNode) -> ::windows::runtime::Result<Self> {
168         ::windows::runtime::Interface::cast(value)
169     }
170 }
171 #[cfg(feature = "Foundation")]
172 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for AudioDeviceInputNode {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>173     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
174         ::windows::runtime::IntoParam::into_param(&self)
175     }
176 }
177 #[cfg(feature = "Foundation")]
178 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &AudioDeviceInputNode {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>179     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
180         ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
181     }
182 }
183 impl ::std::convert::TryFrom<AudioDeviceInputNode> for IAudioInputNode {
184     type Error = ::windows::runtime::Error;
try_from(value: AudioDeviceInputNode) -> ::windows::runtime::Result<Self>185     fn try_from(value: AudioDeviceInputNode) -> ::windows::runtime::Result<Self> {
186         ::std::convert::TryFrom::try_from(&value)
187     }
188 }
189 impl ::std::convert::TryFrom<&AudioDeviceInputNode> for IAudioInputNode {
190     type Error = ::windows::runtime::Error;
try_from(value: &AudioDeviceInputNode) -> ::windows::runtime::Result<Self>191     fn try_from(value: &AudioDeviceInputNode) -> ::windows::runtime::Result<Self> {
192         ::windows::runtime::Interface::cast(value)
193     }
194 }
195 impl<'a> ::windows::runtime::IntoParam<'a, IAudioInputNode> for AudioDeviceInputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode>196     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode> {
197         ::windows::runtime::IntoParam::into_param(&self)
198     }
199 }
200 impl<'a> ::windows::runtime::IntoParam<'a, IAudioInputNode> for &AudioDeviceInputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode>201     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode> {
202         ::std::convert::TryInto::<IAudioInputNode>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
203     }
204 }
205 impl ::std::convert::TryFrom<AudioDeviceInputNode> for IAudioNode {
206     type Error = ::windows::runtime::Error;
try_from(value: AudioDeviceInputNode) -> ::windows::runtime::Result<Self>207     fn try_from(value: AudioDeviceInputNode) -> ::windows::runtime::Result<Self> {
208         ::std::convert::TryFrom::try_from(&value)
209     }
210 }
211 impl ::std::convert::TryFrom<&AudioDeviceInputNode> for IAudioNode {
212     type Error = ::windows::runtime::Error;
try_from(value: &AudioDeviceInputNode) -> ::windows::runtime::Result<Self>213     fn try_from(value: &AudioDeviceInputNode) -> ::windows::runtime::Result<Self> {
214         ::windows::runtime::Interface::cast(value)
215     }
216 }
217 impl<'a> ::windows::runtime::IntoParam<'a, IAudioNode> for AudioDeviceInputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioNode>218     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioNode> {
219         ::windows::runtime::IntoParam::into_param(&self)
220     }
221 }
222 impl<'a> ::windows::runtime::IntoParam<'a, IAudioNode> for &AudioDeviceInputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioNode>223     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioNode> {
224         ::std::convert::TryInto::<IAudioNode>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
225     }
226 }
227 impl ::std::convert::TryFrom<AudioDeviceInputNode> for IAudioInputNode2 {
228     type Error = ::windows::runtime::Error;
try_from(value: AudioDeviceInputNode) -> ::windows::runtime::Result<Self>229     fn try_from(value: AudioDeviceInputNode) -> ::windows::runtime::Result<Self> {
230         ::std::convert::TryFrom::try_from(&value)
231     }
232 }
233 impl ::std::convert::TryFrom<&AudioDeviceInputNode> for IAudioInputNode2 {
234     type Error = ::windows::runtime::Error;
try_from(value: &AudioDeviceInputNode) -> ::windows::runtime::Result<Self>235     fn try_from(value: &AudioDeviceInputNode) -> ::windows::runtime::Result<Self> {
236         ::windows::runtime::Interface::cast(value)
237     }
238 }
239 impl<'a> ::windows::runtime::IntoParam<'a, IAudioInputNode2> for AudioDeviceInputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode2>240     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode2> {
241         ::windows::runtime::IntoParam::into_param(&self)
242     }
243 }
244 impl<'a> ::windows::runtime::IntoParam<'a, IAudioInputNode2> for &AudioDeviceInputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode2>245     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode2> {
246         ::std::convert::TryInto::<IAudioInputNode2>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
247     }
248 }
249 unsafe impl ::std::marker::Send for AudioDeviceInputNode {}
250 unsafe impl ::std::marker::Sync for AudioDeviceInputNode {}
251 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
252 #[repr(transparent)]
253 pub struct AudioDeviceNodeCreationStatus(pub i32);
254 impl AudioDeviceNodeCreationStatus {
255     pub const Success: AudioDeviceNodeCreationStatus = AudioDeviceNodeCreationStatus(0i32);
256     pub const DeviceNotAvailable: AudioDeviceNodeCreationStatus = AudioDeviceNodeCreationStatus(1i32);
257     pub const FormatNotSupported: AudioDeviceNodeCreationStatus = AudioDeviceNodeCreationStatus(2i32);
258     pub const UnknownFailure: AudioDeviceNodeCreationStatus = AudioDeviceNodeCreationStatus(3i32);
259     pub const AccessDenied: AudioDeviceNodeCreationStatus = AudioDeviceNodeCreationStatus(4i32);
260 }
261 impl ::std::convert::From<i32> for AudioDeviceNodeCreationStatus {
from(value: i32) -> Self262     fn from(value: i32) -> Self {
263         Self(value)
264     }
265 }
266 unsafe impl ::windows::runtime::Abi for AudioDeviceNodeCreationStatus {
267     type Abi = Self;
268     type DefaultType = Self;
269 }
270 unsafe impl ::windows::runtime::RuntimeType for AudioDeviceNodeCreationStatus {
271     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Audio.AudioDeviceNodeCreationStatus;i4)");
272 }
273 #[repr(transparent)]
274 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
275 pub struct AudioDeviceOutputNode(::windows::runtime::IInspectable);
276 impl AudioDeviceOutputNode {
277     #[cfg(feature = "Devices_Enumeration")]
Device(&self) -> ::windows::runtime::Result<super::super::Devices::Enumeration::DeviceInformation>278     pub fn Device(&self) -> ::windows::runtime::Result<super::super::Devices::Enumeration::DeviceInformation> {
279         let this = self;
280         unsafe {
281             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
282             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Devices::Enumeration::DeviceInformation>(result__)
283         }
284     }
285     #[cfg(feature = "Foundation")]
Close(&self) -> ::windows::runtime::Result<()>286     pub fn Close(&self) -> ::windows::runtime::Result<()> {
287         let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?;
288         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() }
289     }
290     #[cfg(all(feature = "Foundation_Collections", feature = "Media_Effects"))]
EffectDefinitions(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>>291     pub fn EffectDefinitions(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>> {
292         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
293         unsafe {
294             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
295             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>>(result__)
296         }
297     }
SetOutgoingGain(&self, value: f64) -> ::windows::runtime::Result<()>298     pub fn SetOutgoingGain(&self, value: f64) -> ::windows::runtime::Result<()> {
299         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
300         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() }
301     }
OutgoingGain(&self) -> ::windows::runtime::Result<f64>302     pub fn OutgoingGain(&self) -> ::windows::runtime::Result<f64> {
303         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
304         unsafe {
305             let mut result__: f64 = ::std::mem::zeroed();
306             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
307         }
308     }
309     #[cfg(feature = "Media_MediaProperties")]
EncodingProperties(&self) -> ::windows::runtime::Result<super::MediaProperties::AudioEncodingProperties>310     pub fn EncodingProperties(&self) -> ::windows::runtime::Result<super::MediaProperties::AudioEncodingProperties> {
311         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
312         unsafe {
313             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
314             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::MediaProperties::AudioEncodingProperties>(result__)
315         }
316     }
ConsumeInput(&self) -> ::windows::runtime::Result<bool>317     pub fn ConsumeInput(&self) -> ::windows::runtime::Result<bool> {
318         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
319         unsafe {
320             let mut result__: bool = ::std::mem::zeroed();
321             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
322         }
323     }
SetConsumeInput(&self, value: bool) -> ::windows::runtime::Result<()>324     pub fn SetConsumeInput(&self, value: bool) -> ::windows::runtime::Result<()> {
325         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
326         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value).ok() }
327     }
Start(&self) -> ::windows::runtime::Result<()>328     pub fn Start(&self) -> ::windows::runtime::Result<()> {
329         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
330         unsafe { (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this)).ok() }
331     }
Stop(&self) -> ::windows::runtime::Result<()>332     pub fn Stop(&self) -> ::windows::runtime::Result<()> {
333         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
334         unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this)).ok() }
335     }
Reset(&self) -> ::windows::runtime::Result<()>336     pub fn Reset(&self) -> ::windows::runtime::Result<()> {
337         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
338         unsafe { (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this)).ok() }
339     }
340     #[cfg(feature = "Media_Effects")]
DisableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()>341     pub fn DisableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()> {
342         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
343         unsafe { (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), definition.into_param().abi()).ok() }
344     }
345     #[cfg(feature = "Media_Effects")]
EnableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()>346     pub fn EnableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()> {
347         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
348         unsafe { (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), definition.into_param().abi()).ok() }
349     }
SetListener<'a, Param0: ::windows::runtime::IntoParam<'a, AudioNodeListener>>(&self, value: Param0) -> ::windows::runtime::Result<()>350     pub fn SetListener<'a, Param0: ::windows::runtime::IntoParam<'a, AudioNodeListener>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
351         let this = &::windows::runtime::Interface::cast::<IAudioNodeWithListener>(self)?;
352         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
353     }
Listener(&self) -> ::windows::runtime::Result<AudioNodeListener>354     pub fn Listener(&self) -> ::windows::runtime::Result<AudioNodeListener> {
355         let this = &::windows::runtime::Interface::cast::<IAudioNodeWithListener>(self)?;
356         unsafe {
357             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
358             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioNodeListener>(result__)
359         }
360     }
361 }
362 unsafe impl ::windows::runtime::RuntimeType for AudioDeviceOutputNode {
363     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.AudioDeviceOutputNode;{362edbff-ff1c-4434-9e0f-bd2ef522ac82})");
364 }
365 unsafe impl ::windows::runtime::Interface for AudioDeviceOutputNode {
366     type Vtable = IAudioDeviceOutputNode_abi;
367     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(909040639, 65308, 17460, [158, 15, 189, 46, 245, 34, 172, 130]);
368 }
369 impl ::windows::runtime::RuntimeName for AudioDeviceOutputNode {
370     const NAME: &'static str = "Windows.Media.Audio.AudioDeviceOutputNode";
371 }
372 impl ::std::convert::From<AudioDeviceOutputNode> for ::windows::runtime::IUnknown {
from(value: AudioDeviceOutputNode) -> Self373     fn from(value: AudioDeviceOutputNode) -> Self {
374         unsafe { ::std::mem::transmute(value) }
375     }
376 }
377 impl ::std::convert::From<&AudioDeviceOutputNode> for ::windows::runtime::IUnknown {
from(value: &AudioDeviceOutputNode) -> Self378     fn from(value: &AudioDeviceOutputNode) -> Self {
379         ::std::convert::From::from(::std::clone::Clone::clone(value))
380     }
381 }
382 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for AudioDeviceOutputNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>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 &AudioDeviceOutputNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>388     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 impl ::std::convert::From<AudioDeviceOutputNode> for ::windows::runtime::IInspectable {
from(value: AudioDeviceOutputNode) -> Self393     fn from(value: AudioDeviceOutputNode) -> Self {
394         value.0
395     }
396 }
397 impl ::std::convert::From<&AudioDeviceOutputNode> for ::windows::runtime::IInspectable {
from(value: &AudioDeviceOutputNode) -> Self398     fn from(value: &AudioDeviceOutputNode) -> Self {
399         value.0.clone()
400     }
401 }
402 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for AudioDeviceOutputNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>403     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
404         ::windows::runtime::Param::Owned(self.0)
405     }
406 }
407 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a AudioDeviceOutputNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>408     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
409         ::windows::runtime::Param::Borrowed(&self.0)
410     }
411 }
412 #[cfg(feature = "Foundation")]
413 impl ::std::convert::TryFrom<AudioDeviceOutputNode> for super::super::Foundation::IClosable {
414     type Error = ::windows::runtime::Error;
try_from(value: AudioDeviceOutputNode) -> ::windows::runtime::Result<Self>415     fn try_from(value: AudioDeviceOutputNode) -> ::windows::runtime::Result<Self> {
416         ::std::convert::TryFrom::try_from(&value)
417     }
418 }
419 #[cfg(feature = "Foundation")]
420 impl ::std::convert::TryFrom<&AudioDeviceOutputNode> for super::super::Foundation::IClosable {
421     type Error = ::windows::runtime::Error;
try_from(value: &AudioDeviceOutputNode) -> ::windows::runtime::Result<Self>422     fn try_from(value: &AudioDeviceOutputNode) -> ::windows::runtime::Result<Self> {
423         ::windows::runtime::Interface::cast(value)
424     }
425 }
426 #[cfg(feature = "Foundation")]
427 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for AudioDeviceOutputNode {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>428     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
429         ::windows::runtime::IntoParam::into_param(&self)
430     }
431 }
432 #[cfg(feature = "Foundation")]
433 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &AudioDeviceOutputNode {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>434     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
435         ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
436     }
437 }
438 impl ::std::convert::TryFrom<AudioDeviceOutputNode> for IAudioNode {
439     type Error = ::windows::runtime::Error;
try_from(value: AudioDeviceOutputNode) -> ::windows::runtime::Result<Self>440     fn try_from(value: AudioDeviceOutputNode) -> ::windows::runtime::Result<Self> {
441         ::std::convert::TryFrom::try_from(&value)
442     }
443 }
444 impl ::std::convert::TryFrom<&AudioDeviceOutputNode> for IAudioNode {
445     type Error = ::windows::runtime::Error;
try_from(value: &AudioDeviceOutputNode) -> ::windows::runtime::Result<Self>446     fn try_from(value: &AudioDeviceOutputNode) -> ::windows::runtime::Result<Self> {
447         ::windows::runtime::Interface::cast(value)
448     }
449 }
450 impl<'a> ::windows::runtime::IntoParam<'a, IAudioNode> for AudioDeviceOutputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioNode>451     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioNode> {
452         ::windows::runtime::IntoParam::into_param(&self)
453     }
454 }
455 impl<'a> ::windows::runtime::IntoParam<'a, IAudioNode> for &AudioDeviceOutputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioNode>456     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioNode> {
457         ::std::convert::TryInto::<IAudioNode>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
458     }
459 }
460 impl ::std::convert::TryFrom<AudioDeviceOutputNode> for IAudioNodeWithListener {
461     type Error = ::windows::runtime::Error;
try_from(value: AudioDeviceOutputNode) -> ::windows::runtime::Result<Self>462     fn try_from(value: AudioDeviceOutputNode) -> ::windows::runtime::Result<Self> {
463         ::std::convert::TryFrom::try_from(&value)
464     }
465 }
466 impl ::std::convert::TryFrom<&AudioDeviceOutputNode> for IAudioNodeWithListener {
467     type Error = ::windows::runtime::Error;
try_from(value: &AudioDeviceOutputNode) -> ::windows::runtime::Result<Self>468     fn try_from(value: &AudioDeviceOutputNode) -> ::windows::runtime::Result<Self> {
469         ::windows::runtime::Interface::cast(value)
470     }
471 }
472 impl<'a> ::windows::runtime::IntoParam<'a, IAudioNodeWithListener> for AudioDeviceOutputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioNodeWithListener>473     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioNodeWithListener> {
474         ::windows::runtime::IntoParam::into_param(&self)
475     }
476 }
477 impl<'a> ::windows::runtime::IntoParam<'a, IAudioNodeWithListener> for &AudioDeviceOutputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioNodeWithListener>478     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioNodeWithListener> {
479         ::std::convert::TryInto::<IAudioNodeWithListener>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
480     }
481 }
482 unsafe impl ::std::marker::Send for AudioDeviceOutputNode {}
483 unsafe impl ::std::marker::Sync for AudioDeviceOutputNode {}
484 #[repr(transparent)]
485 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
486 pub struct AudioFileInputNode(::windows::runtime::IInspectable);
487 impl AudioFileInputNode {
SetPlaybackSpeedFactor(&self, value: f64) -> ::windows::runtime::Result<()>488     pub fn SetPlaybackSpeedFactor(&self, value: f64) -> ::windows::runtime::Result<()> {
489         let this = self;
490         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), value).ok() }
491     }
PlaybackSpeedFactor(&self) -> ::windows::runtime::Result<f64>492     pub fn PlaybackSpeedFactor(&self) -> ::windows::runtime::Result<f64> {
493         let this = self;
494         unsafe {
495             let mut result__: f64 = ::std::mem::zeroed();
496             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
497         }
498     }
499     #[cfg(feature = "Foundation")]
Position(&self) -> ::windows::runtime::Result<super::super::Foundation::TimeSpan>500     pub fn Position(&self) -> ::windows::runtime::Result<super::super::Foundation::TimeSpan> {
501         let this = self;
502         unsafe {
503             let mut result__: super::super::Foundation::TimeSpan = ::std::mem::zeroed();
504             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::TimeSpan>(result__)
505         }
506     }
507     #[cfg(feature = "Foundation")]
Seek<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TimeSpan>>(&self, position: Param0) -> ::windows::runtime::Result<()>508     pub fn Seek<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TimeSpan>>(&self, position: Param0) -> ::windows::runtime::Result<()> {
509         let this = self;
510         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), position.into_param().abi()).ok() }
511     }
512     #[cfg(feature = "Foundation")]
StartTime(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<super::super::Foundation::TimeSpan>>513     pub fn StartTime(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<super::super::Foundation::TimeSpan>> {
514         let this = self;
515         unsafe {
516             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
517             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<super::super::Foundation::TimeSpan>>(result__)
518         }
519     }
520     #[cfg(feature = "Foundation")]
SetStartTime<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<super::super::Foundation::TimeSpan>>>(&self, value: Param0) -> ::windows::runtime::Result<()>521     pub fn SetStartTime<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<super::super::Foundation::TimeSpan>>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
522         let this = self;
523         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
524     }
525     #[cfg(feature = "Foundation")]
EndTime(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<super::super::Foundation::TimeSpan>>526     pub fn EndTime(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<super::super::Foundation::TimeSpan>> {
527         let this = self;
528         unsafe {
529             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
530             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<super::super::Foundation::TimeSpan>>(result__)
531         }
532     }
533     #[cfg(feature = "Foundation")]
SetEndTime<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<super::super::Foundation::TimeSpan>>>(&self, value: Param0) -> ::windows::runtime::Result<()>534     pub fn SetEndTime<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<super::super::Foundation::TimeSpan>>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
535         let this = self;
536         unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
537     }
538     #[cfg(feature = "Foundation")]
LoopCount(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<i32>>539     pub fn LoopCount(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<i32>> {
540         let this = self;
541         unsafe {
542             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
543             (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<i32>>(result__)
544         }
545     }
546     #[cfg(feature = "Foundation")]
SetLoopCount<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<i32>>>(&self, value: Param0) -> ::windows::runtime::Result<()>547     pub fn SetLoopCount<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<i32>>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
548         let this = self;
549         unsafe { (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
550     }
551     #[cfg(feature = "Foundation")]
Duration(&self) -> ::windows::runtime::Result<super::super::Foundation::TimeSpan>552     pub fn Duration(&self) -> ::windows::runtime::Result<super::super::Foundation::TimeSpan> {
553         let this = self;
554         unsafe {
555             let mut result__: super::super::Foundation::TimeSpan = ::std::mem::zeroed();
556             (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::TimeSpan>(result__)
557         }
558     }
559     #[cfg(feature = "Storage")]
SourceFile(&self) -> ::windows::runtime::Result<super::super::Storage::StorageFile>560     pub fn SourceFile(&self) -> ::windows::runtime::Result<super::super::Storage::StorageFile> {
561         let this = self;
562         unsafe {
563             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
564             (::windows::runtime::Interface::vtable(this).17)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Storage::StorageFile>(result__)
565         }
566     }
567     #[cfg(feature = "Foundation")]
FileCompleted<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<AudioFileInputNode, ::windows::runtime::IInspectable>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken>568     pub fn FileCompleted<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<AudioFileInputNode, ::windows::runtime::IInspectable>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken> {
569         let this = self;
570         unsafe {
571             let mut result__: super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
572             (::windows::runtime::Interface::vtable(this).18)(::std::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::EventRegistrationToken>(result__)
573         }
574     }
575     #[cfg(feature = "Foundation")]
RemoveFileCompleted<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()>576     pub fn RemoveFileCompleted<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()> {
577         let this = self;
578         unsafe { (::windows::runtime::Interface::vtable(this).19)(::std::mem::transmute_copy(this), token.into_param().abi()).ok() }
579     }
580     #[cfg(feature = "Foundation")]
Close(&self) -> ::windows::runtime::Result<()>581     pub fn Close(&self) -> ::windows::runtime::Result<()> {
582         let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?;
583         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() }
584     }
585     #[cfg(feature = "Foundation_Collections")]
OutgoingConnections(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<AudioGraphConnection>>586     pub fn OutgoingConnections(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<AudioGraphConnection>> {
587         let this = &::windows::runtime::Interface::cast::<IAudioInputNode>(self)?;
588         unsafe {
589             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
590             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<AudioGraphConnection>>(result__)
591         }
592     }
AddOutgoingConnection<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0) -> ::windows::runtime::Result<()>593     pub fn AddOutgoingConnection<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0) -> ::windows::runtime::Result<()> {
594         let this = &::windows::runtime::Interface::cast::<IAudioInputNode>(self)?;
595         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), destination.into_param().abi()).ok() }
596     }
AddOutgoingConnectionWithGain<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0, gain: f64) -> ::windows::runtime::Result<()>597     pub fn AddOutgoingConnectionWithGain<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0, gain: f64) -> ::windows::runtime::Result<()> {
598         let this = &::windows::runtime::Interface::cast::<IAudioInputNode>(self)?;
599         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), destination.into_param().abi(), gain).ok() }
600     }
RemoveOutgoingConnection<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0) -> ::windows::runtime::Result<()>601     pub fn RemoveOutgoingConnection<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0) -> ::windows::runtime::Result<()> {
602         let this = &::windows::runtime::Interface::cast::<IAudioInputNode>(self)?;
603         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), destination.into_param().abi()).ok() }
604     }
605     #[cfg(all(feature = "Foundation_Collections", feature = "Media_Effects"))]
EffectDefinitions(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>>606     pub fn EffectDefinitions(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>> {
607         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
608         unsafe {
609             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
610             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>>(result__)
611         }
612     }
SetOutgoingGain(&self, value: f64) -> ::windows::runtime::Result<()>613     pub fn SetOutgoingGain(&self, value: f64) -> ::windows::runtime::Result<()> {
614         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
615         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() }
616     }
OutgoingGain(&self) -> ::windows::runtime::Result<f64>617     pub fn OutgoingGain(&self) -> ::windows::runtime::Result<f64> {
618         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
619         unsafe {
620             let mut result__: f64 = ::std::mem::zeroed();
621             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
622         }
623     }
624     #[cfg(feature = "Media_MediaProperties")]
EncodingProperties(&self) -> ::windows::runtime::Result<super::MediaProperties::AudioEncodingProperties>625     pub fn EncodingProperties(&self) -> ::windows::runtime::Result<super::MediaProperties::AudioEncodingProperties> {
626         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
627         unsafe {
628             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
629             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::MediaProperties::AudioEncodingProperties>(result__)
630         }
631     }
ConsumeInput(&self) -> ::windows::runtime::Result<bool>632     pub fn ConsumeInput(&self) -> ::windows::runtime::Result<bool> {
633         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
634         unsafe {
635             let mut result__: bool = ::std::mem::zeroed();
636             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
637         }
638     }
SetConsumeInput(&self, value: bool) -> ::windows::runtime::Result<()>639     pub fn SetConsumeInput(&self, value: bool) -> ::windows::runtime::Result<()> {
640         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
641         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value).ok() }
642     }
Start(&self) -> ::windows::runtime::Result<()>643     pub fn Start(&self) -> ::windows::runtime::Result<()> {
644         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
645         unsafe { (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this)).ok() }
646     }
Stop(&self) -> ::windows::runtime::Result<()>647     pub fn Stop(&self) -> ::windows::runtime::Result<()> {
648         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
649         unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this)).ok() }
650     }
Reset(&self) -> ::windows::runtime::Result<()>651     pub fn Reset(&self) -> ::windows::runtime::Result<()> {
652         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
653         unsafe { (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this)).ok() }
654     }
655     #[cfg(feature = "Media_Effects")]
DisableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()>656     pub fn DisableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()> {
657         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
658         unsafe { (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), definition.into_param().abi()).ok() }
659     }
660     #[cfg(feature = "Media_Effects")]
EnableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()>661     pub fn EnableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()> {
662         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
663         unsafe { (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), definition.into_param().abi()).ok() }
664     }
Emitter(&self) -> ::windows::runtime::Result<AudioNodeEmitter>665     pub fn Emitter(&self) -> ::windows::runtime::Result<AudioNodeEmitter> {
666         let this = &::windows::runtime::Interface::cast::<IAudioInputNode2>(self)?;
667         unsafe {
668             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
669             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioNodeEmitter>(result__)
670         }
671     }
672 }
673 unsafe impl ::windows::runtime::RuntimeType for AudioFileInputNode {
674     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.AudioFileInputNode;{905b67c8-6f65-4cd4-8890-4694843c276d})");
675 }
676 unsafe impl ::windows::runtime::Interface for AudioFileInputNode {
677     type Vtable = IAudioFileInputNode_abi;
678     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2421909448, 28517, 19668, [136, 144, 70, 148, 132, 60, 39, 109]);
679 }
680 impl ::windows::runtime::RuntimeName for AudioFileInputNode {
681     const NAME: &'static str = "Windows.Media.Audio.AudioFileInputNode";
682 }
683 impl ::std::convert::From<AudioFileInputNode> for ::windows::runtime::IUnknown {
from(value: AudioFileInputNode) -> Self684     fn from(value: AudioFileInputNode) -> Self {
685         unsafe { ::std::mem::transmute(value) }
686     }
687 }
688 impl ::std::convert::From<&AudioFileInputNode> for ::windows::runtime::IUnknown {
from(value: &AudioFileInputNode) -> Self689     fn from(value: &AudioFileInputNode) -> Self {
690         ::std::convert::From::from(::std::clone::Clone::clone(value))
691     }
692 }
693 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for AudioFileInputNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>694     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
695         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
696     }
697 }
698 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &AudioFileInputNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>699     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
700         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
701     }
702 }
703 impl ::std::convert::From<AudioFileInputNode> for ::windows::runtime::IInspectable {
from(value: AudioFileInputNode) -> Self704     fn from(value: AudioFileInputNode) -> Self {
705         value.0
706     }
707 }
708 impl ::std::convert::From<&AudioFileInputNode> for ::windows::runtime::IInspectable {
from(value: &AudioFileInputNode) -> Self709     fn from(value: &AudioFileInputNode) -> Self {
710         value.0.clone()
711     }
712 }
713 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for AudioFileInputNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>714     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
715         ::windows::runtime::Param::Owned(self.0)
716     }
717 }
718 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a AudioFileInputNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>719     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
720         ::windows::runtime::Param::Borrowed(&self.0)
721     }
722 }
723 #[cfg(feature = "Foundation")]
724 impl ::std::convert::TryFrom<AudioFileInputNode> for super::super::Foundation::IClosable {
725     type Error = ::windows::runtime::Error;
try_from(value: AudioFileInputNode) -> ::windows::runtime::Result<Self>726     fn try_from(value: AudioFileInputNode) -> ::windows::runtime::Result<Self> {
727         ::std::convert::TryFrom::try_from(&value)
728     }
729 }
730 #[cfg(feature = "Foundation")]
731 impl ::std::convert::TryFrom<&AudioFileInputNode> for super::super::Foundation::IClosable {
732     type Error = ::windows::runtime::Error;
try_from(value: &AudioFileInputNode) -> ::windows::runtime::Result<Self>733     fn try_from(value: &AudioFileInputNode) -> ::windows::runtime::Result<Self> {
734         ::windows::runtime::Interface::cast(value)
735     }
736 }
737 #[cfg(feature = "Foundation")]
738 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for AudioFileInputNode {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>739     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
740         ::windows::runtime::IntoParam::into_param(&self)
741     }
742 }
743 #[cfg(feature = "Foundation")]
744 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &AudioFileInputNode {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>745     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
746         ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
747     }
748 }
749 impl ::std::convert::TryFrom<AudioFileInputNode> for IAudioInputNode {
750     type Error = ::windows::runtime::Error;
try_from(value: AudioFileInputNode) -> ::windows::runtime::Result<Self>751     fn try_from(value: AudioFileInputNode) -> ::windows::runtime::Result<Self> {
752         ::std::convert::TryFrom::try_from(&value)
753     }
754 }
755 impl ::std::convert::TryFrom<&AudioFileInputNode> for IAudioInputNode {
756     type Error = ::windows::runtime::Error;
try_from(value: &AudioFileInputNode) -> ::windows::runtime::Result<Self>757     fn try_from(value: &AudioFileInputNode) -> ::windows::runtime::Result<Self> {
758         ::windows::runtime::Interface::cast(value)
759     }
760 }
761 impl<'a> ::windows::runtime::IntoParam<'a, IAudioInputNode> for AudioFileInputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode>762     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode> {
763         ::windows::runtime::IntoParam::into_param(&self)
764     }
765 }
766 impl<'a> ::windows::runtime::IntoParam<'a, IAudioInputNode> for &AudioFileInputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode>767     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode> {
768         ::std::convert::TryInto::<IAudioInputNode>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
769     }
770 }
771 impl ::std::convert::TryFrom<AudioFileInputNode> for IAudioNode {
772     type Error = ::windows::runtime::Error;
try_from(value: AudioFileInputNode) -> ::windows::runtime::Result<Self>773     fn try_from(value: AudioFileInputNode) -> ::windows::runtime::Result<Self> {
774         ::std::convert::TryFrom::try_from(&value)
775     }
776 }
777 impl ::std::convert::TryFrom<&AudioFileInputNode> for IAudioNode {
778     type Error = ::windows::runtime::Error;
try_from(value: &AudioFileInputNode) -> ::windows::runtime::Result<Self>779     fn try_from(value: &AudioFileInputNode) -> ::windows::runtime::Result<Self> {
780         ::windows::runtime::Interface::cast(value)
781     }
782 }
783 impl<'a> ::windows::runtime::IntoParam<'a, IAudioNode> for AudioFileInputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioNode>784     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioNode> {
785         ::windows::runtime::IntoParam::into_param(&self)
786     }
787 }
788 impl<'a> ::windows::runtime::IntoParam<'a, IAudioNode> for &AudioFileInputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioNode>789     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioNode> {
790         ::std::convert::TryInto::<IAudioNode>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
791     }
792 }
793 impl ::std::convert::TryFrom<AudioFileInputNode> for IAudioInputNode2 {
794     type Error = ::windows::runtime::Error;
try_from(value: AudioFileInputNode) -> ::windows::runtime::Result<Self>795     fn try_from(value: AudioFileInputNode) -> ::windows::runtime::Result<Self> {
796         ::std::convert::TryFrom::try_from(&value)
797     }
798 }
799 impl ::std::convert::TryFrom<&AudioFileInputNode> for IAudioInputNode2 {
800     type Error = ::windows::runtime::Error;
try_from(value: &AudioFileInputNode) -> ::windows::runtime::Result<Self>801     fn try_from(value: &AudioFileInputNode) -> ::windows::runtime::Result<Self> {
802         ::windows::runtime::Interface::cast(value)
803     }
804 }
805 impl<'a> ::windows::runtime::IntoParam<'a, IAudioInputNode2> for AudioFileInputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode2>806     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode2> {
807         ::windows::runtime::IntoParam::into_param(&self)
808     }
809 }
810 impl<'a> ::windows::runtime::IntoParam<'a, IAudioInputNode2> for &AudioFileInputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode2>811     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode2> {
812         ::std::convert::TryInto::<IAudioInputNode2>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
813     }
814 }
815 unsafe impl ::std::marker::Send for AudioFileInputNode {}
816 unsafe impl ::std::marker::Sync for AudioFileInputNode {}
817 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
818 #[repr(transparent)]
819 pub struct AudioFileNodeCreationStatus(pub i32);
820 impl AudioFileNodeCreationStatus {
821     pub const Success: AudioFileNodeCreationStatus = AudioFileNodeCreationStatus(0i32);
822     pub const FileNotFound: AudioFileNodeCreationStatus = AudioFileNodeCreationStatus(1i32);
823     pub const InvalidFileType: AudioFileNodeCreationStatus = AudioFileNodeCreationStatus(2i32);
824     pub const FormatNotSupported: AudioFileNodeCreationStatus = AudioFileNodeCreationStatus(3i32);
825     pub const UnknownFailure: AudioFileNodeCreationStatus = AudioFileNodeCreationStatus(4i32);
826 }
827 impl ::std::convert::From<i32> for AudioFileNodeCreationStatus {
from(value: i32) -> Self828     fn from(value: i32) -> Self {
829         Self(value)
830     }
831 }
832 unsafe impl ::windows::runtime::Abi for AudioFileNodeCreationStatus {
833     type Abi = Self;
834     type DefaultType = Self;
835 }
836 unsafe impl ::windows::runtime::RuntimeType for AudioFileNodeCreationStatus {
837     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Audio.AudioFileNodeCreationStatus;i4)");
838 }
839 #[repr(transparent)]
840 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
841 pub struct AudioFileOutputNode(::windows::runtime::IInspectable);
842 impl AudioFileOutputNode {
843     #[cfg(feature = "Storage")]
File(&self) -> ::windows::runtime::Result<super::super::Storage::IStorageFile>844     pub fn File(&self) -> ::windows::runtime::Result<super::super::Storage::IStorageFile> {
845         let this = self;
846         unsafe {
847             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
848             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Storage::IStorageFile>(result__)
849         }
850     }
851     #[cfg(feature = "Media_MediaProperties")]
FileEncodingProfile(&self) -> ::windows::runtime::Result<super::MediaProperties::MediaEncodingProfile>852     pub fn FileEncodingProfile(&self) -> ::windows::runtime::Result<super::MediaProperties::MediaEncodingProfile> {
853         let this = self;
854         unsafe {
855             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
856             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::MediaProperties::MediaEncodingProfile>(result__)
857         }
858     }
859     #[cfg(all(feature = "Foundation", feature = "Media_Transcoding"))]
FinalizeAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::Transcoding::TranscodeFailureReason>>860     pub fn FinalizeAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::Transcoding::TranscodeFailureReason>> {
861         let this = self;
862         unsafe {
863             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
864             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<super::Transcoding::TranscodeFailureReason>>(result__)
865         }
866     }
867     #[cfg(feature = "Foundation")]
Close(&self) -> ::windows::runtime::Result<()>868     pub fn Close(&self) -> ::windows::runtime::Result<()> {
869         let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?;
870         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() }
871     }
872     #[cfg(all(feature = "Foundation_Collections", feature = "Media_Effects"))]
EffectDefinitions(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>>873     pub fn EffectDefinitions(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>> {
874         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
875         unsafe {
876             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
877             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>>(result__)
878         }
879     }
SetOutgoingGain(&self, value: f64) -> ::windows::runtime::Result<()>880     pub fn SetOutgoingGain(&self, value: f64) -> ::windows::runtime::Result<()> {
881         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
882         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() }
883     }
OutgoingGain(&self) -> ::windows::runtime::Result<f64>884     pub fn OutgoingGain(&self) -> ::windows::runtime::Result<f64> {
885         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
886         unsafe {
887             let mut result__: f64 = ::std::mem::zeroed();
888             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
889         }
890     }
891     #[cfg(feature = "Media_MediaProperties")]
EncodingProperties(&self) -> ::windows::runtime::Result<super::MediaProperties::AudioEncodingProperties>892     pub fn EncodingProperties(&self) -> ::windows::runtime::Result<super::MediaProperties::AudioEncodingProperties> {
893         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
894         unsafe {
895             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
896             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::MediaProperties::AudioEncodingProperties>(result__)
897         }
898     }
ConsumeInput(&self) -> ::windows::runtime::Result<bool>899     pub fn ConsumeInput(&self) -> ::windows::runtime::Result<bool> {
900         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
901         unsafe {
902             let mut result__: bool = ::std::mem::zeroed();
903             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
904         }
905     }
SetConsumeInput(&self, value: bool) -> ::windows::runtime::Result<()>906     pub fn SetConsumeInput(&self, value: bool) -> ::windows::runtime::Result<()> {
907         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
908         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value).ok() }
909     }
Start(&self) -> ::windows::runtime::Result<()>910     pub fn Start(&self) -> ::windows::runtime::Result<()> {
911         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
912         unsafe { (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this)).ok() }
913     }
Stop(&self) -> ::windows::runtime::Result<()>914     pub fn Stop(&self) -> ::windows::runtime::Result<()> {
915         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
916         unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this)).ok() }
917     }
Reset(&self) -> ::windows::runtime::Result<()>918     pub fn Reset(&self) -> ::windows::runtime::Result<()> {
919         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
920         unsafe { (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this)).ok() }
921     }
922     #[cfg(feature = "Media_Effects")]
DisableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()>923     pub fn DisableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()> {
924         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
925         unsafe { (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), definition.into_param().abi()).ok() }
926     }
927     #[cfg(feature = "Media_Effects")]
EnableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()>928     pub fn EnableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()> {
929         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
930         unsafe { (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), definition.into_param().abi()).ok() }
931     }
932 }
933 unsafe impl ::windows::runtime::RuntimeType for AudioFileOutputNode {
934     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.AudioFileOutputNode;{50e01980-5166-4093-80f8-ada00089e9cf})");
935 }
936 unsafe impl ::windows::runtime::Interface for AudioFileOutputNode {
937     type Vtable = IAudioFileOutputNode_abi;
938     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1356863872, 20838, 16531, [128, 248, 173, 160, 0, 137, 233, 207]);
939 }
940 impl ::windows::runtime::RuntimeName for AudioFileOutputNode {
941     const NAME: &'static str = "Windows.Media.Audio.AudioFileOutputNode";
942 }
943 impl ::std::convert::From<AudioFileOutputNode> for ::windows::runtime::IUnknown {
from(value: AudioFileOutputNode) -> Self944     fn from(value: AudioFileOutputNode) -> Self {
945         unsafe { ::std::mem::transmute(value) }
946     }
947 }
948 impl ::std::convert::From<&AudioFileOutputNode> for ::windows::runtime::IUnknown {
from(value: &AudioFileOutputNode) -> Self949     fn from(value: &AudioFileOutputNode) -> Self {
950         ::std::convert::From::from(::std::clone::Clone::clone(value))
951     }
952 }
953 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for AudioFileOutputNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>954     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
955         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
956     }
957 }
958 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &AudioFileOutputNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>959     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
960         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
961     }
962 }
963 impl ::std::convert::From<AudioFileOutputNode> for ::windows::runtime::IInspectable {
from(value: AudioFileOutputNode) -> Self964     fn from(value: AudioFileOutputNode) -> Self {
965         value.0
966     }
967 }
968 impl ::std::convert::From<&AudioFileOutputNode> for ::windows::runtime::IInspectable {
from(value: &AudioFileOutputNode) -> Self969     fn from(value: &AudioFileOutputNode) -> Self {
970         value.0.clone()
971     }
972 }
973 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for AudioFileOutputNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>974     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
975         ::windows::runtime::Param::Owned(self.0)
976     }
977 }
978 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a AudioFileOutputNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>979     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
980         ::windows::runtime::Param::Borrowed(&self.0)
981     }
982 }
983 #[cfg(feature = "Foundation")]
984 impl ::std::convert::TryFrom<AudioFileOutputNode> for super::super::Foundation::IClosable {
985     type Error = ::windows::runtime::Error;
try_from(value: AudioFileOutputNode) -> ::windows::runtime::Result<Self>986     fn try_from(value: AudioFileOutputNode) -> ::windows::runtime::Result<Self> {
987         ::std::convert::TryFrom::try_from(&value)
988     }
989 }
990 #[cfg(feature = "Foundation")]
991 impl ::std::convert::TryFrom<&AudioFileOutputNode> for super::super::Foundation::IClosable {
992     type Error = ::windows::runtime::Error;
try_from(value: &AudioFileOutputNode) -> ::windows::runtime::Result<Self>993     fn try_from(value: &AudioFileOutputNode) -> ::windows::runtime::Result<Self> {
994         ::windows::runtime::Interface::cast(value)
995     }
996 }
997 #[cfg(feature = "Foundation")]
998 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for AudioFileOutputNode {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>999     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
1000         ::windows::runtime::IntoParam::into_param(&self)
1001     }
1002 }
1003 #[cfg(feature = "Foundation")]
1004 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &AudioFileOutputNode {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>1005     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
1006         ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
1007     }
1008 }
1009 impl ::std::convert::TryFrom<AudioFileOutputNode> for IAudioNode {
1010     type Error = ::windows::runtime::Error;
try_from(value: AudioFileOutputNode) -> ::windows::runtime::Result<Self>1011     fn try_from(value: AudioFileOutputNode) -> ::windows::runtime::Result<Self> {
1012         ::std::convert::TryFrom::try_from(&value)
1013     }
1014 }
1015 impl ::std::convert::TryFrom<&AudioFileOutputNode> for IAudioNode {
1016     type Error = ::windows::runtime::Error;
try_from(value: &AudioFileOutputNode) -> ::windows::runtime::Result<Self>1017     fn try_from(value: &AudioFileOutputNode) -> ::windows::runtime::Result<Self> {
1018         ::windows::runtime::Interface::cast(value)
1019     }
1020 }
1021 impl<'a> ::windows::runtime::IntoParam<'a, IAudioNode> for AudioFileOutputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioNode>1022     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioNode> {
1023         ::windows::runtime::IntoParam::into_param(&self)
1024     }
1025 }
1026 impl<'a> ::windows::runtime::IntoParam<'a, IAudioNode> for &AudioFileOutputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioNode>1027     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioNode> {
1028         ::std::convert::TryInto::<IAudioNode>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
1029     }
1030 }
1031 unsafe impl ::std::marker::Send for AudioFileOutputNode {}
1032 unsafe impl ::std::marker::Sync for AudioFileOutputNode {}
1033 #[repr(transparent)]
1034 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1035 pub struct AudioFrameCompletedEventArgs(::windows::runtime::IInspectable);
1036 impl AudioFrameCompletedEventArgs {
Frame(&self) -> ::windows::runtime::Result<super::AudioFrame>1037     pub fn Frame(&self) -> ::windows::runtime::Result<super::AudioFrame> {
1038         let this = self;
1039         unsafe {
1040             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1041             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::AudioFrame>(result__)
1042         }
1043     }
1044 }
1045 unsafe impl ::windows::runtime::RuntimeType for AudioFrameCompletedEventArgs {
1046     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.AudioFrameCompletedEventArgs;{dc7c829e-0208-4504-a5a8-f0f268920a65})");
1047 }
1048 unsafe impl ::windows::runtime::Interface for AudioFrameCompletedEventArgs {
1049     type Vtable = IAudioFrameCompletedEventArgs_abi;
1050     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3699147422, 520, 17668, [165, 168, 240, 242, 104, 146, 10, 101]);
1051 }
1052 impl ::windows::runtime::RuntimeName for AudioFrameCompletedEventArgs {
1053     const NAME: &'static str = "Windows.Media.Audio.AudioFrameCompletedEventArgs";
1054 }
1055 impl ::std::convert::From<AudioFrameCompletedEventArgs> for ::windows::runtime::IUnknown {
from(value: AudioFrameCompletedEventArgs) -> Self1056     fn from(value: AudioFrameCompletedEventArgs) -> Self {
1057         unsafe { ::std::mem::transmute(value) }
1058     }
1059 }
1060 impl ::std::convert::From<&AudioFrameCompletedEventArgs> for ::windows::runtime::IUnknown {
from(value: &AudioFrameCompletedEventArgs) -> Self1061     fn from(value: &AudioFrameCompletedEventArgs) -> Self {
1062         ::std::convert::From::from(::std::clone::Clone::clone(value))
1063     }
1064 }
1065 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for AudioFrameCompletedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1066     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1067         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1068     }
1069 }
1070 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &AudioFrameCompletedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1071     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1072         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1073     }
1074 }
1075 impl ::std::convert::From<AudioFrameCompletedEventArgs> for ::windows::runtime::IInspectable {
from(value: AudioFrameCompletedEventArgs) -> Self1076     fn from(value: AudioFrameCompletedEventArgs) -> Self {
1077         value.0
1078     }
1079 }
1080 impl ::std::convert::From<&AudioFrameCompletedEventArgs> for ::windows::runtime::IInspectable {
from(value: &AudioFrameCompletedEventArgs) -> Self1081     fn from(value: &AudioFrameCompletedEventArgs) -> Self {
1082         value.0.clone()
1083     }
1084 }
1085 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for AudioFrameCompletedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1086     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1087         ::windows::runtime::Param::Owned(self.0)
1088     }
1089 }
1090 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a AudioFrameCompletedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1091     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1092         ::windows::runtime::Param::Borrowed(&self.0)
1093     }
1094 }
1095 unsafe impl ::std::marker::Send for AudioFrameCompletedEventArgs {}
1096 unsafe impl ::std::marker::Sync for AudioFrameCompletedEventArgs {}
1097 #[repr(transparent)]
1098 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1099 pub struct AudioFrameInputNode(::windows::runtime::IInspectable);
1100 impl AudioFrameInputNode {
SetPlaybackSpeedFactor(&self, value: f64) -> ::windows::runtime::Result<()>1101     pub fn SetPlaybackSpeedFactor(&self, value: f64) -> ::windows::runtime::Result<()> {
1102         let this = self;
1103         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), value).ok() }
1104     }
PlaybackSpeedFactor(&self) -> ::windows::runtime::Result<f64>1105     pub fn PlaybackSpeedFactor(&self) -> ::windows::runtime::Result<f64> {
1106         let this = self;
1107         unsafe {
1108             let mut result__: f64 = ::std::mem::zeroed();
1109             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
1110         }
1111     }
AddFrame<'a, Param0: ::windows::runtime::IntoParam<'a, super::AudioFrame>>(&self, frame: Param0) -> ::windows::runtime::Result<()>1112     pub fn AddFrame<'a, Param0: ::windows::runtime::IntoParam<'a, super::AudioFrame>>(&self, frame: Param0) -> ::windows::runtime::Result<()> {
1113         let this = self;
1114         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), frame.into_param().abi()).ok() }
1115     }
DiscardQueuedFrames(&self) -> ::windows::runtime::Result<()>1116     pub fn DiscardQueuedFrames(&self) -> ::windows::runtime::Result<()> {
1117         let this = self;
1118         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this)).ok() }
1119     }
QueuedSampleCount(&self) -> ::windows::runtime::Result<u64>1120     pub fn QueuedSampleCount(&self) -> ::windows::runtime::Result<u64> {
1121         let this = self;
1122         unsafe {
1123             let mut result__: u64 = ::std::mem::zeroed();
1124             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u64>(result__)
1125         }
1126     }
1127     #[cfg(feature = "Foundation")]
AudioFrameCompleted<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<AudioFrameInputNode, AudioFrameCompletedEventArgs>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken>1128     pub fn AudioFrameCompleted<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<AudioFrameInputNode, AudioFrameCompletedEventArgs>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken> {
1129         let this = self;
1130         unsafe {
1131             let mut result__: super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
1132             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::EventRegistrationToken>(result__)
1133         }
1134     }
1135     #[cfg(feature = "Foundation")]
RemoveAudioFrameCompleted<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()>1136     pub fn RemoveAudioFrameCompleted<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()> {
1137         let this = self;
1138         unsafe { (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), token.into_param().abi()).ok() }
1139     }
1140     #[cfg(feature = "Foundation")]
QuantumStarted<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<AudioFrameInputNode, FrameInputNodeQuantumStartedEventArgs>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken>1141     pub fn QuantumStarted<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<AudioFrameInputNode, FrameInputNodeQuantumStartedEventArgs>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken> {
1142         let this = self;
1143         unsafe {
1144             let mut result__: super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
1145             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::EventRegistrationToken>(result__)
1146         }
1147     }
1148     #[cfg(feature = "Foundation")]
RemoveQuantumStarted<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()>1149     pub fn RemoveQuantumStarted<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()> {
1150         let this = self;
1151         unsafe { (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), token.into_param().abi()).ok() }
1152     }
1153     #[cfg(feature = "Foundation")]
Close(&self) -> ::windows::runtime::Result<()>1154     pub fn Close(&self) -> ::windows::runtime::Result<()> {
1155         let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?;
1156         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() }
1157     }
1158     #[cfg(feature = "Foundation_Collections")]
OutgoingConnections(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<AudioGraphConnection>>1159     pub fn OutgoingConnections(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<AudioGraphConnection>> {
1160         let this = &::windows::runtime::Interface::cast::<IAudioInputNode>(self)?;
1161         unsafe {
1162             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1163             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<AudioGraphConnection>>(result__)
1164         }
1165     }
AddOutgoingConnection<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0) -> ::windows::runtime::Result<()>1166     pub fn AddOutgoingConnection<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0) -> ::windows::runtime::Result<()> {
1167         let this = &::windows::runtime::Interface::cast::<IAudioInputNode>(self)?;
1168         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), destination.into_param().abi()).ok() }
1169     }
AddOutgoingConnectionWithGain<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0, gain: f64) -> ::windows::runtime::Result<()>1170     pub fn AddOutgoingConnectionWithGain<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0, gain: f64) -> ::windows::runtime::Result<()> {
1171         let this = &::windows::runtime::Interface::cast::<IAudioInputNode>(self)?;
1172         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), destination.into_param().abi(), gain).ok() }
1173     }
RemoveOutgoingConnection<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0) -> ::windows::runtime::Result<()>1174     pub fn RemoveOutgoingConnection<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0) -> ::windows::runtime::Result<()> {
1175         let this = &::windows::runtime::Interface::cast::<IAudioInputNode>(self)?;
1176         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), destination.into_param().abi()).ok() }
1177     }
1178     #[cfg(all(feature = "Foundation_Collections", feature = "Media_Effects"))]
EffectDefinitions(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>>1179     pub fn EffectDefinitions(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>> {
1180         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
1181         unsafe {
1182             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1183             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>>(result__)
1184         }
1185     }
SetOutgoingGain(&self, value: f64) -> ::windows::runtime::Result<()>1186     pub fn SetOutgoingGain(&self, value: f64) -> ::windows::runtime::Result<()> {
1187         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
1188         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() }
1189     }
OutgoingGain(&self) -> ::windows::runtime::Result<f64>1190     pub fn OutgoingGain(&self) -> ::windows::runtime::Result<f64> {
1191         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
1192         unsafe {
1193             let mut result__: f64 = ::std::mem::zeroed();
1194             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
1195         }
1196     }
1197     #[cfg(feature = "Media_MediaProperties")]
EncodingProperties(&self) -> ::windows::runtime::Result<super::MediaProperties::AudioEncodingProperties>1198     pub fn EncodingProperties(&self) -> ::windows::runtime::Result<super::MediaProperties::AudioEncodingProperties> {
1199         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
1200         unsafe {
1201             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1202             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::MediaProperties::AudioEncodingProperties>(result__)
1203         }
1204     }
ConsumeInput(&self) -> ::windows::runtime::Result<bool>1205     pub fn ConsumeInput(&self) -> ::windows::runtime::Result<bool> {
1206         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
1207         unsafe {
1208             let mut result__: bool = ::std::mem::zeroed();
1209             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
1210         }
1211     }
SetConsumeInput(&self, value: bool) -> ::windows::runtime::Result<()>1212     pub fn SetConsumeInput(&self, value: bool) -> ::windows::runtime::Result<()> {
1213         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
1214         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value).ok() }
1215     }
Start(&self) -> ::windows::runtime::Result<()>1216     pub fn Start(&self) -> ::windows::runtime::Result<()> {
1217         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
1218         unsafe { (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this)).ok() }
1219     }
Stop(&self) -> ::windows::runtime::Result<()>1220     pub fn Stop(&self) -> ::windows::runtime::Result<()> {
1221         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
1222         unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this)).ok() }
1223     }
Reset(&self) -> ::windows::runtime::Result<()>1224     pub fn Reset(&self) -> ::windows::runtime::Result<()> {
1225         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
1226         unsafe { (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this)).ok() }
1227     }
1228     #[cfg(feature = "Media_Effects")]
DisableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()>1229     pub fn DisableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()> {
1230         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
1231         unsafe { (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), definition.into_param().abi()).ok() }
1232     }
1233     #[cfg(feature = "Media_Effects")]
EnableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()>1234     pub fn EnableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()> {
1235         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
1236         unsafe { (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), definition.into_param().abi()).ok() }
1237     }
Emitter(&self) -> ::windows::runtime::Result<AudioNodeEmitter>1238     pub fn Emitter(&self) -> ::windows::runtime::Result<AudioNodeEmitter> {
1239         let this = &::windows::runtime::Interface::cast::<IAudioInputNode2>(self)?;
1240         unsafe {
1241             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1242             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioNodeEmitter>(result__)
1243         }
1244     }
1245 }
1246 unsafe impl ::windows::runtime::RuntimeType for AudioFrameInputNode {
1247     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.AudioFrameInputNode;{01b266c7-fd96-4ff5-a3c5-d27a9bf44237})");
1248 }
1249 unsafe impl ::windows::runtime::Interface for AudioFrameInputNode {
1250     type Vtable = IAudioFrameInputNode_abi;
1251     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(28468935, 64918, 20469, [163, 197, 210, 122, 155, 244, 66, 55]);
1252 }
1253 impl ::windows::runtime::RuntimeName for AudioFrameInputNode {
1254     const NAME: &'static str = "Windows.Media.Audio.AudioFrameInputNode";
1255 }
1256 impl ::std::convert::From<AudioFrameInputNode> for ::windows::runtime::IUnknown {
from(value: AudioFrameInputNode) -> Self1257     fn from(value: AudioFrameInputNode) -> Self {
1258         unsafe { ::std::mem::transmute(value) }
1259     }
1260 }
1261 impl ::std::convert::From<&AudioFrameInputNode> for ::windows::runtime::IUnknown {
from(value: &AudioFrameInputNode) -> Self1262     fn from(value: &AudioFrameInputNode) -> Self {
1263         ::std::convert::From::from(::std::clone::Clone::clone(value))
1264     }
1265 }
1266 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for AudioFrameInputNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1267     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1268         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1269     }
1270 }
1271 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &AudioFrameInputNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1272     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1273         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1274     }
1275 }
1276 impl ::std::convert::From<AudioFrameInputNode> for ::windows::runtime::IInspectable {
from(value: AudioFrameInputNode) -> Self1277     fn from(value: AudioFrameInputNode) -> Self {
1278         value.0
1279     }
1280 }
1281 impl ::std::convert::From<&AudioFrameInputNode> for ::windows::runtime::IInspectable {
from(value: &AudioFrameInputNode) -> Self1282     fn from(value: &AudioFrameInputNode) -> Self {
1283         value.0.clone()
1284     }
1285 }
1286 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for AudioFrameInputNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1287     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1288         ::windows::runtime::Param::Owned(self.0)
1289     }
1290 }
1291 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a AudioFrameInputNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1292     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1293         ::windows::runtime::Param::Borrowed(&self.0)
1294     }
1295 }
1296 #[cfg(feature = "Foundation")]
1297 impl ::std::convert::TryFrom<AudioFrameInputNode> for super::super::Foundation::IClosable {
1298     type Error = ::windows::runtime::Error;
try_from(value: AudioFrameInputNode) -> ::windows::runtime::Result<Self>1299     fn try_from(value: AudioFrameInputNode) -> ::windows::runtime::Result<Self> {
1300         ::std::convert::TryFrom::try_from(&value)
1301     }
1302 }
1303 #[cfg(feature = "Foundation")]
1304 impl ::std::convert::TryFrom<&AudioFrameInputNode> for super::super::Foundation::IClosable {
1305     type Error = ::windows::runtime::Error;
try_from(value: &AudioFrameInputNode) -> ::windows::runtime::Result<Self>1306     fn try_from(value: &AudioFrameInputNode) -> ::windows::runtime::Result<Self> {
1307         ::windows::runtime::Interface::cast(value)
1308     }
1309 }
1310 #[cfg(feature = "Foundation")]
1311 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for AudioFrameInputNode {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>1312     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
1313         ::windows::runtime::IntoParam::into_param(&self)
1314     }
1315 }
1316 #[cfg(feature = "Foundation")]
1317 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &AudioFrameInputNode {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>1318     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
1319         ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
1320     }
1321 }
1322 impl ::std::convert::TryFrom<AudioFrameInputNode> for IAudioInputNode {
1323     type Error = ::windows::runtime::Error;
try_from(value: AudioFrameInputNode) -> ::windows::runtime::Result<Self>1324     fn try_from(value: AudioFrameInputNode) -> ::windows::runtime::Result<Self> {
1325         ::std::convert::TryFrom::try_from(&value)
1326     }
1327 }
1328 impl ::std::convert::TryFrom<&AudioFrameInputNode> for IAudioInputNode {
1329     type Error = ::windows::runtime::Error;
try_from(value: &AudioFrameInputNode) -> ::windows::runtime::Result<Self>1330     fn try_from(value: &AudioFrameInputNode) -> ::windows::runtime::Result<Self> {
1331         ::windows::runtime::Interface::cast(value)
1332     }
1333 }
1334 impl<'a> ::windows::runtime::IntoParam<'a, IAudioInputNode> for AudioFrameInputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode>1335     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode> {
1336         ::windows::runtime::IntoParam::into_param(&self)
1337     }
1338 }
1339 impl<'a> ::windows::runtime::IntoParam<'a, IAudioInputNode> for &AudioFrameInputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode>1340     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode> {
1341         ::std::convert::TryInto::<IAudioInputNode>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
1342     }
1343 }
1344 impl ::std::convert::TryFrom<AudioFrameInputNode> for IAudioNode {
1345     type Error = ::windows::runtime::Error;
try_from(value: AudioFrameInputNode) -> ::windows::runtime::Result<Self>1346     fn try_from(value: AudioFrameInputNode) -> ::windows::runtime::Result<Self> {
1347         ::std::convert::TryFrom::try_from(&value)
1348     }
1349 }
1350 impl ::std::convert::TryFrom<&AudioFrameInputNode> for IAudioNode {
1351     type Error = ::windows::runtime::Error;
try_from(value: &AudioFrameInputNode) -> ::windows::runtime::Result<Self>1352     fn try_from(value: &AudioFrameInputNode) -> ::windows::runtime::Result<Self> {
1353         ::windows::runtime::Interface::cast(value)
1354     }
1355 }
1356 impl<'a> ::windows::runtime::IntoParam<'a, IAudioNode> for AudioFrameInputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioNode>1357     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioNode> {
1358         ::windows::runtime::IntoParam::into_param(&self)
1359     }
1360 }
1361 impl<'a> ::windows::runtime::IntoParam<'a, IAudioNode> for &AudioFrameInputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioNode>1362     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioNode> {
1363         ::std::convert::TryInto::<IAudioNode>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
1364     }
1365 }
1366 impl ::std::convert::TryFrom<AudioFrameInputNode> for IAudioInputNode2 {
1367     type Error = ::windows::runtime::Error;
try_from(value: AudioFrameInputNode) -> ::windows::runtime::Result<Self>1368     fn try_from(value: AudioFrameInputNode) -> ::windows::runtime::Result<Self> {
1369         ::std::convert::TryFrom::try_from(&value)
1370     }
1371 }
1372 impl ::std::convert::TryFrom<&AudioFrameInputNode> for IAudioInputNode2 {
1373     type Error = ::windows::runtime::Error;
try_from(value: &AudioFrameInputNode) -> ::windows::runtime::Result<Self>1374     fn try_from(value: &AudioFrameInputNode) -> ::windows::runtime::Result<Self> {
1375         ::windows::runtime::Interface::cast(value)
1376     }
1377 }
1378 impl<'a> ::windows::runtime::IntoParam<'a, IAudioInputNode2> for AudioFrameInputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode2>1379     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode2> {
1380         ::windows::runtime::IntoParam::into_param(&self)
1381     }
1382 }
1383 impl<'a> ::windows::runtime::IntoParam<'a, IAudioInputNode2> for &AudioFrameInputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode2>1384     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode2> {
1385         ::std::convert::TryInto::<IAudioInputNode2>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
1386     }
1387 }
1388 unsafe impl ::std::marker::Send for AudioFrameInputNode {}
1389 unsafe impl ::std::marker::Sync for AudioFrameInputNode {}
1390 #[repr(transparent)]
1391 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1392 pub struct AudioFrameOutputNode(::windows::runtime::IInspectable);
1393 impl AudioFrameOutputNode {
GetFrame(&self) -> ::windows::runtime::Result<super::AudioFrame>1394     pub fn GetFrame(&self) -> ::windows::runtime::Result<super::AudioFrame> {
1395         let this = self;
1396         unsafe {
1397             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1398             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::AudioFrame>(result__)
1399         }
1400     }
1401     #[cfg(feature = "Foundation")]
Close(&self) -> ::windows::runtime::Result<()>1402     pub fn Close(&self) -> ::windows::runtime::Result<()> {
1403         let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?;
1404         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() }
1405     }
1406     #[cfg(all(feature = "Foundation_Collections", feature = "Media_Effects"))]
EffectDefinitions(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>>1407     pub fn EffectDefinitions(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>> {
1408         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
1409         unsafe {
1410             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1411             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>>(result__)
1412         }
1413     }
SetOutgoingGain(&self, value: f64) -> ::windows::runtime::Result<()>1414     pub fn SetOutgoingGain(&self, value: f64) -> ::windows::runtime::Result<()> {
1415         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
1416         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() }
1417     }
OutgoingGain(&self) -> ::windows::runtime::Result<f64>1418     pub fn OutgoingGain(&self) -> ::windows::runtime::Result<f64> {
1419         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
1420         unsafe {
1421             let mut result__: f64 = ::std::mem::zeroed();
1422             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
1423         }
1424     }
1425     #[cfg(feature = "Media_MediaProperties")]
EncodingProperties(&self) -> ::windows::runtime::Result<super::MediaProperties::AudioEncodingProperties>1426     pub fn EncodingProperties(&self) -> ::windows::runtime::Result<super::MediaProperties::AudioEncodingProperties> {
1427         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
1428         unsafe {
1429             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1430             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::MediaProperties::AudioEncodingProperties>(result__)
1431         }
1432     }
ConsumeInput(&self) -> ::windows::runtime::Result<bool>1433     pub fn ConsumeInput(&self) -> ::windows::runtime::Result<bool> {
1434         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
1435         unsafe {
1436             let mut result__: bool = ::std::mem::zeroed();
1437             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
1438         }
1439     }
SetConsumeInput(&self, value: bool) -> ::windows::runtime::Result<()>1440     pub fn SetConsumeInput(&self, value: bool) -> ::windows::runtime::Result<()> {
1441         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
1442         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value).ok() }
1443     }
Start(&self) -> ::windows::runtime::Result<()>1444     pub fn Start(&self) -> ::windows::runtime::Result<()> {
1445         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
1446         unsafe { (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this)).ok() }
1447     }
Stop(&self) -> ::windows::runtime::Result<()>1448     pub fn Stop(&self) -> ::windows::runtime::Result<()> {
1449         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
1450         unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this)).ok() }
1451     }
Reset(&self) -> ::windows::runtime::Result<()>1452     pub fn Reset(&self) -> ::windows::runtime::Result<()> {
1453         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
1454         unsafe { (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this)).ok() }
1455     }
1456     #[cfg(feature = "Media_Effects")]
DisableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()>1457     pub fn DisableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()> {
1458         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
1459         unsafe { (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), definition.into_param().abi()).ok() }
1460     }
1461     #[cfg(feature = "Media_Effects")]
EnableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()>1462     pub fn EnableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()> {
1463         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
1464         unsafe { (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), definition.into_param().abi()).ok() }
1465     }
1466 }
1467 unsafe impl ::windows::runtime::RuntimeType for AudioFrameOutputNode {
1468     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.AudioFrameOutputNode;{b847371b-3299-45f5-88b3-c9d12a3f1cc8})");
1469 }
1470 unsafe impl ::windows::runtime::Interface for AudioFrameOutputNode {
1471     type Vtable = IAudioFrameOutputNode_abi;
1472     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3091674907, 12953, 17909, [136, 179, 201, 209, 42, 63, 28, 200]);
1473 }
1474 impl ::windows::runtime::RuntimeName for AudioFrameOutputNode {
1475     const NAME: &'static str = "Windows.Media.Audio.AudioFrameOutputNode";
1476 }
1477 impl ::std::convert::From<AudioFrameOutputNode> for ::windows::runtime::IUnknown {
from(value: AudioFrameOutputNode) -> Self1478     fn from(value: AudioFrameOutputNode) -> Self {
1479         unsafe { ::std::mem::transmute(value) }
1480     }
1481 }
1482 impl ::std::convert::From<&AudioFrameOutputNode> for ::windows::runtime::IUnknown {
from(value: &AudioFrameOutputNode) -> Self1483     fn from(value: &AudioFrameOutputNode) -> Self {
1484         ::std::convert::From::from(::std::clone::Clone::clone(value))
1485     }
1486 }
1487 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for AudioFrameOutputNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1488     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1489         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1490     }
1491 }
1492 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &AudioFrameOutputNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1493     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1494         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1495     }
1496 }
1497 impl ::std::convert::From<AudioFrameOutputNode> for ::windows::runtime::IInspectable {
from(value: AudioFrameOutputNode) -> Self1498     fn from(value: AudioFrameOutputNode) -> Self {
1499         value.0
1500     }
1501 }
1502 impl ::std::convert::From<&AudioFrameOutputNode> for ::windows::runtime::IInspectable {
from(value: &AudioFrameOutputNode) -> Self1503     fn from(value: &AudioFrameOutputNode) -> Self {
1504         value.0.clone()
1505     }
1506 }
1507 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for AudioFrameOutputNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1508     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1509         ::windows::runtime::Param::Owned(self.0)
1510     }
1511 }
1512 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a AudioFrameOutputNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1513     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1514         ::windows::runtime::Param::Borrowed(&self.0)
1515     }
1516 }
1517 #[cfg(feature = "Foundation")]
1518 impl ::std::convert::TryFrom<AudioFrameOutputNode> for super::super::Foundation::IClosable {
1519     type Error = ::windows::runtime::Error;
try_from(value: AudioFrameOutputNode) -> ::windows::runtime::Result<Self>1520     fn try_from(value: AudioFrameOutputNode) -> ::windows::runtime::Result<Self> {
1521         ::std::convert::TryFrom::try_from(&value)
1522     }
1523 }
1524 #[cfg(feature = "Foundation")]
1525 impl ::std::convert::TryFrom<&AudioFrameOutputNode> for super::super::Foundation::IClosable {
1526     type Error = ::windows::runtime::Error;
try_from(value: &AudioFrameOutputNode) -> ::windows::runtime::Result<Self>1527     fn try_from(value: &AudioFrameOutputNode) -> ::windows::runtime::Result<Self> {
1528         ::windows::runtime::Interface::cast(value)
1529     }
1530 }
1531 #[cfg(feature = "Foundation")]
1532 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for AudioFrameOutputNode {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>1533     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
1534         ::windows::runtime::IntoParam::into_param(&self)
1535     }
1536 }
1537 #[cfg(feature = "Foundation")]
1538 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &AudioFrameOutputNode {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>1539     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
1540         ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
1541     }
1542 }
1543 impl ::std::convert::TryFrom<AudioFrameOutputNode> for IAudioNode {
1544     type Error = ::windows::runtime::Error;
try_from(value: AudioFrameOutputNode) -> ::windows::runtime::Result<Self>1545     fn try_from(value: AudioFrameOutputNode) -> ::windows::runtime::Result<Self> {
1546         ::std::convert::TryFrom::try_from(&value)
1547     }
1548 }
1549 impl ::std::convert::TryFrom<&AudioFrameOutputNode> for IAudioNode {
1550     type Error = ::windows::runtime::Error;
try_from(value: &AudioFrameOutputNode) -> ::windows::runtime::Result<Self>1551     fn try_from(value: &AudioFrameOutputNode) -> ::windows::runtime::Result<Self> {
1552         ::windows::runtime::Interface::cast(value)
1553     }
1554 }
1555 impl<'a> ::windows::runtime::IntoParam<'a, IAudioNode> for AudioFrameOutputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioNode>1556     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioNode> {
1557         ::windows::runtime::IntoParam::into_param(&self)
1558     }
1559 }
1560 impl<'a> ::windows::runtime::IntoParam<'a, IAudioNode> for &AudioFrameOutputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioNode>1561     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioNode> {
1562         ::std::convert::TryInto::<IAudioNode>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
1563     }
1564 }
1565 unsafe impl ::std::marker::Send for AudioFrameOutputNode {}
1566 unsafe impl ::std::marker::Sync for AudioFrameOutputNode {}
1567 #[repr(transparent)]
1568 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1569 pub struct AudioGraph(::windows::runtime::IInspectable);
1570 impl AudioGraph {
CreateFrameInputNode(&self) -> ::windows::runtime::Result<AudioFrameInputNode>1571     pub fn CreateFrameInputNode(&self) -> ::windows::runtime::Result<AudioFrameInputNode> {
1572         let this = self;
1573         unsafe {
1574             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1575             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioFrameInputNode>(result__)
1576         }
1577     }
1578     #[cfg(feature = "Media_MediaProperties")]
CreateFrameInputNodeWithFormat<'a, Param0: ::windows::runtime::IntoParam<'a, super::MediaProperties::AudioEncodingProperties>>(&self, encodingproperties: Param0) -> ::windows::runtime::Result<AudioFrameInputNode>1579     pub fn CreateFrameInputNodeWithFormat<'a, Param0: ::windows::runtime::IntoParam<'a, super::MediaProperties::AudioEncodingProperties>>(&self, encodingproperties: Param0) -> ::windows::runtime::Result<AudioFrameInputNode> {
1580         let this = self;
1581         unsafe {
1582             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1583             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), encodingproperties.into_param().abi(), &mut result__).from_abi::<AudioFrameInputNode>(result__)
1584         }
1585     }
1586     #[cfg(all(feature = "Foundation", feature = "Media_Capture"))]
CreateDeviceInputNodeAsync(&self, category: super::Capture::MediaCategory) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<CreateAudioDeviceInputNodeResult>>1587     pub fn CreateDeviceInputNodeAsync(&self, category: super::Capture::MediaCategory) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<CreateAudioDeviceInputNodeResult>> {
1588         let this = self;
1589         unsafe {
1590             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1591             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), category, &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<CreateAudioDeviceInputNodeResult>>(result__)
1592         }
1593     }
1594     #[cfg(all(feature = "Foundation", feature = "Media_Capture", feature = "Media_MediaProperties"))]
CreateDeviceInputNodeWithFormatAsync<'a, Param1: ::windows::runtime::IntoParam<'a, super::MediaProperties::AudioEncodingProperties>>(&self, category: super::Capture::MediaCategory, encodingproperties: Param1) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<CreateAudioDeviceInputNodeResult>>1595     pub fn CreateDeviceInputNodeWithFormatAsync<'a, Param1: ::windows::runtime::IntoParam<'a, super::MediaProperties::AudioEncodingProperties>>(&self, category: super::Capture::MediaCategory, encodingproperties: Param1) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<CreateAudioDeviceInputNodeResult>> {
1596         let this = self;
1597         unsafe {
1598             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1599             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), category, encodingproperties.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<CreateAudioDeviceInputNodeResult>>(result__)
1600         }
1601     }
1602     #[cfg(all(feature = "Devices_Enumeration", feature = "Foundation", feature = "Media_Capture", feature = "Media_MediaProperties"))]
CreateDeviceInputNodeWithFormatOnDeviceAsync<'a, Param1: ::windows::runtime::IntoParam<'a, super::MediaProperties::AudioEncodingProperties>, Param2: ::windows::runtime::IntoParam<'a, super::super::Devices::Enumeration::DeviceInformation>>(&self, category: super::Capture::MediaCategory, encodingproperties: Param1, device: Param2) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<CreateAudioDeviceInputNodeResult>>1603     pub fn CreateDeviceInputNodeWithFormatOnDeviceAsync<'a, Param1: ::windows::runtime::IntoParam<'a, super::MediaProperties::AudioEncodingProperties>, Param2: ::windows::runtime::IntoParam<'a, super::super::Devices::Enumeration::DeviceInformation>>(&self, category: super::Capture::MediaCategory, encodingproperties: Param1, device: Param2) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<CreateAudioDeviceInputNodeResult>> {
1604         let this = self;
1605         unsafe {
1606             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1607             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), category, encodingproperties.into_param().abi(), device.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<CreateAudioDeviceInputNodeResult>>(result__)
1608         }
1609     }
CreateFrameOutputNode(&self) -> ::windows::runtime::Result<AudioFrameOutputNode>1610     pub fn CreateFrameOutputNode(&self) -> ::windows::runtime::Result<AudioFrameOutputNode> {
1611         let this = self;
1612         unsafe {
1613             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1614             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioFrameOutputNode>(result__)
1615         }
1616     }
1617     #[cfg(feature = "Media_MediaProperties")]
CreateFrameOutputNodeWithFormat<'a, Param0: ::windows::runtime::IntoParam<'a, super::MediaProperties::AudioEncodingProperties>>(&self, encodingproperties: Param0) -> ::windows::runtime::Result<AudioFrameOutputNode>1618     pub fn CreateFrameOutputNodeWithFormat<'a, Param0: ::windows::runtime::IntoParam<'a, super::MediaProperties::AudioEncodingProperties>>(&self, encodingproperties: Param0) -> ::windows::runtime::Result<AudioFrameOutputNode> {
1619         let this = self;
1620         unsafe {
1621             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1622             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), encodingproperties.into_param().abi(), &mut result__).from_abi::<AudioFrameOutputNode>(result__)
1623         }
1624     }
1625     #[cfg(feature = "Foundation")]
CreateDeviceOutputNodeAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<CreateAudioDeviceOutputNodeResult>>1626     pub fn CreateDeviceOutputNodeAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<CreateAudioDeviceOutputNodeResult>> {
1627         let this = self;
1628         unsafe {
1629             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1630             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<CreateAudioDeviceOutputNodeResult>>(result__)
1631         }
1632     }
1633     #[cfg(all(feature = "Foundation", feature = "Storage"))]
CreateFileInputNodeAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Storage::IStorageFile>>(&self, file: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<CreateAudioFileInputNodeResult>>1634     pub fn CreateFileInputNodeAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Storage::IStorageFile>>(&self, file: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<CreateAudioFileInputNodeResult>> {
1635         let this = self;
1636         unsafe {
1637             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1638             (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), file.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<CreateAudioFileInputNodeResult>>(result__)
1639         }
1640     }
1641     #[cfg(all(feature = "Foundation", feature = "Storage"))]
CreateFileOutputNodeAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Storage::IStorageFile>>(&self, file: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<CreateAudioFileOutputNodeResult>>1642     pub fn CreateFileOutputNodeAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Storage::IStorageFile>>(&self, file: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<CreateAudioFileOutputNodeResult>> {
1643         let this = self;
1644         unsafe {
1645             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1646             (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), file.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<CreateAudioFileOutputNodeResult>>(result__)
1647         }
1648     }
1649     #[cfg(all(feature = "Foundation", feature = "Media_MediaProperties", feature = "Storage"))]
CreateFileOutputNodeWithFileProfileAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Storage::IStorageFile>, Param1: ::windows::runtime::IntoParam<'a, super::MediaProperties::MediaEncodingProfile>>(&self, file: Param0, fileencodingprofile: Param1) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<CreateAudioFileOutputNodeResult>>1650     pub fn CreateFileOutputNodeWithFileProfileAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Storage::IStorageFile>, Param1: ::windows::runtime::IntoParam<'a, super::MediaProperties::MediaEncodingProfile>>(&self, file: Param0, fileencodingprofile: Param1) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<CreateAudioFileOutputNodeResult>> {
1651         let this = self;
1652         unsafe {
1653             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1654             (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), file.into_param().abi(), fileencodingprofile.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<CreateAudioFileOutputNodeResult>>(result__)
1655         }
1656     }
CreateSubmixNode(&self) -> ::windows::runtime::Result<AudioSubmixNode>1657     pub fn CreateSubmixNode(&self) -> ::windows::runtime::Result<AudioSubmixNode> {
1658         let this = self;
1659         unsafe {
1660             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1661             (::windows::runtime::Interface::vtable(this).17)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioSubmixNode>(result__)
1662         }
1663     }
1664     #[cfg(feature = "Media_MediaProperties")]
CreateSubmixNodeWithFormat<'a, Param0: ::windows::runtime::IntoParam<'a, super::MediaProperties::AudioEncodingProperties>>(&self, encodingproperties: Param0) -> ::windows::runtime::Result<AudioSubmixNode>1665     pub fn CreateSubmixNodeWithFormat<'a, Param0: ::windows::runtime::IntoParam<'a, super::MediaProperties::AudioEncodingProperties>>(&self, encodingproperties: Param0) -> ::windows::runtime::Result<AudioSubmixNode> {
1666         let this = self;
1667         unsafe {
1668             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1669             (::windows::runtime::Interface::vtable(this).18)(::std::mem::transmute_copy(this), encodingproperties.into_param().abi(), &mut result__).from_abi::<AudioSubmixNode>(result__)
1670         }
1671     }
Start(&self) -> ::windows::runtime::Result<()>1672     pub fn Start(&self) -> ::windows::runtime::Result<()> {
1673         let this = self;
1674         unsafe { (::windows::runtime::Interface::vtable(this).19)(::std::mem::transmute_copy(this)).ok() }
1675     }
Stop(&self) -> ::windows::runtime::Result<()>1676     pub fn Stop(&self) -> ::windows::runtime::Result<()> {
1677         let this = self;
1678         unsafe { (::windows::runtime::Interface::vtable(this).20)(::std::mem::transmute_copy(this)).ok() }
1679     }
ResetAllNodes(&self) -> ::windows::runtime::Result<()>1680     pub fn ResetAllNodes(&self) -> ::windows::runtime::Result<()> {
1681         let this = self;
1682         unsafe { (::windows::runtime::Interface::vtable(this).21)(::std::mem::transmute_copy(this)).ok() }
1683     }
1684     #[cfg(feature = "Foundation")]
QuantumStarted<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<AudioGraph, ::windows::runtime::IInspectable>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken>1685     pub fn QuantumStarted<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<AudioGraph, ::windows::runtime::IInspectable>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken> {
1686         let this = self;
1687         unsafe {
1688             let mut result__: super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
1689             (::windows::runtime::Interface::vtable(this).22)(::std::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::EventRegistrationToken>(result__)
1690         }
1691     }
1692     #[cfg(feature = "Foundation")]
RemoveQuantumStarted<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()>1693     pub fn RemoveQuantumStarted<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()> {
1694         let this = self;
1695         unsafe { (::windows::runtime::Interface::vtable(this).23)(::std::mem::transmute_copy(this), token.into_param().abi()).ok() }
1696     }
1697     #[cfg(feature = "Foundation")]
QuantumProcessed<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<AudioGraph, ::windows::runtime::IInspectable>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken>1698     pub fn QuantumProcessed<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<AudioGraph, ::windows::runtime::IInspectable>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken> {
1699         let this = self;
1700         unsafe {
1701             let mut result__: super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
1702             (::windows::runtime::Interface::vtable(this).24)(::std::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::EventRegistrationToken>(result__)
1703         }
1704     }
1705     #[cfg(feature = "Foundation")]
RemoveQuantumProcessed<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()>1706     pub fn RemoveQuantumProcessed<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()> {
1707         let this = self;
1708         unsafe { (::windows::runtime::Interface::vtable(this).25)(::std::mem::transmute_copy(this), token.into_param().abi()).ok() }
1709     }
1710     #[cfg(feature = "Foundation")]
UnrecoverableErrorOccurred<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<AudioGraph, AudioGraphUnrecoverableErrorOccurredEventArgs>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken>1711     pub fn UnrecoverableErrorOccurred<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<AudioGraph, AudioGraphUnrecoverableErrorOccurredEventArgs>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken> {
1712         let this = self;
1713         unsafe {
1714             let mut result__: super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
1715             (::windows::runtime::Interface::vtable(this).26)(::std::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::EventRegistrationToken>(result__)
1716         }
1717     }
1718     #[cfg(feature = "Foundation")]
RemoveUnrecoverableErrorOccurred<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()>1719     pub fn RemoveUnrecoverableErrorOccurred<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()> {
1720         let this = self;
1721         unsafe { (::windows::runtime::Interface::vtable(this).27)(::std::mem::transmute_copy(this), token.into_param().abi()).ok() }
1722     }
CompletedQuantumCount(&self) -> ::windows::runtime::Result<u64>1723     pub fn CompletedQuantumCount(&self) -> ::windows::runtime::Result<u64> {
1724         let this = self;
1725         unsafe {
1726             let mut result__: u64 = ::std::mem::zeroed();
1727             (::windows::runtime::Interface::vtable(this).28)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u64>(result__)
1728         }
1729     }
1730     #[cfg(feature = "Media_MediaProperties")]
EncodingProperties(&self) -> ::windows::runtime::Result<super::MediaProperties::AudioEncodingProperties>1731     pub fn EncodingProperties(&self) -> ::windows::runtime::Result<super::MediaProperties::AudioEncodingProperties> {
1732         let this = self;
1733         unsafe {
1734             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1735             (::windows::runtime::Interface::vtable(this).29)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::MediaProperties::AudioEncodingProperties>(result__)
1736         }
1737     }
LatencyInSamples(&self) -> ::windows::runtime::Result<i32>1738     pub fn LatencyInSamples(&self) -> ::windows::runtime::Result<i32> {
1739         let this = self;
1740         unsafe {
1741             let mut result__: i32 = ::std::mem::zeroed();
1742             (::windows::runtime::Interface::vtable(this).30)(::std::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
1743         }
1744     }
1745     #[cfg(feature = "Devices_Enumeration")]
PrimaryRenderDevice(&self) -> ::windows::runtime::Result<super::super::Devices::Enumeration::DeviceInformation>1746     pub fn PrimaryRenderDevice(&self) -> ::windows::runtime::Result<super::super::Devices::Enumeration::DeviceInformation> {
1747         let this = self;
1748         unsafe {
1749             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1750             (::windows::runtime::Interface::vtable(this).31)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Devices::Enumeration::DeviceInformation>(result__)
1751         }
1752     }
RenderDeviceAudioProcessing(&self) -> ::windows::runtime::Result<super::AudioProcessing>1753     pub fn RenderDeviceAudioProcessing(&self) -> ::windows::runtime::Result<super::AudioProcessing> {
1754         let this = self;
1755         unsafe {
1756             let mut result__: super::AudioProcessing = ::std::mem::zeroed();
1757             (::windows::runtime::Interface::vtable(this).32)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::AudioProcessing>(result__)
1758         }
1759     }
SamplesPerQuantum(&self) -> ::windows::runtime::Result<i32>1760     pub fn SamplesPerQuantum(&self) -> ::windows::runtime::Result<i32> {
1761         let this = self;
1762         unsafe {
1763             let mut result__: i32 = ::std::mem::zeroed();
1764             (::windows::runtime::Interface::vtable(this).33)(::std::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
1765         }
1766     }
1767     #[cfg(feature = "Foundation")]
Close(&self) -> ::windows::runtime::Result<()>1768     pub fn Close(&self) -> ::windows::runtime::Result<()> {
1769         let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?;
1770         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() }
1771     }
1772     #[cfg(feature = "Foundation")]
CreateAsync<'a, Param0: ::windows::runtime::IntoParam<'a, AudioGraphSettings>>(settings: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<CreateAudioGraphResult>>1773     pub fn CreateAsync<'a, Param0: ::windows::runtime::IntoParam<'a, AudioGraphSettings>>(settings: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<CreateAudioGraphResult>> {
1774         Self::IAudioGraphStatics(|this| unsafe {
1775             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1776             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), settings.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<CreateAudioGraphResult>>(result__)
1777         })
1778     }
1779     #[cfg(feature = "Media_MediaProperties")]
CreateFrameInputNodeWithFormatAndEmitter<'a, Param0: ::windows::runtime::IntoParam<'a, super::MediaProperties::AudioEncodingProperties>, Param1: ::windows::runtime::IntoParam<'a, AudioNodeEmitter>>(&self, encodingproperties: Param0, emitter: Param1) -> ::windows::runtime::Result<AudioFrameInputNode>1780     pub fn CreateFrameInputNodeWithFormatAndEmitter<'a, Param0: ::windows::runtime::IntoParam<'a, super::MediaProperties::AudioEncodingProperties>, Param1: ::windows::runtime::IntoParam<'a, AudioNodeEmitter>>(&self, encodingproperties: Param0, emitter: Param1) -> ::windows::runtime::Result<AudioFrameInputNode> {
1781         let this = &::windows::runtime::Interface::cast::<IAudioGraph2>(self)?;
1782         unsafe {
1783             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1784             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), encodingproperties.into_param().abi(), emitter.into_param().abi(), &mut result__).from_abi::<AudioFrameInputNode>(result__)
1785         }
1786     }
1787     #[cfg(all(feature = "Devices_Enumeration", feature = "Foundation", feature = "Media_Capture", feature = "Media_MediaProperties"))]
CreateDeviceInputNodeWithFormatAndEmitterOnDeviceAsync<'a, Param1: ::windows::runtime::IntoParam<'a, super::MediaProperties::AudioEncodingProperties>, Param2: ::windows::runtime::IntoParam<'a, super::super::Devices::Enumeration::DeviceInformation>, Param3: ::windows::runtime::IntoParam<'a, AudioNodeEmitter>>( &self, category: super::Capture::MediaCategory, encodingproperties: Param1, device: Param2, emitter: Param3, ) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<CreateAudioDeviceInputNodeResult>>1788     pub fn CreateDeviceInputNodeWithFormatAndEmitterOnDeviceAsync<'a, Param1: ::windows::runtime::IntoParam<'a, super::MediaProperties::AudioEncodingProperties>, Param2: ::windows::runtime::IntoParam<'a, super::super::Devices::Enumeration::DeviceInformation>, Param3: ::windows::runtime::IntoParam<'a, AudioNodeEmitter>>(
1789         &self,
1790         category: super::Capture::MediaCategory,
1791         encodingproperties: Param1,
1792         device: Param2,
1793         emitter: Param3,
1794     ) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<CreateAudioDeviceInputNodeResult>> {
1795         let this = &::windows::runtime::Interface::cast::<IAudioGraph2>(self)?;
1796         unsafe {
1797             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1798             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), category, encodingproperties.into_param().abi(), device.into_param().abi(), emitter.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<CreateAudioDeviceInputNodeResult>>(result__)
1799         }
1800     }
1801     #[cfg(all(feature = "Foundation", feature = "Storage"))]
CreateFileInputNodeWithEmitterAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Storage::IStorageFile>, Param1: ::windows::runtime::IntoParam<'a, AudioNodeEmitter>>(&self, file: Param0, emitter: Param1) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<CreateAudioFileInputNodeResult>>1802     pub fn CreateFileInputNodeWithEmitterAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Storage::IStorageFile>, Param1: ::windows::runtime::IntoParam<'a, AudioNodeEmitter>>(&self, file: Param0, emitter: Param1) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<CreateAudioFileInputNodeResult>> {
1803         let this = &::windows::runtime::Interface::cast::<IAudioGraph2>(self)?;
1804         unsafe {
1805             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1806             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), file.into_param().abi(), emitter.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<CreateAudioFileInputNodeResult>>(result__)
1807         }
1808     }
1809     #[cfg(feature = "Media_MediaProperties")]
CreateSubmixNodeWithFormatAndEmitter<'a, Param0: ::windows::runtime::IntoParam<'a, super::MediaProperties::AudioEncodingProperties>, Param1: ::windows::runtime::IntoParam<'a, AudioNodeEmitter>>(&self, encodingproperties: Param0, emitter: Param1) -> ::windows::runtime::Result<AudioSubmixNode>1810     pub fn CreateSubmixNodeWithFormatAndEmitter<'a, Param0: ::windows::runtime::IntoParam<'a, super::MediaProperties::AudioEncodingProperties>, Param1: ::windows::runtime::IntoParam<'a, AudioNodeEmitter>>(&self, encodingproperties: Param0, emitter: Param1) -> ::windows::runtime::Result<AudioSubmixNode> {
1811         let this = &::windows::runtime::Interface::cast::<IAudioGraph2>(self)?;
1812         unsafe {
1813             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1814             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), encodingproperties.into_param().abi(), emitter.into_param().abi(), &mut result__).from_abi::<AudioSubmixNode>(result__)
1815         }
1816     }
1817     #[cfg(feature = "Foundation")]
CreateBatchUpdater(&self) -> ::windows::runtime::Result<AudioGraphBatchUpdater>1818     pub fn CreateBatchUpdater(&self) -> ::windows::runtime::Result<AudioGraphBatchUpdater> {
1819         let this = &::windows::runtime::Interface::cast::<IAudioGraph2>(self)?;
1820         unsafe {
1821             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1822             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioGraphBatchUpdater>(result__)
1823         }
1824     }
1825     #[cfg(all(feature = "Foundation", feature = "Media_Core"))]
CreateMediaSourceAudioInputNodeAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::Core::MediaSource>>(&self, mediasource: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<CreateMediaSourceAudioInputNodeResult>>1826     pub fn CreateMediaSourceAudioInputNodeAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::Core::MediaSource>>(&self, mediasource: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<CreateMediaSourceAudioInputNodeResult>> {
1827         let this = &::windows::runtime::Interface::cast::<IAudioGraph3>(self)?;
1828         unsafe {
1829             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1830             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), mediasource.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<CreateMediaSourceAudioInputNodeResult>>(result__)
1831         }
1832     }
1833     #[cfg(all(feature = "Foundation", feature = "Media_Core"))]
CreateMediaSourceAudioInputNodeWithEmitterAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::Core::MediaSource>, Param1: ::windows::runtime::IntoParam<'a, AudioNodeEmitter>>(&self, mediasource: Param0, emitter: Param1) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<CreateMediaSourceAudioInputNodeResult>>1834     pub fn CreateMediaSourceAudioInputNodeWithEmitterAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::Core::MediaSource>, Param1: ::windows::runtime::IntoParam<'a, AudioNodeEmitter>>(&self, mediasource: Param0, emitter: Param1) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<CreateMediaSourceAudioInputNodeResult>> {
1835         let this = &::windows::runtime::Interface::cast::<IAudioGraph3>(self)?;
1836         unsafe {
1837             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1838             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), mediasource.into_param().abi(), emitter.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<CreateMediaSourceAudioInputNodeResult>>(result__)
1839         }
1840     }
IAudioGraphStatics<R, F: FnOnce(&IAudioGraphStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>1841     pub fn IAudioGraphStatics<R, F: FnOnce(&IAudioGraphStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
1842         static mut SHARED: ::windows::runtime::FactoryCache<AudioGraph, IAudioGraphStatics> = ::windows::runtime::FactoryCache::new();
1843         unsafe { SHARED.call(callback) }
1844     }
1845 }
1846 unsafe impl ::windows::runtime::RuntimeType for AudioGraph {
1847     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.AudioGraph;{1ad46eed-e48c-4e14-9660-2c4f83e9cdd8})");
1848 }
1849 unsafe impl ::windows::runtime::Interface for AudioGraph {
1850     type Vtable = IAudioGraph_abi;
1851     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(450129645, 58508, 19988, [150, 96, 44, 79, 131, 233, 205, 216]);
1852 }
1853 impl ::windows::runtime::RuntimeName for AudioGraph {
1854     const NAME: &'static str = "Windows.Media.Audio.AudioGraph";
1855 }
1856 impl ::std::convert::From<AudioGraph> for ::windows::runtime::IUnknown {
from(value: AudioGraph) -> Self1857     fn from(value: AudioGraph) -> Self {
1858         unsafe { ::std::mem::transmute(value) }
1859     }
1860 }
1861 impl ::std::convert::From<&AudioGraph> for ::windows::runtime::IUnknown {
from(value: &AudioGraph) -> Self1862     fn from(value: &AudioGraph) -> Self {
1863         ::std::convert::From::from(::std::clone::Clone::clone(value))
1864     }
1865 }
1866 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for AudioGraph {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1867     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1868         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1869     }
1870 }
1871 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &AudioGraph {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1872     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1873         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1874     }
1875 }
1876 impl ::std::convert::From<AudioGraph> for ::windows::runtime::IInspectable {
from(value: AudioGraph) -> Self1877     fn from(value: AudioGraph) -> Self {
1878         value.0
1879     }
1880 }
1881 impl ::std::convert::From<&AudioGraph> for ::windows::runtime::IInspectable {
from(value: &AudioGraph) -> Self1882     fn from(value: &AudioGraph) -> Self {
1883         value.0.clone()
1884     }
1885 }
1886 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for AudioGraph {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1887     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1888         ::windows::runtime::Param::Owned(self.0)
1889     }
1890 }
1891 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a AudioGraph {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1892     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1893         ::windows::runtime::Param::Borrowed(&self.0)
1894     }
1895 }
1896 #[cfg(feature = "Foundation")]
1897 impl ::std::convert::TryFrom<AudioGraph> for super::super::Foundation::IClosable {
1898     type Error = ::windows::runtime::Error;
try_from(value: AudioGraph) -> ::windows::runtime::Result<Self>1899     fn try_from(value: AudioGraph) -> ::windows::runtime::Result<Self> {
1900         ::std::convert::TryFrom::try_from(&value)
1901     }
1902 }
1903 #[cfg(feature = "Foundation")]
1904 impl ::std::convert::TryFrom<&AudioGraph> for super::super::Foundation::IClosable {
1905     type Error = ::windows::runtime::Error;
try_from(value: &AudioGraph) -> ::windows::runtime::Result<Self>1906     fn try_from(value: &AudioGraph) -> ::windows::runtime::Result<Self> {
1907         ::windows::runtime::Interface::cast(value)
1908     }
1909 }
1910 #[cfg(feature = "Foundation")]
1911 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for AudioGraph {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>1912     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
1913         ::windows::runtime::IntoParam::into_param(&self)
1914     }
1915 }
1916 #[cfg(feature = "Foundation")]
1917 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &AudioGraph {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>1918     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
1919         ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
1920     }
1921 }
1922 unsafe impl ::std::marker::Send for AudioGraph {}
1923 unsafe impl ::std::marker::Sync for AudioGraph {}
1924 #[cfg(feature = "Foundation")]
1925 #[repr(transparent)]
1926 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1927 pub struct AudioGraphBatchUpdater(::windows::runtime::IInspectable);
1928 #[cfg(feature = "Foundation")]
1929 impl AudioGraphBatchUpdater {
1930     #[cfg(feature = "Foundation")]
Close(&self) -> ::windows::runtime::Result<()>1931     pub fn Close(&self) -> ::windows::runtime::Result<()> {
1932         let this = self;
1933         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() }
1934     }
1935 }
1936 #[cfg(feature = "Foundation")]
1937 unsafe impl ::windows::runtime::RuntimeType for AudioGraphBatchUpdater {
1938     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.AudioGraphBatchUpdater;{30d5a829-7fa4-4026-83bb-d75bae4ea99e})");
1939 }
1940 #[cfg(feature = "Foundation")]
1941 unsafe impl ::windows::runtime::Interface for AudioGraphBatchUpdater {
1942     type Vtable = super::super::Foundation::IClosable_abi;
1943     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(819308585, 32676, 16422, [131, 187, 215, 91, 174, 78, 169, 158]);
1944 }
1945 #[cfg(feature = "Foundation")]
1946 impl ::windows::runtime::RuntimeName for AudioGraphBatchUpdater {
1947     const NAME: &'static str = "Windows.Media.Audio.AudioGraphBatchUpdater";
1948 }
1949 #[cfg(feature = "Foundation")]
1950 impl ::std::convert::From<AudioGraphBatchUpdater> for ::windows::runtime::IUnknown {
from(value: AudioGraphBatchUpdater) -> Self1951     fn from(value: AudioGraphBatchUpdater) -> Self {
1952         unsafe { ::std::mem::transmute(value) }
1953     }
1954 }
1955 #[cfg(feature = "Foundation")]
1956 impl ::std::convert::From<&AudioGraphBatchUpdater> for ::windows::runtime::IUnknown {
from(value: &AudioGraphBatchUpdater) -> Self1957     fn from(value: &AudioGraphBatchUpdater) -> Self {
1958         ::std::convert::From::from(::std::clone::Clone::clone(value))
1959     }
1960 }
1961 #[cfg(feature = "Foundation")]
1962 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for AudioGraphBatchUpdater {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1963     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1964         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1965     }
1966 }
1967 #[cfg(feature = "Foundation")]
1968 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &AudioGraphBatchUpdater {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1969     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1970         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1971     }
1972 }
1973 #[cfg(feature = "Foundation")]
1974 impl ::std::convert::From<AudioGraphBatchUpdater> for ::windows::runtime::IInspectable {
from(value: AudioGraphBatchUpdater) -> Self1975     fn from(value: AudioGraphBatchUpdater) -> Self {
1976         value.0
1977     }
1978 }
1979 #[cfg(feature = "Foundation")]
1980 impl ::std::convert::From<&AudioGraphBatchUpdater> for ::windows::runtime::IInspectable {
from(value: &AudioGraphBatchUpdater) -> Self1981     fn from(value: &AudioGraphBatchUpdater) -> Self {
1982         value.0.clone()
1983     }
1984 }
1985 #[cfg(feature = "Foundation")]
1986 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for AudioGraphBatchUpdater {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1987     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1988         ::windows::runtime::Param::Owned(self.0)
1989     }
1990 }
1991 #[cfg(feature = "Foundation")]
1992 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a AudioGraphBatchUpdater {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1993     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1994         ::windows::runtime::Param::Borrowed(&self.0)
1995     }
1996 }
1997 #[cfg(feature = "Foundation")]
1998 impl ::std::convert::From<AudioGraphBatchUpdater> for super::super::Foundation::IClosable {
from(value: AudioGraphBatchUpdater) -> Self1999     fn from(value: AudioGraphBatchUpdater) -> Self {
2000         unsafe { ::std::mem::transmute(value) }
2001     }
2002 }
2003 #[cfg(feature = "Foundation")]
2004 impl ::std::convert::From<&AudioGraphBatchUpdater> for super::super::Foundation::IClosable {
from(value: &AudioGraphBatchUpdater) -> Self2005     fn from(value: &AudioGraphBatchUpdater) -> Self {
2006         ::std::convert::From::from(::std::clone::Clone::clone(value))
2007     }
2008 }
2009 #[cfg(feature = "Foundation")]
2010 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for AudioGraphBatchUpdater {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>2011     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
2012         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::Foundation::IClosable>::into(self))
2013     }
2014 }
2015 #[cfg(feature = "Foundation")]
2016 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &AudioGraphBatchUpdater {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>2017     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
2018         ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::Foundation::IClosable>::into(::std::clone::Clone::clone(self)))
2019     }
2020 }
2021 #[cfg(feature = "Foundation")]
2022 unsafe impl ::std::marker::Send for AudioGraphBatchUpdater {}
2023 #[cfg(feature = "Foundation")]
2024 unsafe impl ::std::marker::Sync for AudioGraphBatchUpdater {}
2025 #[repr(transparent)]
2026 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2027 pub struct AudioGraphConnection(::windows::runtime::IInspectable);
2028 impl AudioGraphConnection {
Destination(&self) -> ::windows::runtime::Result<IAudioNode>2029     pub fn Destination(&self) -> ::windows::runtime::Result<IAudioNode> {
2030         let this = self;
2031         unsafe {
2032             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2033             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<IAudioNode>(result__)
2034         }
2035     }
SetGain(&self, value: f64) -> ::windows::runtime::Result<()>2036     pub fn SetGain(&self, value: f64) -> ::windows::runtime::Result<()> {
2037         let this = self;
2038         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() }
2039     }
Gain(&self) -> ::windows::runtime::Result<f64>2040     pub fn Gain(&self) -> ::windows::runtime::Result<f64> {
2041         let this = self;
2042         unsafe {
2043             let mut result__: f64 = ::std::mem::zeroed();
2044             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
2045         }
2046     }
2047 }
2048 unsafe impl ::windows::runtime::RuntimeType for AudioGraphConnection {
2049     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.AudioGraphConnection;{763070ed-d04e-4fac-b233-600b42edd469})");
2050 }
2051 unsafe impl ::windows::runtime::Interface for AudioGraphConnection {
2052     type Vtable = IAudioGraphConnection_abi;
2053     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1982886125, 53326, 20396, [178, 51, 96, 11, 66, 237, 212, 105]);
2054 }
2055 impl ::windows::runtime::RuntimeName for AudioGraphConnection {
2056     const NAME: &'static str = "Windows.Media.Audio.AudioGraphConnection";
2057 }
2058 impl ::std::convert::From<AudioGraphConnection> for ::windows::runtime::IUnknown {
from(value: AudioGraphConnection) -> Self2059     fn from(value: AudioGraphConnection) -> Self {
2060         unsafe { ::std::mem::transmute(value) }
2061     }
2062 }
2063 impl ::std::convert::From<&AudioGraphConnection> for ::windows::runtime::IUnknown {
from(value: &AudioGraphConnection) -> Self2064     fn from(value: &AudioGraphConnection) -> Self {
2065         ::std::convert::From::from(::std::clone::Clone::clone(value))
2066     }
2067 }
2068 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for AudioGraphConnection {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2069     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2070         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2071     }
2072 }
2073 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &AudioGraphConnection {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2074     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2075         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2076     }
2077 }
2078 impl ::std::convert::From<AudioGraphConnection> for ::windows::runtime::IInspectable {
from(value: AudioGraphConnection) -> Self2079     fn from(value: AudioGraphConnection) -> Self {
2080         value.0
2081     }
2082 }
2083 impl ::std::convert::From<&AudioGraphConnection> for ::windows::runtime::IInspectable {
from(value: &AudioGraphConnection) -> Self2084     fn from(value: &AudioGraphConnection) -> Self {
2085         value.0.clone()
2086     }
2087 }
2088 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for AudioGraphConnection {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2089     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2090         ::windows::runtime::Param::Owned(self.0)
2091     }
2092 }
2093 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a AudioGraphConnection {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2094     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2095         ::windows::runtime::Param::Borrowed(&self.0)
2096     }
2097 }
2098 unsafe impl ::std::marker::Send for AudioGraphConnection {}
2099 unsafe impl ::std::marker::Sync for AudioGraphConnection {}
2100 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2101 #[repr(transparent)]
2102 pub struct AudioGraphCreationStatus(pub i32);
2103 impl AudioGraphCreationStatus {
2104     pub const Success: AudioGraphCreationStatus = AudioGraphCreationStatus(0i32);
2105     pub const DeviceNotAvailable: AudioGraphCreationStatus = AudioGraphCreationStatus(1i32);
2106     pub const FormatNotSupported: AudioGraphCreationStatus = AudioGraphCreationStatus(2i32);
2107     pub const UnknownFailure: AudioGraphCreationStatus = AudioGraphCreationStatus(3i32);
2108 }
2109 impl ::std::convert::From<i32> for AudioGraphCreationStatus {
from(value: i32) -> Self2110     fn from(value: i32) -> Self {
2111         Self(value)
2112     }
2113 }
2114 unsafe impl ::windows::runtime::Abi for AudioGraphCreationStatus {
2115     type Abi = Self;
2116     type DefaultType = Self;
2117 }
2118 unsafe impl ::windows::runtime::RuntimeType for AudioGraphCreationStatus {
2119     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Audio.AudioGraphCreationStatus;i4)");
2120 }
2121 #[repr(transparent)]
2122 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2123 pub struct AudioGraphSettings(::windows::runtime::IInspectable);
2124 impl AudioGraphSettings {
2125     #[cfg(feature = "Media_MediaProperties")]
EncodingProperties(&self) -> ::windows::runtime::Result<super::MediaProperties::AudioEncodingProperties>2126     pub fn EncodingProperties(&self) -> ::windows::runtime::Result<super::MediaProperties::AudioEncodingProperties> {
2127         let this = self;
2128         unsafe {
2129             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2130             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::MediaProperties::AudioEncodingProperties>(result__)
2131         }
2132     }
2133     #[cfg(feature = "Media_MediaProperties")]
SetEncodingProperties<'a, Param0: ::windows::runtime::IntoParam<'a, super::MediaProperties::AudioEncodingProperties>>(&self, value: Param0) -> ::windows::runtime::Result<()>2134     pub fn SetEncodingProperties<'a, Param0: ::windows::runtime::IntoParam<'a, super::MediaProperties::AudioEncodingProperties>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
2135         let this = self;
2136         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
2137     }
2138     #[cfg(feature = "Devices_Enumeration")]
PrimaryRenderDevice(&self) -> ::windows::runtime::Result<super::super::Devices::Enumeration::DeviceInformation>2139     pub fn PrimaryRenderDevice(&self) -> ::windows::runtime::Result<super::super::Devices::Enumeration::DeviceInformation> {
2140         let this = self;
2141         unsafe {
2142             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2143             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Devices::Enumeration::DeviceInformation>(result__)
2144         }
2145     }
2146     #[cfg(feature = "Devices_Enumeration")]
SetPrimaryRenderDevice<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Devices::Enumeration::DeviceInformation>>(&self, value: Param0) -> ::windows::runtime::Result<()>2147     pub fn SetPrimaryRenderDevice<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Devices::Enumeration::DeviceInformation>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
2148         let this = self;
2149         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
2150     }
QuantumSizeSelectionMode(&self) -> ::windows::runtime::Result<QuantumSizeSelectionMode>2151     pub fn QuantumSizeSelectionMode(&self) -> ::windows::runtime::Result<QuantumSizeSelectionMode> {
2152         let this = self;
2153         unsafe {
2154             let mut result__: QuantumSizeSelectionMode = ::std::mem::zeroed();
2155             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<QuantumSizeSelectionMode>(result__)
2156         }
2157     }
SetQuantumSizeSelectionMode(&self, value: QuantumSizeSelectionMode) -> ::windows::runtime::Result<()>2158     pub fn SetQuantumSizeSelectionMode(&self, value: QuantumSizeSelectionMode) -> ::windows::runtime::Result<()> {
2159         let this = self;
2160         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value).ok() }
2161     }
DesiredSamplesPerQuantum(&self) -> ::windows::runtime::Result<i32>2162     pub fn DesiredSamplesPerQuantum(&self) -> ::windows::runtime::Result<i32> {
2163         let this = self;
2164         unsafe {
2165             let mut result__: i32 = ::std::mem::zeroed();
2166             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
2167         }
2168     }
SetDesiredSamplesPerQuantum(&self, value: i32) -> ::windows::runtime::Result<()>2169     pub fn SetDesiredSamplesPerQuantum(&self, value: i32) -> ::windows::runtime::Result<()> {
2170         let this = self;
2171         unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), value).ok() }
2172     }
2173     #[cfg(feature = "Media_Render")]
AudioRenderCategory(&self) -> ::windows::runtime::Result<super::Render::AudioRenderCategory>2174     pub fn AudioRenderCategory(&self) -> ::windows::runtime::Result<super::Render::AudioRenderCategory> {
2175         let this = self;
2176         unsafe {
2177             let mut result__: super::Render::AudioRenderCategory = ::std::mem::zeroed();
2178             (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::Render::AudioRenderCategory>(result__)
2179         }
2180     }
2181     #[cfg(feature = "Media_Render")]
SetAudioRenderCategory(&self, value: super::Render::AudioRenderCategory) -> ::windows::runtime::Result<()>2182     pub fn SetAudioRenderCategory(&self, value: super::Render::AudioRenderCategory) -> ::windows::runtime::Result<()> {
2183         let this = self;
2184         unsafe { (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), value).ok() }
2185     }
DesiredRenderDeviceAudioProcessing(&self) -> ::windows::runtime::Result<super::AudioProcessing>2186     pub fn DesiredRenderDeviceAudioProcessing(&self) -> ::windows::runtime::Result<super::AudioProcessing> {
2187         let this = self;
2188         unsafe {
2189             let mut result__: super::AudioProcessing = ::std::mem::zeroed();
2190             (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::AudioProcessing>(result__)
2191         }
2192     }
SetDesiredRenderDeviceAudioProcessing(&self, value: super::AudioProcessing) -> ::windows::runtime::Result<()>2193     pub fn SetDesiredRenderDeviceAudioProcessing(&self, value: super::AudioProcessing) -> ::windows::runtime::Result<()> {
2194         let this = self;
2195         unsafe { (::windows::runtime::Interface::vtable(this).17)(::std::mem::transmute_copy(this), value).ok() }
2196     }
2197     #[cfg(feature = "Media_Render")]
Create(audiorendercategory: super::Render::AudioRenderCategory) -> ::windows::runtime::Result<AudioGraphSettings>2198     pub fn Create(audiorendercategory: super::Render::AudioRenderCategory) -> ::windows::runtime::Result<AudioGraphSettings> {
2199         Self::IAudioGraphSettingsFactory(|this| unsafe {
2200             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2201             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), audiorendercategory, &mut result__).from_abi::<AudioGraphSettings>(result__)
2202         })
2203     }
SetMaxPlaybackSpeedFactor(&self, value: f64) -> ::windows::runtime::Result<()>2204     pub fn SetMaxPlaybackSpeedFactor(&self, value: f64) -> ::windows::runtime::Result<()> {
2205         let this = &::windows::runtime::Interface::cast::<IAudioGraphSettings2>(self)?;
2206         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), value).ok() }
2207     }
MaxPlaybackSpeedFactor(&self) -> ::windows::runtime::Result<f64>2208     pub fn MaxPlaybackSpeedFactor(&self) -> ::windows::runtime::Result<f64> {
2209         let this = &::windows::runtime::Interface::cast::<IAudioGraphSettings2>(self)?;
2210         unsafe {
2211             let mut result__: f64 = ::std::mem::zeroed();
2212             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
2213         }
2214     }
IAudioGraphSettingsFactory<R, F: FnOnce(&IAudioGraphSettingsFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>2215     pub fn IAudioGraphSettingsFactory<R, F: FnOnce(&IAudioGraphSettingsFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
2216         static mut SHARED: ::windows::runtime::FactoryCache<AudioGraphSettings, IAudioGraphSettingsFactory> = ::windows::runtime::FactoryCache::new();
2217         unsafe { SHARED.call(callback) }
2218     }
2219 }
2220 unsafe impl ::windows::runtime::RuntimeType for AudioGraphSettings {
2221     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.AudioGraphSettings;{1d59647f-e6fe-4628-84f8-9d8bdba25785})");
2222 }
2223 unsafe impl ::windows::runtime::Interface for AudioGraphSettings {
2224     type Vtable = IAudioGraphSettings_abi;
2225     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(492397695, 59134, 17960, [132, 248, 157, 139, 219, 162, 87, 133]);
2226 }
2227 impl ::windows::runtime::RuntimeName for AudioGraphSettings {
2228     const NAME: &'static str = "Windows.Media.Audio.AudioGraphSettings";
2229 }
2230 impl ::std::convert::From<AudioGraphSettings> for ::windows::runtime::IUnknown {
from(value: AudioGraphSettings) -> Self2231     fn from(value: AudioGraphSettings) -> Self {
2232         unsafe { ::std::mem::transmute(value) }
2233     }
2234 }
2235 impl ::std::convert::From<&AudioGraphSettings> for ::windows::runtime::IUnknown {
from(value: &AudioGraphSettings) -> Self2236     fn from(value: &AudioGraphSettings) -> Self {
2237         ::std::convert::From::from(::std::clone::Clone::clone(value))
2238     }
2239 }
2240 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for AudioGraphSettings {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2241     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2242         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2243     }
2244 }
2245 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &AudioGraphSettings {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2246     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2247         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2248     }
2249 }
2250 impl ::std::convert::From<AudioGraphSettings> for ::windows::runtime::IInspectable {
from(value: AudioGraphSettings) -> Self2251     fn from(value: AudioGraphSettings) -> Self {
2252         value.0
2253     }
2254 }
2255 impl ::std::convert::From<&AudioGraphSettings> for ::windows::runtime::IInspectable {
from(value: &AudioGraphSettings) -> Self2256     fn from(value: &AudioGraphSettings) -> Self {
2257         value.0.clone()
2258     }
2259 }
2260 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for AudioGraphSettings {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2261     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2262         ::windows::runtime::Param::Owned(self.0)
2263     }
2264 }
2265 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a AudioGraphSettings {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2266     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2267         ::windows::runtime::Param::Borrowed(&self.0)
2268     }
2269 }
2270 unsafe impl ::std::marker::Send for AudioGraphSettings {}
2271 unsafe impl ::std::marker::Sync for AudioGraphSettings {}
2272 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2273 #[repr(transparent)]
2274 pub struct AudioGraphUnrecoverableError(pub i32);
2275 impl AudioGraphUnrecoverableError {
2276     pub const None: AudioGraphUnrecoverableError = AudioGraphUnrecoverableError(0i32);
2277     pub const AudioDeviceLost: AudioGraphUnrecoverableError = AudioGraphUnrecoverableError(1i32);
2278     pub const AudioSessionDisconnected: AudioGraphUnrecoverableError = AudioGraphUnrecoverableError(2i32);
2279     pub const UnknownFailure: AudioGraphUnrecoverableError = AudioGraphUnrecoverableError(3i32);
2280 }
2281 impl ::std::convert::From<i32> for AudioGraphUnrecoverableError {
from(value: i32) -> Self2282     fn from(value: i32) -> Self {
2283         Self(value)
2284     }
2285 }
2286 unsafe impl ::windows::runtime::Abi for AudioGraphUnrecoverableError {
2287     type Abi = Self;
2288     type DefaultType = Self;
2289 }
2290 unsafe impl ::windows::runtime::RuntimeType for AudioGraphUnrecoverableError {
2291     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Audio.AudioGraphUnrecoverableError;i4)");
2292 }
2293 #[repr(transparent)]
2294 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2295 pub struct AudioGraphUnrecoverableErrorOccurredEventArgs(::windows::runtime::IInspectable);
2296 impl AudioGraphUnrecoverableErrorOccurredEventArgs {
Error(&self) -> ::windows::runtime::Result<AudioGraphUnrecoverableError>2297     pub fn Error(&self) -> ::windows::runtime::Result<AudioGraphUnrecoverableError> {
2298         let this = self;
2299         unsafe {
2300             let mut result__: AudioGraphUnrecoverableError = ::std::mem::zeroed();
2301             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioGraphUnrecoverableError>(result__)
2302         }
2303     }
2304 }
2305 unsafe impl ::windows::runtime::RuntimeType for AudioGraphUnrecoverableErrorOccurredEventArgs {
2306     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.AudioGraphUnrecoverableErrorOccurredEventArgs;{c3d9cbe0-3ff6-4fb3-b262-50d435c55423})");
2307 }
2308 unsafe impl ::windows::runtime::Interface for AudioGraphUnrecoverableErrorOccurredEventArgs {
2309     type Vtable = IAudioGraphUnrecoverableErrorOccurredEventArgs_abi;
2310     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3285830624, 16374, 20403, [178, 98, 80, 212, 53, 197, 84, 35]);
2311 }
2312 impl ::windows::runtime::RuntimeName for AudioGraphUnrecoverableErrorOccurredEventArgs {
2313     const NAME: &'static str = "Windows.Media.Audio.AudioGraphUnrecoverableErrorOccurredEventArgs";
2314 }
2315 impl ::std::convert::From<AudioGraphUnrecoverableErrorOccurredEventArgs> for ::windows::runtime::IUnknown {
from(value: AudioGraphUnrecoverableErrorOccurredEventArgs) -> Self2316     fn from(value: AudioGraphUnrecoverableErrorOccurredEventArgs) -> Self {
2317         unsafe { ::std::mem::transmute(value) }
2318     }
2319 }
2320 impl ::std::convert::From<&AudioGraphUnrecoverableErrorOccurredEventArgs> for ::windows::runtime::IUnknown {
from(value: &AudioGraphUnrecoverableErrorOccurredEventArgs) -> Self2321     fn from(value: &AudioGraphUnrecoverableErrorOccurredEventArgs) -> Self {
2322         ::std::convert::From::from(::std::clone::Clone::clone(value))
2323     }
2324 }
2325 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for AudioGraphUnrecoverableErrorOccurredEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2326     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2327         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2328     }
2329 }
2330 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &AudioGraphUnrecoverableErrorOccurredEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2331     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2332         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2333     }
2334 }
2335 impl ::std::convert::From<AudioGraphUnrecoverableErrorOccurredEventArgs> for ::windows::runtime::IInspectable {
from(value: AudioGraphUnrecoverableErrorOccurredEventArgs) -> Self2336     fn from(value: AudioGraphUnrecoverableErrorOccurredEventArgs) -> Self {
2337         value.0
2338     }
2339 }
2340 impl ::std::convert::From<&AudioGraphUnrecoverableErrorOccurredEventArgs> for ::windows::runtime::IInspectable {
from(value: &AudioGraphUnrecoverableErrorOccurredEventArgs) -> Self2341     fn from(value: &AudioGraphUnrecoverableErrorOccurredEventArgs) -> Self {
2342         value.0.clone()
2343     }
2344 }
2345 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for AudioGraphUnrecoverableErrorOccurredEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2346     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2347         ::windows::runtime::Param::Owned(self.0)
2348     }
2349 }
2350 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a AudioGraphUnrecoverableErrorOccurredEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2351     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2352         ::windows::runtime::Param::Borrowed(&self.0)
2353     }
2354 }
2355 unsafe impl ::std::marker::Send for AudioGraphUnrecoverableErrorOccurredEventArgs {}
2356 unsafe impl ::std::marker::Sync for AudioGraphUnrecoverableErrorOccurredEventArgs {}
2357 #[repr(transparent)]
2358 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2359 pub struct AudioNodeEmitter(::windows::runtime::IInspectable);
2360 impl AudioNodeEmitter {
new() -> ::windows::runtime::Result<Self>2361     pub fn new() -> ::windows::runtime::Result<Self> {
2362         Self::IActivationFactory(|f| f.activate_instance::<Self>())
2363     }
IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>2364     fn IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
2365         static mut SHARED: ::windows::runtime::FactoryCache<AudioNodeEmitter, ::windows::runtime::IActivationFactory> = ::windows::runtime::FactoryCache::new();
2366         unsafe { SHARED.call(callback) }
2367     }
2368     #[cfg(feature = "Foundation_Numerics")]
Position(&self) -> ::windows::runtime::Result<super::super::Foundation::Numerics::Vector3>2369     pub fn Position(&self) -> ::windows::runtime::Result<super::super::Foundation::Numerics::Vector3> {
2370         let this = self;
2371         unsafe {
2372             let mut result__: super::super::Foundation::Numerics::Vector3 = ::std::mem::zeroed();
2373             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Numerics::Vector3>(result__)
2374         }
2375     }
2376     #[cfg(feature = "Foundation_Numerics")]
SetPosition<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Numerics::Vector3>>(&self, value: Param0) -> ::windows::runtime::Result<()>2377     pub fn SetPosition<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Numerics::Vector3>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
2378         let this = self;
2379         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
2380     }
2381     #[cfg(feature = "Foundation_Numerics")]
Direction(&self) -> ::windows::runtime::Result<super::super::Foundation::Numerics::Vector3>2382     pub fn Direction(&self) -> ::windows::runtime::Result<super::super::Foundation::Numerics::Vector3> {
2383         let this = self;
2384         unsafe {
2385             let mut result__: super::super::Foundation::Numerics::Vector3 = ::std::mem::zeroed();
2386             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Numerics::Vector3>(result__)
2387         }
2388     }
2389     #[cfg(feature = "Foundation_Numerics")]
SetDirection<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Numerics::Vector3>>(&self, value: Param0) -> ::windows::runtime::Result<()>2390     pub fn SetDirection<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Numerics::Vector3>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
2391         let this = self;
2392         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
2393     }
Shape(&self) -> ::windows::runtime::Result<AudioNodeEmitterShape>2394     pub fn Shape(&self) -> ::windows::runtime::Result<AudioNodeEmitterShape> {
2395         let this = self;
2396         unsafe {
2397             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2398             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioNodeEmitterShape>(result__)
2399         }
2400     }
DecayModel(&self) -> ::windows::runtime::Result<AudioNodeEmitterDecayModel>2401     pub fn DecayModel(&self) -> ::windows::runtime::Result<AudioNodeEmitterDecayModel> {
2402         let this = self;
2403         unsafe {
2404             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2405             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioNodeEmitterDecayModel>(result__)
2406         }
2407     }
Gain(&self) -> ::windows::runtime::Result<f64>2408     pub fn Gain(&self) -> ::windows::runtime::Result<f64> {
2409         let this = self;
2410         unsafe {
2411             let mut result__: f64 = ::std::mem::zeroed();
2412             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
2413         }
2414     }
SetGain(&self, value: f64) -> ::windows::runtime::Result<()>2415     pub fn SetGain(&self, value: f64) -> ::windows::runtime::Result<()> {
2416         let this = self;
2417         unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), value).ok() }
2418     }
DistanceScale(&self) -> ::windows::runtime::Result<f64>2419     pub fn DistanceScale(&self) -> ::windows::runtime::Result<f64> {
2420         let this = self;
2421         unsafe {
2422             let mut result__: f64 = ::std::mem::zeroed();
2423             (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
2424         }
2425     }
SetDistanceScale(&self, value: f64) -> ::windows::runtime::Result<()>2426     pub fn SetDistanceScale(&self, value: f64) -> ::windows::runtime::Result<()> {
2427         let this = self;
2428         unsafe { (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), value).ok() }
2429     }
DopplerScale(&self) -> ::windows::runtime::Result<f64>2430     pub fn DopplerScale(&self) -> ::windows::runtime::Result<f64> {
2431         let this = self;
2432         unsafe {
2433             let mut result__: f64 = ::std::mem::zeroed();
2434             (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
2435         }
2436     }
SetDopplerScale(&self, value: f64) -> ::windows::runtime::Result<()>2437     pub fn SetDopplerScale(&self, value: f64) -> ::windows::runtime::Result<()> {
2438         let this = self;
2439         unsafe { (::windows::runtime::Interface::vtable(this).17)(::std::mem::transmute_copy(this), value).ok() }
2440     }
2441     #[cfg(feature = "Foundation_Numerics")]
DopplerVelocity(&self) -> ::windows::runtime::Result<super::super::Foundation::Numerics::Vector3>2442     pub fn DopplerVelocity(&self) -> ::windows::runtime::Result<super::super::Foundation::Numerics::Vector3> {
2443         let this = self;
2444         unsafe {
2445             let mut result__: super::super::Foundation::Numerics::Vector3 = ::std::mem::zeroed();
2446             (::windows::runtime::Interface::vtable(this).18)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Numerics::Vector3>(result__)
2447         }
2448     }
2449     #[cfg(feature = "Foundation_Numerics")]
SetDopplerVelocity<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Numerics::Vector3>>(&self, value: Param0) -> ::windows::runtime::Result<()>2450     pub fn SetDopplerVelocity<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Numerics::Vector3>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
2451         let this = self;
2452         unsafe { (::windows::runtime::Interface::vtable(this).19)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
2453     }
IsDopplerDisabled(&self) -> ::windows::runtime::Result<bool>2454     pub fn IsDopplerDisabled(&self) -> ::windows::runtime::Result<bool> {
2455         let this = self;
2456         unsafe {
2457             let mut result__: bool = ::std::mem::zeroed();
2458             (::windows::runtime::Interface::vtable(this).20)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
2459         }
2460     }
SpatialAudioModel(&self) -> ::windows::runtime::Result<SpatialAudioModel>2461     pub fn SpatialAudioModel(&self) -> ::windows::runtime::Result<SpatialAudioModel> {
2462         let this = &::windows::runtime::Interface::cast::<IAudioNodeEmitter2>(self)?;
2463         unsafe {
2464             let mut result__: SpatialAudioModel = ::std::mem::zeroed();
2465             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<SpatialAudioModel>(result__)
2466         }
2467     }
SetSpatialAudioModel(&self, value: SpatialAudioModel) -> ::windows::runtime::Result<()>2468     pub fn SetSpatialAudioModel(&self, value: SpatialAudioModel) -> ::windows::runtime::Result<()> {
2469         let this = &::windows::runtime::Interface::cast::<IAudioNodeEmitter2>(self)?;
2470         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() }
2471     }
CreateAudioNodeEmitter<'a, Param0: ::windows::runtime::IntoParam<'a, AudioNodeEmitterShape>, Param1: ::windows::runtime::IntoParam<'a, AudioNodeEmitterDecayModel>>(shape: Param0, decaymodel: Param1, settings: AudioNodeEmitterSettings) -> ::windows::runtime::Result<AudioNodeEmitter>2472     pub fn CreateAudioNodeEmitter<'a, Param0: ::windows::runtime::IntoParam<'a, AudioNodeEmitterShape>, Param1: ::windows::runtime::IntoParam<'a, AudioNodeEmitterDecayModel>>(shape: Param0, decaymodel: Param1, settings: AudioNodeEmitterSettings) -> ::windows::runtime::Result<AudioNodeEmitter> {
2473         Self::IAudioNodeEmitterFactory(|this| unsafe {
2474             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2475             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), shape.into_param().abi(), decaymodel.into_param().abi(), settings, &mut result__).from_abi::<AudioNodeEmitter>(result__)
2476         })
2477     }
IAudioNodeEmitterFactory<R, F: FnOnce(&IAudioNodeEmitterFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>2478     pub fn IAudioNodeEmitterFactory<R, F: FnOnce(&IAudioNodeEmitterFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
2479         static mut SHARED: ::windows::runtime::FactoryCache<AudioNodeEmitter, IAudioNodeEmitterFactory> = ::windows::runtime::FactoryCache::new();
2480         unsafe { SHARED.call(callback) }
2481     }
2482 }
2483 unsafe impl ::windows::runtime::RuntimeType for AudioNodeEmitter {
2484     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.AudioNodeEmitter;{3676971d-880a-47b8-adf7-1323a9d965be})");
2485 }
2486 unsafe impl ::windows::runtime::Interface for AudioNodeEmitter {
2487     type Vtable = IAudioNodeEmitter_abi;
2488     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(913741597, 34826, 18360, [173, 247, 19, 35, 169, 217, 101, 190]);
2489 }
2490 impl ::windows::runtime::RuntimeName for AudioNodeEmitter {
2491     const NAME: &'static str = "Windows.Media.Audio.AudioNodeEmitter";
2492 }
2493 impl ::std::convert::From<AudioNodeEmitter> for ::windows::runtime::IUnknown {
from(value: AudioNodeEmitter) -> Self2494     fn from(value: AudioNodeEmitter) -> Self {
2495         unsafe { ::std::mem::transmute(value) }
2496     }
2497 }
2498 impl ::std::convert::From<&AudioNodeEmitter> for ::windows::runtime::IUnknown {
from(value: &AudioNodeEmitter) -> Self2499     fn from(value: &AudioNodeEmitter) -> Self {
2500         ::std::convert::From::from(::std::clone::Clone::clone(value))
2501     }
2502 }
2503 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for AudioNodeEmitter {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2504     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2505         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2506     }
2507 }
2508 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &AudioNodeEmitter {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2509     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2510         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2511     }
2512 }
2513 impl ::std::convert::From<AudioNodeEmitter> for ::windows::runtime::IInspectable {
from(value: AudioNodeEmitter) -> Self2514     fn from(value: AudioNodeEmitter) -> Self {
2515         value.0
2516     }
2517 }
2518 impl ::std::convert::From<&AudioNodeEmitter> for ::windows::runtime::IInspectable {
from(value: &AudioNodeEmitter) -> Self2519     fn from(value: &AudioNodeEmitter) -> Self {
2520         value.0.clone()
2521     }
2522 }
2523 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for AudioNodeEmitter {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2524     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2525         ::windows::runtime::Param::Owned(self.0)
2526     }
2527 }
2528 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a AudioNodeEmitter {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2529     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2530         ::windows::runtime::Param::Borrowed(&self.0)
2531     }
2532 }
2533 unsafe impl ::std::marker::Send for AudioNodeEmitter {}
2534 unsafe impl ::std::marker::Sync for AudioNodeEmitter {}
2535 #[repr(transparent)]
2536 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2537 pub struct AudioNodeEmitterConeProperties(::windows::runtime::IInspectable);
2538 impl AudioNodeEmitterConeProperties {
InnerAngle(&self) -> ::windows::runtime::Result<f64>2539     pub fn InnerAngle(&self) -> ::windows::runtime::Result<f64> {
2540         let this = self;
2541         unsafe {
2542             let mut result__: f64 = ::std::mem::zeroed();
2543             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
2544         }
2545     }
OuterAngle(&self) -> ::windows::runtime::Result<f64>2546     pub fn OuterAngle(&self) -> ::windows::runtime::Result<f64> {
2547         let this = self;
2548         unsafe {
2549             let mut result__: f64 = ::std::mem::zeroed();
2550             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
2551         }
2552     }
OuterAngleGain(&self) -> ::windows::runtime::Result<f64>2553     pub fn OuterAngleGain(&self) -> ::windows::runtime::Result<f64> {
2554         let this = self;
2555         unsafe {
2556             let mut result__: f64 = ::std::mem::zeroed();
2557             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
2558         }
2559     }
2560 }
2561 unsafe impl ::windows::runtime::RuntimeType for AudioNodeEmitterConeProperties {
2562     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.AudioNodeEmitterConeProperties;{e99b2cee-02ca-4375-9326-0c6ae4bcdfb5})");
2563 }
2564 unsafe impl ::windows::runtime::Interface for AudioNodeEmitterConeProperties {
2565     type Vtable = IAudioNodeEmitterConeProperties_abi;
2566     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3919260910, 714, 17269, [147, 38, 12, 106, 228, 188, 223, 181]);
2567 }
2568 impl ::windows::runtime::RuntimeName for AudioNodeEmitterConeProperties {
2569     const NAME: &'static str = "Windows.Media.Audio.AudioNodeEmitterConeProperties";
2570 }
2571 impl ::std::convert::From<AudioNodeEmitterConeProperties> for ::windows::runtime::IUnknown {
from(value: AudioNodeEmitterConeProperties) -> Self2572     fn from(value: AudioNodeEmitterConeProperties) -> Self {
2573         unsafe { ::std::mem::transmute(value) }
2574     }
2575 }
2576 impl ::std::convert::From<&AudioNodeEmitterConeProperties> for ::windows::runtime::IUnknown {
from(value: &AudioNodeEmitterConeProperties) -> Self2577     fn from(value: &AudioNodeEmitterConeProperties) -> Self {
2578         ::std::convert::From::from(::std::clone::Clone::clone(value))
2579     }
2580 }
2581 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for AudioNodeEmitterConeProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2582     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2583         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2584     }
2585 }
2586 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &AudioNodeEmitterConeProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2587     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2588         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2589     }
2590 }
2591 impl ::std::convert::From<AudioNodeEmitterConeProperties> for ::windows::runtime::IInspectable {
from(value: AudioNodeEmitterConeProperties) -> Self2592     fn from(value: AudioNodeEmitterConeProperties) -> Self {
2593         value.0
2594     }
2595 }
2596 impl ::std::convert::From<&AudioNodeEmitterConeProperties> for ::windows::runtime::IInspectable {
from(value: &AudioNodeEmitterConeProperties) -> Self2597     fn from(value: &AudioNodeEmitterConeProperties) -> Self {
2598         value.0.clone()
2599     }
2600 }
2601 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for AudioNodeEmitterConeProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2602     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2603         ::windows::runtime::Param::Owned(self.0)
2604     }
2605 }
2606 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a AudioNodeEmitterConeProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2607     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2608         ::windows::runtime::Param::Borrowed(&self.0)
2609     }
2610 }
2611 unsafe impl ::std::marker::Send for AudioNodeEmitterConeProperties {}
2612 unsafe impl ::std::marker::Sync for AudioNodeEmitterConeProperties {}
2613 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2614 #[repr(transparent)]
2615 pub struct AudioNodeEmitterDecayKind(pub i32);
2616 impl AudioNodeEmitterDecayKind {
2617     pub const Natural: AudioNodeEmitterDecayKind = AudioNodeEmitterDecayKind(0i32);
2618     pub const Custom: AudioNodeEmitterDecayKind = AudioNodeEmitterDecayKind(1i32);
2619 }
2620 impl ::std::convert::From<i32> for AudioNodeEmitterDecayKind {
from(value: i32) -> Self2621     fn from(value: i32) -> Self {
2622         Self(value)
2623     }
2624 }
2625 unsafe impl ::windows::runtime::Abi for AudioNodeEmitterDecayKind {
2626     type Abi = Self;
2627     type DefaultType = Self;
2628 }
2629 unsafe impl ::windows::runtime::RuntimeType for AudioNodeEmitterDecayKind {
2630     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Audio.AudioNodeEmitterDecayKind;i4)");
2631 }
2632 #[repr(transparent)]
2633 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2634 pub struct AudioNodeEmitterDecayModel(::windows::runtime::IInspectable);
2635 impl AudioNodeEmitterDecayModel {
Kind(&self) -> ::windows::runtime::Result<AudioNodeEmitterDecayKind>2636     pub fn Kind(&self) -> ::windows::runtime::Result<AudioNodeEmitterDecayKind> {
2637         let this = self;
2638         unsafe {
2639             let mut result__: AudioNodeEmitterDecayKind = ::std::mem::zeroed();
2640             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioNodeEmitterDecayKind>(result__)
2641         }
2642     }
MinGain(&self) -> ::windows::runtime::Result<f64>2643     pub fn MinGain(&self) -> ::windows::runtime::Result<f64> {
2644         let this = self;
2645         unsafe {
2646             let mut result__: f64 = ::std::mem::zeroed();
2647             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
2648         }
2649     }
MaxGain(&self) -> ::windows::runtime::Result<f64>2650     pub fn MaxGain(&self) -> ::windows::runtime::Result<f64> {
2651         let this = self;
2652         unsafe {
2653             let mut result__: f64 = ::std::mem::zeroed();
2654             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
2655         }
2656     }
NaturalProperties(&self) -> ::windows::runtime::Result<AudioNodeEmitterNaturalDecayModelProperties>2657     pub fn NaturalProperties(&self) -> ::windows::runtime::Result<AudioNodeEmitterNaturalDecayModelProperties> {
2658         let this = self;
2659         unsafe {
2660             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2661             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioNodeEmitterNaturalDecayModelProperties>(result__)
2662         }
2663     }
CreateNatural(mingain: f64, maxgain: f64, unitygaindistance: f64, cutoffdistance: f64) -> ::windows::runtime::Result<AudioNodeEmitterDecayModel>2664     pub fn CreateNatural(mingain: f64, maxgain: f64, unitygaindistance: f64, cutoffdistance: f64) -> ::windows::runtime::Result<AudioNodeEmitterDecayModel> {
2665         Self::IAudioNodeEmitterDecayModelStatics(|this| unsafe {
2666             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2667             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), mingain, maxgain, unitygaindistance, cutoffdistance, &mut result__).from_abi::<AudioNodeEmitterDecayModel>(result__)
2668         })
2669     }
CreateCustom(mingain: f64, maxgain: f64) -> ::windows::runtime::Result<AudioNodeEmitterDecayModel>2670     pub fn CreateCustom(mingain: f64, maxgain: f64) -> ::windows::runtime::Result<AudioNodeEmitterDecayModel> {
2671         Self::IAudioNodeEmitterDecayModelStatics(|this| unsafe {
2672             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2673             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), mingain, maxgain, &mut result__).from_abi::<AudioNodeEmitterDecayModel>(result__)
2674         })
2675     }
IAudioNodeEmitterDecayModelStatics<R, F: FnOnce(&IAudioNodeEmitterDecayModelStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>2676     pub fn IAudioNodeEmitterDecayModelStatics<R, F: FnOnce(&IAudioNodeEmitterDecayModelStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
2677         static mut SHARED: ::windows::runtime::FactoryCache<AudioNodeEmitterDecayModel, IAudioNodeEmitterDecayModelStatics> = ::windows::runtime::FactoryCache::new();
2678         unsafe { SHARED.call(callback) }
2679     }
2680 }
2681 unsafe impl ::windows::runtime::RuntimeType for AudioNodeEmitterDecayModel {
2682     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.AudioNodeEmitterDecayModel;{1d1d5af7-0d53-4fa9-bd84-d5816a86f3ff})");
2683 }
2684 unsafe impl ::windows::runtime::Interface for AudioNodeEmitterDecayModel {
2685     type Vtable = IAudioNodeEmitterDecayModel_abi;
2686     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(488463095, 3411, 20393, [189, 132, 213, 129, 106, 134, 243, 255]);
2687 }
2688 impl ::windows::runtime::RuntimeName for AudioNodeEmitterDecayModel {
2689     const NAME: &'static str = "Windows.Media.Audio.AudioNodeEmitterDecayModel";
2690 }
2691 impl ::std::convert::From<AudioNodeEmitterDecayModel> for ::windows::runtime::IUnknown {
from(value: AudioNodeEmitterDecayModel) -> Self2692     fn from(value: AudioNodeEmitterDecayModel) -> Self {
2693         unsafe { ::std::mem::transmute(value) }
2694     }
2695 }
2696 impl ::std::convert::From<&AudioNodeEmitterDecayModel> for ::windows::runtime::IUnknown {
from(value: &AudioNodeEmitterDecayModel) -> Self2697     fn from(value: &AudioNodeEmitterDecayModel) -> Self {
2698         ::std::convert::From::from(::std::clone::Clone::clone(value))
2699     }
2700 }
2701 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for AudioNodeEmitterDecayModel {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2702     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2703         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2704     }
2705 }
2706 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &AudioNodeEmitterDecayModel {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2707     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2708         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2709     }
2710 }
2711 impl ::std::convert::From<AudioNodeEmitterDecayModel> for ::windows::runtime::IInspectable {
from(value: AudioNodeEmitterDecayModel) -> Self2712     fn from(value: AudioNodeEmitterDecayModel) -> Self {
2713         value.0
2714     }
2715 }
2716 impl ::std::convert::From<&AudioNodeEmitterDecayModel> for ::windows::runtime::IInspectable {
from(value: &AudioNodeEmitterDecayModel) -> Self2717     fn from(value: &AudioNodeEmitterDecayModel) -> Self {
2718         value.0.clone()
2719     }
2720 }
2721 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for AudioNodeEmitterDecayModel {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2722     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2723         ::windows::runtime::Param::Owned(self.0)
2724     }
2725 }
2726 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a AudioNodeEmitterDecayModel {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2727     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2728         ::windows::runtime::Param::Borrowed(&self.0)
2729     }
2730 }
2731 unsafe impl ::std::marker::Send for AudioNodeEmitterDecayModel {}
2732 unsafe impl ::std::marker::Sync for AudioNodeEmitterDecayModel {}
2733 #[repr(transparent)]
2734 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2735 pub struct AudioNodeEmitterNaturalDecayModelProperties(::windows::runtime::IInspectable);
2736 impl AudioNodeEmitterNaturalDecayModelProperties {
UnityGainDistance(&self) -> ::windows::runtime::Result<f64>2737     pub fn UnityGainDistance(&self) -> ::windows::runtime::Result<f64> {
2738         let this = self;
2739         unsafe {
2740             let mut result__: f64 = ::std::mem::zeroed();
2741             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
2742         }
2743     }
CutoffDistance(&self) -> ::windows::runtime::Result<f64>2744     pub fn CutoffDistance(&self) -> ::windows::runtime::Result<f64> {
2745         let this = self;
2746         unsafe {
2747             let mut result__: f64 = ::std::mem::zeroed();
2748             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
2749         }
2750     }
2751 }
2752 unsafe impl ::windows::runtime::RuntimeType for AudioNodeEmitterNaturalDecayModelProperties {
2753     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.AudioNodeEmitterNaturalDecayModelProperties;{48934bcf-cf2c-4efc-9331-75bd22df1f0c})");
2754 }
2755 unsafe impl ::windows::runtime::Interface for AudioNodeEmitterNaturalDecayModelProperties {
2756     type Vtable = IAudioNodeEmitterNaturalDecayModelProperties_abi;
2757     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1217612751, 53036, 20220, [147, 49, 117, 189, 34, 223, 31, 12]);
2758 }
2759 impl ::windows::runtime::RuntimeName for AudioNodeEmitterNaturalDecayModelProperties {
2760     const NAME: &'static str = "Windows.Media.Audio.AudioNodeEmitterNaturalDecayModelProperties";
2761 }
2762 impl ::std::convert::From<AudioNodeEmitterNaturalDecayModelProperties> for ::windows::runtime::IUnknown {
from(value: AudioNodeEmitterNaturalDecayModelProperties) -> Self2763     fn from(value: AudioNodeEmitterNaturalDecayModelProperties) -> Self {
2764         unsafe { ::std::mem::transmute(value) }
2765     }
2766 }
2767 impl ::std::convert::From<&AudioNodeEmitterNaturalDecayModelProperties> for ::windows::runtime::IUnknown {
from(value: &AudioNodeEmitterNaturalDecayModelProperties) -> Self2768     fn from(value: &AudioNodeEmitterNaturalDecayModelProperties) -> Self {
2769         ::std::convert::From::from(::std::clone::Clone::clone(value))
2770     }
2771 }
2772 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for AudioNodeEmitterNaturalDecayModelProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2773     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2774         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2775     }
2776 }
2777 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &AudioNodeEmitterNaturalDecayModelProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2778     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2779         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2780     }
2781 }
2782 impl ::std::convert::From<AudioNodeEmitterNaturalDecayModelProperties> for ::windows::runtime::IInspectable {
from(value: AudioNodeEmitterNaturalDecayModelProperties) -> Self2783     fn from(value: AudioNodeEmitterNaturalDecayModelProperties) -> Self {
2784         value.0
2785     }
2786 }
2787 impl ::std::convert::From<&AudioNodeEmitterNaturalDecayModelProperties> for ::windows::runtime::IInspectable {
from(value: &AudioNodeEmitterNaturalDecayModelProperties) -> Self2788     fn from(value: &AudioNodeEmitterNaturalDecayModelProperties) -> Self {
2789         value.0.clone()
2790     }
2791 }
2792 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for AudioNodeEmitterNaturalDecayModelProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2793     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2794         ::windows::runtime::Param::Owned(self.0)
2795     }
2796 }
2797 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a AudioNodeEmitterNaturalDecayModelProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2798     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2799         ::windows::runtime::Param::Borrowed(&self.0)
2800     }
2801 }
2802 unsafe impl ::std::marker::Send for AudioNodeEmitterNaturalDecayModelProperties {}
2803 unsafe impl ::std::marker::Sync for AudioNodeEmitterNaturalDecayModelProperties {}
2804 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2805 #[repr(transparent)]
2806 pub struct AudioNodeEmitterSettings(pub u32);
2807 impl AudioNodeEmitterSettings {
2808     pub const None: AudioNodeEmitterSettings = AudioNodeEmitterSettings(0u32);
2809     pub const DisableDoppler: AudioNodeEmitterSettings = AudioNodeEmitterSettings(1u32);
2810 }
2811 impl ::std::convert::From<u32> for AudioNodeEmitterSettings {
from(value: u32) -> Self2812     fn from(value: u32) -> Self {
2813         Self(value)
2814     }
2815 }
2816 unsafe impl ::windows::runtime::Abi for AudioNodeEmitterSettings {
2817     type Abi = Self;
2818     type DefaultType = Self;
2819 }
2820 unsafe impl ::windows::runtime::RuntimeType for AudioNodeEmitterSettings {
2821     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Audio.AudioNodeEmitterSettings;u4)");
2822 }
2823 impl ::std::ops::BitOr for AudioNodeEmitterSettings {
2824     type Output = Self;
bitor(self, rhs: Self) -> Self2825     fn bitor(self, rhs: Self) -> Self {
2826         Self(self.0 | rhs.0)
2827     }
2828 }
2829 impl ::std::ops::BitAnd for AudioNodeEmitterSettings {
2830     type Output = Self;
bitand(self, rhs: Self) -> Self2831     fn bitand(self, rhs: Self) -> Self {
2832         Self(self.0 & rhs.0)
2833     }
2834 }
2835 impl ::std::ops::BitOrAssign for AudioNodeEmitterSettings {
bitor_assign(&mut self, rhs: Self)2836     fn bitor_assign(&mut self, rhs: Self) {
2837         self.0.bitor_assign(rhs.0)
2838     }
2839 }
2840 impl ::std::ops::BitAndAssign for AudioNodeEmitterSettings {
bitand_assign(&mut self, rhs: Self)2841     fn bitand_assign(&mut self, rhs: Self) {
2842         self.0.bitand_assign(rhs.0)
2843     }
2844 }
2845 impl ::std::ops::Not for AudioNodeEmitterSettings {
2846     type Output = Self;
not(self) -> Self2847     fn not(self) -> Self {
2848         Self(self.0.not())
2849     }
2850 }
2851 #[repr(transparent)]
2852 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2853 pub struct AudioNodeEmitterShape(::windows::runtime::IInspectable);
2854 impl AudioNodeEmitterShape {
Kind(&self) -> ::windows::runtime::Result<AudioNodeEmitterShapeKind>2855     pub fn Kind(&self) -> ::windows::runtime::Result<AudioNodeEmitterShapeKind> {
2856         let this = self;
2857         unsafe {
2858             let mut result__: AudioNodeEmitterShapeKind = ::std::mem::zeroed();
2859             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioNodeEmitterShapeKind>(result__)
2860         }
2861     }
ConeProperties(&self) -> ::windows::runtime::Result<AudioNodeEmitterConeProperties>2862     pub fn ConeProperties(&self) -> ::windows::runtime::Result<AudioNodeEmitterConeProperties> {
2863         let this = self;
2864         unsafe {
2865             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2866             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioNodeEmitterConeProperties>(result__)
2867         }
2868     }
CreateCone(innerangle: f64, outerangle: f64, outeranglegain: f64) -> ::windows::runtime::Result<AudioNodeEmitterShape>2869     pub fn CreateCone(innerangle: f64, outerangle: f64, outeranglegain: f64) -> ::windows::runtime::Result<AudioNodeEmitterShape> {
2870         Self::IAudioNodeEmitterShapeStatics(|this| unsafe {
2871             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2872             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), innerangle, outerangle, outeranglegain, &mut result__).from_abi::<AudioNodeEmitterShape>(result__)
2873         })
2874     }
CreateOmnidirectional() -> ::windows::runtime::Result<AudioNodeEmitterShape>2875     pub fn CreateOmnidirectional() -> ::windows::runtime::Result<AudioNodeEmitterShape> {
2876         Self::IAudioNodeEmitterShapeStatics(|this| unsafe {
2877             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2878             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioNodeEmitterShape>(result__)
2879         })
2880     }
IAudioNodeEmitterShapeStatics<R, F: FnOnce(&IAudioNodeEmitterShapeStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>2881     pub fn IAudioNodeEmitterShapeStatics<R, F: FnOnce(&IAudioNodeEmitterShapeStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
2882         static mut SHARED: ::windows::runtime::FactoryCache<AudioNodeEmitterShape, IAudioNodeEmitterShapeStatics> = ::windows::runtime::FactoryCache::new();
2883         unsafe { SHARED.call(callback) }
2884     }
2885 }
2886 unsafe impl ::windows::runtime::RuntimeType for AudioNodeEmitterShape {
2887     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.AudioNodeEmitterShape;{ea0311c5-e73d-44bc-859c-45553bbc4828})");
2888 }
2889 unsafe impl ::windows::runtime::Interface for AudioNodeEmitterShape {
2890     type Vtable = IAudioNodeEmitterShape_abi;
2891     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3926069701, 59197, 17596, [133, 156, 69, 85, 59, 188, 72, 40]);
2892 }
2893 impl ::windows::runtime::RuntimeName for AudioNodeEmitterShape {
2894     const NAME: &'static str = "Windows.Media.Audio.AudioNodeEmitterShape";
2895 }
2896 impl ::std::convert::From<AudioNodeEmitterShape> for ::windows::runtime::IUnknown {
from(value: AudioNodeEmitterShape) -> Self2897     fn from(value: AudioNodeEmitterShape) -> Self {
2898         unsafe { ::std::mem::transmute(value) }
2899     }
2900 }
2901 impl ::std::convert::From<&AudioNodeEmitterShape> for ::windows::runtime::IUnknown {
from(value: &AudioNodeEmitterShape) -> Self2902     fn from(value: &AudioNodeEmitterShape) -> Self {
2903         ::std::convert::From::from(::std::clone::Clone::clone(value))
2904     }
2905 }
2906 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for AudioNodeEmitterShape {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2907     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2908         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2909     }
2910 }
2911 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &AudioNodeEmitterShape {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2912     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2913         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2914     }
2915 }
2916 impl ::std::convert::From<AudioNodeEmitterShape> for ::windows::runtime::IInspectable {
from(value: AudioNodeEmitterShape) -> Self2917     fn from(value: AudioNodeEmitterShape) -> Self {
2918         value.0
2919     }
2920 }
2921 impl ::std::convert::From<&AudioNodeEmitterShape> for ::windows::runtime::IInspectable {
from(value: &AudioNodeEmitterShape) -> Self2922     fn from(value: &AudioNodeEmitterShape) -> Self {
2923         value.0.clone()
2924     }
2925 }
2926 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for AudioNodeEmitterShape {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2927     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2928         ::windows::runtime::Param::Owned(self.0)
2929     }
2930 }
2931 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a AudioNodeEmitterShape {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2932     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2933         ::windows::runtime::Param::Borrowed(&self.0)
2934     }
2935 }
2936 unsafe impl ::std::marker::Send for AudioNodeEmitterShape {}
2937 unsafe impl ::std::marker::Sync for AudioNodeEmitterShape {}
2938 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2939 #[repr(transparent)]
2940 pub struct AudioNodeEmitterShapeKind(pub i32);
2941 impl AudioNodeEmitterShapeKind {
2942     pub const Omnidirectional: AudioNodeEmitterShapeKind = AudioNodeEmitterShapeKind(0i32);
2943     pub const Cone: AudioNodeEmitterShapeKind = AudioNodeEmitterShapeKind(1i32);
2944 }
2945 impl ::std::convert::From<i32> for AudioNodeEmitterShapeKind {
from(value: i32) -> Self2946     fn from(value: i32) -> Self {
2947         Self(value)
2948     }
2949 }
2950 unsafe impl ::windows::runtime::Abi for AudioNodeEmitterShapeKind {
2951     type Abi = Self;
2952     type DefaultType = Self;
2953 }
2954 unsafe impl ::windows::runtime::RuntimeType for AudioNodeEmitterShapeKind {
2955     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Audio.AudioNodeEmitterShapeKind;i4)");
2956 }
2957 #[repr(transparent)]
2958 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2959 pub struct AudioNodeListener(::windows::runtime::IInspectable);
2960 impl AudioNodeListener {
new() -> ::windows::runtime::Result<Self>2961     pub fn new() -> ::windows::runtime::Result<Self> {
2962         Self::IActivationFactory(|f| f.activate_instance::<Self>())
2963     }
IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>2964     fn IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
2965         static mut SHARED: ::windows::runtime::FactoryCache<AudioNodeListener, ::windows::runtime::IActivationFactory> = ::windows::runtime::FactoryCache::new();
2966         unsafe { SHARED.call(callback) }
2967     }
2968     #[cfg(feature = "Foundation_Numerics")]
Position(&self) -> ::windows::runtime::Result<super::super::Foundation::Numerics::Vector3>2969     pub fn Position(&self) -> ::windows::runtime::Result<super::super::Foundation::Numerics::Vector3> {
2970         let this = self;
2971         unsafe {
2972             let mut result__: super::super::Foundation::Numerics::Vector3 = ::std::mem::zeroed();
2973             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Numerics::Vector3>(result__)
2974         }
2975     }
2976     #[cfg(feature = "Foundation_Numerics")]
SetPosition<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Numerics::Vector3>>(&self, value: Param0) -> ::windows::runtime::Result<()>2977     pub fn SetPosition<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Numerics::Vector3>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
2978         let this = self;
2979         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
2980     }
2981     #[cfg(feature = "Foundation_Numerics")]
Orientation(&self) -> ::windows::runtime::Result<super::super::Foundation::Numerics::Quaternion>2982     pub fn Orientation(&self) -> ::windows::runtime::Result<super::super::Foundation::Numerics::Quaternion> {
2983         let this = self;
2984         unsafe {
2985             let mut result__: super::super::Foundation::Numerics::Quaternion = ::std::mem::zeroed();
2986             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Numerics::Quaternion>(result__)
2987         }
2988     }
2989     #[cfg(feature = "Foundation_Numerics")]
SetOrientation<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Numerics::Quaternion>>(&self, value: Param0) -> ::windows::runtime::Result<()>2990     pub fn SetOrientation<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Numerics::Quaternion>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
2991         let this = self;
2992         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
2993     }
SpeedOfSound(&self) -> ::windows::runtime::Result<f64>2994     pub fn SpeedOfSound(&self) -> ::windows::runtime::Result<f64> {
2995         let this = self;
2996         unsafe {
2997             let mut result__: f64 = ::std::mem::zeroed();
2998             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
2999         }
3000     }
SetSpeedOfSound(&self, value: f64) -> ::windows::runtime::Result<()>3001     pub fn SetSpeedOfSound(&self, value: f64) -> ::windows::runtime::Result<()> {
3002         let this = self;
3003         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value).ok() }
3004     }
3005     #[cfg(feature = "Foundation_Numerics")]
DopplerVelocity(&self) -> ::windows::runtime::Result<super::super::Foundation::Numerics::Vector3>3006     pub fn DopplerVelocity(&self) -> ::windows::runtime::Result<super::super::Foundation::Numerics::Vector3> {
3007         let this = self;
3008         unsafe {
3009             let mut result__: super::super::Foundation::Numerics::Vector3 = ::std::mem::zeroed();
3010             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Numerics::Vector3>(result__)
3011         }
3012     }
3013     #[cfg(feature = "Foundation_Numerics")]
SetDopplerVelocity<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Numerics::Vector3>>(&self, value: Param0) -> ::windows::runtime::Result<()>3014     pub fn SetDopplerVelocity<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Numerics::Vector3>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
3015         let this = self;
3016         unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
3017     }
3018 }
3019 unsafe impl ::windows::runtime::RuntimeType for AudioNodeListener {
3020     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.AudioNodeListener;{d9722e16-0c0a-41da-b755-6c77835fb1eb})");
3021 }
3022 unsafe impl ::windows::runtime::Interface for AudioNodeListener {
3023     type Vtable = IAudioNodeListener_abi;
3024     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3648138774, 3082, 16858, [183, 85, 108, 119, 131, 95, 177, 235]);
3025 }
3026 impl ::windows::runtime::RuntimeName for AudioNodeListener {
3027     const NAME: &'static str = "Windows.Media.Audio.AudioNodeListener";
3028 }
3029 impl ::std::convert::From<AudioNodeListener> for ::windows::runtime::IUnknown {
from(value: AudioNodeListener) -> Self3030     fn from(value: AudioNodeListener) -> Self {
3031         unsafe { ::std::mem::transmute(value) }
3032     }
3033 }
3034 impl ::std::convert::From<&AudioNodeListener> for ::windows::runtime::IUnknown {
from(value: &AudioNodeListener) -> Self3035     fn from(value: &AudioNodeListener) -> Self {
3036         ::std::convert::From::from(::std::clone::Clone::clone(value))
3037     }
3038 }
3039 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for AudioNodeListener {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3040     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3041         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3042     }
3043 }
3044 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &AudioNodeListener {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3045     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3046         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3047     }
3048 }
3049 impl ::std::convert::From<AudioNodeListener> for ::windows::runtime::IInspectable {
from(value: AudioNodeListener) -> Self3050     fn from(value: AudioNodeListener) -> Self {
3051         value.0
3052     }
3053 }
3054 impl ::std::convert::From<&AudioNodeListener> for ::windows::runtime::IInspectable {
from(value: &AudioNodeListener) -> Self3055     fn from(value: &AudioNodeListener) -> Self {
3056         value.0.clone()
3057     }
3058 }
3059 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for AudioNodeListener {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3060     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3061         ::windows::runtime::Param::Owned(self.0)
3062     }
3063 }
3064 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a AudioNodeListener {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3065     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3066         ::windows::runtime::Param::Borrowed(&self.0)
3067     }
3068 }
3069 unsafe impl ::std::marker::Send for AudioNodeListener {}
3070 unsafe impl ::std::marker::Sync for AudioNodeListener {}
3071 #[repr(transparent)]
3072 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3073 pub struct AudioPlaybackConnection(::windows::runtime::IInspectable);
3074 impl AudioPlaybackConnection {
3075     #[cfg(feature = "Foundation")]
Close(&self) -> ::windows::runtime::Result<()>3076     pub fn Close(&self) -> ::windows::runtime::Result<()> {
3077         let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?;
3078         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() }
3079     }
Start(&self) -> ::windows::runtime::Result<()>3080     pub fn Start(&self) -> ::windows::runtime::Result<()> {
3081         let this = self;
3082         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() }
3083     }
3084     #[cfg(feature = "Foundation")]
StartAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>3085     pub fn StartAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
3086         let this = self;
3087         unsafe {
3088             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
3089             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
3090         }
3091     }
DeviceId(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>3092     pub fn DeviceId(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
3093         let this = self;
3094         unsafe {
3095             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
3096             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
3097         }
3098     }
State(&self) -> ::windows::runtime::Result<AudioPlaybackConnectionState>3099     pub fn State(&self) -> ::windows::runtime::Result<AudioPlaybackConnectionState> {
3100         let this = self;
3101         unsafe {
3102             let mut result__: AudioPlaybackConnectionState = ::std::mem::zeroed();
3103             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioPlaybackConnectionState>(result__)
3104         }
3105     }
Open(&self) -> ::windows::runtime::Result<AudioPlaybackConnectionOpenResult>3106     pub fn Open(&self) -> ::windows::runtime::Result<AudioPlaybackConnectionOpenResult> {
3107         let this = self;
3108         unsafe {
3109             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
3110             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioPlaybackConnectionOpenResult>(result__)
3111         }
3112     }
3113     #[cfg(feature = "Foundation")]
OpenAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<AudioPlaybackConnectionOpenResult>>3114     pub fn OpenAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<AudioPlaybackConnectionOpenResult>> {
3115         let this = self;
3116         unsafe {
3117             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
3118             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<AudioPlaybackConnectionOpenResult>>(result__)
3119         }
3120     }
3121     #[cfg(feature = "Foundation")]
StateChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<AudioPlaybackConnection, ::windows::runtime::IInspectable>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken>3122     pub fn StateChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<AudioPlaybackConnection, ::windows::runtime::IInspectable>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken> {
3123         let this = self;
3124         unsafe {
3125             let mut result__: super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
3126             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::EventRegistrationToken>(result__)
3127         }
3128     }
3129     #[cfg(feature = "Foundation")]
RemoveStateChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()>3130     pub fn RemoveStateChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()> {
3131         let this = self;
3132         unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), token.into_param().abi()).ok() }
3133     }
GetDeviceSelector() -> ::windows::runtime::Result<::windows::runtime::HSTRING>3134     pub fn GetDeviceSelector() -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
3135         Self::IAudioPlaybackConnectionStatics(|this| unsafe {
3136             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
3137             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
3138         })
3139     }
TryCreateFromId<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(id: Param0) -> ::windows::runtime::Result<AudioPlaybackConnection>3140     pub fn TryCreateFromId<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(id: Param0) -> ::windows::runtime::Result<AudioPlaybackConnection> {
3141         Self::IAudioPlaybackConnectionStatics(|this| unsafe {
3142             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
3143             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), id.into_param().abi(), &mut result__).from_abi::<AudioPlaybackConnection>(result__)
3144         })
3145     }
IAudioPlaybackConnectionStatics<R, F: FnOnce(&IAudioPlaybackConnectionStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>3146     pub fn IAudioPlaybackConnectionStatics<R, F: FnOnce(&IAudioPlaybackConnectionStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
3147         static mut SHARED: ::windows::runtime::FactoryCache<AudioPlaybackConnection, IAudioPlaybackConnectionStatics> = ::windows::runtime::FactoryCache::new();
3148         unsafe { SHARED.call(callback) }
3149     }
3150 }
3151 unsafe impl ::windows::runtime::RuntimeType for AudioPlaybackConnection {
3152     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.AudioPlaybackConnection;{1a4c1dea-cafc-50e7-8718-ea3f81cbfa51})");
3153 }
3154 unsafe impl ::windows::runtime::Interface for AudioPlaybackConnection {
3155     type Vtable = IAudioPlaybackConnection_abi;
3156     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(441196010, 51964, 20711, [135, 24, 234, 63, 129, 203, 250, 81]);
3157 }
3158 impl ::windows::runtime::RuntimeName for AudioPlaybackConnection {
3159     const NAME: &'static str = "Windows.Media.Audio.AudioPlaybackConnection";
3160 }
3161 impl ::std::convert::From<AudioPlaybackConnection> for ::windows::runtime::IUnknown {
from(value: AudioPlaybackConnection) -> Self3162     fn from(value: AudioPlaybackConnection) -> Self {
3163         unsafe { ::std::mem::transmute(value) }
3164     }
3165 }
3166 impl ::std::convert::From<&AudioPlaybackConnection> for ::windows::runtime::IUnknown {
from(value: &AudioPlaybackConnection) -> Self3167     fn from(value: &AudioPlaybackConnection) -> Self {
3168         ::std::convert::From::from(::std::clone::Clone::clone(value))
3169     }
3170 }
3171 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for AudioPlaybackConnection {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3172     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3173         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3174     }
3175 }
3176 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &AudioPlaybackConnection {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3177     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3178         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3179     }
3180 }
3181 impl ::std::convert::From<AudioPlaybackConnection> for ::windows::runtime::IInspectable {
from(value: AudioPlaybackConnection) -> Self3182     fn from(value: AudioPlaybackConnection) -> Self {
3183         value.0
3184     }
3185 }
3186 impl ::std::convert::From<&AudioPlaybackConnection> for ::windows::runtime::IInspectable {
from(value: &AudioPlaybackConnection) -> Self3187     fn from(value: &AudioPlaybackConnection) -> Self {
3188         value.0.clone()
3189     }
3190 }
3191 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for AudioPlaybackConnection {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3192     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3193         ::windows::runtime::Param::Owned(self.0)
3194     }
3195 }
3196 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a AudioPlaybackConnection {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3197     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3198         ::windows::runtime::Param::Borrowed(&self.0)
3199     }
3200 }
3201 #[cfg(feature = "Foundation")]
3202 impl ::std::convert::TryFrom<AudioPlaybackConnection> for super::super::Foundation::IClosable {
3203     type Error = ::windows::runtime::Error;
try_from(value: AudioPlaybackConnection) -> ::windows::runtime::Result<Self>3204     fn try_from(value: AudioPlaybackConnection) -> ::windows::runtime::Result<Self> {
3205         ::std::convert::TryFrom::try_from(&value)
3206     }
3207 }
3208 #[cfg(feature = "Foundation")]
3209 impl ::std::convert::TryFrom<&AudioPlaybackConnection> for super::super::Foundation::IClosable {
3210     type Error = ::windows::runtime::Error;
try_from(value: &AudioPlaybackConnection) -> ::windows::runtime::Result<Self>3211     fn try_from(value: &AudioPlaybackConnection) -> ::windows::runtime::Result<Self> {
3212         ::windows::runtime::Interface::cast(value)
3213     }
3214 }
3215 #[cfg(feature = "Foundation")]
3216 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for AudioPlaybackConnection {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>3217     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
3218         ::windows::runtime::IntoParam::into_param(&self)
3219     }
3220 }
3221 #[cfg(feature = "Foundation")]
3222 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &AudioPlaybackConnection {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>3223     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
3224         ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
3225     }
3226 }
3227 unsafe impl ::std::marker::Send for AudioPlaybackConnection {}
3228 unsafe impl ::std::marker::Sync for AudioPlaybackConnection {}
3229 #[repr(transparent)]
3230 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3231 pub struct AudioPlaybackConnectionOpenResult(::windows::runtime::IInspectable);
3232 impl AudioPlaybackConnectionOpenResult {
Status(&self) -> ::windows::runtime::Result<AudioPlaybackConnectionOpenResultStatus>3233     pub fn Status(&self) -> ::windows::runtime::Result<AudioPlaybackConnectionOpenResultStatus> {
3234         let this = self;
3235         unsafe {
3236             let mut result__: AudioPlaybackConnectionOpenResultStatus = ::std::mem::zeroed();
3237             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioPlaybackConnectionOpenResultStatus>(result__)
3238         }
3239     }
ExtendedError(&self) -> ::windows::runtime::Result<::windows::runtime::HRESULT>3240     pub fn ExtendedError(&self) -> ::windows::runtime::Result<::windows::runtime::HRESULT> {
3241         let this = self;
3242         unsafe {
3243             let mut result__: ::windows::runtime::HRESULT = ::std::mem::zeroed();
3244             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HRESULT>(result__)
3245         }
3246     }
3247 }
3248 unsafe impl ::windows::runtime::RuntimeType for AudioPlaybackConnectionOpenResult {
3249     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.AudioPlaybackConnectionOpenResult;{4e656aef-39f9-5fc9-a519-a5bbfd9fe921})");
3250 }
3251 unsafe impl ::windows::runtime::Interface for AudioPlaybackConnectionOpenResult {
3252     type Vtable = IAudioPlaybackConnectionOpenResult_abi;
3253     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1315269359, 14841, 24521, [165, 25, 165, 187, 253, 159, 233, 33]);
3254 }
3255 impl ::windows::runtime::RuntimeName for AudioPlaybackConnectionOpenResult {
3256     const NAME: &'static str = "Windows.Media.Audio.AudioPlaybackConnectionOpenResult";
3257 }
3258 impl ::std::convert::From<AudioPlaybackConnectionOpenResult> for ::windows::runtime::IUnknown {
from(value: AudioPlaybackConnectionOpenResult) -> Self3259     fn from(value: AudioPlaybackConnectionOpenResult) -> Self {
3260         unsafe { ::std::mem::transmute(value) }
3261     }
3262 }
3263 impl ::std::convert::From<&AudioPlaybackConnectionOpenResult> for ::windows::runtime::IUnknown {
from(value: &AudioPlaybackConnectionOpenResult) -> Self3264     fn from(value: &AudioPlaybackConnectionOpenResult) -> Self {
3265         ::std::convert::From::from(::std::clone::Clone::clone(value))
3266     }
3267 }
3268 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for AudioPlaybackConnectionOpenResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3269     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3270         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3271     }
3272 }
3273 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &AudioPlaybackConnectionOpenResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3274     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3275         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3276     }
3277 }
3278 impl ::std::convert::From<AudioPlaybackConnectionOpenResult> for ::windows::runtime::IInspectable {
from(value: AudioPlaybackConnectionOpenResult) -> Self3279     fn from(value: AudioPlaybackConnectionOpenResult) -> Self {
3280         value.0
3281     }
3282 }
3283 impl ::std::convert::From<&AudioPlaybackConnectionOpenResult> for ::windows::runtime::IInspectable {
from(value: &AudioPlaybackConnectionOpenResult) -> Self3284     fn from(value: &AudioPlaybackConnectionOpenResult) -> Self {
3285         value.0.clone()
3286     }
3287 }
3288 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for AudioPlaybackConnectionOpenResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3289     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3290         ::windows::runtime::Param::Owned(self.0)
3291     }
3292 }
3293 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a AudioPlaybackConnectionOpenResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3294     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3295         ::windows::runtime::Param::Borrowed(&self.0)
3296     }
3297 }
3298 unsafe impl ::std::marker::Send for AudioPlaybackConnectionOpenResult {}
3299 unsafe impl ::std::marker::Sync for AudioPlaybackConnectionOpenResult {}
3300 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3301 #[repr(transparent)]
3302 pub struct AudioPlaybackConnectionOpenResultStatus(pub i32);
3303 impl AudioPlaybackConnectionOpenResultStatus {
3304     pub const Success: AudioPlaybackConnectionOpenResultStatus = AudioPlaybackConnectionOpenResultStatus(0i32);
3305     pub const RequestTimedOut: AudioPlaybackConnectionOpenResultStatus = AudioPlaybackConnectionOpenResultStatus(1i32);
3306     pub const DeniedBySystem: AudioPlaybackConnectionOpenResultStatus = AudioPlaybackConnectionOpenResultStatus(2i32);
3307     pub const UnknownFailure: AudioPlaybackConnectionOpenResultStatus = AudioPlaybackConnectionOpenResultStatus(3i32);
3308 }
3309 impl ::std::convert::From<i32> for AudioPlaybackConnectionOpenResultStatus {
from(value: i32) -> Self3310     fn from(value: i32) -> Self {
3311         Self(value)
3312     }
3313 }
3314 unsafe impl ::windows::runtime::Abi for AudioPlaybackConnectionOpenResultStatus {
3315     type Abi = Self;
3316     type DefaultType = Self;
3317 }
3318 unsafe impl ::windows::runtime::RuntimeType for AudioPlaybackConnectionOpenResultStatus {
3319     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Audio.AudioPlaybackConnectionOpenResultStatus;i4)");
3320 }
3321 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3322 #[repr(transparent)]
3323 pub struct AudioPlaybackConnectionState(pub i32);
3324 impl AudioPlaybackConnectionState {
3325     pub const Closed: AudioPlaybackConnectionState = AudioPlaybackConnectionState(0i32);
3326     pub const Opened: AudioPlaybackConnectionState = AudioPlaybackConnectionState(1i32);
3327 }
3328 impl ::std::convert::From<i32> for AudioPlaybackConnectionState {
from(value: i32) -> Self3329     fn from(value: i32) -> Self {
3330         Self(value)
3331     }
3332 }
3333 unsafe impl ::windows::runtime::Abi for AudioPlaybackConnectionState {
3334     type Abi = Self;
3335     type DefaultType = Self;
3336 }
3337 unsafe impl ::windows::runtime::RuntimeType for AudioPlaybackConnectionState {
3338     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Audio.AudioPlaybackConnectionState;i4)");
3339 }
3340 #[repr(transparent)]
3341 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3342 pub struct AudioStateMonitor(::windows::runtime::IInspectable);
3343 impl AudioStateMonitor {
3344     #[cfg(feature = "Foundation")]
SoundLevelChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<AudioStateMonitor, ::windows::runtime::IInspectable>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken>3345     pub fn SoundLevelChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<AudioStateMonitor, ::windows::runtime::IInspectable>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken> {
3346         let this = self;
3347         unsafe {
3348             let mut result__: super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
3349             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::EventRegistrationToken>(result__)
3350         }
3351     }
3352     #[cfg(feature = "Foundation")]
RemoveSoundLevelChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()>3353     pub fn RemoveSoundLevelChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()> {
3354         let this = self;
3355         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), token.into_param().abi()).ok() }
3356     }
SoundLevel(&self) -> ::windows::runtime::Result<super::SoundLevel>3357     pub fn SoundLevel(&self) -> ::windows::runtime::Result<super::SoundLevel> {
3358         let this = self;
3359         unsafe {
3360             let mut result__: super::SoundLevel = ::std::mem::zeroed();
3361             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::SoundLevel>(result__)
3362         }
3363     }
CreateForRenderMonitoring() -> ::windows::runtime::Result<AudioStateMonitor>3364     pub fn CreateForRenderMonitoring() -> ::windows::runtime::Result<AudioStateMonitor> {
3365         Self::IAudioStateMonitorStatics(|this| unsafe {
3366             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
3367             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioStateMonitor>(result__)
3368         })
3369     }
3370     #[cfg(feature = "Media_Render")]
CreateForRenderMonitoringWithCategory(category: super::Render::AudioRenderCategory) -> ::windows::runtime::Result<AudioStateMonitor>3371     pub fn CreateForRenderMonitoringWithCategory(category: super::Render::AudioRenderCategory) -> ::windows::runtime::Result<AudioStateMonitor> {
3372         Self::IAudioStateMonitorStatics(|this| unsafe {
3373             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
3374             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), category, &mut result__).from_abi::<AudioStateMonitor>(result__)
3375         })
3376     }
3377     #[cfg(all(feature = "Media_Devices", feature = "Media_Render"))]
CreateForRenderMonitoringWithCategoryAndDeviceRole(category: super::Render::AudioRenderCategory, role: super::Devices::AudioDeviceRole) -> ::windows::runtime::Result<AudioStateMonitor>3378     pub fn CreateForRenderMonitoringWithCategoryAndDeviceRole(category: super::Render::AudioRenderCategory, role: super::Devices::AudioDeviceRole) -> ::windows::runtime::Result<AudioStateMonitor> {
3379         Self::IAudioStateMonitorStatics(|this| unsafe {
3380             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
3381             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), category, role, &mut result__).from_abi::<AudioStateMonitor>(result__)
3382         })
3383     }
3384     #[cfg(feature = "Media_Render")]
CreateForRenderMonitoringWithCategoryAndDeviceId<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(category: super::Render::AudioRenderCategory, deviceid: Param1) -> ::windows::runtime::Result<AudioStateMonitor>3385     pub fn CreateForRenderMonitoringWithCategoryAndDeviceId<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(category: super::Render::AudioRenderCategory, deviceid: Param1) -> ::windows::runtime::Result<AudioStateMonitor> {
3386         Self::IAudioStateMonitorStatics(|this| unsafe {
3387             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
3388             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), category, deviceid.into_param().abi(), &mut result__).from_abi::<AudioStateMonitor>(result__)
3389         })
3390     }
CreateForCaptureMonitoring() -> ::windows::runtime::Result<AudioStateMonitor>3391     pub fn CreateForCaptureMonitoring() -> ::windows::runtime::Result<AudioStateMonitor> {
3392         Self::IAudioStateMonitorStatics(|this| unsafe {
3393             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
3394             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioStateMonitor>(result__)
3395         })
3396     }
3397     #[cfg(feature = "Media_Capture")]
CreateForCaptureMonitoringWithCategory(category: super::Capture::MediaCategory) -> ::windows::runtime::Result<AudioStateMonitor>3398     pub fn CreateForCaptureMonitoringWithCategory(category: super::Capture::MediaCategory) -> ::windows::runtime::Result<AudioStateMonitor> {
3399         Self::IAudioStateMonitorStatics(|this| unsafe {
3400             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
3401             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), category, &mut result__).from_abi::<AudioStateMonitor>(result__)
3402         })
3403     }
3404     #[cfg(all(feature = "Media_Capture", feature = "Media_Devices"))]
CreateForCaptureMonitoringWithCategoryAndDeviceRole(category: super::Capture::MediaCategory, role: super::Devices::AudioDeviceRole) -> ::windows::runtime::Result<AudioStateMonitor>3405     pub fn CreateForCaptureMonitoringWithCategoryAndDeviceRole(category: super::Capture::MediaCategory, role: super::Devices::AudioDeviceRole) -> ::windows::runtime::Result<AudioStateMonitor> {
3406         Self::IAudioStateMonitorStatics(|this| unsafe {
3407             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
3408             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), category, role, &mut result__).from_abi::<AudioStateMonitor>(result__)
3409         })
3410     }
3411     #[cfg(feature = "Media_Capture")]
CreateForCaptureMonitoringWithCategoryAndDeviceId<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(category: super::Capture::MediaCategory, deviceid: Param1) -> ::windows::runtime::Result<AudioStateMonitor>3412     pub fn CreateForCaptureMonitoringWithCategoryAndDeviceId<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(category: super::Capture::MediaCategory, deviceid: Param1) -> ::windows::runtime::Result<AudioStateMonitor> {
3413         Self::IAudioStateMonitorStatics(|this| unsafe {
3414             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
3415             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), category, deviceid.into_param().abi(), &mut result__).from_abi::<AudioStateMonitor>(result__)
3416         })
3417     }
IAudioStateMonitorStatics<R, F: FnOnce(&IAudioStateMonitorStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>3418     pub fn IAudioStateMonitorStatics<R, F: FnOnce(&IAudioStateMonitorStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
3419         static mut SHARED: ::windows::runtime::FactoryCache<AudioStateMonitor, IAudioStateMonitorStatics> = ::windows::runtime::FactoryCache::new();
3420         unsafe { SHARED.call(callback) }
3421     }
3422 }
3423 unsafe impl ::windows::runtime::RuntimeType for AudioStateMonitor {
3424     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.AudioStateMonitor;{1d13d136-0199-4cdc-b84e-e72c2b581ece})");
3425 }
3426 unsafe impl ::windows::runtime::Interface for AudioStateMonitor {
3427     type Vtable = IAudioStateMonitor_abi;
3428     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(487838006, 409, 19676, [184, 78, 231, 44, 43, 88, 30, 206]);
3429 }
3430 impl ::windows::runtime::RuntimeName for AudioStateMonitor {
3431     const NAME: &'static str = "Windows.Media.Audio.AudioStateMonitor";
3432 }
3433 impl ::std::convert::From<AudioStateMonitor> for ::windows::runtime::IUnknown {
from(value: AudioStateMonitor) -> Self3434     fn from(value: AudioStateMonitor) -> Self {
3435         unsafe { ::std::mem::transmute(value) }
3436     }
3437 }
3438 impl ::std::convert::From<&AudioStateMonitor> for ::windows::runtime::IUnknown {
from(value: &AudioStateMonitor) -> Self3439     fn from(value: &AudioStateMonitor) -> Self {
3440         ::std::convert::From::from(::std::clone::Clone::clone(value))
3441     }
3442 }
3443 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for AudioStateMonitor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3444     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3445         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3446     }
3447 }
3448 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &AudioStateMonitor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3449     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3450         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3451     }
3452 }
3453 impl ::std::convert::From<AudioStateMonitor> for ::windows::runtime::IInspectable {
from(value: AudioStateMonitor) -> Self3454     fn from(value: AudioStateMonitor) -> Self {
3455         value.0
3456     }
3457 }
3458 impl ::std::convert::From<&AudioStateMonitor> for ::windows::runtime::IInspectable {
from(value: &AudioStateMonitor) -> Self3459     fn from(value: &AudioStateMonitor) -> Self {
3460         value.0.clone()
3461     }
3462 }
3463 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for AudioStateMonitor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3464     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3465         ::windows::runtime::Param::Owned(self.0)
3466     }
3467 }
3468 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a AudioStateMonitor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3469     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3470         ::windows::runtime::Param::Borrowed(&self.0)
3471     }
3472 }
3473 unsafe impl ::std::marker::Send for AudioStateMonitor {}
3474 unsafe impl ::std::marker::Sync for AudioStateMonitor {}
3475 #[repr(transparent)]
3476 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3477 pub struct AudioSubmixNode(::windows::runtime::IInspectable);
3478 impl AudioSubmixNode {
3479     #[cfg(feature = "Foundation_Collections")]
OutgoingConnections(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<AudioGraphConnection>>3480     pub fn OutgoingConnections(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<AudioGraphConnection>> {
3481         let this = self;
3482         unsafe {
3483             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
3484             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<AudioGraphConnection>>(result__)
3485         }
3486     }
AddOutgoingConnection<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0) -> ::windows::runtime::Result<()>3487     pub fn AddOutgoingConnection<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0) -> ::windows::runtime::Result<()> {
3488         let this = self;
3489         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), destination.into_param().abi()).ok() }
3490     }
AddOutgoingConnectionWithGain<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0, gain: f64) -> ::windows::runtime::Result<()>3491     pub fn AddOutgoingConnectionWithGain<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0, gain: f64) -> ::windows::runtime::Result<()> {
3492         let this = self;
3493         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), destination.into_param().abi(), gain).ok() }
3494     }
RemoveOutgoingConnection<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0) -> ::windows::runtime::Result<()>3495     pub fn RemoveOutgoingConnection<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0) -> ::windows::runtime::Result<()> {
3496         let this = self;
3497         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), destination.into_param().abi()).ok() }
3498     }
3499     #[cfg(feature = "Foundation")]
Close(&self) -> ::windows::runtime::Result<()>3500     pub fn Close(&self) -> ::windows::runtime::Result<()> {
3501         let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?;
3502         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() }
3503     }
3504     #[cfg(all(feature = "Foundation_Collections", feature = "Media_Effects"))]
EffectDefinitions(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>>3505     pub fn EffectDefinitions(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>> {
3506         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
3507         unsafe {
3508             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
3509             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>>(result__)
3510         }
3511     }
SetOutgoingGain(&self, value: f64) -> ::windows::runtime::Result<()>3512     pub fn SetOutgoingGain(&self, value: f64) -> ::windows::runtime::Result<()> {
3513         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
3514         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() }
3515     }
OutgoingGain(&self) -> ::windows::runtime::Result<f64>3516     pub fn OutgoingGain(&self) -> ::windows::runtime::Result<f64> {
3517         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
3518         unsafe {
3519             let mut result__: f64 = ::std::mem::zeroed();
3520             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
3521         }
3522     }
3523     #[cfg(feature = "Media_MediaProperties")]
EncodingProperties(&self) -> ::windows::runtime::Result<super::MediaProperties::AudioEncodingProperties>3524     pub fn EncodingProperties(&self) -> ::windows::runtime::Result<super::MediaProperties::AudioEncodingProperties> {
3525         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
3526         unsafe {
3527             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
3528             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::MediaProperties::AudioEncodingProperties>(result__)
3529         }
3530     }
ConsumeInput(&self) -> ::windows::runtime::Result<bool>3531     pub fn ConsumeInput(&self) -> ::windows::runtime::Result<bool> {
3532         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
3533         unsafe {
3534             let mut result__: bool = ::std::mem::zeroed();
3535             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
3536         }
3537     }
SetConsumeInput(&self, value: bool) -> ::windows::runtime::Result<()>3538     pub fn SetConsumeInput(&self, value: bool) -> ::windows::runtime::Result<()> {
3539         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
3540         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value).ok() }
3541     }
Start(&self) -> ::windows::runtime::Result<()>3542     pub fn Start(&self) -> ::windows::runtime::Result<()> {
3543         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
3544         unsafe { (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this)).ok() }
3545     }
Stop(&self) -> ::windows::runtime::Result<()>3546     pub fn Stop(&self) -> ::windows::runtime::Result<()> {
3547         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
3548         unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this)).ok() }
3549     }
Reset(&self) -> ::windows::runtime::Result<()>3550     pub fn Reset(&self) -> ::windows::runtime::Result<()> {
3551         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
3552         unsafe { (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this)).ok() }
3553     }
3554     #[cfg(feature = "Media_Effects")]
DisableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()>3555     pub fn DisableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()> {
3556         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
3557         unsafe { (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), definition.into_param().abi()).ok() }
3558     }
3559     #[cfg(feature = "Media_Effects")]
EnableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()>3560     pub fn EnableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()> {
3561         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
3562         unsafe { (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), definition.into_param().abi()).ok() }
3563     }
Emitter(&self) -> ::windows::runtime::Result<AudioNodeEmitter>3564     pub fn Emitter(&self) -> ::windows::runtime::Result<AudioNodeEmitter> {
3565         let this = &::windows::runtime::Interface::cast::<IAudioInputNode2>(self)?;
3566         unsafe {
3567             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
3568             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioNodeEmitter>(result__)
3569         }
3570     }
3571 }
3572 unsafe impl ::windows::runtime::RuntimeType for AudioSubmixNode {
3573     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.AudioSubmixNode;{d148005c-8428-4784-b7fd-a99d468c5d20})");
3574 }
3575 unsafe impl ::windows::runtime::Interface for AudioSubmixNode {
3576     type Vtable = IAudioInputNode_abi;
3577     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3511156828, 33832, 18308, [183, 253, 169, 157, 70, 140, 93, 32]);
3578 }
3579 impl ::windows::runtime::RuntimeName for AudioSubmixNode {
3580     const NAME: &'static str = "Windows.Media.Audio.AudioSubmixNode";
3581 }
3582 impl ::std::convert::From<AudioSubmixNode> for ::windows::runtime::IUnknown {
from(value: AudioSubmixNode) -> Self3583     fn from(value: AudioSubmixNode) -> Self {
3584         unsafe { ::std::mem::transmute(value) }
3585     }
3586 }
3587 impl ::std::convert::From<&AudioSubmixNode> for ::windows::runtime::IUnknown {
from(value: &AudioSubmixNode) -> Self3588     fn from(value: &AudioSubmixNode) -> Self {
3589         ::std::convert::From::from(::std::clone::Clone::clone(value))
3590     }
3591 }
3592 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for AudioSubmixNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3593     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3594         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3595     }
3596 }
3597 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &AudioSubmixNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3598     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3599         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3600     }
3601 }
3602 impl ::std::convert::From<AudioSubmixNode> for ::windows::runtime::IInspectable {
from(value: AudioSubmixNode) -> Self3603     fn from(value: AudioSubmixNode) -> Self {
3604         value.0
3605     }
3606 }
3607 impl ::std::convert::From<&AudioSubmixNode> for ::windows::runtime::IInspectable {
from(value: &AudioSubmixNode) -> Self3608     fn from(value: &AudioSubmixNode) -> Self {
3609         value.0.clone()
3610     }
3611 }
3612 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for AudioSubmixNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3613     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3614         ::windows::runtime::Param::Owned(self.0)
3615     }
3616 }
3617 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a AudioSubmixNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3618     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3619         ::windows::runtime::Param::Borrowed(&self.0)
3620     }
3621 }
3622 impl ::std::convert::From<AudioSubmixNode> for IAudioInputNode {
from(value: AudioSubmixNode) -> Self3623     fn from(value: AudioSubmixNode) -> Self {
3624         unsafe { ::std::mem::transmute(value) }
3625     }
3626 }
3627 impl ::std::convert::From<&AudioSubmixNode> for IAudioInputNode {
from(value: &AudioSubmixNode) -> Self3628     fn from(value: &AudioSubmixNode) -> Self {
3629         ::std::convert::From::from(::std::clone::Clone::clone(value))
3630     }
3631 }
3632 impl<'a> ::windows::runtime::IntoParam<'a, IAudioInputNode> for AudioSubmixNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode>3633     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode> {
3634         ::windows::runtime::Param::Owned(::std::convert::Into::<IAudioInputNode>::into(self))
3635     }
3636 }
3637 impl<'a> ::windows::runtime::IntoParam<'a, IAudioInputNode> for &AudioSubmixNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode>3638     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode> {
3639         ::windows::runtime::Param::Owned(::std::convert::Into::<IAudioInputNode>::into(::std::clone::Clone::clone(self)))
3640     }
3641 }
3642 #[cfg(feature = "Foundation")]
3643 impl ::std::convert::TryFrom<AudioSubmixNode> for super::super::Foundation::IClosable {
3644     type Error = ::windows::runtime::Error;
try_from(value: AudioSubmixNode) -> ::windows::runtime::Result<Self>3645     fn try_from(value: AudioSubmixNode) -> ::windows::runtime::Result<Self> {
3646         ::std::convert::TryFrom::try_from(&value)
3647     }
3648 }
3649 #[cfg(feature = "Foundation")]
3650 impl ::std::convert::TryFrom<&AudioSubmixNode> for super::super::Foundation::IClosable {
3651     type Error = ::windows::runtime::Error;
try_from(value: &AudioSubmixNode) -> ::windows::runtime::Result<Self>3652     fn try_from(value: &AudioSubmixNode) -> ::windows::runtime::Result<Self> {
3653         ::windows::runtime::Interface::cast(value)
3654     }
3655 }
3656 #[cfg(feature = "Foundation")]
3657 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for AudioSubmixNode {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>3658     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
3659         ::windows::runtime::IntoParam::into_param(&self)
3660     }
3661 }
3662 #[cfg(feature = "Foundation")]
3663 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &AudioSubmixNode {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>3664     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
3665         ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
3666     }
3667 }
3668 impl ::std::convert::TryFrom<AudioSubmixNode> for IAudioNode {
3669     type Error = ::windows::runtime::Error;
try_from(value: AudioSubmixNode) -> ::windows::runtime::Result<Self>3670     fn try_from(value: AudioSubmixNode) -> ::windows::runtime::Result<Self> {
3671         ::std::convert::TryFrom::try_from(&value)
3672     }
3673 }
3674 impl ::std::convert::TryFrom<&AudioSubmixNode> for IAudioNode {
3675     type Error = ::windows::runtime::Error;
try_from(value: &AudioSubmixNode) -> ::windows::runtime::Result<Self>3676     fn try_from(value: &AudioSubmixNode) -> ::windows::runtime::Result<Self> {
3677         ::windows::runtime::Interface::cast(value)
3678     }
3679 }
3680 impl<'a> ::windows::runtime::IntoParam<'a, IAudioNode> for AudioSubmixNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioNode>3681     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioNode> {
3682         ::windows::runtime::IntoParam::into_param(&self)
3683     }
3684 }
3685 impl<'a> ::windows::runtime::IntoParam<'a, IAudioNode> for &AudioSubmixNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioNode>3686     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioNode> {
3687         ::std::convert::TryInto::<IAudioNode>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
3688     }
3689 }
3690 impl ::std::convert::TryFrom<AudioSubmixNode> for IAudioInputNode2 {
3691     type Error = ::windows::runtime::Error;
try_from(value: AudioSubmixNode) -> ::windows::runtime::Result<Self>3692     fn try_from(value: AudioSubmixNode) -> ::windows::runtime::Result<Self> {
3693         ::std::convert::TryFrom::try_from(&value)
3694     }
3695 }
3696 impl ::std::convert::TryFrom<&AudioSubmixNode> for IAudioInputNode2 {
3697     type Error = ::windows::runtime::Error;
try_from(value: &AudioSubmixNode) -> ::windows::runtime::Result<Self>3698     fn try_from(value: &AudioSubmixNode) -> ::windows::runtime::Result<Self> {
3699         ::windows::runtime::Interface::cast(value)
3700     }
3701 }
3702 impl<'a> ::windows::runtime::IntoParam<'a, IAudioInputNode2> for AudioSubmixNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode2>3703     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode2> {
3704         ::windows::runtime::IntoParam::into_param(&self)
3705     }
3706 }
3707 impl<'a> ::windows::runtime::IntoParam<'a, IAudioInputNode2> for &AudioSubmixNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode2>3708     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode2> {
3709         ::std::convert::TryInto::<IAudioInputNode2>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
3710     }
3711 }
3712 unsafe impl ::std::marker::Send for AudioSubmixNode {}
3713 unsafe impl ::std::marker::Sync for AudioSubmixNode {}
3714 #[repr(transparent)]
3715 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3716 pub struct CreateAudioDeviceInputNodeResult(::windows::runtime::IInspectable);
3717 impl CreateAudioDeviceInputNodeResult {
Status(&self) -> ::windows::runtime::Result<AudioDeviceNodeCreationStatus>3718     pub fn Status(&self) -> ::windows::runtime::Result<AudioDeviceNodeCreationStatus> {
3719         let this = self;
3720         unsafe {
3721             let mut result__: AudioDeviceNodeCreationStatus = ::std::mem::zeroed();
3722             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioDeviceNodeCreationStatus>(result__)
3723         }
3724     }
DeviceInputNode(&self) -> ::windows::runtime::Result<AudioDeviceInputNode>3725     pub fn DeviceInputNode(&self) -> ::windows::runtime::Result<AudioDeviceInputNode> {
3726         let this = self;
3727         unsafe {
3728             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
3729             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioDeviceInputNode>(result__)
3730         }
3731     }
ExtendedError(&self) -> ::windows::runtime::Result<::windows::runtime::HRESULT>3732     pub fn ExtendedError(&self) -> ::windows::runtime::Result<::windows::runtime::HRESULT> {
3733         let this = &::windows::runtime::Interface::cast::<ICreateAudioDeviceInputNodeResult2>(self)?;
3734         unsafe {
3735             let mut result__: ::windows::runtime::HRESULT = ::std::mem::zeroed();
3736             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HRESULT>(result__)
3737         }
3738     }
3739 }
3740 unsafe impl ::windows::runtime::RuntimeType for CreateAudioDeviceInputNodeResult {
3741     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.CreateAudioDeviceInputNodeResult;{16eec7a8-1ca7-40ef-91a4-d346e0aa1bba})");
3742 }
3743 unsafe impl ::windows::runtime::Interface for CreateAudioDeviceInputNodeResult {
3744     type Vtable = ICreateAudioDeviceInputNodeResult_abi;
3745     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(384747432, 7335, 16623, [145, 164, 211, 70, 224, 170, 27, 186]);
3746 }
3747 impl ::windows::runtime::RuntimeName for CreateAudioDeviceInputNodeResult {
3748     const NAME: &'static str = "Windows.Media.Audio.CreateAudioDeviceInputNodeResult";
3749 }
3750 impl ::std::convert::From<CreateAudioDeviceInputNodeResult> for ::windows::runtime::IUnknown {
from(value: CreateAudioDeviceInputNodeResult) -> Self3751     fn from(value: CreateAudioDeviceInputNodeResult) -> Self {
3752         unsafe { ::std::mem::transmute(value) }
3753     }
3754 }
3755 impl ::std::convert::From<&CreateAudioDeviceInputNodeResult> for ::windows::runtime::IUnknown {
from(value: &CreateAudioDeviceInputNodeResult) -> Self3756     fn from(value: &CreateAudioDeviceInputNodeResult) -> Self {
3757         ::std::convert::From::from(::std::clone::Clone::clone(value))
3758     }
3759 }
3760 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for CreateAudioDeviceInputNodeResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3761     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3762         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3763     }
3764 }
3765 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &CreateAudioDeviceInputNodeResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3766     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3767         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3768     }
3769 }
3770 impl ::std::convert::From<CreateAudioDeviceInputNodeResult> for ::windows::runtime::IInspectable {
from(value: CreateAudioDeviceInputNodeResult) -> Self3771     fn from(value: CreateAudioDeviceInputNodeResult) -> Self {
3772         value.0
3773     }
3774 }
3775 impl ::std::convert::From<&CreateAudioDeviceInputNodeResult> for ::windows::runtime::IInspectable {
from(value: &CreateAudioDeviceInputNodeResult) -> Self3776     fn from(value: &CreateAudioDeviceInputNodeResult) -> Self {
3777         value.0.clone()
3778     }
3779 }
3780 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for CreateAudioDeviceInputNodeResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3781     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3782         ::windows::runtime::Param::Owned(self.0)
3783     }
3784 }
3785 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a CreateAudioDeviceInputNodeResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3786     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3787         ::windows::runtime::Param::Borrowed(&self.0)
3788     }
3789 }
3790 unsafe impl ::std::marker::Send for CreateAudioDeviceInputNodeResult {}
3791 unsafe impl ::std::marker::Sync for CreateAudioDeviceInputNodeResult {}
3792 #[repr(transparent)]
3793 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3794 pub struct CreateAudioDeviceOutputNodeResult(::windows::runtime::IInspectable);
3795 impl CreateAudioDeviceOutputNodeResult {
Status(&self) -> ::windows::runtime::Result<AudioDeviceNodeCreationStatus>3796     pub fn Status(&self) -> ::windows::runtime::Result<AudioDeviceNodeCreationStatus> {
3797         let this = self;
3798         unsafe {
3799             let mut result__: AudioDeviceNodeCreationStatus = ::std::mem::zeroed();
3800             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioDeviceNodeCreationStatus>(result__)
3801         }
3802     }
DeviceOutputNode(&self) -> ::windows::runtime::Result<AudioDeviceOutputNode>3803     pub fn DeviceOutputNode(&self) -> ::windows::runtime::Result<AudioDeviceOutputNode> {
3804         let this = self;
3805         unsafe {
3806             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
3807             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioDeviceOutputNode>(result__)
3808         }
3809     }
ExtendedError(&self) -> ::windows::runtime::Result<::windows::runtime::HRESULT>3810     pub fn ExtendedError(&self) -> ::windows::runtime::Result<::windows::runtime::HRESULT> {
3811         let this = &::windows::runtime::Interface::cast::<ICreateAudioDeviceOutputNodeResult2>(self)?;
3812         unsafe {
3813             let mut result__: ::windows::runtime::HRESULT = ::std::mem::zeroed();
3814             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HRESULT>(result__)
3815         }
3816     }
3817 }
3818 unsafe impl ::windows::runtime::RuntimeType for CreateAudioDeviceOutputNodeResult {
3819     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.CreateAudioDeviceOutputNodeResult;{f7776d27-1d9a-47f7-9cd4-2859cc1b7bff})");
3820 }
3821 unsafe impl ::windows::runtime::Interface for CreateAudioDeviceOutputNodeResult {
3822     type Vtable = ICreateAudioDeviceOutputNodeResult_abi;
3823     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4151799079, 7578, 18423, [156, 212, 40, 89, 204, 27, 123, 255]);
3824 }
3825 impl ::windows::runtime::RuntimeName for CreateAudioDeviceOutputNodeResult {
3826     const NAME: &'static str = "Windows.Media.Audio.CreateAudioDeviceOutputNodeResult";
3827 }
3828 impl ::std::convert::From<CreateAudioDeviceOutputNodeResult> for ::windows::runtime::IUnknown {
from(value: CreateAudioDeviceOutputNodeResult) -> Self3829     fn from(value: CreateAudioDeviceOutputNodeResult) -> Self {
3830         unsafe { ::std::mem::transmute(value) }
3831     }
3832 }
3833 impl ::std::convert::From<&CreateAudioDeviceOutputNodeResult> for ::windows::runtime::IUnknown {
from(value: &CreateAudioDeviceOutputNodeResult) -> Self3834     fn from(value: &CreateAudioDeviceOutputNodeResult) -> Self {
3835         ::std::convert::From::from(::std::clone::Clone::clone(value))
3836     }
3837 }
3838 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for CreateAudioDeviceOutputNodeResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3839     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3840         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3841     }
3842 }
3843 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &CreateAudioDeviceOutputNodeResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3844     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3845         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3846     }
3847 }
3848 impl ::std::convert::From<CreateAudioDeviceOutputNodeResult> for ::windows::runtime::IInspectable {
from(value: CreateAudioDeviceOutputNodeResult) -> Self3849     fn from(value: CreateAudioDeviceOutputNodeResult) -> Self {
3850         value.0
3851     }
3852 }
3853 impl ::std::convert::From<&CreateAudioDeviceOutputNodeResult> for ::windows::runtime::IInspectable {
from(value: &CreateAudioDeviceOutputNodeResult) -> Self3854     fn from(value: &CreateAudioDeviceOutputNodeResult) -> Self {
3855         value.0.clone()
3856     }
3857 }
3858 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for CreateAudioDeviceOutputNodeResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3859     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3860         ::windows::runtime::Param::Owned(self.0)
3861     }
3862 }
3863 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a CreateAudioDeviceOutputNodeResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3864     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3865         ::windows::runtime::Param::Borrowed(&self.0)
3866     }
3867 }
3868 unsafe impl ::std::marker::Send for CreateAudioDeviceOutputNodeResult {}
3869 unsafe impl ::std::marker::Sync for CreateAudioDeviceOutputNodeResult {}
3870 #[repr(transparent)]
3871 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3872 pub struct CreateAudioFileInputNodeResult(::windows::runtime::IInspectable);
3873 impl CreateAudioFileInputNodeResult {
Status(&self) -> ::windows::runtime::Result<AudioFileNodeCreationStatus>3874     pub fn Status(&self) -> ::windows::runtime::Result<AudioFileNodeCreationStatus> {
3875         let this = self;
3876         unsafe {
3877             let mut result__: AudioFileNodeCreationStatus = ::std::mem::zeroed();
3878             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioFileNodeCreationStatus>(result__)
3879         }
3880     }
FileInputNode(&self) -> ::windows::runtime::Result<AudioFileInputNode>3881     pub fn FileInputNode(&self) -> ::windows::runtime::Result<AudioFileInputNode> {
3882         let this = self;
3883         unsafe {
3884             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
3885             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioFileInputNode>(result__)
3886         }
3887     }
ExtendedError(&self) -> ::windows::runtime::Result<::windows::runtime::HRESULT>3888     pub fn ExtendedError(&self) -> ::windows::runtime::Result<::windows::runtime::HRESULT> {
3889         let this = &::windows::runtime::Interface::cast::<ICreateAudioFileInputNodeResult2>(self)?;
3890         unsafe {
3891             let mut result__: ::windows::runtime::HRESULT = ::std::mem::zeroed();
3892             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HRESULT>(result__)
3893         }
3894     }
3895 }
3896 unsafe impl ::windows::runtime::RuntimeType for CreateAudioFileInputNodeResult {
3897     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.CreateAudioFileInputNodeResult;{ce83d61c-e297-4c50-9ce7-1c7a69d6bd09})");
3898 }
3899 unsafe impl ::windows::runtime::Interface for CreateAudioFileInputNodeResult {
3900     type Vtable = ICreateAudioFileInputNodeResult_abi;
3901     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3464746524, 58007, 19536, [156, 231, 28, 122, 105, 214, 189, 9]);
3902 }
3903 impl ::windows::runtime::RuntimeName for CreateAudioFileInputNodeResult {
3904     const NAME: &'static str = "Windows.Media.Audio.CreateAudioFileInputNodeResult";
3905 }
3906 impl ::std::convert::From<CreateAudioFileInputNodeResult> for ::windows::runtime::IUnknown {
from(value: CreateAudioFileInputNodeResult) -> Self3907     fn from(value: CreateAudioFileInputNodeResult) -> Self {
3908         unsafe { ::std::mem::transmute(value) }
3909     }
3910 }
3911 impl ::std::convert::From<&CreateAudioFileInputNodeResult> for ::windows::runtime::IUnknown {
from(value: &CreateAudioFileInputNodeResult) -> Self3912     fn from(value: &CreateAudioFileInputNodeResult) -> Self {
3913         ::std::convert::From::from(::std::clone::Clone::clone(value))
3914     }
3915 }
3916 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for CreateAudioFileInputNodeResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3917     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3918         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3919     }
3920 }
3921 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &CreateAudioFileInputNodeResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3922     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3923         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3924     }
3925 }
3926 impl ::std::convert::From<CreateAudioFileInputNodeResult> for ::windows::runtime::IInspectable {
from(value: CreateAudioFileInputNodeResult) -> Self3927     fn from(value: CreateAudioFileInputNodeResult) -> Self {
3928         value.0
3929     }
3930 }
3931 impl ::std::convert::From<&CreateAudioFileInputNodeResult> for ::windows::runtime::IInspectable {
from(value: &CreateAudioFileInputNodeResult) -> Self3932     fn from(value: &CreateAudioFileInputNodeResult) -> Self {
3933         value.0.clone()
3934     }
3935 }
3936 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for CreateAudioFileInputNodeResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3937     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3938         ::windows::runtime::Param::Owned(self.0)
3939     }
3940 }
3941 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a CreateAudioFileInputNodeResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3942     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3943         ::windows::runtime::Param::Borrowed(&self.0)
3944     }
3945 }
3946 unsafe impl ::std::marker::Send for CreateAudioFileInputNodeResult {}
3947 unsafe impl ::std::marker::Sync for CreateAudioFileInputNodeResult {}
3948 #[repr(transparent)]
3949 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3950 pub struct CreateAudioFileOutputNodeResult(::windows::runtime::IInspectable);
3951 impl CreateAudioFileOutputNodeResult {
Status(&self) -> ::windows::runtime::Result<AudioFileNodeCreationStatus>3952     pub fn Status(&self) -> ::windows::runtime::Result<AudioFileNodeCreationStatus> {
3953         let this = self;
3954         unsafe {
3955             let mut result__: AudioFileNodeCreationStatus = ::std::mem::zeroed();
3956             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioFileNodeCreationStatus>(result__)
3957         }
3958     }
FileOutputNode(&self) -> ::windows::runtime::Result<AudioFileOutputNode>3959     pub fn FileOutputNode(&self) -> ::windows::runtime::Result<AudioFileOutputNode> {
3960         let this = self;
3961         unsafe {
3962             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
3963             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioFileOutputNode>(result__)
3964         }
3965     }
ExtendedError(&self) -> ::windows::runtime::Result<::windows::runtime::HRESULT>3966     pub fn ExtendedError(&self) -> ::windows::runtime::Result<::windows::runtime::HRESULT> {
3967         let this = &::windows::runtime::Interface::cast::<ICreateAudioFileOutputNodeResult2>(self)?;
3968         unsafe {
3969             let mut result__: ::windows::runtime::HRESULT = ::std::mem::zeroed();
3970             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HRESULT>(result__)
3971         }
3972     }
3973 }
3974 unsafe impl ::windows::runtime::RuntimeType for CreateAudioFileOutputNodeResult {
3975     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.CreateAudioFileOutputNodeResult;{47d6ba7b-e909-453f-866e-5540cda734ff})");
3976 }
3977 unsafe impl ::windows::runtime::Interface for CreateAudioFileOutputNodeResult {
3978     type Vtable = ICreateAudioFileOutputNodeResult_abi;
3979     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1205254779, 59657, 17727, [134, 110, 85, 64, 205, 167, 52, 255]);
3980 }
3981 impl ::windows::runtime::RuntimeName for CreateAudioFileOutputNodeResult {
3982     const NAME: &'static str = "Windows.Media.Audio.CreateAudioFileOutputNodeResult";
3983 }
3984 impl ::std::convert::From<CreateAudioFileOutputNodeResult> for ::windows::runtime::IUnknown {
from(value: CreateAudioFileOutputNodeResult) -> Self3985     fn from(value: CreateAudioFileOutputNodeResult) -> Self {
3986         unsafe { ::std::mem::transmute(value) }
3987     }
3988 }
3989 impl ::std::convert::From<&CreateAudioFileOutputNodeResult> for ::windows::runtime::IUnknown {
from(value: &CreateAudioFileOutputNodeResult) -> Self3990     fn from(value: &CreateAudioFileOutputNodeResult) -> Self {
3991         ::std::convert::From::from(::std::clone::Clone::clone(value))
3992     }
3993 }
3994 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for CreateAudioFileOutputNodeResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3995     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3996         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3997     }
3998 }
3999 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &CreateAudioFileOutputNodeResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4000     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4001         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4002     }
4003 }
4004 impl ::std::convert::From<CreateAudioFileOutputNodeResult> for ::windows::runtime::IInspectable {
from(value: CreateAudioFileOutputNodeResult) -> Self4005     fn from(value: CreateAudioFileOutputNodeResult) -> Self {
4006         value.0
4007     }
4008 }
4009 impl ::std::convert::From<&CreateAudioFileOutputNodeResult> for ::windows::runtime::IInspectable {
from(value: &CreateAudioFileOutputNodeResult) -> Self4010     fn from(value: &CreateAudioFileOutputNodeResult) -> Self {
4011         value.0.clone()
4012     }
4013 }
4014 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for CreateAudioFileOutputNodeResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>4015     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
4016         ::windows::runtime::Param::Owned(self.0)
4017     }
4018 }
4019 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a CreateAudioFileOutputNodeResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>4020     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
4021         ::windows::runtime::Param::Borrowed(&self.0)
4022     }
4023 }
4024 unsafe impl ::std::marker::Send for CreateAudioFileOutputNodeResult {}
4025 unsafe impl ::std::marker::Sync for CreateAudioFileOutputNodeResult {}
4026 #[repr(transparent)]
4027 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4028 pub struct CreateAudioGraphResult(::windows::runtime::IInspectable);
4029 impl CreateAudioGraphResult {
Status(&self) -> ::windows::runtime::Result<AudioGraphCreationStatus>4030     pub fn Status(&self) -> ::windows::runtime::Result<AudioGraphCreationStatus> {
4031         let this = self;
4032         unsafe {
4033             let mut result__: AudioGraphCreationStatus = ::std::mem::zeroed();
4034             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioGraphCreationStatus>(result__)
4035         }
4036     }
Graph(&self) -> ::windows::runtime::Result<AudioGraph>4037     pub fn Graph(&self) -> ::windows::runtime::Result<AudioGraph> {
4038         let this = self;
4039         unsafe {
4040             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
4041             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioGraph>(result__)
4042         }
4043     }
ExtendedError(&self) -> ::windows::runtime::Result<::windows::runtime::HRESULT>4044     pub fn ExtendedError(&self) -> ::windows::runtime::Result<::windows::runtime::HRESULT> {
4045         let this = &::windows::runtime::Interface::cast::<ICreateAudioGraphResult2>(self)?;
4046         unsafe {
4047             let mut result__: ::windows::runtime::HRESULT = ::std::mem::zeroed();
4048             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HRESULT>(result__)
4049         }
4050     }
4051 }
4052 unsafe impl ::windows::runtime::RuntimeType for CreateAudioGraphResult {
4053     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.CreateAudioGraphResult;{5453ef7e-7bde-4b76-bb5d-48f79cfc8c0b})");
4054 }
4055 unsafe impl ::windows::runtime::Interface for CreateAudioGraphResult {
4056     type Vtable = ICreateAudioGraphResult_abi;
4057     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1414786942, 31710, 19318, [187, 93, 72, 247, 156, 252, 140, 11]);
4058 }
4059 impl ::windows::runtime::RuntimeName for CreateAudioGraphResult {
4060     const NAME: &'static str = "Windows.Media.Audio.CreateAudioGraphResult";
4061 }
4062 impl ::std::convert::From<CreateAudioGraphResult> for ::windows::runtime::IUnknown {
from(value: CreateAudioGraphResult) -> Self4063     fn from(value: CreateAudioGraphResult) -> Self {
4064         unsafe { ::std::mem::transmute(value) }
4065     }
4066 }
4067 impl ::std::convert::From<&CreateAudioGraphResult> for ::windows::runtime::IUnknown {
from(value: &CreateAudioGraphResult) -> Self4068     fn from(value: &CreateAudioGraphResult) -> Self {
4069         ::std::convert::From::from(::std::clone::Clone::clone(value))
4070     }
4071 }
4072 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for CreateAudioGraphResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4073     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4074         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4075     }
4076 }
4077 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &CreateAudioGraphResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4078     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4079         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4080     }
4081 }
4082 impl ::std::convert::From<CreateAudioGraphResult> for ::windows::runtime::IInspectable {
from(value: CreateAudioGraphResult) -> Self4083     fn from(value: CreateAudioGraphResult) -> Self {
4084         value.0
4085     }
4086 }
4087 impl ::std::convert::From<&CreateAudioGraphResult> for ::windows::runtime::IInspectable {
from(value: &CreateAudioGraphResult) -> Self4088     fn from(value: &CreateAudioGraphResult) -> Self {
4089         value.0.clone()
4090     }
4091 }
4092 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for CreateAudioGraphResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>4093     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
4094         ::windows::runtime::Param::Owned(self.0)
4095     }
4096 }
4097 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a CreateAudioGraphResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>4098     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
4099         ::windows::runtime::Param::Borrowed(&self.0)
4100     }
4101 }
4102 unsafe impl ::std::marker::Send for CreateAudioGraphResult {}
4103 unsafe impl ::std::marker::Sync for CreateAudioGraphResult {}
4104 #[repr(transparent)]
4105 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4106 pub struct CreateMediaSourceAudioInputNodeResult(::windows::runtime::IInspectable);
4107 impl CreateMediaSourceAudioInputNodeResult {
Status(&self) -> ::windows::runtime::Result<MediaSourceAudioInputNodeCreationStatus>4108     pub fn Status(&self) -> ::windows::runtime::Result<MediaSourceAudioInputNodeCreationStatus> {
4109         let this = self;
4110         unsafe {
4111             let mut result__: MediaSourceAudioInputNodeCreationStatus = ::std::mem::zeroed();
4112             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<MediaSourceAudioInputNodeCreationStatus>(result__)
4113         }
4114     }
Node(&self) -> ::windows::runtime::Result<MediaSourceAudioInputNode>4115     pub fn Node(&self) -> ::windows::runtime::Result<MediaSourceAudioInputNode> {
4116         let this = self;
4117         unsafe {
4118             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
4119             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<MediaSourceAudioInputNode>(result__)
4120         }
4121     }
ExtendedError(&self) -> ::windows::runtime::Result<::windows::runtime::HRESULT>4122     pub fn ExtendedError(&self) -> ::windows::runtime::Result<::windows::runtime::HRESULT> {
4123         let this = &::windows::runtime::Interface::cast::<ICreateMediaSourceAudioInputNodeResult2>(self)?;
4124         unsafe {
4125             let mut result__: ::windows::runtime::HRESULT = ::std::mem::zeroed();
4126             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HRESULT>(result__)
4127         }
4128     }
4129 }
4130 unsafe impl ::windows::runtime::RuntimeType for CreateMediaSourceAudioInputNodeResult {
4131     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.CreateMediaSourceAudioInputNodeResult;{46a658a3-53c0-4d59-9e51-cc1d1044a4c4})");
4132 }
4133 unsafe impl ::windows::runtime::Interface for CreateMediaSourceAudioInputNodeResult {
4134     type Vtable = ICreateMediaSourceAudioInputNodeResult_abi;
4135     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1185306787, 21440, 19801, [158, 81, 204, 29, 16, 68, 164, 196]);
4136 }
4137 impl ::windows::runtime::RuntimeName for CreateMediaSourceAudioInputNodeResult {
4138     const NAME: &'static str = "Windows.Media.Audio.CreateMediaSourceAudioInputNodeResult";
4139 }
4140 impl ::std::convert::From<CreateMediaSourceAudioInputNodeResult> for ::windows::runtime::IUnknown {
from(value: CreateMediaSourceAudioInputNodeResult) -> Self4141     fn from(value: CreateMediaSourceAudioInputNodeResult) -> Self {
4142         unsafe { ::std::mem::transmute(value) }
4143     }
4144 }
4145 impl ::std::convert::From<&CreateMediaSourceAudioInputNodeResult> for ::windows::runtime::IUnknown {
from(value: &CreateMediaSourceAudioInputNodeResult) -> Self4146     fn from(value: &CreateMediaSourceAudioInputNodeResult) -> Self {
4147         ::std::convert::From::from(::std::clone::Clone::clone(value))
4148     }
4149 }
4150 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for CreateMediaSourceAudioInputNodeResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4151     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4152         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4153     }
4154 }
4155 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &CreateMediaSourceAudioInputNodeResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4156     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4157         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4158     }
4159 }
4160 impl ::std::convert::From<CreateMediaSourceAudioInputNodeResult> for ::windows::runtime::IInspectable {
from(value: CreateMediaSourceAudioInputNodeResult) -> Self4161     fn from(value: CreateMediaSourceAudioInputNodeResult) -> Self {
4162         value.0
4163     }
4164 }
4165 impl ::std::convert::From<&CreateMediaSourceAudioInputNodeResult> for ::windows::runtime::IInspectable {
from(value: &CreateMediaSourceAudioInputNodeResult) -> Self4166     fn from(value: &CreateMediaSourceAudioInputNodeResult) -> Self {
4167         value.0.clone()
4168     }
4169 }
4170 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for CreateMediaSourceAudioInputNodeResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>4171     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
4172         ::windows::runtime::Param::Owned(self.0)
4173     }
4174 }
4175 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a CreateMediaSourceAudioInputNodeResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>4176     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
4177         ::windows::runtime::Param::Borrowed(&self.0)
4178     }
4179 }
4180 unsafe impl ::std::marker::Send for CreateMediaSourceAudioInputNodeResult {}
4181 unsafe impl ::std::marker::Sync for CreateMediaSourceAudioInputNodeResult {}
4182 #[repr(transparent)]
4183 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4184 pub struct EchoEffectDefinition(::windows::runtime::IInspectable);
4185 impl EchoEffectDefinition {
SetWetDryMix(&self, value: f64) -> ::windows::runtime::Result<()>4186     pub fn SetWetDryMix(&self, value: f64) -> ::windows::runtime::Result<()> {
4187         let this = self;
4188         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), value).ok() }
4189     }
WetDryMix(&self) -> ::windows::runtime::Result<f64>4190     pub fn WetDryMix(&self) -> ::windows::runtime::Result<f64> {
4191         let this = self;
4192         unsafe {
4193             let mut result__: f64 = ::std::mem::zeroed();
4194             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
4195         }
4196     }
SetFeedback(&self, value: f64) -> ::windows::runtime::Result<()>4197     pub fn SetFeedback(&self, value: f64) -> ::windows::runtime::Result<()> {
4198         let this = self;
4199         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), value).ok() }
4200     }
Feedback(&self) -> ::windows::runtime::Result<f64>4201     pub fn Feedback(&self) -> ::windows::runtime::Result<f64> {
4202         let this = self;
4203         unsafe {
4204             let mut result__: f64 = ::std::mem::zeroed();
4205             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
4206         }
4207     }
SetDelay(&self, value: f64) -> ::windows::runtime::Result<()>4208     pub fn SetDelay(&self, value: f64) -> ::windows::runtime::Result<()> {
4209         let this = self;
4210         unsafe { (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), value).ok() }
4211     }
Delay(&self) -> ::windows::runtime::Result<f64>4212     pub fn Delay(&self) -> ::windows::runtime::Result<f64> {
4213         let this = self;
4214         unsafe {
4215             let mut result__: f64 = ::std::mem::zeroed();
4216             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
4217         }
4218     }
4219     #[cfg(feature = "Media_Effects")]
ActivatableClassId(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>4220     pub fn ActivatableClassId(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
4221         let this = &::windows::runtime::Interface::cast::<super::Effects::IAudioEffectDefinition>(self)?;
4222         unsafe {
4223             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
4224             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
4225         }
4226     }
4227     #[cfg(all(feature = "Foundation_Collections", feature = "Media_Effects"))]
Properties(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IPropertySet>4228     pub fn Properties(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IPropertySet> {
4229         let this = &::windows::runtime::Interface::cast::<super::Effects::IAudioEffectDefinition>(self)?;
4230         unsafe {
4231             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
4232             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IPropertySet>(result__)
4233         }
4234     }
Create<'a, Param0: ::windows::runtime::IntoParam<'a, AudioGraph>>(audiograph: Param0) -> ::windows::runtime::Result<EchoEffectDefinition>4235     pub fn Create<'a, Param0: ::windows::runtime::IntoParam<'a, AudioGraph>>(audiograph: Param0) -> ::windows::runtime::Result<EchoEffectDefinition> {
4236         Self::IEchoEffectDefinitionFactory(|this| unsafe {
4237             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
4238             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), audiograph.into_param().abi(), &mut result__).from_abi::<EchoEffectDefinition>(result__)
4239         })
4240     }
IEchoEffectDefinitionFactory<R, F: FnOnce(&IEchoEffectDefinitionFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>4241     pub fn IEchoEffectDefinitionFactory<R, F: FnOnce(&IEchoEffectDefinitionFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
4242         static mut SHARED: ::windows::runtime::FactoryCache<EchoEffectDefinition, IEchoEffectDefinitionFactory> = ::windows::runtime::FactoryCache::new();
4243         unsafe { SHARED.call(callback) }
4244     }
4245 }
4246 unsafe impl ::windows::runtime::RuntimeType for EchoEffectDefinition {
4247     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.EchoEffectDefinition;{0e4d3faa-36b8-4c91-b9da-11f44a8a6610})");
4248 }
4249 unsafe impl ::windows::runtime::Interface for EchoEffectDefinition {
4250     type Vtable = IEchoEffectDefinition_abi;
4251     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(239943594, 14008, 19601, [185, 218, 17, 244, 74, 138, 102, 16]);
4252 }
4253 impl ::windows::runtime::RuntimeName for EchoEffectDefinition {
4254     const NAME: &'static str = "Windows.Media.Audio.EchoEffectDefinition";
4255 }
4256 impl ::std::convert::From<EchoEffectDefinition> for ::windows::runtime::IUnknown {
from(value: EchoEffectDefinition) -> Self4257     fn from(value: EchoEffectDefinition) -> Self {
4258         unsafe { ::std::mem::transmute(value) }
4259     }
4260 }
4261 impl ::std::convert::From<&EchoEffectDefinition> for ::windows::runtime::IUnknown {
from(value: &EchoEffectDefinition) -> Self4262     fn from(value: &EchoEffectDefinition) -> Self {
4263         ::std::convert::From::from(::std::clone::Clone::clone(value))
4264     }
4265 }
4266 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for EchoEffectDefinition {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4267     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4268         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4269     }
4270 }
4271 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &EchoEffectDefinition {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4272     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4273         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4274     }
4275 }
4276 impl ::std::convert::From<EchoEffectDefinition> for ::windows::runtime::IInspectable {
from(value: EchoEffectDefinition) -> Self4277     fn from(value: EchoEffectDefinition) -> Self {
4278         value.0
4279     }
4280 }
4281 impl ::std::convert::From<&EchoEffectDefinition> for ::windows::runtime::IInspectable {
from(value: &EchoEffectDefinition) -> Self4282     fn from(value: &EchoEffectDefinition) -> Self {
4283         value.0.clone()
4284     }
4285 }
4286 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for EchoEffectDefinition {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>4287     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
4288         ::windows::runtime::Param::Owned(self.0)
4289     }
4290 }
4291 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a EchoEffectDefinition {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>4292     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
4293         ::windows::runtime::Param::Borrowed(&self.0)
4294     }
4295 }
4296 #[cfg(feature = "Media_Effects")]
4297 impl ::std::convert::TryFrom<EchoEffectDefinition> for super::Effects::IAudioEffectDefinition {
4298     type Error = ::windows::runtime::Error;
try_from(value: EchoEffectDefinition) -> ::windows::runtime::Result<Self>4299     fn try_from(value: EchoEffectDefinition) -> ::windows::runtime::Result<Self> {
4300         ::std::convert::TryFrom::try_from(&value)
4301     }
4302 }
4303 #[cfg(feature = "Media_Effects")]
4304 impl ::std::convert::TryFrom<&EchoEffectDefinition> for super::Effects::IAudioEffectDefinition {
4305     type Error = ::windows::runtime::Error;
try_from(value: &EchoEffectDefinition) -> ::windows::runtime::Result<Self>4306     fn try_from(value: &EchoEffectDefinition) -> ::windows::runtime::Result<Self> {
4307         ::windows::runtime::Interface::cast(value)
4308     }
4309 }
4310 #[cfg(feature = "Media_Effects")]
4311 impl<'a> ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition> for EchoEffectDefinition {
into_param(self) -> ::windows::runtime::Param<'a, super::Effects::IAudioEffectDefinition>4312     fn into_param(self) -> ::windows::runtime::Param<'a, super::Effects::IAudioEffectDefinition> {
4313         ::windows::runtime::IntoParam::into_param(&self)
4314     }
4315 }
4316 #[cfg(feature = "Media_Effects")]
4317 impl<'a> ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition> for &EchoEffectDefinition {
into_param(self) -> ::windows::runtime::Param<'a, super::Effects::IAudioEffectDefinition>4318     fn into_param(self) -> ::windows::runtime::Param<'a, super::Effects::IAudioEffectDefinition> {
4319         ::std::convert::TryInto::<super::Effects::IAudioEffectDefinition>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
4320     }
4321 }
4322 unsafe impl ::std::marker::Send for EchoEffectDefinition {}
4323 unsafe impl ::std::marker::Sync for EchoEffectDefinition {}
4324 #[repr(transparent)]
4325 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4326 pub struct EqualizerBand(::windows::runtime::IInspectable);
4327 impl EqualizerBand {
Bandwidth(&self) -> ::windows::runtime::Result<f64>4328     pub fn Bandwidth(&self) -> ::windows::runtime::Result<f64> {
4329         let this = self;
4330         unsafe {
4331             let mut result__: f64 = ::std::mem::zeroed();
4332             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
4333         }
4334     }
SetBandwidth(&self, value: f64) -> ::windows::runtime::Result<()>4335     pub fn SetBandwidth(&self, value: f64) -> ::windows::runtime::Result<()> {
4336         let this = self;
4337         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() }
4338     }
FrequencyCenter(&self) -> ::windows::runtime::Result<f64>4339     pub fn FrequencyCenter(&self) -> ::windows::runtime::Result<f64> {
4340         let this = self;
4341         unsafe {
4342             let mut result__: f64 = ::std::mem::zeroed();
4343             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
4344         }
4345     }
SetFrequencyCenter(&self, value: f64) -> ::windows::runtime::Result<()>4346     pub fn SetFrequencyCenter(&self, value: f64) -> ::windows::runtime::Result<()> {
4347         let this = self;
4348         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), value).ok() }
4349     }
Gain(&self) -> ::windows::runtime::Result<f64>4350     pub fn Gain(&self) -> ::windows::runtime::Result<f64> {
4351         let this = self;
4352         unsafe {
4353             let mut result__: f64 = ::std::mem::zeroed();
4354             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
4355         }
4356     }
SetGain(&self, value: f64) -> ::windows::runtime::Result<()>4357     pub fn SetGain(&self, value: f64) -> ::windows::runtime::Result<()> {
4358         let this = self;
4359         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value).ok() }
4360     }
4361 }
4362 unsafe impl ::windows::runtime::RuntimeType for EqualizerBand {
4363     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.EqualizerBand;{c00a5a6a-262d-4b85-9bb7-43280b62ed0c})");
4364 }
4365 unsafe impl ::windows::runtime::Interface for EqualizerBand {
4366     type Vtable = IEqualizerBand_abi;
4367     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3221903978, 9773, 19333, [155, 183, 67, 40, 11, 98, 237, 12]);
4368 }
4369 impl ::windows::runtime::RuntimeName for EqualizerBand {
4370     const NAME: &'static str = "Windows.Media.Audio.EqualizerBand";
4371 }
4372 impl ::std::convert::From<EqualizerBand> for ::windows::runtime::IUnknown {
from(value: EqualizerBand) -> Self4373     fn from(value: EqualizerBand) -> Self {
4374         unsafe { ::std::mem::transmute(value) }
4375     }
4376 }
4377 impl ::std::convert::From<&EqualizerBand> for ::windows::runtime::IUnknown {
from(value: &EqualizerBand) -> Self4378     fn from(value: &EqualizerBand) -> Self {
4379         ::std::convert::From::from(::std::clone::Clone::clone(value))
4380     }
4381 }
4382 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for EqualizerBand {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4383     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4384         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4385     }
4386 }
4387 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &EqualizerBand {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4388     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4389         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4390     }
4391 }
4392 impl ::std::convert::From<EqualizerBand> for ::windows::runtime::IInspectable {
from(value: EqualizerBand) -> Self4393     fn from(value: EqualizerBand) -> Self {
4394         value.0
4395     }
4396 }
4397 impl ::std::convert::From<&EqualizerBand> for ::windows::runtime::IInspectable {
from(value: &EqualizerBand) -> Self4398     fn from(value: &EqualizerBand) -> Self {
4399         value.0.clone()
4400     }
4401 }
4402 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for EqualizerBand {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>4403     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
4404         ::windows::runtime::Param::Owned(self.0)
4405     }
4406 }
4407 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a EqualizerBand {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>4408     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
4409         ::windows::runtime::Param::Borrowed(&self.0)
4410     }
4411 }
4412 unsafe impl ::std::marker::Send for EqualizerBand {}
4413 unsafe impl ::std::marker::Sync for EqualizerBand {}
4414 #[repr(transparent)]
4415 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4416 pub struct EqualizerEffectDefinition(::windows::runtime::IInspectable);
4417 impl EqualizerEffectDefinition {
4418     #[cfg(feature = "Foundation_Collections")]
Bands(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<EqualizerBand>>4419     pub fn Bands(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<EqualizerBand>> {
4420         let this = self;
4421         unsafe {
4422             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
4423             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<EqualizerBand>>(result__)
4424         }
4425     }
4426     #[cfg(feature = "Media_Effects")]
ActivatableClassId(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>4427     pub fn ActivatableClassId(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
4428         let this = &::windows::runtime::Interface::cast::<super::Effects::IAudioEffectDefinition>(self)?;
4429         unsafe {
4430             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
4431             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
4432         }
4433     }
4434     #[cfg(all(feature = "Foundation_Collections", feature = "Media_Effects"))]
Properties(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IPropertySet>4435     pub fn Properties(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IPropertySet> {
4436         let this = &::windows::runtime::Interface::cast::<super::Effects::IAudioEffectDefinition>(self)?;
4437         unsafe {
4438             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
4439             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IPropertySet>(result__)
4440         }
4441     }
Create<'a, Param0: ::windows::runtime::IntoParam<'a, AudioGraph>>(audiograph: Param0) -> ::windows::runtime::Result<EqualizerEffectDefinition>4442     pub fn Create<'a, Param0: ::windows::runtime::IntoParam<'a, AudioGraph>>(audiograph: Param0) -> ::windows::runtime::Result<EqualizerEffectDefinition> {
4443         Self::IEqualizerEffectDefinitionFactory(|this| unsafe {
4444             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
4445             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), audiograph.into_param().abi(), &mut result__).from_abi::<EqualizerEffectDefinition>(result__)
4446         })
4447     }
IEqualizerEffectDefinitionFactory<R, F: FnOnce(&IEqualizerEffectDefinitionFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>4448     pub fn IEqualizerEffectDefinitionFactory<R, F: FnOnce(&IEqualizerEffectDefinitionFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
4449         static mut SHARED: ::windows::runtime::FactoryCache<EqualizerEffectDefinition, IEqualizerEffectDefinitionFactory> = ::windows::runtime::FactoryCache::new();
4450         unsafe { SHARED.call(callback) }
4451     }
4452 }
4453 unsafe impl ::windows::runtime::RuntimeType for EqualizerEffectDefinition {
4454     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.EqualizerEffectDefinition;{023f6f1f-83fe-449a-a822-c696442d16b0})");
4455 }
4456 unsafe impl ::windows::runtime::Interface for EqualizerEffectDefinition {
4457     type Vtable = IEqualizerEffectDefinition_abi;
4458     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(37711647, 33790, 17562, [168, 34, 198, 150, 68, 45, 22, 176]);
4459 }
4460 impl ::windows::runtime::RuntimeName for EqualizerEffectDefinition {
4461     const NAME: &'static str = "Windows.Media.Audio.EqualizerEffectDefinition";
4462 }
4463 impl ::std::convert::From<EqualizerEffectDefinition> for ::windows::runtime::IUnknown {
from(value: EqualizerEffectDefinition) -> Self4464     fn from(value: EqualizerEffectDefinition) -> Self {
4465         unsafe { ::std::mem::transmute(value) }
4466     }
4467 }
4468 impl ::std::convert::From<&EqualizerEffectDefinition> for ::windows::runtime::IUnknown {
from(value: &EqualizerEffectDefinition) -> Self4469     fn from(value: &EqualizerEffectDefinition) -> Self {
4470         ::std::convert::From::from(::std::clone::Clone::clone(value))
4471     }
4472 }
4473 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for EqualizerEffectDefinition {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4474     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4475         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4476     }
4477 }
4478 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &EqualizerEffectDefinition {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4479     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4480         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4481     }
4482 }
4483 impl ::std::convert::From<EqualizerEffectDefinition> for ::windows::runtime::IInspectable {
from(value: EqualizerEffectDefinition) -> Self4484     fn from(value: EqualizerEffectDefinition) -> Self {
4485         value.0
4486     }
4487 }
4488 impl ::std::convert::From<&EqualizerEffectDefinition> for ::windows::runtime::IInspectable {
from(value: &EqualizerEffectDefinition) -> Self4489     fn from(value: &EqualizerEffectDefinition) -> Self {
4490         value.0.clone()
4491     }
4492 }
4493 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for EqualizerEffectDefinition {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>4494     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
4495         ::windows::runtime::Param::Owned(self.0)
4496     }
4497 }
4498 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a EqualizerEffectDefinition {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>4499     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
4500         ::windows::runtime::Param::Borrowed(&self.0)
4501     }
4502 }
4503 #[cfg(feature = "Media_Effects")]
4504 impl ::std::convert::TryFrom<EqualizerEffectDefinition> for super::Effects::IAudioEffectDefinition {
4505     type Error = ::windows::runtime::Error;
try_from(value: EqualizerEffectDefinition) -> ::windows::runtime::Result<Self>4506     fn try_from(value: EqualizerEffectDefinition) -> ::windows::runtime::Result<Self> {
4507         ::std::convert::TryFrom::try_from(&value)
4508     }
4509 }
4510 #[cfg(feature = "Media_Effects")]
4511 impl ::std::convert::TryFrom<&EqualizerEffectDefinition> for super::Effects::IAudioEffectDefinition {
4512     type Error = ::windows::runtime::Error;
try_from(value: &EqualizerEffectDefinition) -> ::windows::runtime::Result<Self>4513     fn try_from(value: &EqualizerEffectDefinition) -> ::windows::runtime::Result<Self> {
4514         ::windows::runtime::Interface::cast(value)
4515     }
4516 }
4517 #[cfg(feature = "Media_Effects")]
4518 impl<'a> ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition> for EqualizerEffectDefinition {
into_param(self) -> ::windows::runtime::Param<'a, super::Effects::IAudioEffectDefinition>4519     fn into_param(self) -> ::windows::runtime::Param<'a, super::Effects::IAudioEffectDefinition> {
4520         ::windows::runtime::IntoParam::into_param(&self)
4521     }
4522 }
4523 #[cfg(feature = "Media_Effects")]
4524 impl<'a> ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition> for &EqualizerEffectDefinition {
into_param(self) -> ::windows::runtime::Param<'a, super::Effects::IAudioEffectDefinition>4525     fn into_param(self) -> ::windows::runtime::Param<'a, super::Effects::IAudioEffectDefinition> {
4526         ::std::convert::TryInto::<super::Effects::IAudioEffectDefinition>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
4527     }
4528 }
4529 unsafe impl ::std::marker::Send for EqualizerEffectDefinition {}
4530 unsafe impl ::std::marker::Sync for EqualizerEffectDefinition {}
4531 #[repr(transparent)]
4532 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4533 pub struct FrameInputNodeQuantumStartedEventArgs(::windows::runtime::IInspectable);
4534 impl FrameInputNodeQuantumStartedEventArgs {
RequiredSamples(&self) -> ::windows::runtime::Result<i32>4535     pub fn RequiredSamples(&self) -> ::windows::runtime::Result<i32> {
4536         let this = self;
4537         unsafe {
4538             let mut result__: i32 = ::std::mem::zeroed();
4539             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
4540         }
4541     }
4542 }
4543 unsafe impl ::windows::runtime::RuntimeType for FrameInputNodeQuantumStartedEventArgs {
4544     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.FrameInputNodeQuantumStartedEventArgs;{3d9bd498-a306-4f06-bd9f-e9efc8226304})");
4545 }
4546 unsafe impl ::windows::runtime::Interface for FrameInputNodeQuantumStartedEventArgs {
4547     type Vtable = IFrameInputNodeQuantumStartedEventArgs_abi;
4548     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1033622680, 41734, 20230, [189, 159, 233, 239, 200, 34, 99, 4]);
4549 }
4550 impl ::windows::runtime::RuntimeName for FrameInputNodeQuantumStartedEventArgs {
4551     const NAME: &'static str = "Windows.Media.Audio.FrameInputNodeQuantumStartedEventArgs";
4552 }
4553 impl ::std::convert::From<FrameInputNodeQuantumStartedEventArgs> for ::windows::runtime::IUnknown {
from(value: FrameInputNodeQuantumStartedEventArgs) -> Self4554     fn from(value: FrameInputNodeQuantumStartedEventArgs) -> Self {
4555         unsafe { ::std::mem::transmute(value) }
4556     }
4557 }
4558 impl ::std::convert::From<&FrameInputNodeQuantumStartedEventArgs> for ::windows::runtime::IUnknown {
from(value: &FrameInputNodeQuantumStartedEventArgs) -> Self4559     fn from(value: &FrameInputNodeQuantumStartedEventArgs) -> Self {
4560         ::std::convert::From::from(::std::clone::Clone::clone(value))
4561     }
4562 }
4563 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for FrameInputNodeQuantumStartedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4564     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4565         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4566     }
4567 }
4568 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &FrameInputNodeQuantumStartedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4569     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4570         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4571     }
4572 }
4573 impl ::std::convert::From<FrameInputNodeQuantumStartedEventArgs> for ::windows::runtime::IInspectable {
from(value: FrameInputNodeQuantumStartedEventArgs) -> Self4574     fn from(value: FrameInputNodeQuantumStartedEventArgs) -> Self {
4575         value.0
4576     }
4577 }
4578 impl ::std::convert::From<&FrameInputNodeQuantumStartedEventArgs> for ::windows::runtime::IInspectable {
from(value: &FrameInputNodeQuantumStartedEventArgs) -> Self4579     fn from(value: &FrameInputNodeQuantumStartedEventArgs) -> Self {
4580         value.0.clone()
4581     }
4582 }
4583 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for FrameInputNodeQuantumStartedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>4584     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
4585         ::windows::runtime::Param::Owned(self.0)
4586     }
4587 }
4588 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a FrameInputNodeQuantumStartedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>4589     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
4590         ::windows::runtime::Param::Borrowed(&self.0)
4591     }
4592 }
4593 unsafe impl ::std::marker::Send for FrameInputNodeQuantumStartedEventArgs {}
4594 unsafe impl ::std::marker::Sync for FrameInputNodeQuantumStartedEventArgs {}
4595 #[repr(transparent)]
4596 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4597 #[doc(hidden)]
4598 pub struct IAudioDeviceInputNode(::windows::runtime::IInspectable);
4599 unsafe impl ::windows::runtime::Interface for IAudioDeviceInputNode {
4600     type Vtable = IAudioDeviceInputNode_abi;
4601     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2954587105, 28494, 18914, [172, 1, 85, 157, 98, 190, 179, 169]);
4602 }
4603 #[repr(C)]
4604 #[doc(hidden)]
4605 pub struct IAudioDeviceInputNode_abi(
4606     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4607     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4608     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4609     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
4610     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4611     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
4612     #[cfg(feature = "Devices_Enumeration")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4613     #[cfg(not(feature = "Devices_Enumeration"))] usize,
4614 );
4615 #[repr(transparent)]
4616 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4617 #[doc(hidden)]
4618 pub struct IAudioDeviceOutputNode(::windows::runtime::IInspectable);
4619 unsafe impl ::windows::runtime::Interface for IAudioDeviceOutputNode {
4620     type Vtable = IAudioDeviceOutputNode_abi;
4621     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(909040639, 65308, 17460, [158, 15, 189, 46, 245, 34, 172, 130]);
4622 }
4623 #[repr(C)]
4624 #[doc(hidden)]
4625 pub struct IAudioDeviceOutputNode_abi(
4626     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4627     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4628     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4629     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
4630     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4631     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
4632     #[cfg(feature = "Devices_Enumeration")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4633     #[cfg(not(feature = "Devices_Enumeration"))] usize,
4634 );
4635 #[repr(transparent)]
4636 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4637 #[doc(hidden)]
4638 pub struct IAudioFileInputNode(::windows::runtime::IInspectable);
4639 unsafe impl ::windows::runtime::Interface for IAudioFileInputNode {
4640     type Vtable = IAudioFileInputNode_abi;
4641     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2421909448, 28517, 19668, [136, 144, 70, 148, 132, 60, 39, 109]);
4642 }
4643 #[repr(C)]
4644 #[doc(hidden)]
4645 pub struct IAudioFileInputNode_abi(
4646     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4647     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4648     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4649     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
4650     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4651     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
4652     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f64) -> ::windows::runtime::HRESULT,
4653     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
4654     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::TimeSpan) -> ::windows::runtime::HRESULT,
4655     #[cfg(not(feature = "Foundation"))] usize,
4656     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, position: super::super::Foundation::TimeSpan) -> ::windows::runtime::HRESULT,
4657     #[cfg(not(feature = "Foundation"))] usize,
4658     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4659     #[cfg(not(feature = "Foundation"))] usize,
4660     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4661     #[cfg(not(feature = "Foundation"))] usize,
4662     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4663     #[cfg(not(feature = "Foundation"))] usize,
4664     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4665     #[cfg(not(feature = "Foundation"))] usize,
4666     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4667     #[cfg(not(feature = "Foundation"))] usize,
4668     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4669     #[cfg(not(feature = "Foundation"))] usize,
4670     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::TimeSpan) -> ::windows::runtime::HRESULT,
4671     #[cfg(not(feature = "Foundation"))] usize,
4672     #[cfg(feature = "Storage")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4673     #[cfg(not(feature = "Storage"))] usize,
4674     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, handler: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
4675     #[cfg(not(feature = "Foundation"))] usize,
4676     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, token: super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
4677     #[cfg(not(feature = "Foundation"))] usize,
4678 );
4679 #[repr(transparent)]
4680 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4681 #[doc(hidden)]
4682 pub struct IAudioFileOutputNode(::windows::runtime::IInspectable);
4683 unsafe impl ::windows::runtime::Interface for IAudioFileOutputNode {
4684     type Vtable = IAudioFileOutputNode_abi;
4685     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1356863872, 20838, 16531, [128, 248, 173, 160, 0, 137, 233, 207]);
4686 }
4687 #[repr(C)]
4688 #[doc(hidden)]
4689 pub struct IAudioFileOutputNode_abi(
4690     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4691     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4692     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4693     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
4694     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4695     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
4696     #[cfg(feature = "Storage")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4697     #[cfg(not(feature = "Storage"))] usize,
4698     #[cfg(feature = "Media_MediaProperties")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4699     #[cfg(not(feature = "Media_MediaProperties"))] usize,
4700     #[cfg(all(feature = "Foundation", feature = "Media_Transcoding"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4701     #[cfg(not(all(feature = "Foundation", feature = "Media_Transcoding")))] usize,
4702 );
4703 #[repr(transparent)]
4704 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4705 #[doc(hidden)]
4706 pub struct IAudioFrameCompletedEventArgs(::windows::runtime::IInspectable);
4707 unsafe impl ::windows::runtime::Interface for IAudioFrameCompletedEventArgs {
4708     type Vtable = IAudioFrameCompletedEventArgs_abi;
4709     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3699147422, 520, 17668, [165, 168, 240, 242, 104, 146, 10, 101]);
4710 }
4711 #[repr(C)]
4712 #[doc(hidden)]
4713 pub struct IAudioFrameCompletedEventArgs_abi(
4714     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4715     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4716     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4717     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
4718     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4719     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
4720     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4721 );
4722 #[repr(transparent)]
4723 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4724 #[doc(hidden)]
4725 pub struct IAudioFrameInputNode(::windows::runtime::IInspectable);
4726 unsafe impl ::windows::runtime::Interface for IAudioFrameInputNode {
4727     type Vtable = IAudioFrameInputNode_abi;
4728     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(28468935, 64918, 20469, [163, 197, 210, 122, 155, 244, 66, 55]);
4729 }
4730 #[repr(C)]
4731 #[doc(hidden)]
4732 pub struct IAudioFrameInputNode_abi(
4733     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4734     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4735     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4736     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
4737     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4738     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
4739     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f64) -> ::windows::runtime::HRESULT,
4740     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
4741     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, frame: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4742     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4743     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u64) -> ::windows::runtime::HRESULT,
4744     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, handler: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
4745     #[cfg(not(feature = "Foundation"))] usize,
4746     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, token: super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
4747     #[cfg(not(feature = "Foundation"))] usize,
4748     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, handler: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
4749     #[cfg(not(feature = "Foundation"))] usize,
4750     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, token: super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
4751     #[cfg(not(feature = "Foundation"))] usize,
4752 );
4753 #[repr(transparent)]
4754 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4755 #[doc(hidden)]
4756 pub struct IAudioFrameOutputNode(::windows::runtime::IInspectable);
4757 unsafe impl ::windows::runtime::Interface for IAudioFrameOutputNode {
4758     type Vtable = IAudioFrameOutputNode_abi;
4759     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3091674907, 12953, 17909, [136, 179, 201, 209, 42, 63, 28, 200]);
4760 }
4761 #[repr(C)]
4762 #[doc(hidden)]
4763 pub struct IAudioFrameOutputNode_abi(
4764     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4765     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4766     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4767     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
4768     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4769     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
4770     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4771 );
4772 #[repr(transparent)]
4773 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4774 #[doc(hidden)]
4775 pub struct IAudioGraph(::windows::runtime::IInspectable);
4776 unsafe impl ::windows::runtime::Interface for IAudioGraph {
4777     type Vtable = IAudioGraph_abi;
4778     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(450129645, 58508, 19988, [150, 96, 44, 79, 131, 233, 205, 216]);
4779 }
4780 #[repr(C)]
4781 #[doc(hidden)]
4782 pub struct IAudioGraph_abi(
4783     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4784     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4785     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4786     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
4787     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4788     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
4789     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4790     #[cfg(feature = "Media_MediaProperties")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, encodingproperties: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4791     #[cfg(not(feature = "Media_MediaProperties"))] usize,
4792     #[cfg(all(feature = "Foundation", feature = "Media_Capture"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, category: super::Capture::MediaCategory, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4793     #[cfg(not(all(feature = "Foundation", feature = "Media_Capture")))] usize,
4794     #[cfg(all(feature = "Foundation", feature = "Media_Capture", feature = "Media_MediaProperties"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, category: super::Capture::MediaCategory, encodingproperties: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4795     #[cfg(not(all(feature = "Foundation", feature = "Media_Capture", feature = "Media_MediaProperties")))] usize,
4796     #[cfg(all(feature = "Devices_Enumeration", feature = "Foundation", feature = "Media_Capture", feature = "Media_MediaProperties"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, category: super::Capture::MediaCategory, encodingproperties: ::windows::runtime::RawPtr, device: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4797     #[cfg(not(all(feature = "Devices_Enumeration", feature = "Foundation", feature = "Media_Capture", feature = "Media_MediaProperties")))] usize,
4798     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4799     #[cfg(feature = "Media_MediaProperties")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, encodingproperties: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4800     #[cfg(not(feature = "Media_MediaProperties"))] usize,
4801     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4802     #[cfg(not(feature = "Foundation"))] usize,
4803     #[cfg(all(feature = "Foundation", feature = "Storage"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, file: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4804     #[cfg(not(all(feature = "Foundation", feature = "Storage")))] usize,
4805     #[cfg(all(feature = "Foundation", feature = "Storage"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, file: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4806     #[cfg(not(all(feature = "Foundation", feature = "Storage")))] usize,
4807     #[cfg(all(feature = "Foundation", feature = "Media_MediaProperties", feature = "Storage"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, file: ::windows::runtime::RawPtr, fileencodingprofile: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4808     #[cfg(not(all(feature = "Foundation", feature = "Media_MediaProperties", feature = "Storage")))] usize,
4809     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4810     #[cfg(feature = "Media_MediaProperties")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, encodingproperties: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4811     #[cfg(not(feature = "Media_MediaProperties"))] usize,
4812     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4813     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4814     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4815     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, handler: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
4816     #[cfg(not(feature = "Foundation"))] usize,
4817     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, token: super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
4818     #[cfg(not(feature = "Foundation"))] usize,
4819     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, handler: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
4820     #[cfg(not(feature = "Foundation"))] usize,
4821     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, token: super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
4822     #[cfg(not(feature = "Foundation"))] usize,
4823     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, handler: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
4824     #[cfg(not(feature = "Foundation"))] usize,
4825     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, token: super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
4826     #[cfg(not(feature = "Foundation"))] usize,
4827     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u64) -> ::windows::runtime::HRESULT,
4828     #[cfg(feature = "Media_MediaProperties")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4829     #[cfg(not(feature = "Media_MediaProperties"))] usize,
4830     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut i32) -> ::windows::runtime::HRESULT,
4831     #[cfg(feature = "Devices_Enumeration")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4832     #[cfg(not(feature = "Devices_Enumeration"))] usize,
4833     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::AudioProcessing) -> ::windows::runtime::HRESULT,
4834     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut i32) -> ::windows::runtime::HRESULT,
4835 );
4836 #[repr(transparent)]
4837 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4838 #[doc(hidden)]
4839 pub struct IAudioGraph2(::windows::runtime::IInspectable);
4840 unsafe impl ::windows::runtime::Interface for IAudioGraph2 {
4841     type Vtable = IAudioGraph2_abi;
4842     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1313618901, 20417, 17910, [169, 71, 60, 211, 143, 79, 216, 57]);
4843 }
4844 #[repr(C)]
4845 #[doc(hidden)]
4846 pub struct IAudioGraph2_abi(
4847     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4848     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4849     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4850     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
4851     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4852     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
4853     #[cfg(feature = "Media_MediaProperties")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, encodingproperties: ::windows::runtime::RawPtr, emitter: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4854     #[cfg(not(feature = "Media_MediaProperties"))] usize,
4855     #[cfg(all(feature = "Devices_Enumeration", feature = "Foundation", feature = "Media_Capture", feature = "Media_MediaProperties"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, category: super::Capture::MediaCategory, encodingproperties: ::windows::runtime::RawPtr, device: ::windows::runtime::RawPtr, emitter: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4856     #[cfg(not(all(feature = "Devices_Enumeration", feature = "Foundation", feature = "Media_Capture", feature = "Media_MediaProperties")))] usize,
4857     #[cfg(all(feature = "Foundation", feature = "Storage"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, file: ::windows::runtime::RawPtr, emitter: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4858     #[cfg(not(all(feature = "Foundation", feature = "Storage")))] usize,
4859     #[cfg(feature = "Media_MediaProperties")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, encodingproperties: ::windows::runtime::RawPtr, emitter: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4860     #[cfg(not(feature = "Media_MediaProperties"))] usize,
4861     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4862     #[cfg(not(feature = "Foundation"))] usize,
4863 );
4864 #[repr(transparent)]
4865 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4866 #[doc(hidden)]
4867 pub struct IAudioGraph3(::windows::runtime::IInspectable);
4868 unsafe impl ::windows::runtime::Interface for IAudioGraph3 {
4869     type Vtable = IAudioGraph3_abi;
4870     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3721209262, 4485, 17063, [131, 29, 106, 155, 15, 200, 104, 32]);
4871 }
4872 #[repr(C)]
4873 #[doc(hidden)]
4874 pub struct IAudioGraph3_abi(
4875     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4876     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4877     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4878     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
4879     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4880     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
4881     #[cfg(all(feature = "Foundation", feature = "Media_Core"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, mediasource: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4882     #[cfg(not(all(feature = "Foundation", feature = "Media_Core")))] usize,
4883     #[cfg(all(feature = "Foundation", feature = "Media_Core"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, mediasource: ::windows::runtime::RawPtr, emitter: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4884     #[cfg(not(all(feature = "Foundation", feature = "Media_Core")))] usize,
4885 );
4886 #[repr(transparent)]
4887 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4888 #[doc(hidden)]
4889 pub struct IAudioGraphConnection(::windows::runtime::IInspectable);
4890 unsafe impl ::windows::runtime::Interface for IAudioGraphConnection {
4891     type Vtable = IAudioGraphConnection_abi;
4892     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1982886125, 53326, 20396, [178, 51, 96, 11, 66, 237, 212, 105]);
4893 }
4894 #[repr(C)]
4895 #[doc(hidden)]
4896 pub struct IAudioGraphConnection_abi(
4897     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4898     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4899     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4900     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
4901     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4902     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
4903     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4904     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f64) -> ::windows::runtime::HRESULT,
4905     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
4906 );
4907 #[repr(transparent)]
4908 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4909 #[doc(hidden)]
4910 pub struct IAudioGraphSettings(::windows::runtime::IInspectable);
4911 unsafe impl ::windows::runtime::Interface for IAudioGraphSettings {
4912     type Vtable = IAudioGraphSettings_abi;
4913     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(492397695, 59134, 17960, [132, 248, 157, 139, 219, 162, 87, 133]);
4914 }
4915 #[repr(C)]
4916 #[doc(hidden)]
4917 pub struct IAudioGraphSettings_abi(
4918     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4919     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4920     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4921     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
4922     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4923     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
4924     #[cfg(feature = "Media_MediaProperties")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4925     #[cfg(not(feature = "Media_MediaProperties"))] usize,
4926     #[cfg(feature = "Media_MediaProperties")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4927     #[cfg(not(feature = "Media_MediaProperties"))] usize,
4928     #[cfg(feature = "Devices_Enumeration")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4929     #[cfg(not(feature = "Devices_Enumeration"))] usize,
4930     #[cfg(feature = "Devices_Enumeration")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4931     #[cfg(not(feature = "Devices_Enumeration"))] usize,
4932     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut QuantumSizeSelectionMode) -> ::windows::runtime::HRESULT,
4933     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: QuantumSizeSelectionMode) -> ::windows::runtime::HRESULT,
4934     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut i32) -> ::windows::runtime::HRESULT,
4935     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: i32) -> ::windows::runtime::HRESULT,
4936     #[cfg(feature = "Media_Render")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::Render::AudioRenderCategory) -> ::windows::runtime::HRESULT,
4937     #[cfg(not(feature = "Media_Render"))] usize,
4938     #[cfg(feature = "Media_Render")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: super::Render::AudioRenderCategory) -> ::windows::runtime::HRESULT,
4939     #[cfg(not(feature = "Media_Render"))] usize,
4940     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::AudioProcessing) -> ::windows::runtime::HRESULT,
4941     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: super::AudioProcessing) -> ::windows::runtime::HRESULT,
4942 );
4943 #[repr(transparent)]
4944 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4945 #[doc(hidden)]
4946 pub struct IAudioGraphSettings2(::windows::runtime::IInspectable);
4947 unsafe impl ::windows::runtime::Interface for IAudioGraphSettings2 {
4948     type Vtable = IAudioGraphSettings2_abi;
4949     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1922144135, 19883, 18147, [180, 201, 216, 225, 162, 99, 96, 98]);
4950 }
4951 #[repr(C)]
4952 #[doc(hidden)]
4953 pub struct IAudioGraphSettings2_abi(
4954     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4955     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4956     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4957     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
4958     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4959     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
4960     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f64) -> ::windows::runtime::HRESULT,
4961     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
4962 );
4963 #[repr(transparent)]
4964 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4965 #[doc(hidden)]
4966 pub struct IAudioGraphSettingsFactory(::windows::runtime::IInspectable);
4967 unsafe impl ::windows::runtime::Interface for IAudioGraphSettingsFactory {
4968     type Vtable = IAudioGraphSettingsFactory_abi;
4969     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2782469318, 49899, 19041, [162, 20, 29, 102, 215, 95, 131, 218]);
4970 }
4971 #[repr(C)]
4972 #[doc(hidden)]
4973 pub struct IAudioGraphSettingsFactory_abi(
4974     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4975     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4976     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4977     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
4978     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4979     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
4980     #[cfg(feature = "Media_Render")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, audiorendercategory: super::Render::AudioRenderCategory, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4981     #[cfg(not(feature = "Media_Render"))] usize,
4982 );
4983 #[repr(transparent)]
4984 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4985 #[doc(hidden)]
4986 pub struct IAudioGraphStatics(::windows::runtime::IInspectable);
4987 unsafe impl ::windows::runtime::Interface for IAudioGraphStatics {
4988     type Vtable = IAudioGraphStatics_abi;
4989     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1995190578, 57689, 19127, [168, 42, 23, 190, 180, 179, 30, 148]);
4990 }
4991 #[repr(C)]
4992 #[doc(hidden)]
4993 pub struct IAudioGraphStatics_abi(
4994     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4995     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4996     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4997     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
4998     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4999     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
5000     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, settings: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5001     #[cfg(not(feature = "Foundation"))] usize,
5002 );
5003 #[repr(transparent)]
5004 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
5005 #[doc(hidden)]
5006 pub struct IAudioGraphUnrecoverableErrorOccurredEventArgs(::windows::runtime::IInspectable);
5007 unsafe impl ::windows::runtime::Interface for IAudioGraphUnrecoverableErrorOccurredEventArgs {
5008     type Vtable = IAudioGraphUnrecoverableErrorOccurredEventArgs_abi;
5009     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3285830624, 16374, 20403, [178, 98, 80, 212, 53, 197, 84, 35]);
5010 }
5011 #[repr(C)]
5012 #[doc(hidden)]
5013 pub struct IAudioGraphUnrecoverableErrorOccurredEventArgs_abi(
5014     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5015     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5016     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5017     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
5018     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5019     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
5020     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut AudioGraphUnrecoverableError) -> ::windows::runtime::HRESULT,
5021 );
5022 #[repr(transparent)]
5023 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
5024 pub struct IAudioInputNode(::windows::runtime::IInspectable);
5025 unsafe impl ::windows::runtime::Interface for IAudioInputNode {
5026     type Vtable = IAudioInputNode_abi;
5027     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3511156828, 33832, 18308, [183, 253, 169, 157, 70, 140, 93, 32]);
5028 }
5029 impl IAudioInputNode {
5030     #[cfg(feature = "Foundation_Collections")]
OutgoingConnections(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<AudioGraphConnection>>5031     pub fn OutgoingConnections(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<AudioGraphConnection>> {
5032         let this = self;
5033         unsafe {
5034             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
5035             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<AudioGraphConnection>>(result__)
5036         }
5037     }
AddOutgoingConnection<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0) -> ::windows::runtime::Result<()>5038     pub fn AddOutgoingConnection<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0) -> ::windows::runtime::Result<()> {
5039         let this = self;
5040         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), destination.into_param().abi()).ok() }
5041     }
AddOutgoingConnectionWithGain<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0, gain: f64) -> ::windows::runtime::Result<()>5042     pub fn AddOutgoingConnectionWithGain<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0, gain: f64) -> ::windows::runtime::Result<()> {
5043         let this = self;
5044         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), destination.into_param().abi(), gain).ok() }
5045     }
RemoveOutgoingConnection<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0) -> ::windows::runtime::Result<()>5046     pub fn RemoveOutgoingConnection<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0) -> ::windows::runtime::Result<()> {
5047         let this = self;
5048         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), destination.into_param().abi()).ok() }
5049     }
5050     #[cfg(feature = "Foundation")]
Close(&self) -> ::windows::runtime::Result<()>5051     pub fn Close(&self) -> ::windows::runtime::Result<()> {
5052         let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?;
5053         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() }
5054     }
5055     #[cfg(all(feature = "Foundation_Collections", feature = "Media_Effects"))]
EffectDefinitions(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>>5056     pub fn EffectDefinitions(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>> {
5057         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
5058         unsafe {
5059             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
5060             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>>(result__)
5061         }
5062     }
SetOutgoingGain(&self, value: f64) -> ::windows::runtime::Result<()>5063     pub fn SetOutgoingGain(&self, value: f64) -> ::windows::runtime::Result<()> {
5064         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
5065         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() }
5066     }
OutgoingGain(&self) -> ::windows::runtime::Result<f64>5067     pub fn OutgoingGain(&self) -> ::windows::runtime::Result<f64> {
5068         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
5069         unsafe {
5070             let mut result__: f64 = ::std::mem::zeroed();
5071             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
5072         }
5073     }
5074     #[cfg(feature = "Media_MediaProperties")]
EncodingProperties(&self) -> ::windows::runtime::Result<super::MediaProperties::AudioEncodingProperties>5075     pub fn EncodingProperties(&self) -> ::windows::runtime::Result<super::MediaProperties::AudioEncodingProperties> {
5076         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
5077         unsafe {
5078             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
5079             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::MediaProperties::AudioEncodingProperties>(result__)
5080         }
5081     }
ConsumeInput(&self) -> ::windows::runtime::Result<bool>5082     pub fn ConsumeInput(&self) -> ::windows::runtime::Result<bool> {
5083         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
5084         unsafe {
5085             let mut result__: bool = ::std::mem::zeroed();
5086             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
5087         }
5088     }
SetConsumeInput(&self, value: bool) -> ::windows::runtime::Result<()>5089     pub fn SetConsumeInput(&self, value: bool) -> ::windows::runtime::Result<()> {
5090         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
5091         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value).ok() }
5092     }
Start(&self) -> ::windows::runtime::Result<()>5093     pub fn Start(&self) -> ::windows::runtime::Result<()> {
5094         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
5095         unsafe { (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this)).ok() }
5096     }
Stop(&self) -> ::windows::runtime::Result<()>5097     pub fn Stop(&self) -> ::windows::runtime::Result<()> {
5098         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
5099         unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this)).ok() }
5100     }
Reset(&self) -> ::windows::runtime::Result<()>5101     pub fn Reset(&self) -> ::windows::runtime::Result<()> {
5102         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
5103         unsafe { (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this)).ok() }
5104     }
5105     #[cfg(feature = "Media_Effects")]
DisableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()>5106     pub fn DisableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()> {
5107         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
5108         unsafe { (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), definition.into_param().abi()).ok() }
5109     }
5110     #[cfg(feature = "Media_Effects")]
EnableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()>5111     pub fn EnableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()> {
5112         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
5113         unsafe { (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), definition.into_param().abi()).ok() }
5114     }
5115 }
5116 unsafe impl ::windows::runtime::RuntimeType for IAudioInputNode {
5117     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"{d148005c-8428-4784-b7fd-a99d468c5d20}");
5118 }
5119 impl ::std::convert::From<IAudioInputNode> for ::windows::runtime::IUnknown {
from(value: IAudioInputNode) -> Self5120     fn from(value: IAudioInputNode) -> Self {
5121         unsafe { ::std::mem::transmute(value) }
5122     }
5123 }
5124 impl ::std::convert::From<&IAudioInputNode> for ::windows::runtime::IUnknown {
from(value: &IAudioInputNode) -> Self5125     fn from(value: &IAudioInputNode) -> Self {
5126         ::std::convert::From::from(::std::clone::Clone::clone(value))
5127     }
5128 }
5129 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IAudioInputNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5130     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5131         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
5132     }
5133 }
5134 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IAudioInputNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5135     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5136         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
5137     }
5138 }
5139 impl ::std::convert::From<IAudioInputNode> for ::windows::runtime::IInspectable {
from(value: IAudioInputNode) -> Self5140     fn from(value: IAudioInputNode) -> Self {
5141         value.0
5142     }
5143 }
5144 impl ::std::convert::From<&IAudioInputNode> for ::windows::runtime::IInspectable {
from(value: &IAudioInputNode) -> Self5145     fn from(value: &IAudioInputNode) -> Self {
5146         value.0.clone()
5147     }
5148 }
5149 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for IAudioInputNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>5150     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
5151         ::windows::runtime::Param::Owned(self.0)
5152     }
5153 }
5154 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a IAudioInputNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>5155     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
5156         ::windows::runtime::Param::Borrowed(&self.0)
5157     }
5158 }
5159 #[cfg(feature = "Foundation")]
5160 impl ::std::convert::TryFrom<IAudioInputNode> for super::super::Foundation::IClosable {
5161     type Error = ::windows::runtime::Error;
try_from(value: IAudioInputNode) -> ::windows::runtime::Result<Self>5162     fn try_from(value: IAudioInputNode) -> ::windows::runtime::Result<Self> {
5163         ::std::convert::TryFrom::try_from(&value)
5164     }
5165 }
5166 #[cfg(feature = "Foundation")]
5167 impl ::std::convert::TryFrom<&IAudioInputNode> for super::super::Foundation::IClosable {
5168     type Error = ::windows::runtime::Error;
try_from(value: &IAudioInputNode) -> ::windows::runtime::Result<Self>5169     fn try_from(value: &IAudioInputNode) -> ::windows::runtime::Result<Self> {
5170         ::windows::runtime::Interface::cast(value)
5171     }
5172 }
5173 #[cfg(feature = "Foundation")]
5174 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for IAudioInputNode {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>5175     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
5176         ::windows::runtime::IntoParam::into_param(&self)
5177     }
5178 }
5179 #[cfg(feature = "Foundation")]
5180 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &IAudioInputNode {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>5181     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
5182         ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
5183     }
5184 }
5185 impl ::std::convert::TryFrom<IAudioInputNode> for IAudioNode {
5186     type Error = ::windows::runtime::Error;
try_from(value: IAudioInputNode) -> ::windows::runtime::Result<Self>5187     fn try_from(value: IAudioInputNode) -> ::windows::runtime::Result<Self> {
5188         ::std::convert::TryFrom::try_from(&value)
5189     }
5190 }
5191 impl ::std::convert::TryFrom<&IAudioInputNode> for IAudioNode {
5192     type Error = ::windows::runtime::Error;
try_from(value: &IAudioInputNode) -> ::windows::runtime::Result<Self>5193     fn try_from(value: &IAudioInputNode) -> ::windows::runtime::Result<Self> {
5194         ::windows::runtime::Interface::cast(value)
5195     }
5196 }
5197 impl<'a> ::windows::runtime::IntoParam<'a, IAudioNode> for IAudioInputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioNode>5198     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioNode> {
5199         ::windows::runtime::IntoParam::into_param(&self)
5200     }
5201 }
5202 impl<'a> ::windows::runtime::IntoParam<'a, IAudioNode> for &IAudioInputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioNode>5203     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioNode> {
5204         ::std::convert::TryInto::<IAudioNode>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
5205     }
5206 }
5207 #[repr(C)]
5208 #[doc(hidden)]
5209 pub struct IAudioInputNode_abi(
5210     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5211     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5212     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5213     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
5214     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5215     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
5216     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5217     #[cfg(not(feature = "Foundation_Collections"))] usize,
5218     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, destination: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5219     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, destination: ::windows::runtime::RawPtr, gain: f64) -> ::windows::runtime::HRESULT,
5220     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, destination: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5221 );
5222 #[repr(transparent)]
5223 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
5224 pub struct IAudioInputNode2(::windows::runtime::IInspectable);
5225 unsafe impl ::windows::runtime::Interface for IAudioInputNode2 {
5226     type Vtable = IAudioInputNode2_abi;
5227     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2421249719, 51816, 19565, [168, 188, 227, 238, 23, 254, 63, 210]);
5228 }
5229 impl IAudioInputNode2 {
5230     #[cfg(feature = "Foundation")]
Close(&self) -> ::windows::runtime::Result<()>5231     pub fn Close(&self) -> ::windows::runtime::Result<()> {
5232         let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?;
5233         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() }
5234     }
5235     #[cfg(feature = "Foundation_Collections")]
OutgoingConnections(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<AudioGraphConnection>>5236     pub fn OutgoingConnections(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<AudioGraphConnection>> {
5237         let this = &::windows::runtime::Interface::cast::<IAudioInputNode>(self)?;
5238         unsafe {
5239             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
5240             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<AudioGraphConnection>>(result__)
5241         }
5242     }
AddOutgoingConnection<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0) -> ::windows::runtime::Result<()>5243     pub fn AddOutgoingConnection<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0) -> ::windows::runtime::Result<()> {
5244         let this = &::windows::runtime::Interface::cast::<IAudioInputNode>(self)?;
5245         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), destination.into_param().abi()).ok() }
5246     }
AddOutgoingConnectionWithGain<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0, gain: f64) -> ::windows::runtime::Result<()>5247     pub fn AddOutgoingConnectionWithGain<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0, gain: f64) -> ::windows::runtime::Result<()> {
5248         let this = &::windows::runtime::Interface::cast::<IAudioInputNode>(self)?;
5249         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), destination.into_param().abi(), gain).ok() }
5250     }
RemoveOutgoingConnection<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0) -> ::windows::runtime::Result<()>5251     pub fn RemoveOutgoingConnection<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0) -> ::windows::runtime::Result<()> {
5252         let this = &::windows::runtime::Interface::cast::<IAudioInputNode>(self)?;
5253         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), destination.into_param().abi()).ok() }
5254     }
5255     #[cfg(all(feature = "Foundation_Collections", feature = "Media_Effects"))]
EffectDefinitions(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>>5256     pub fn EffectDefinitions(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>> {
5257         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
5258         unsafe {
5259             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
5260             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>>(result__)
5261         }
5262     }
SetOutgoingGain(&self, value: f64) -> ::windows::runtime::Result<()>5263     pub fn SetOutgoingGain(&self, value: f64) -> ::windows::runtime::Result<()> {
5264         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
5265         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() }
5266     }
OutgoingGain(&self) -> ::windows::runtime::Result<f64>5267     pub fn OutgoingGain(&self) -> ::windows::runtime::Result<f64> {
5268         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
5269         unsafe {
5270             let mut result__: f64 = ::std::mem::zeroed();
5271             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
5272         }
5273     }
5274     #[cfg(feature = "Media_MediaProperties")]
EncodingProperties(&self) -> ::windows::runtime::Result<super::MediaProperties::AudioEncodingProperties>5275     pub fn EncodingProperties(&self) -> ::windows::runtime::Result<super::MediaProperties::AudioEncodingProperties> {
5276         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
5277         unsafe {
5278             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
5279             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::MediaProperties::AudioEncodingProperties>(result__)
5280         }
5281     }
ConsumeInput(&self) -> ::windows::runtime::Result<bool>5282     pub fn ConsumeInput(&self) -> ::windows::runtime::Result<bool> {
5283         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
5284         unsafe {
5285             let mut result__: bool = ::std::mem::zeroed();
5286             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
5287         }
5288     }
SetConsumeInput(&self, value: bool) -> ::windows::runtime::Result<()>5289     pub fn SetConsumeInput(&self, value: bool) -> ::windows::runtime::Result<()> {
5290         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
5291         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value).ok() }
5292     }
Start(&self) -> ::windows::runtime::Result<()>5293     pub fn Start(&self) -> ::windows::runtime::Result<()> {
5294         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
5295         unsafe { (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this)).ok() }
5296     }
Stop(&self) -> ::windows::runtime::Result<()>5297     pub fn Stop(&self) -> ::windows::runtime::Result<()> {
5298         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
5299         unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this)).ok() }
5300     }
Reset(&self) -> ::windows::runtime::Result<()>5301     pub fn Reset(&self) -> ::windows::runtime::Result<()> {
5302         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
5303         unsafe { (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this)).ok() }
5304     }
5305     #[cfg(feature = "Media_Effects")]
DisableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()>5306     pub fn DisableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()> {
5307         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
5308         unsafe { (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), definition.into_param().abi()).ok() }
5309     }
5310     #[cfg(feature = "Media_Effects")]
EnableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()>5311     pub fn EnableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()> {
5312         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
5313         unsafe { (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), definition.into_param().abi()).ok() }
5314     }
Emitter(&self) -> ::windows::runtime::Result<AudioNodeEmitter>5315     pub fn Emitter(&self) -> ::windows::runtime::Result<AudioNodeEmitter> {
5316         let this = self;
5317         unsafe {
5318             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
5319             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioNodeEmitter>(result__)
5320         }
5321     }
5322 }
5323 unsafe impl ::windows::runtime::RuntimeType for IAudioInputNode2 {
5324     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"{905156b7-ca68-4c6d-a8bc-e3ee17fe3fd2}");
5325 }
5326 impl ::std::convert::From<IAudioInputNode2> for ::windows::runtime::IUnknown {
from(value: IAudioInputNode2) -> Self5327     fn from(value: IAudioInputNode2) -> Self {
5328         unsafe { ::std::mem::transmute(value) }
5329     }
5330 }
5331 impl ::std::convert::From<&IAudioInputNode2> for ::windows::runtime::IUnknown {
from(value: &IAudioInputNode2) -> Self5332     fn from(value: &IAudioInputNode2) -> Self {
5333         ::std::convert::From::from(::std::clone::Clone::clone(value))
5334     }
5335 }
5336 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IAudioInputNode2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5337     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5338         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
5339     }
5340 }
5341 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IAudioInputNode2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5342     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5343         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
5344     }
5345 }
5346 impl ::std::convert::From<IAudioInputNode2> for ::windows::runtime::IInspectable {
from(value: IAudioInputNode2) -> Self5347     fn from(value: IAudioInputNode2) -> Self {
5348         value.0
5349     }
5350 }
5351 impl ::std::convert::From<&IAudioInputNode2> for ::windows::runtime::IInspectable {
from(value: &IAudioInputNode2) -> Self5352     fn from(value: &IAudioInputNode2) -> Self {
5353         value.0.clone()
5354     }
5355 }
5356 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for IAudioInputNode2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>5357     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
5358         ::windows::runtime::Param::Owned(self.0)
5359     }
5360 }
5361 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a IAudioInputNode2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>5362     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
5363         ::windows::runtime::Param::Borrowed(&self.0)
5364     }
5365 }
5366 #[cfg(feature = "Foundation")]
5367 impl ::std::convert::TryFrom<IAudioInputNode2> for super::super::Foundation::IClosable {
5368     type Error = ::windows::runtime::Error;
try_from(value: IAudioInputNode2) -> ::windows::runtime::Result<Self>5369     fn try_from(value: IAudioInputNode2) -> ::windows::runtime::Result<Self> {
5370         ::std::convert::TryFrom::try_from(&value)
5371     }
5372 }
5373 #[cfg(feature = "Foundation")]
5374 impl ::std::convert::TryFrom<&IAudioInputNode2> for super::super::Foundation::IClosable {
5375     type Error = ::windows::runtime::Error;
try_from(value: &IAudioInputNode2) -> ::windows::runtime::Result<Self>5376     fn try_from(value: &IAudioInputNode2) -> ::windows::runtime::Result<Self> {
5377         ::windows::runtime::Interface::cast(value)
5378     }
5379 }
5380 #[cfg(feature = "Foundation")]
5381 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for IAudioInputNode2 {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>5382     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
5383         ::windows::runtime::IntoParam::into_param(&self)
5384     }
5385 }
5386 #[cfg(feature = "Foundation")]
5387 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &IAudioInputNode2 {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>5388     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
5389         ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
5390     }
5391 }
5392 impl ::std::convert::TryFrom<IAudioInputNode2> for IAudioInputNode {
5393     type Error = ::windows::runtime::Error;
try_from(value: IAudioInputNode2) -> ::windows::runtime::Result<Self>5394     fn try_from(value: IAudioInputNode2) -> ::windows::runtime::Result<Self> {
5395         ::std::convert::TryFrom::try_from(&value)
5396     }
5397 }
5398 impl ::std::convert::TryFrom<&IAudioInputNode2> for IAudioInputNode {
5399     type Error = ::windows::runtime::Error;
try_from(value: &IAudioInputNode2) -> ::windows::runtime::Result<Self>5400     fn try_from(value: &IAudioInputNode2) -> ::windows::runtime::Result<Self> {
5401         ::windows::runtime::Interface::cast(value)
5402     }
5403 }
5404 impl<'a> ::windows::runtime::IntoParam<'a, IAudioInputNode> for IAudioInputNode2 {
into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode>5405     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode> {
5406         ::windows::runtime::IntoParam::into_param(&self)
5407     }
5408 }
5409 impl<'a> ::windows::runtime::IntoParam<'a, IAudioInputNode> for &IAudioInputNode2 {
into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode>5410     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode> {
5411         ::std::convert::TryInto::<IAudioInputNode>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
5412     }
5413 }
5414 impl ::std::convert::TryFrom<IAudioInputNode2> for IAudioNode {
5415     type Error = ::windows::runtime::Error;
try_from(value: IAudioInputNode2) -> ::windows::runtime::Result<Self>5416     fn try_from(value: IAudioInputNode2) -> ::windows::runtime::Result<Self> {
5417         ::std::convert::TryFrom::try_from(&value)
5418     }
5419 }
5420 impl ::std::convert::TryFrom<&IAudioInputNode2> for IAudioNode {
5421     type Error = ::windows::runtime::Error;
try_from(value: &IAudioInputNode2) -> ::windows::runtime::Result<Self>5422     fn try_from(value: &IAudioInputNode2) -> ::windows::runtime::Result<Self> {
5423         ::windows::runtime::Interface::cast(value)
5424     }
5425 }
5426 impl<'a> ::windows::runtime::IntoParam<'a, IAudioNode> for IAudioInputNode2 {
into_param(self) -> ::windows::runtime::Param<'a, IAudioNode>5427     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioNode> {
5428         ::windows::runtime::IntoParam::into_param(&self)
5429     }
5430 }
5431 impl<'a> ::windows::runtime::IntoParam<'a, IAudioNode> for &IAudioInputNode2 {
into_param(self) -> ::windows::runtime::Param<'a, IAudioNode>5432     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioNode> {
5433         ::std::convert::TryInto::<IAudioNode>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
5434     }
5435 }
5436 #[repr(C)]
5437 #[doc(hidden)]
5438 pub struct IAudioInputNode2_abi(
5439     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5440     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5441     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5442     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
5443     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5444     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
5445     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5446 );
5447 #[repr(transparent)]
5448 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
5449 pub struct IAudioNode(::windows::runtime::IInspectable);
5450 unsafe impl ::windows::runtime::Interface for IAudioNode {
5451     type Vtable = IAudioNode_abi;
5452     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(356031871, 56280, 18457, [191, 3, 102, 142, 147, 87, 205, 109]);
5453 }
5454 impl IAudioNode {
5455     #[cfg(all(feature = "Foundation_Collections", feature = "Media_Effects"))]
EffectDefinitions(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>>5456     pub fn EffectDefinitions(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>> {
5457         let this = self;
5458         unsafe {
5459             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
5460             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>>(result__)
5461         }
5462     }
SetOutgoingGain(&self, value: f64) -> ::windows::runtime::Result<()>5463     pub fn SetOutgoingGain(&self, value: f64) -> ::windows::runtime::Result<()> {
5464         let this = self;
5465         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() }
5466     }
OutgoingGain(&self) -> ::windows::runtime::Result<f64>5467     pub fn OutgoingGain(&self) -> ::windows::runtime::Result<f64> {
5468         let this = self;
5469         unsafe {
5470             let mut result__: f64 = ::std::mem::zeroed();
5471             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
5472         }
5473     }
5474     #[cfg(feature = "Media_MediaProperties")]
EncodingProperties(&self) -> ::windows::runtime::Result<super::MediaProperties::AudioEncodingProperties>5475     pub fn EncodingProperties(&self) -> ::windows::runtime::Result<super::MediaProperties::AudioEncodingProperties> {
5476         let this = self;
5477         unsafe {
5478             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
5479             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::MediaProperties::AudioEncodingProperties>(result__)
5480         }
5481     }
ConsumeInput(&self) -> ::windows::runtime::Result<bool>5482     pub fn ConsumeInput(&self) -> ::windows::runtime::Result<bool> {
5483         let this = self;
5484         unsafe {
5485             let mut result__: bool = ::std::mem::zeroed();
5486             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
5487         }
5488     }
SetConsumeInput(&self, value: bool) -> ::windows::runtime::Result<()>5489     pub fn SetConsumeInput(&self, value: bool) -> ::windows::runtime::Result<()> {
5490         let this = self;
5491         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value).ok() }
5492     }
Start(&self) -> ::windows::runtime::Result<()>5493     pub fn Start(&self) -> ::windows::runtime::Result<()> {
5494         let this = self;
5495         unsafe { (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this)).ok() }
5496     }
Stop(&self) -> ::windows::runtime::Result<()>5497     pub fn Stop(&self) -> ::windows::runtime::Result<()> {
5498         let this = self;
5499         unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this)).ok() }
5500     }
Reset(&self) -> ::windows::runtime::Result<()>5501     pub fn Reset(&self) -> ::windows::runtime::Result<()> {
5502         let this = self;
5503         unsafe { (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this)).ok() }
5504     }
5505     #[cfg(feature = "Media_Effects")]
DisableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()>5506     pub fn DisableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()> {
5507         let this = self;
5508         unsafe { (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), definition.into_param().abi()).ok() }
5509     }
5510     #[cfg(feature = "Media_Effects")]
EnableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()>5511     pub fn EnableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()> {
5512         let this = self;
5513         unsafe { (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), definition.into_param().abi()).ok() }
5514     }
5515     #[cfg(feature = "Foundation")]
Close(&self) -> ::windows::runtime::Result<()>5516     pub fn Close(&self) -> ::windows::runtime::Result<()> {
5517         let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?;
5518         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() }
5519     }
5520 }
5521 unsafe impl ::windows::runtime::RuntimeType for IAudioNode {
5522     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"{15389d7f-dbd8-4819-bf03-668e9357cd6d}");
5523 }
5524 impl ::std::convert::From<IAudioNode> for ::windows::runtime::IUnknown {
from(value: IAudioNode) -> Self5525     fn from(value: IAudioNode) -> Self {
5526         unsafe { ::std::mem::transmute(value) }
5527     }
5528 }
5529 impl ::std::convert::From<&IAudioNode> for ::windows::runtime::IUnknown {
from(value: &IAudioNode) -> Self5530     fn from(value: &IAudioNode) -> Self {
5531         ::std::convert::From::from(::std::clone::Clone::clone(value))
5532     }
5533 }
5534 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IAudioNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5535     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5536         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
5537     }
5538 }
5539 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IAudioNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5540     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5541         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
5542     }
5543 }
5544 impl ::std::convert::From<IAudioNode> for ::windows::runtime::IInspectable {
from(value: IAudioNode) -> Self5545     fn from(value: IAudioNode) -> Self {
5546         value.0
5547     }
5548 }
5549 impl ::std::convert::From<&IAudioNode> for ::windows::runtime::IInspectable {
from(value: &IAudioNode) -> Self5550     fn from(value: &IAudioNode) -> Self {
5551         value.0.clone()
5552     }
5553 }
5554 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for IAudioNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>5555     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
5556         ::windows::runtime::Param::Owned(self.0)
5557     }
5558 }
5559 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a IAudioNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>5560     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
5561         ::windows::runtime::Param::Borrowed(&self.0)
5562     }
5563 }
5564 #[cfg(feature = "Foundation")]
5565 impl ::std::convert::TryFrom<IAudioNode> for super::super::Foundation::IClosable {
5566     type Error = ::windows::runtime::Error;
try_from(value: IAudioNode) -> ::windows::runtime::Result<Self>5567     fn try_from(value: IAudioNode) -> ::windows::runtime::Result<Self> {
5568         ::std::convert::TryFrom::try_from(&value)
5569     }
5570 }
5571 #[cfg(feature = "Foundation")]
5572 impl ::std::convert::TryFrom<&IAudioNode> for super::super::Foundation::IClosable {
5573     type Error = ::windows::runtime::Error;
try_from(value: &IAudioNode) -> ::windows::runtime::Result<Self>5574     fn try_from(value: &IAudioNode) -> ::windows::runtime::Result<Self> {
5575         ::windows::runtime::Interface::cast(value)
5576     }
5577 }
5578 #[cfg(feature = "Foundation")]
5579 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for IAudioNode {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>5580     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
5581         ::windows::runtime::IntoParam::into_param(&self)
5582     }
5583 }
5584 #[cfg(feature = "Foundation")]
5585 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &IAudioNode {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>5586     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
5587         ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
5588     }
5589 }
5590 #[repr(C)]
5591 #[doc(hidden)]
5592 pub struct IAudioNode_abi(
5593     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5594     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5595     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5596     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
5597     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5598     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
5599     #[cfg(all(feature = "Foundation_Collections", feature = "Media_Effects"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5600     #[cfg(not(all(feature = "Foundation_Collections", feature = "Media_Effects")))] usize,
5601     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f64) -> ::windows::runtime::HRESULT,
5602     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
5603     #[cfg(feature = "Media_MediaProperties")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5604     #[cfg(not(feature = "Media_MediaProperties"))] usize,
5605     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
5606     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: bool) -> ::windows::runtime::HRESULT,
5607     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5608     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5609     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5610     #[cfg(feature = "Media_Effects")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, definition: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5611     #[cfg(not(feature = "Media_Effects"))] usize,
5612     #[cfg(feature = "Media_Effects")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, definition: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5613     #[cfg(not(feature = "Media_Effects"))] usize,
5614 );
5615 #[repr(transparent)]
5616 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
5617 #[doc(hidden)]
5618 pub struct IAudioNodeEmitter(::windows::runtime::IInspectable);
5619 unsafe impl ::windows::runtime::Interface for IAudioNodeEmitter {
5620     type Vtable = IAudioNodeEmitter_abi;
5621     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(913741597, 34826, 18360, [173, 247, 19, 35, 169, 217, 101, 190]);
5622 }
5623 #[repr(C)]
5624 #[doc(hidden)]
5625 pub struct IAudioNodeEmitter_abi(
5626     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5627     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5628     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5629     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
5630     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5631     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
5632     #[cfg(feature = "Foundation_Numerics")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::Numerics::Vector3) -> ::windows::runtime::HRESULT,
5633     #[cfg(not(feature = "Foundation_Numerics"))] usize,
5634     #[cfg(feature = "Foundation_Numerics")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: super::super::Foundation::Numerics::Vector3) -> ::windows::runtime::HRESULT,
5635     #[cfg(not(feature = "Foundation_Numerics"))] usize,
5636     #[cfg(feature = "Foundation_Numerics")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::Numerics::Vector3) -> ::windows::runtime::HRESULT,
5637     #[cfg(not(feature = "Foundation_Numerics"))] usize,
5638     #[cfg(feature = "Foundation_Numerics")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: super::super::Foundation::Numerics::Vector3) -> ::windows::runtime::HRESULT,
5639     #[cfg(not(feature = "Foundation_Numerics"))] usize,
5640     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5641     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5642     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
5643     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f64) -> ::windows::runtime::HRESULT,
5644     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
5645     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f64) -> ::windows::runtime::HRESULT,
5646     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
5647     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f64) -> ::windows::runtime::HRESULT,
5648     #[cfg(feature = "Foundation_Numerics")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::Numerics::Vector3) -> ::windows::runtime::HRESULT,
5649     #[cfg(not(feature = "Foundation_Numerics"))] usize,
5650     #[cfg(feature = "Foundation_Numerics")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: super::super::Foundation::Numerics::Vector3) -> ::windows::runtime::HRESULT,
5651     #[cfg(not(feature = "Foundation_Numerics"))] usize,
5652     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
5653 );
5654 #[repr(transparent)]
5655 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
5656 #[doc(hidden)]
5657 pub struct IAudioNodeEmitter2(::windows::runtime::IInspectable);
5658 unsafe impl ::windows::runtime::Interface for IAudioNodeEmitter2 {
5659     type Vtable = IAudioNodeEmitter2_abi;
5660     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1253502667, 60457, 18424, [129, 140, 182, 182, 96, 165, 174, 177]);
5661 }
5662 #[repr(C)]
5663 #[doc(hidden)]
5664 pub struct IAudioNodeEmitter2_abi(
5665     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5666     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5667     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5668     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
5669     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5670     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
5671     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut SpatialAudioModel) -> ::windows::runtime::HRESULT,
5672     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: SpatialAudioModel) -> ::windows::runtime::HRESULT,
5673 );
5674 #[repr(transparent)]
5675 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
5676 #[doc(hidden)]
5677 pub struct IAudioNodeEmitterConeProperties(::windows::runtime::IInspectable);
5678 unsafe impl ::windows::runtime::Interface for IAudioNodeEmitterConeProperties {
5679     type Vtable = IAudioNodeEmitterConeProperties_abi;
5680     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3919260910, 714, 17269, [147, 38, 12, 106, 228, 188, 223, 181]);
5681 }
5682 #[repr(C)]
5683 #[doc(hidden)]
5684 pub struct IAudioNodeEmitterConeProperties_abi(
5685     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5686     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5687     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5688     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
5689     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5690     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
5691     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
5692     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
5693     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
5694 );
5695 #[repr(transparent)]
5696 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
5697 #[doc(hidden)]
5698 pub struct IAudioNodeEmitterDecayModel(::windows::runtime::IInspectable);
5699 unsafe impl ::windows::runtime::Interface for IAudioNodeEmitterDecayModel {
5700     type Vtable = IAudioNodeEmitterDecayModel_abi;
5701     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(488463095, 3411, 20393, [189, 132, 213, 129, 106, 134, 243, 255]);
5702 }
5703 #[repr(C)]
5704 #[doc(hidden)]
5705 pub struct IAudioNodeEmitterDecayModel_abi(
5706     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5707     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5708     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5709     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
5710     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5711     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
5712     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut AudioNodeEmitterDecayKind) -> ::windows::runtime::HRESULT,
5713     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
5714     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
5715     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5716 );
5717 #[repr(transparent)]
5718 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
5719 #[doc(hidden)]
5720 pub struct IAudioNodeEmitterDecayModelStatics(::windows::runtime::IInspectable);
5721 unsafe impl ::windows::runtime::Interface for IAudioNodeEmitterDecayModelStatics {
5722     type Vtable = IAudioNodeEmitterDecayModelStatics_abi;
5723     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3346562216, 61816, 17967, [188, 129, 141, 213, 203, 229, 218, 232]);
5724 }
5725 #[repr(C)]
5726 #[doc(hidden)]
5727 pub struct IAudioNodeEmitterDecayModelStatics_abi(
5728     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5729     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5730     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5731     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
5732     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5733     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
5734     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, mingain: f64, maxgain: f64, unitygaindistance: f64, cutoffdistance: f64, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5735     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, mingain: f64, maxgain: f64, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5736 );
5737 #[repr(transparent)]
5738 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
5739 #[doc(hidden)]
5740 pub struct IAudioNodeEmitterFactory(::windows::runtime::IInspectable);
5741 unsafe impl ::windows::runtime::Interface for IAudioNodeEmitterFactory {
5742     type Vtable = IAudioNodeEmitterFactory_abi;
5743     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4257761434, 27350, 19684, [183, 247, 169, 147, 112, 223, 126, 233]);
5744 }
5745 #[repr(C)]
5746 #[doc(hidden)]
5747 pub struct IAudioNodeEmitterFactory_abi(
5748     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5749     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5750     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5751     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
5752     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5753     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
5754     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, shape: ::windows::runtime::RawPtr, decaymodel: ::windows::runtime::RawPtr, settings: AudioNodeEmitterSettings, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5755 );
5756 #[repr(transparent)]
5757 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
5758 #[doc(hidden)]
5759 pub struct IAudioNodeEmitterNaturalDecayModelProperties(::windows::runtime::IInspectable);
5760 unsafe impl ::windows::runtime::Interface for IAudioNodeEmitterNaturalDecayModelProperties {
5761     type Vtable = IAudioNodeEmitterNaturalDecayModelProperties_abi;
5762     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1217612751, 53036, 20220, [147, 49, 117, 189, 34, 223, 31, 12]);
5763 }
5764 #[repr(C)]
5765 #[doc(hidden)]
5766 pub struct IAudioNodeEmitterNaturalDecayModelProperties_abi(
5767     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5768     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5769     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5770     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
5771     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5772     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
5773     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
5774     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
5775 );
5776 #[repr(transparent)]
5777 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
5778 #[doc(hidden)]
5779 pub struct IAudioNodeEmitterShape(::windows::runtime::IInspectable);
5780 unsafe impl ::windows::runtime::Interface for IAudioNodeEmitterShape {
5781     type Vtable = IAudioNodeEmitterShape_abi;
5782     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3926069701, 59197, 17596, [133, 156, 69, 85, 59, 188, 72, 40]);
5783 }
5784 #[repr(C)]
5785 #[doc(hidden)]
5786 pub struct IAudioNodeEmitterShape_abi(
5787     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5788     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5789     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5790     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
5791     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5792     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
5793     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut AudioNodeEmitterShapeKind) -> ::windows::runtime::HRESULT,
5794     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5795 );
5796 #[repr(transparent)]
5797 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
5798 #[doc(hidden)]
5799 pub struct IAudioNodeEmitterShapeStatics(::windows::runtime::IInspectable);
5800 unsafe impl ::windows::runtime::Interface for IAudioNodeEmitterShapeStatics {
5801     type Vtable = IAudioNodeEmitterShapeStatics_abi;
5802     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1471883121, 65445, 19334, [167, 121, 226, 100, 174, 185, 20, 95]);
5803 }
5804 #[repr(C)]
5805 #[doc(hidden)]
5806 pub struct IAudioNodeEmitterShapeStatics_abi(
5807     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5808     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5809     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5810     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
5811     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5812     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
5813     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, innerangle: f64, outerangle: f64, outeranglegain: f64, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5814     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5815 );
5816 #[repr(transparent)]
5817 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
5818 #[doc(hidden)]
5819 pub struct IAudioNodeListener(::windows::runtime::IInspectable);
5820 unsafe impl ::windows::runtime::Interface for IAudioNodeListener {
5821     type Vtable = IAudioNodeListener_abi;
5822     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3648138774, 3082, 16858, [183, 85, 108, 119, 131, 95, 177, 235]);
5823 }
5824 #[repr(C)]
5825 #[doc(hidden)]
5826 pub struct IAudioNodeListener_abi(
5827     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5828     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5829     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5830     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
5831     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5832     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
5833     #[cfg(feature = "Foundation_Numerics")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::Numerics::Vector3) -> ::windows::runtime::HRESULT,
5834     #[cfg(not(feature = "Foundation_Numerics"))] usize,
5835     #[cfg(feature = "Foundation_Numerics")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: super::super::Foundation::Numerics::Vector3) -> ::windows::runtime::HRESULT,
5836     #[cfg(not(feature = "Foundation_Numerics"))] usize,
5837     #[cfg(feature = "Foundation_Numerics")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::Numerics::Quaternion) -> ::windows::runtime::HRESULT,
5838     #[cfg(not(feature = "Foundation_Numerics"))] usize,
5839     #[cfg(feature = "Foundation_Numerics")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: super::super::Foundation::Numerics::Quaternion) -> ::windows::runtime::HRESULT,
5840     #[cfg(not(feature = "Foundation_Numerics"))] usize,
5841     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
5842     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f64) -> ::windows::runtime::HRESULT,
5843     #[cfg(feature = "Foundation_Numerics")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::Numerics::Vector3) -> ::windows::runtime::HRESULT,
5844     #[cfg(not(feature = "Foundation_Numerics"))] usize,
5845     #[cfg(feature = "Foundation_Numerics")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: super::super::Foundation::Numerics::Vector3) -> ::windows::runtime::HRESULT,
5846     #[cfg(not(feature = "Foundation_Numerics"))] usize,
5847 );
5848 #[repr(transparent)]
5849 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
5850 pub struct IAudioNodeWithListener(::windows::runtime::IInspectable);
5851 unsafe impl ::windows::runtime::Interface for IAudioNodeWithListener {
5852     type Vtable = IAudioNodeWithListener_abi;
5853     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(235901052, 31231, 17732, [158, 235, 1, 37, 123, 21, 16, 90]);
5854 }
5855 impl IAudioNodeWithListener {
5856     #[cfg(feature = "Foundation")]
Close(&self) -> ::windows::runtime::Result<()>5857     pub fn Close(&self) -> ::windows::runtime::Result<()> {
5858         let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?;
5859         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() }
5860     }
5861     #[cfg(all(feature = "Foundation_Collections", feature = "Media_Effects"))]
EffectDefinitions(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>>5862     pub fn EffectDefinitions(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>> {
5863         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
5864         unsafe {
5865             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
5866             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>>(result__)
5867         }
5868     }
SetOutgoingGain(&self, value: f64) -> ::windows::runtime::Result<()>5869     pub fn SetOutgoingGain(&self, value: f64) -> ::windows::runtime::Result<()> {
5870         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
5871         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() }
5872     }
OutgoingGain(&self) -> ::windows::runtime::Result<f64>5873     pub fn OutgoingGain(&self) -> ::windows::runtime::Result<f64> {
5874         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
5875         unsafe {
5876             let mut result__: f64 = ::std::mem::zeroed();
5877             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
5878         }
5879     }
5880     #[cfg(feature = "Media_MediaProperties")]
EncodingProperties(&self) -> ::windows::runtime::Result<super::MediaProperties::AudioEncodingProperties>5881     pub fn EncodingProperties(&self) -> ::windows::runtime::Result<super::MediaProperties::AudioEncodingProperties> {
5882         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
5883         unsafe {
5884             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
5885             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::MediaProperties::AudioEncodingProperties>(result__)
5886         }
5887     }
ConsumeInput(&self) -> ::windows::runtime::Result<bool>5888     pub fn ConsumeInput(&self) -> ::windows::runtime::Result<bool> {
5889         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
5890         unsafe {
5891             let mut result__: bool = ::std::mem::zeroed();
5892             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
5893         }
5894     }
SetConsumeInput(&self, value: bool) -> ::windows::runtime::Result<()>5895     pub fn SetConsumeInput(&self, value: bool) -> ::windows::runtime::Result<()> {
5896         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
5897         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value).ok() }
5898     }
Start(&self) -> ::windows::runtime::Result<()>5899     pub fn Start(&self) -> ::windows::runtime::Result<()> {
5900         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
5901         unsafe { (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this)).ok() }
5902     }
Stop(&self) -> ::windows::runtime::Result<()>5903     pub fn Stop(&self) -> ::windows::runtime::Result<()> {
5904         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
5905         unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this)).ok() }
5906     }
Reset(&self) -> ::windows::runtime::Result<()>5907     pub fn Reset(&self) -> ::windows::runtime::Result<()> {
5908         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
5909         unsafe { (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this)).ok() }
5910     }
5911     #[cfg(feature = "Media_Effects")]
DisableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()>5912     pub fn DisableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()> {
5913         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
5914         unsafe { (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), definition.into_param().abi()).ok() }
5915     }
5916     #[cfg(feature = "Media_Effects")]
EnableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()>5917     pub fn EnableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()> {
5918         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
5919         unsafe { (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), definition.into_param().abi()).ok() }
5920     }
SetListener<'a, Param0: ::windows::runtime::IntoParam<'a, AudioNodeListener>>(&self, value: Param0) -> ::windows::runtime::Result<()>5921     pub fn SetListener<'a, Param0: ::windows::runtime::IntoParam<'a, AudioNodeListener>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
5922         let this = self;
5923         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
5924     }
Listener(&self) -> ::windows::runtime::Result<AudioNodeListener>5925     pub fn Listener(&self) -> ::windows::runtime::Result<AudioNodeListener> {
5926         let this = self;
5927         unsafe {
5928             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
5929             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioNodeListener>(result__)
5930         }
5931     }
5932 }
5933 unsafe impl ::windows::runtime::RuntimeType for IAudioNodeWithListener {
5934     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"{0e0f907c-79ff-4544-9eeb-01257b15105a}");
5935 }
5936 impl ::std::convert::From<IAudioNodeWithListener> for ::windows::runtime::IUnknown {
from(value: IAudioNodeWithListener) -> Self5937     fn from(value: IAudioNodeWithListener) -> Self {
5938         unsafe { ::std::mem::transmute(value) }
5939     }
5940 }
5941 impl ::std::convert::From<&IAudioNodeWithListener> for ::windows::runtime::IUnknown {
from(value: &IAudioNodeWithListener) -> Self5942     fn from(value: &IAudioNodeWithListener) -> Self {
5943         ::std::convert::From::from(::std::clone::Clone::clone(value))
5944     }
5945 }
5946 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IAudioNodeWithListener {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5947     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5948         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
5949     }
5950 }
5951 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IAudioNodeWithListener {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5952     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5953         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
5954     }
5955 }
5956 impl ::std::convert::From<IAudioNodeWithListener> for ::windows::runtime::IInspectable {
from(value: IAudioNodeWithListener) -> Self5957     fn from(value: IAudioNodeWithListener) -> Self {
5958         value.0
5959     }
5960 }
5961 impl ::std::convert::From<&IAudioNodeWithListener> for ::windows::runtime::IInspectable {
from(value: &IAudioNodeWithListener) -> Self5962     fn from(value: &IAudioNodeWithListener) -> Self {
5963         value.0.clone()
5964     }
5965 }
5966 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for IAudioNodeWithListener {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>5967     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
5968         ::windows::runtime::Param::Owned(self.0)
5969     }
5970 }
5971 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a IAudioNodeWithListener {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>5972     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
5973         ::windows::runtime::Param::Borrowed(&self.0)
5974     }
5975 }
5976 #[cfg(feature = "Foundation")]
5977 impl ::std::convert::TryFrom<IAudioNodeWithListener> for super::super::Foundation::IClosable {
5978     type Error = ::windows::runtime::Error;
try_from(value: IAudioNodeWithListener) -> ::windows::runtime::Result<Self>5979     fn try_from(value: IAudioNodeWithListener) -> ::windows::runtime::Result<Self> {
5980         ::std::convert::TryFrom::try_from(&value)
5981     }
5982 }
5983 #[cfg(feature = "Foundation")]
5984 impl ::std::convert::TryFrom<&IAudioNodeWithListener> for super::super::Foundation::IClosable {
5985     type Error = ::windows::runtime::Error;
try_from(value: &IAudioNodeWithListener) -> ::windows::runtime::Result<Self>5986     fn try_from(value: &IAudioNodeWithListener) -> ::windows::runtime::Result<Self> {
5987         ::windows::runtime::Interface::cast(value)
5988     }
5989 }
5990 #[cfg(feature = "Foundation")]
5991 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for IAudioNodeWithListener {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>5992     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
5993         ::windows::runtime::IntoParam::into_param(&self)
5994     }
5995 }
5996 #[cfg(feature = "Foundation")]
5997 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &IAudioNodeWithListener {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>5998     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
5999         ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
6000     }
6001 }
6002 impl ::std::convert::TryFrom<IAudioNodeWithListener> for IAudioNode {
6003     type Error = ::windows::runtime::Error;
try_from(value: IAudioNodeWithListener) -> ::windows::runtime::Result<Self>6004     fn try_from(value: IAudioNodeWithListener) -> ::windows::runtime::Result<Self> {
6005         ::std::convert::TryFrom::try_from(&value)
6006     }
6007 }
6008 impl ::std::convert::TryFrom<&IAudioNodeWithListener> for IAudioNode {
6009     type Error = ::windows::runtime::Error;
try_from(value: &IAudioNodeWithListener) -> ::windows::runtime::Result<Self>6010     fn try_from(value: &IAudioNodeWithListener) -> ::windows::runtime::Result<Self> {
6011         ::windows::runtime::Interface::cast(value)
6012     }
6013 }
6014 impl<'a> ::windows::runtime::IntoParam<'a, IAudioNode> for IAudioNodeWithListener {
into_param(self) -> ::windows::runtime::Param<'a, IAudioNode>6015     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioNode> {
6016         ::windows::runtime::IntoParam::into_param(&self)
6017     }
6018 }
6019 impl<'a> ::windows::runtime::IntoParam<'a, IAudioNode> for &IAudioNodeWithListener {
into_param(self) -> ::windows::runtime::Param<'a, IAudioNode>6020     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioNode> {
6021         ::std::convert::TryInto::<IAudioNode>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
6022     }
6023 }
6024 #[repr(C)]
6025 #[doc(hidden)]
6026 pub struct IAudioNodeWithListener_abi(
6027     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6028     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6029     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6030     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6031     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6032     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6033     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6034     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6035 );
6036 #[repr(transparent)]
6037 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6038 #[doc(hidden)]
6039 pub struct IAudioPlaybackConnection(::windows::runtime::IInspectable);
6040 unsafe impl ::windows::runtime::Interface for IAudioPlaybackConnection {
6041     type Vtable = IAudioPlaybackConnection_abi;
6042     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(441196010, 51964, 20711, [135, 24, 234, 63, 129, 203, 250, 81]);
6043 }
6044 #[repr(C)]
6045 #[doc(hidden)]
6046 pub struct IAudioPlaybackConnection_abi(
6047     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6048     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6049     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6050     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6051     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6052     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6053     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6054     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6055     #[cfg(not(feature = "Foundation"))] usize,
6056     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
6057     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut AudioPlaybackConnectionState) -> ::windows::runtime::HRESULT,
6058     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6059     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6060     #[cfg(not(feature = "Foundation"))] usize,
6061     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, handler: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
6062     #[cfg(not(feature = "Foundation"))] usize,
6063     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, token: super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
6064     #[cfg(not(feature = "Foundation"))] usize,
6065 );
6066 #[repr(transparent)]
6067 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6068 #[doc(hidden)]
6069 pub struct IAudioPlaybackConnectionOpenResult(::windows::runtime::IInspectable);
6070 unsafe impl ::windows::runtime::Interface for IAudioPlaybackConnectionOpenResult {
6071     type Vtable = IAudioPlaybackConnectionOpenResult_abi;
6072     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1315269359, 14841, 24521, [165, 25, 165, 187, 253, 159, 233, 33]);
6073 }
6074 #[repr(C)]
6075 #[doc(hidden)]
6076 pub struct IAudioPlaybackConnectionOpenResult_abi(
6077     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6078     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6079     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6080     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6081     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6082     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6083     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut AudioPlaybackConnectionOpenResultStatus) -> ::windows::runtime::HRESULT,
6084     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::HRESULT) -> ::windows::runtime::HRESULT,
6085 );
6086 #[repr(transparent)]
6087 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6088 #[doc(hidden)]
6089 pub struct IAudioPlaybackConnectionStatics(::windows::runtime::IInspectable);
6090 unsafe impl ::windows::runtime::Interface for IAudioPlaybackConnectionStatics {
6091     type Vtable = IAudioPlaybackConnectionStatics_abi;
6092     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3859375010, 27110, 24572, [158, 19, 130, 74, 133, 33, 61, 175]);
6093 }
6094 #[repr(C)]
6095 #[doc(hidden)]
6096 pub struct IAudioPlaybackConnectionStatics_abi(
6097     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6098     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6099     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6100     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6101     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6102     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6103     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
6104     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, id: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6105 );
6106 #[repr(transparent)]
6107 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6108 #[doc(hidden)]
6109 pub struct IAudioStateMonitor(::windows::runtime::IInspectable);
6110 unsafe impl ::windows::runtime::Interface for IAudioStateMonitor {
6111     type Vtable = IAudioStateMonitor_abi;
6112     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(487838006, 409, 19676, [184, 78, 231, 44, 43, 88, 30, 206]);
6113 }
6114 #[repr(C)]
6115 #[doc(hidden)]
6116 pub struct IAudioStateMonitor_abi(
6117     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6118     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6119     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6120     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6121     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6122     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6123     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, handler: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
6124     #[cfg(not(feature = "Foundation"))] usize,
6125     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, token: super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
6126     #[cfg(not(feature = "Foundation"))] usize,
6127     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::SoundLevel) -> ::windows::runtime::HRESULT,
6128 );
6129 #[repr(transparent)]
6130 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6131 #[doc(hidden)]
6132 pub struct IAudioStateMonitorStatics(::windows::runtime::IInspectable);
6133 unsafe impl ::windows::runtime::Interface for IAudioStateMonitorStatics {
6134     type Vtable = IAudioStateMonitorStatics_abi;
6135     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1668606540, 6971, 16385, [148, 217, 221, 34, 83, 48, 250, 64]);
6136 }
6137 #[repr(C)]
6138 #[doc(hidden)]
6139 pub struct IAudioStateMonitorStatics_abi(
6140     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6141     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6142     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6143     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6144     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6145     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6146     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6147     #[cfg(feature = "Media_Render")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, category: super::Render::AudioRenderCategory, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6148     #[cfg(not(feature = "Media_Render"))] usize,
6149     #[cfg(all(feature = "Media_Devices", feature = "Media_Render"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, category: super::Render::AudioRenderCategory, role: super::Devices::AudioDeviceRole, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6150     #[cfg(not(all(feature = "Media_Devices", feature = "Media_Render")))] usize,
6151     #[cfg(feature = "Media_Render")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, category: super::Render::AudioRenderCategory, deviceid: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6152     #[cfg(not(feature = "Media_Render"))] usize,
6153     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6154     #[cfg(feature = "Media_Capture")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, category: super::Capture::MediaCategory, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6155     #[cfg(not(feature = "Media_Capture"))] usize,
6156     #[cfg(all(feature = "Media_Capture", feature = "Media_Devices"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, category: super::Capture::MediaCategory, role: super::Devices::AudioDeviceRole, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6157     #[cfg(not(all(feature = "Media_Capture", feature = "Media_Devices")))] usize,
6158     #[cfg(feature = "Media_Capture")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, category: super::Capture::MediaCategory, deviceid: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6159     #[cfg(not(feature = "Media_Capture"))] usize,
6160 );
6161 #[repr(transparent)]
6162 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6163 #[doc(hidden)]
6164 pub struct ICreateAudioDeviceInputNodeResult(::windows::runtime::IInspectable);
6165 unsafe impl ::windows::runtime::Interface for ICreateAudioDeviceInputNodeResult {
6166     type Vtable = ICreateAudioDeviceInputNodeResult_abi;
6167     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(384747432, 7335, 16623, [145, 164, 211, 70, 224, 170, 27, 186]);
6168 }
6169 #[repr(C)]
6170 #[doc(hidden)]
6171 pub struct ICreateAudioDeviceInputNodeResult_abi(
6172     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6173     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6174     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6175     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6176     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6177     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6178     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut AudioDeviceNodeCreationStatus) -> ::windows::runtime::HRESULT,
6179     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6180 );
6181 #[repr(transparent)]
6182 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6183 #[doc(hidden)]
6184 pub struct ICreateAudioDeviceInputNodeResult2(::windows::runtime::IInspectable);
6185 unsafe impl ::windows::runtime::Interface for ICreateAudioDeviceInputNodeResult2 {
6186     type Vtable = ICreateAudioDeviceInputNodeResult2_abi;
6187     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2451335630, 16181, 16839, [150, 34, 121, 246, 8, 186, 237, 194]);
6188 }
6189 #[repr(C)]
6190 #[doc(hidden)]
6191 pub struct ICreateAudioDeviceInputNodeResult2_abi(
6192     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6193     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6194     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6195     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6196     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6197     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6198     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::HRESULT) -> ::windows::runtime::HRESULT,
6199 );
6200 #[repr(transparent)]
6201 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6202 #[doc(hidden)]
6203 pub struct ICreateAudioDeviceOutputNodeResult(::windows::runtime::IInspectable);
6204 unsafe impl ::windows::runtime::Interface for ICreateAudioDeviceOutputNodeResult {
6205     type Vtable = ICreateAudioDeviceOutputNodeResult_abi;
6206     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4151799079, 7578, 18423, [156, 212, 40, 89, 204, 27, 123, 255]);
6207 }
6208 #[repr(C)]
6209 #[doc(hidden)]
6210 pub struct ICreateAudioDeviceOutputNodeResult_abi(
6211     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6212     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6213     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6214     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6215     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6216     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6217     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut AudioDeviceNodeCreationStatus) -> ::windows::runtime::HRESULT,
6218     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6219 );
6220 #[repr(transparent)]
6221 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6222 #[doc(hidden)]
6223 pub struct ICreateAudioDeviceOutputNodeResult2(::windows::runtime::IInspectable);
6224 unsafe impl ::windows::runtime::Interface for ICreateAudioDeviceOutputNodeResult2 {
6225     type Vtable = ICreateAudioDeviceOutputNodeResult2_abi;
6226     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1214523039, 48590, 19121, [189, 56, 251, 174, 147, 174, 218, 202]);
6227 }
6228 #[repr(C)]
6229 #[doc(hidden)]
6230 pub struct ICreateAudioDeviceOutputNodeResult2_abi(
6231     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6232     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6233     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6234     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6235     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6236     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6237     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::HRESULT) -> ::windows::runtime::HRESULT,
6238 );
6239 #[repr(transparent)]
6240 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6241 #[doc(hidden)]
6242 pub struct ICreateAudioFileInputNodeResult(::windows::runtime::IInspectable);
6243 unsafe impl ::windows::runtime::Interface for ICreateAudioFileInputNodeResult {
6244     type Vtable = ICreateAudioFileInputNodeResult_abi;
6245     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3464746524, 58007, 19536, [156, 231, 28, 122, 105, 214, 189, 9]);
6246 }
6247 #[repr(C)]
6248 #[doc(hidden)]
6249 pub struct ICreateAudioFileInputNodeResult_abi(
6250     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6251     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6252     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6253     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6254     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6255     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6256     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut AudioFileNodeCreationStatus) -> ::windows::runtime::HRESULT,
6257     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6258 );
6259 #[repr(transparent)]
6260 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6261 #[doc(hidden)]
6262 pub struct ICreateAudioFileInputNodeResult2(::windows::runtime::IInspectable);
6263 unsafe impl ::windows::runtime::Interface for ICreateAudioFileInputNodeResult2 {
6264     type Vtable = ICreateAudioFileInputNodeResult2_abi;
6265     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4178059296, 15744, 20448, [129, 193, 118, 143, 234, 124, 167, 224]);
6266 }
6267 #[repr(C)]
6268 #[doc(hidden)]
6269 pub struct ICreateAudioFileInputNodeResult2_abi(
6270     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6271     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6272     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6273     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6274     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6275     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6276     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::HRESULT) -> ::windows::runtime::HRESULT,
6277 );
6278 #[repr(transparent)]
6279 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6280 #[doc(hidden)]
6281 pub struct ICreateAudioFileOutputNodeResult(::windows::runtime::IInspectable);
6282 unsafe impl ::windows::runtime::Interface for ICreateAudioFileOutputNodeResult {
6283     type Vtable = ICreateAudioFileOutputNodeResult_abi;
6284     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1205254779, 59657, 17727, [134, 110, 85, 64, 205, 167, 52, 255]);
6285 }
6286 #[repr(C)]
6287 #[doc(hidden)]
6288 pub struct ICreateAudioFileOutputNodeResult_abi(
6289     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6290     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6291     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6292     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6293     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6294     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6295     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut AudioFileNodeCreationStatus) -> ::windows::runtime::HRESULT,
6296     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6297 );
6298 #[repr(transparent)]
6299 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6300 #[doc(hidden)]
6301 pub struct ICreateAudioFileOutputNodeResult2(::windows::runtime::IInspectable);
6302 unsafe impl ::windows::runtime::Interface for ICreateAudioFileOutputNodeResult2 {
6303     type Vtable = ICreateAudioFileOutputNodeResult2_abi;
6304     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2667689229, 13080, 18355, [166, 10, 27, 73, 43, 231, 252, 13]);
6305 }
6306 #[repr(C)]
6307 #[doc(hidden)]
6308 pub struct ICreateAudioFileOutputNodeResult2_abi(
6309     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6310     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6311     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6312     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6313     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6314     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6315     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::HRESULT) -> ::windows::runtime::HRESULT,
6316 );
6317 #[repr(transparent)]
6318 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6319 #[doc(hidden)]
6320 pub struct ICreateAudioGraphResult(::windows::runtime::IInspectable);
6321 unsafe impl ::windows::runtime::Interface for ICreateAudioGraphResult {
6322     type Vtable = ICreateAudioGraphResult_abi;
6323     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1414786942, 31710, 19318, [187, 93, 72, 247, 156, 252, 140, 11]);
6324 }
6325 #[repr(C)]
6326 #[doc(hidden)]
6327 pub struct ICreateAudioGraphResult_abi(
6328     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6329     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6330     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6331     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6332     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6333     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6334     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut AudioGraphCreationStatus) -> ::windows::runtime::HRESULT,
6335     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6336 );
6337 #[repr(transparent)]
6338 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6339 #[doc(hidden)]
6340 pub struct ICreateAudioGraphResult2(::windows::runtime::IInspectable);
6341 unsafe impl ::windows::runtime::Interface for ICreateAudioGraphResult2 {
6342     type Vtable = ICreateAudioGraphResult2_abi;
6343     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1836289532, 35014, 20427, [165, 52, 133, 206, 221, 64, 80, 161]);
6344 }
6345 #[repr(C)]
6346 #[doc(hidden)]
6347 pub struct ICreateAudioGraphResult2_abi(
6348     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6349     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6350     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6351     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6352     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6353     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6354     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::HRESULT) -> ::windows::runtime::HRESULT,
6355 );
6356 #[repr(transparent)]
6357 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6358 #[doc(hidden)]
6359 pub struct ICreateMediaSourceAudioInputNodeResult(::windows::runtime::IInspectable);
6360 unsafe impl ::windows::runtime::Interface for ICreateMediaSourceAudioInputNodeResult {
6361     type Vtable = ICreateMediaSourceAudioInputNodeResult_abi;
6362     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1185306787, 21440, 19801, [158, 81, 204, 29, 16, 68, 164, 196]);
6363 }
6364 #[repr(C)]
6365 #[doc(hidden)]
6366 pub struct ICreateMediaSourceAudioInputNodeResult_abi(
6367     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6368     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6369     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6370     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6371     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6372     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6373     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut MediaSourceAudioInputNodeCreationStatus) -> ::windows::runtime::HRESULT,
6374     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6375 );
6376 #[repr(transparent)]
6377 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6378 #[doc(hidden)]
6379 pub struct ICreateMediaSourceAudioInputNodeResult2(::windows::runtime::IInspectable);
6380 unsafe impl ::windows::runtime::Interface for ICreateMediaSourceAudioInputNodeResult2 {
6381     type Vtable = ICreateMediaSourceAudioInputNodeResult2_abi;
6382     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1666272488, 27162, 18915, [151, 236, 40, 253, 91, 225, 20, 229]);
6383 }
6384 #[repr(C)]
6385 #[doc(hidden)]
6386 pub struct ICreateMediaSourceAudioInputNodeResult2_abi(
6387     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6388     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6389     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6390     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6391     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6392     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6393     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::HRESULT) -> ::windows::runtime::HRESULT,
6394 );
6395 #[repr(transparent)]
6396 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6397 #[doc(hidden)]
6398 pub struct IEchoEffectDefinition(::windows::runtime::IInspectable);
6399 unsafe impl ::windows::runtime::Interface for IEchoEffectDefinition {
6400     type Vtable = IEchoEffectDefinition_abi;
6401     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(239943594, 14008, 19601, [185, 218, 17, 244, 74, 138, 102, 16]);
6402 }
6403 #[repr(C)]
6404 #[doc(hidden)]
6405 pub struct IEchoEffectDefinition_abi(
6406     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6407     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6408     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6409     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6410     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6411     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6412     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f64) -> ::windows::runtime::HRESULT,
6413     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
6414     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f64) -> ::windows::runtime::HRESULT,
6415     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
6416     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f64) -> ::windows::runtime::HRESULT,
6417     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
6418 );
6419 #[repr(transparent)]
6420 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6421 #[doc(hidden)]
6422 pub struct IEchoEffectDefinitionFactory(::windows::runtime::IInspectable);
6423 unsafe impl ::windows::runtime::Interface for IEchoEffectDefinitionFactory {
6424     type Vtable = IEchoEffectDefinitionFactory_abi;
6425     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(223224407, 43762, 20102, [165, 76, 251, 121, 219, 143, 108, 18]);
6426 }
6427 #[repr(C)]
6428 #[doc(hidden)]
6429 pub struct IEchoEffectDefinitionFactory_abi(
6430     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6431     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6432     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6433     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6434     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6435     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6436     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, audiograph: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6437 );
6438 #[repr(transparent)]
6439 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6440 #[doc(hidden)]
6441 pub struct IEqualizerBand(::windows::runtime::IInspectable);
6442 unsafe impl ::windows::runtime::Interface for IEqualizerBand {
6443     type Vtable = IEqualizerBand_abi;
6444     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3221903978, 9773, 19333, [155, 183, 67, 40, 11, 98, 237, 12]);
6445 }
6446 #[repr(C)]
6447 #[doc(hidden)]
6448 pub struct IEqualizerBand_abi(
6449     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6450     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6451     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6452     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6453     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6454     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6455     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
6456     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f64) -> ::windows::runtime::HRESULT,
6457     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
6458     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f64) -> ::windows::runtime::HRESULT,
6459     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
6460     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f64) -> ::windows::runtime::HRESULT,
6461 );
6462 #[repr(transparent)]
6463 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6464 #[doc(hidden)]
6465 pub struct IEqualizerEffectDefinition(::windows::runtime::IInspectable);
6466 unsafe impl ::windows::runtime::Interface for IEqualizerEffectDefinition {
6467     type Vtable = IEqualizerEffectDefinition_abi;
6468     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(37711647, 33790, 17562, [168, 34, 198, 150, 68, 45, 22, 176]);
6469 }
6470 #[repr(C)]
6471 #[doc(hidden)]
6472 pub struct IEqualizerEffectDefinition_abi(
6473     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6474     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6475     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6476     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6477     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6478     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6479     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6480     #[cfg(not(feature = "Foundation_Collections"))] usize,
6481 );
6482 #[repr(transparent)]
6483 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6484 #[doc(hidden)]
6485 pub struct IEqualizerEffectDefinitionFactory(::windows::runtime::IInspectable);
6486 unsafe impl ::windows::runtime::Interface for IEqualizerEffectDefinitionFactory {
6487     type Vtable = IEqualizerEffectDefinitionFactory_abi;
6488     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3532091332, 54288, 20149, [158, 105, 201, 170, 18, 119, 234, 240]);
6489 }
6490 #[repr(C)]
6491 #[doc(hidden)]
6492 pub struct IEqualizerEffectDefinitionFactory_abi(
6493     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6494     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6495     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6496     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6497     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6498     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6499     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, audiograph: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6500 );
6501 #[repr(transparent)]
6502 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6503 #[doc(hidden)]
6504 pub struct IFrameInputNodeQuantumStartedEventArgs(::windows::runtime::IInspectable);
6505 unsafe impl ::windows::runtime::Interface for IFrameInputNodeQuantumStartedEventArgs {
6506     type Vtable = IFrameInputNodeQuantumStartedEventArgs_abi;
6507     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1033622680, 41734, 20230, [189, 159, 233, 239, 200, 34, 99, 4]);
6508 }
6509 #[repr(C)]
6510 #[doc(hidden)]
6511 pub struct IFrameInputNodeQuantumStartedEventArgs_abi(
6512     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6513     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6514     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6515     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6516     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6517     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6518     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut i32) -> ::windows::runtime::HRESULT,
6519 );
6520 #[repr(transparent)]
6521 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6522 #[doc(hidden)]
6523 pub struct ILimiterEffectDefinition(::windows::runtime::IInspectable);
6524 unsafe impl ::windows::runtime::Interface for ILimiterEffectDefinition {
6525     type Vtable = ILimiterEffectDefinition_abi;
6526     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1802853657, 9731, 18362, [189, 235, 57, 5, 94, 52, 134, 220]);
6527 }
6528 #[repr(C)]
6529 #[doc(hidden)]
6530 pub struct ILimiterEffectDefinition_abi(
6531     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6532     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6533     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6534     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6535     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6536     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6537     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u32) -> ::windows::runtime::HRESULT,
6538     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
6539     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u32) -> ::windows::runtime::HRESULT,
6540     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
6541 );
6542 #[repr(transparent)]
6543 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6544 #[doc(hidden)]
6545 pub struct ILimiterEffectDefinitionFactory(::windows::runtime::IInspectable);
6546 unsafe impl ::windows::runtime::Interface for ILimiterEffectDefinitionFactory {
6547     type Vtable = ILimiterEffectDefinitionFactory_abi;
6548     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3971671793, 25087, 17903, [184, 245, 72, 101, 154, 87, 199, 45]);
6549 }
6550 #[repr(C)]
6551 #[doc(hidden)]
6552 pub struct ILimiterEffectDefinitionFactory_abi(
6553     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6554     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6555     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6556     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6557     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6558     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6559     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, audiograph: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6560 );
6561 #[repr(transparent)]
6562 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6563 #[doc(hidden)]
6564 pub struct IMediaSourceAudioInputNode(::windows::runtime::IInspectable);
6565 unsafe impl ::windows::runtime::Interface for IMediaSourceAudioInputNode {
6566     type Vtable = IMediaSourceAudioInputNode_abi;
6567     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2581108795, 43146, 16449, [142, 79, 221, 186, 192, 201, 31, 211]);
6568 }
6569 #[repr(C)]
6570 #[doc(hidden)]
6571 pub struct IMediaSourceAudioInputNode_abi(
6572     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6573     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6574     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6575     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6576     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6577     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6578     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f64) -> ::windows::runtime::HRESULT,
6579     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
6580     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::TimeSpan) -> ::windows::runtime::HRESULT,
6581     #[cfg(not(feature = "Foundation"))] usize,
6582     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, position: super::super::Foundation::TimeSpan) -> ::windows::runtime::HRESULT,
6583     #[cfg(not(feature = "Foundation"))] usize,
6584     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6585     #[cfg(not(feature = "Foundation"))] usize,
6586     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6587     #[cfg(not(feature = "Foundation"))] usize,
6588     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6589     #[cfg(not(feature = "Foundation"))] usize,
6590     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6591     #[cfg(not(feature = "Foundation"))] usize,
6592     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6593     #[cfg(not(feature = "Foundation"))] usize,
6594     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6595     #[cfg(not(feature = "Foundation"))] usize,
6596     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::TimeSpan) -> ::windows::runtime::HRESULT,
6597     #[cfg(not(feature = "Foundation"))] usize,
6598     #[cfg(feature = "Media_Core")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6599     #[cfg(not(feature = "Media_Core"))] usize,
6600     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, handler: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
6601     #[cfg(not(feature = "Foundation"))] usize,
6602     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, token: super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
6603     #[cfg(not(feature = "Foundation"))] usize,
6604 );
6605 #[repr(transparent)]
6606 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6607 #[doc(hidden)]
6608 pub struct IReverbEffectDefinition(::windows::runtime::IInspectable);
6609 unsafe impl ::windows::runtime::Interface for IReverbEffectDefinition {
6610     type Vtable = IReverbEffectDefinition_abi;
6611     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1174841993, 62819, 19722, [143, 110, 240, 205, 223, 243, 93, 132]);
6612 }
6613 #[repr(C)]
6614 #[doc(hidden)]
6615 pub struct IReverbEffectDefinition_abi(
6616     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6617     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6618     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6619     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6620     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6621     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6622     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f64) -> ::windows::runtime::HRESULT,
6623     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
6624     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u32) -> ::windows::runtime::HRESULT,
6625     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
6626     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u8) -> ::windows::runtime::HRESULT,
6627     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u8) -> ::windows::runtime::HRESULT,
6628     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u8) -> ::windows::runtime::HRESULT,
6629     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u8) -> ::windows::runtime::HRESULT,
6630     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u8) -> ::windows::runtime::HRESULT,
6631     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u8) -> ::windows::runtime::HRESULT,
6632     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u8) -> ::windows::runtime::HRESULT,
6633     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u8) -> ::windows::runtime::HRESULT,
6634     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u8) -> ::windows::runtime::HRESULT,
6635     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u8) -> ::windows::runtime::HRESULT,
6636     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u8) -> ::windows::runtime::HRESULT,
6637     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u8) -> ::windows::runtime::HRESULT,
6638     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u8) -> ::windows::runtime::HRESULT,
6639     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u8) -> ::windows::runtime::HRESULT,
6640     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u8) -> ::windows::runtime::HRESULT,
6641     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u8) -> ::windows::runtime::HRESULT,
6642     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u8) -> ::windows::runtime::HRESULT,
6643     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u8) -> ::windows::runtime::HRESULT,
6644     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u8) -> ::windows::runtime::HRESULT,
6645     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u8) -> ::windows::runtime::HRESULT,
6646     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u8) -> ::windows::runtime::HRESULT,
6647     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u8) -> ::windows::runtime::HRESULT,
6648     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u8) -> ::windows::runtime::HRESULT,
6649     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u8) -> ::windows::runtime::HRESULT,
6650     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f64) -> ::windows::runtime::HRESULT,
6651     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
6652     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f64) -> ::windows::runtime::HRESULT,
6653     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
6654     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f64) -> ::windows::runtime::HRESULT,
6655     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
6656     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f64) -> ::windows::runtime::HRESULT,
6657     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
6658     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f64) -> ::windows::runtime::HRESULT,
6659     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
6660     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f64) -> ::windows::runtime::HRESULT,
6661     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
6662     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f64) -> ::windows::runtime::HRESULT,
6663     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
6664     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f64) -> ::windows::runtime::HRESULT,
6665     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
6666     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: bool) -> ::windows::runtime::HRESULT,
6667     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
6668 );
6669 #[repr(transparent)]
6670 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6671 #[doc(hidden)]
6672 pub struct IReverbEffectDefinitionFactory(::windows::runtime::IInspectable);
6673 unsafe impl ::windows::runtime::Interface for IReverbEffectDefinitionFactory {
6674     type Vtable = IReverbEffectDefinitionFactory_abi;
6675     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2815806462, 4107, 20464, [157, 166, 220, 78, 5, 167, 89, 240]);
6676 }
6677 #[repr(C)]
6678 #[doc(hidden)]
6679 pub struct IReverbEffectDefinitionFactory_abi(
6680     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6681     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6682     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6683     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6684     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6685     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6686     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, audiograph: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6687 );
6688 #[repr(transparent)]
6689 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6690 #[doc(hidden)]
6691 pub struct ISetDefaultSpatialAudioFormatResult(::windows::runtime::IInspectable);
6692 unsafe impl ::windows::runtime::Interface for ISetDefaultSpatialAudioFormatResult {
6693     type Vtable = ISetDefaultSpatialAudioFormatResult_abi;
6694     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(472556817, 5120, 24176, [158, 169, 174, 21, 18, 65, 232, 234]);
6695 }
6696 #[repr(C)]
6697 #[doc(hidden)]
6698 pub struct ISetDefaultSpatialAudioFormatResult_abi(
6699     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6700     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6701     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6702     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6703     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6704     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6705     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut SetDefaultSpatialAudioFormatStatus) -> ::windows::runtime::HRESULT,
6706 );
6707 #[repr(transparent)]
6708 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6709 #[doc(hidden)]
6710 pub struct ISpatialAudioDeviceConfiguration(::windows::runtime::IInspectable);
6711 unsafe impl ::windows::runtime::Interface for ISpatialAudioDeviceConfiguration {
6712     type Vtable = ISpatialAudioDeviceConfiguration_abi;
6713     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4001562676, 25039, 22345, [157, 164, 16, 240, 254, 2, 129, 153]);
6714 }
6715 #[repr(C)]
6716 #[doc(hidden)]
6717 pub struct ISpatialAudioDeviceConfiguration_abi(
6718     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6719     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6720     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6721     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6722     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6723     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6724     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
6725     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
6726     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, subtype: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, result__: *mut bool) -> ::windows::runtime::HRESULT,
6727     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
6728     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
6729     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, subtype: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6730     #[cfg(not(feature = "Foundation"))] usize,
6731     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, handler: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
6732     #[cfg(not(feature = "Foundation"))] usize,
6733     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, token: super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
6734     #[cfg(not(feature = "Foundation"))] usize,
6735 );
6736 #[repr(transparent)]
6737 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6738 #[doc(hidden)]
6739 pub struct ISpatialAudioDeviceConfigurationStatics(::windows::runtime::IInspectable);
6740 unsafe impl ::windows::runtime::Interface for ISpatialAudioDeviceConfigurationStatics {
6741     type Vtable = ISpatialAudioDeviceConfigurationStatics_abi;
6742     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1052999547, 37741, 19972, [151, 40, 40, 39, 217, 247, 88, 196]);
6743 }
6744 #[repr(C)]
6745 #[doc(hidden)]
6746 pub struct ISpatialAudioDeviceConfigurationStatics_abi(
6747     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6748     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6749     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6750     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6751     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6752     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6753     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, deviceid: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6754 );
6755 #[repr(transparent)]
6756 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6757 #[doc(hidden)]
6758 pub struct ISpatialAudioFormatConfiguration(::windows::runtime::IInspectable);
6759 unsafe impl ::windows::runtime::Interface for ISpatialAudioFormatConfiguration {
6760     type Vtable = ISpatialAudioFormatConfiguration_abi;
6761     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(853477800, 20720, 21397, [153, 35, 125, 68, 202, 113, 237, 109]);
6762 }
6763 #[repr(C)]
6764 #[doc(hidden)]
6765 pub struct ISpatialAudioFormatConfiguration_abi(
6766     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6767     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6768     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6769     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6770     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6771     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6772     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, subtype: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6773     #[cfg(not(feature = "Foundation"))] usize,
6774     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, subtype: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6775     #[cfg(not(feature = "Foundation"))] usize,
6776     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut MixedRealitySpatialAudioFormatPolicy) -> ::windows::runtime::HRESULT,
6777     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: MixedRealitySpatialAudioFormatPolicy) -> ::windows::runtime::HRESULT,
6778 );
6779 #[repr(transparent)]
6780 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6781 #[doc(hidden)]
6782 pub struct ISpatialAudioFormatConfigurationStatics(::windows::runtime::IInspectable);
6783 unsafe impl ::windows::runtime::Interface for ISpatialAudioFormatConfigurationStatics {
6784     type Vtable = ISpatialAudioFormatConfigurationStatics_abi;
6785     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(727707505, 26569, 20063, [163, 91, 65, 104, 7, 17, 248, 199]);
6786 }
6787 #[repr(C)]
6788 #[doc(hidden)]
6789 pub struct ISpatialAudioFormatConfigurationStatics_abi(
6790     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6791     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6792     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6793     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6794     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6795     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6796     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6797 );
6798 #[repr(transparent)]
6799 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6800 #[doc(hidden)]
6801 pub struct ISpatialAudioFormatSubtypeStatics(::windows::runtime::IInspectable);
6802 unsafe impl ::windows::runtime::Interface for ISpatialAudioFormatSubtypeStatics {
6803     type Vtable = ISpatialAudioFormatSubtypeStatics_abi;
6804     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3017706055, 33774, 16998, [169, 69, 190, 223, 80, 122, 254, 237]);
6805 }
6806 #[repr(C)]
6807 #[doc(hidden)]
6808 pub struct ISpatialAudioFormatSubtypeStatics_abi(
6809     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6810     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6811     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6812     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6813     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6814     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6815     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
6816     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
6817     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
6818     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
6819     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
6820     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
6821 );
6822 #[repr(transparent)]
6823 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6824 #[doc(hidden)]
6825 pub struct ISpatialAudioFormatSubtypeStatics2(::windows::runtime::IInspectable);
6826 unsafe impl ::windows::runtime::Interface for ISpatialAudioFormatSubtypeStatics2 {
6827     type Vtable = ISpatialAudioFormatSubtypeStatics2_abi;
6828     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1164306123, 55643, 22049, [182, 175, 14, 136, 73, 197, 124, 128]);
6829 }
6830 #[repr(C)]
6831 #[doc(hidden)]
6832 pub struct ISpatialAudioFormatSubtypeStatics2_abi(
6833     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6834     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6835     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6836     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6837     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6838     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
6839     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
6840 );
6841 #[repr(transparent)]
6842 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6843 pub struct LimiterEffectDefinition(::windows::runtime::IInspectable);
6844 impl LimiterEffectDefinition {
SetRelease(&self, value: u32) -> ::windows::runtime::Result<()>6845     pub fn SetRelease(&self, value: u32) -> ::windows::runtime::Result<()> {
6846         let this = self;
6847         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), value).ok() }
6848     }
Release(&self) -> ::windows::runtime::Result<u32>6849     pub fn Release(&self) -> ::windows::runtime::Result<u32> {
6850         let this = self;
6851         unsafe {
6852             let mut result__: u32 = ::std::mem::zeroed();
6853             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
6854         }
6855     }
SetLoudness(&self, value: u32) -> ::windows::runtime::Result<()>6856     pub fn SetLoudness(&self, value: u32) -> ::windows::runtime::Result<()> {
6857         let this = self;
6858         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), value).ok() }
6859     }
Loudness(&self) -> ::windows::runtime::Result<u32>6860     pub fn Loudness(&self) -> ::windows::runtime::Result<u32> {
6861         let this = self;
6862         unsafe {
6863             let mut result__: u32 = ::std::mem::zeroed();
6864             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
6865         }
6866     }
6867     #[cfg(feature = "Media_Effects")]
ActivatableClassId(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>6868     pub fn ActivatableClassId(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
6869         let this = &::windows::runtime::Interface::cast::<super::Effects::IAudioEffectDefinition>(self)?;
6870         unsafe {
6871             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
6872             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
6873         }
6874     }
6875     #[cfg(all(feature = "Foundation_Collections", feature = "Media_Effects"))]
Properties(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IPropertySet>6876     pub fn Properties(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IPropertySet> {
6877         let this = &::windows::runtime::Interface::cast::<super::Effects::IAudioEffectDefinition>(self)?;
6878         unsafe {
6879             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6880             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IPropertySet>(result__)
6881         }
6882     }
Create<'a, Param0: ::windows::runtime::IntoParam<'a, AudioGraph>>(audiograph: Param0) -> ::windows::runtime::Result<LimiterEffectDefinition>6883     pub fn Create<'a, Param0: ::windows::runtime::IntoParam<'a, AudioGraph>>(audiograph: Param0) -> ::windows::runtime::Result<LimiterEffectDefinition> {
6884         Self::ILimiterEffectDefinitionFactory(|this| unsafe {
6885             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6886             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), audiograph.into_param().abi(), &mut result__).from_abi::<LimiterEffectDefinition>(result__)
6887         })
6888     }
ILimiterEffectDefinitionFactory<R, F: FnOnce(&ILimiterEffectDefinitionFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>6889     pub fn ILimiterEffectDefinitionFactory<R, F: FnOnce(&ILimiterEffectDefinitionFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
6890         static mut SHARED: ::windows::runtime::FactoryCache<LimiterEffectDefinition, ILimiterEffectDefinitionFactory> = ::windows::runtime::FactoryCache::new();
6891         unsafe { SHARED.call(callback) }
6892     }
6893 }
6894 unsafe impl ::windows::runtime::RuntimeType for LimiterEffectDefinition {
6895     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.LimiterEffectDefinition;{6b755d19-2603-47ba-bdeb-39055e3486dc})");
6896 }
6897 unsafe impl ::windows::runtime::Interface for LimiterEffectDefinition {
6898     type Vtable = ILimiterEffectDefinition_abi;
6899     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1802853657, 9731, 18362, [189, 235, 57, 5, 94, 52, 134, 220]);
6900 }
6901 impl ::windows::runtime::RuntimeName for LimiterEffectDefinition {
6902     const NAME: &'static str = "Windows.Media.Audio.LimiterEffectDefinition";
6903 }
6904 impl ::std::convert::From<LimiterEffectDefinition> for ::windows::runtime::IUnknown {
from(value: LimiterEffectDefinition) -> Self6905     fn from(value: LimiterEffectDefinition) -> Self {
6906         unsafe { ::std::mem::transmute(value) }
6907     }
6908 }
6909 impl ::std::convert::From<&LimiterEffectDefinition> for ::windows::runtime::IUnknown {
from(value: &LimiterEffectDefinition) -> Self6910     fn from(value: &LimiterEffectDefinition) -> Self {
6911         ::std::convert::From::from(::std::clone::Clone::clone(value))
6912     }
6913 }
6914 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for LimiterEffectDefinition {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>6915     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
6916         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
6917     }
6918 }
6919 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &LimiterEffectDefinition {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>6920     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
6921         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
6922     }
6923 }
6924 impl ::std::convert::From<LimiterEffectDefinition> for ::windows::runtime::IInspectable {
from(value: LimiterEffectDefinition) -> Self6925     fn from(value: LimiterEffectDefinition) -> Self {
6926         value.0
6927     }
6928 }
6929 impl ::std::convert::From<&LimiterEffectDefinition> for ::windows::runtime::IInspectable {
from(value: &LimiterEffectDefinition) -> Self6930     fn from(value: &LimiterEffectDefinition) -> Self {
6931         value.0.clone()
6932     }
6933 }
6934 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for LimiterEffectDefinition {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>6935     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
6936         ::windows::runtime::Param::Owned(self.0)
6937     }
6938 }
6939 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a LimiterEffectDefinition {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>6940     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
6941         ::windows::runtime::Param::Borrowed(&self.0)
6942     }
6943 }
6944 #[cfg(feature = "Media_Effects")]
6945 impl ::std::convert::TryFrom<LimiterEffectDefinition> for super::Effects::IAudioEffectDefinition {
6946     type Error = ::windows::runtime::Error;
try_from(value: LimiterEffectDefinition) -> ::windows::runtime::Result<Self>6947     fn try_from(value: LimiterEffectDefinition) -> ::windows::runtime::Result<Self> {
6948         ::std::convert::TryFrom::try_from(&value)
6949     }
6950 }
6951 #[cfg(feature = "Media_Effects")]
6952 impl ::std::convert::TryFrom<&LimiterEffectDefinition> for super::Effects::IAudioEffectDefinition {
6953     type Error = ::windows::runtime::Error;
try_from(value: &LimiterEffectDefinition) -> ::windows::runtime::Result<Self>6954     fn try_from(value: &LimiterEffectDefinition) -> ::windows::runtime::Result<Self> {
6955         ::windows::runtime::Interface::cast(value)
6956     }
6957 }
6958 #[cfg(feature = "Media_Effects")]
6959 impl<'a> ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition> for LimiterEffectDefinition {
into_param(self) -> ::windows::runtime::Param<'a, super::Effects::IAudioEffectDefinition>6960     fn into_param(self) -> ::windows::runtime::Param<'a, super::Effects::IAudioEffectDefinition> {
6961         ::windows::runtime::IntoParam::into_param(&self)
6962     }
6963 }
6964 #[cfg(feature = "Media_Effects")]
6965 impl<'a> ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition> for &LimiterEffectDefinition {
into_param(self) -> ::windows::runtime::Param<'a, super::Effects::IAudioEffectDefinition>6966     fn into_param(self) -> ::windows::runtime::Param<'a, super::Effects::IAudioEffectDefinition> {
6967         ::std::convert::TryInto::<super::Effects::IAudioEffectDefinition>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
6968     }
6969 }
6970 unsafe impl ::std::marker::Send for LimiterEffectDefinition {}
6971 unsafe impl ::std::marker::Sync for LimiterEffectDefinition {}
6972 #[repr(transparent)]
6973 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6974 pub struct MediaSourceAudioInputNode(::windows::runtime::IInspectable);
6975 impl MediaSourceAudioInputNode {
6976     #[cfg(feature = "Foundation")]
Close(&self) -> ::windows::runtime::Result<()>6977     pub fn Close(&self) -> ::windows::runtime::Result<()> {
6978         let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?;
6979         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() }
6980     }
6981     #[cfg(feature = "Foundation_Collections")]
OutgoingConnections(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<AudioGraphConnection>>6982     pub fn OutgoingConnections(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<AudioGraphConnection>> {
6983         let this = &::windows::runtime::Interface::cast::<IAudioInputNode>(self)?;
6984         unsafe {
6985             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6986             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<AudioGraphConnection>>(result__)
6987         }
6988     }
AddOutgoingConnection<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0) -> ::windows::runtime::Result<()>6989     pub fn AddOutgoingConnection<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0) -> ::windows::runtime::Result<()> {
6990         let this = &::windows::runtime::Interface::cast::<IAudioInputNode>(self)?;
6991         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), destination.into_param().abi()).ok() }
6992     }
AddOutgoingConnectionWithGain<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0, gain: f64) -> ::windows::runtime::Result<()>6993     pub fn AddOutgoingConnectionWithGain<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0, gain: f64) -> ::windows::runtime::Result<()> {
6994         let this = &::windows::runtime::Interface::cast::<IAudioInputNode>(self)?;
6995         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), destination.into_param().abi(), gain).ok() }
6996     }
RemoveOutgoingConnection<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0) -> ::windows::runtime::Result<()>6997     pub fn RemoveOutgoingConnection<'a, Param0: ::windows::runtime::IntoParam<'a, IAudioNode>>(&self, destination: Param0) -> ::windows::runtime::Result<()> {
6998         let this = &::windows::runtime::Interface::cast::<IAudioInputNode>(self)?;
6999         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), destination.into_param().abi()).ok() }
7000     }
7001     #[cfg(all(feature = "Foundation_Collections", feature = "Media_Effects"))]
EffectDefinitions(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>>7002     pub fn EffectDefinitions(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>> {
7003         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
7004         unsafe {
7005             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
7006             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVector<super::Effects::IAudioEffectDefinition>>(result__)
7007         }
7008     }
SetOutgoingGain(&self, value: f64) -> ::windows::runtime::Result<()>7009     pub fn SetOutgoingGain(&self, value: f64) -> ::windows::runtime::Result<()> {
7010         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
7011         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() }
7012     }
OutgoingGain(&self) -> ::windows::runtime::Result<f64>7013     pub fn OutgoingGain(&self) -> ::windows::runtime::Result<f64> {
7014         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
7015         unsafe {
7016             let mut result__: f64 = ::std::mem::zeroed();
7017             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
7018         }
7019     }
7020     #[cfg(feature = "Media_MediaProperties")]
EncodingProperties(&self) -> ::windows::runtime::Result<super::MediaProperties::AudioEncodingProperties>7021     pub fn EncodingProperties(&self) -> ::windows::runtime::Result<super::MediaProperties::AudioEncodingProperties> {
7022         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
7023         unsafe {
7024             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
7025             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::MediaProperties::AudioEncodingProperties>(result__)
7026         }
7027     }
ConsumeInput(&self) -> ::windows::runtime::Result<bool>7028     pub fn ConsumeInput(&self) -> ::windows::runtime::Result<bool> {
7029         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
7030         unsafe {
7031             let mut result__: bool = ::std::mem::zeroed();
7032             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
7033         }
7034     }
SetConsumeInput(&self, value: bool) -> ::windows::runtime::Result<()>7035     pub fn SetConsumeInput(&self, value: bool) -> ::windows::runtime::Result<()> {
7036         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
7037         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value).ok() }
7038     }
Start(&self) -> ::windows::runtime::Result<()>7039     pub fn Start(&self) -> ::windows::runtime::Result<()> {
7040         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
7041         unsafe { (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this)).ok() }
7042     }
Stop(&self) -> ::windows::runtime::Result<()>7043     pub fn Stop(&self) -> ::windows::runtime::Result<()> {
7044         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
7045         unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this)).ok() }
7046     }
Reset(&self) -> ::windows::runtime::Result<()>7047     pub fn Reset(&self) -> ::windows::runtime::Result<()> {
7048         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
7049         unsafe { (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this)).ok() }
7050     }
7051     #[cfg(feature = "Media_Effects")]
DisableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()>7052     pub fn DisableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()> {
7053         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
7054         unsafe { (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), definition.into_param().abi()).ok() }
7055     }
7056     #[cfg(feature = "Media_Effects")]
EnableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()>7057     pub fn EnableEffectsByDefinition<'a, Param0: ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition>>(&self, definition: Param0) -> ::windows::runtime::Result<()> {
7058         let this = &::windows::runtime::Interface::cast::<IAudioNode>(self)?;
7059         unsafe { (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), definition.into_param().abi()).ok() }
7060     }
Emitter(&self) -> ::windows::runtime::Result<AudioNodeEmitter>7061     pub fn Emitter(&self) -> ::windows::runtime::Result<AudioNodeEmitter> {
7062         let this = &::windows::runtime::Interface::cast::<IAudioInputNode2>(self)?;
7063         unsafe {
7064             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
7065             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioNodeEmitter>(result__)
7066         }
7067     }
SetPlaybackSpeedFactor(&self, value: f64) -> ::windows::runtime::Result<()>7068     pub fn SetPlaybackSpeedFactor(&self, value: f64) -> ::windows::runtime::Result<()> {
7069         let this = self;
7070         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), value).ok() }
7071     }
PlaybackSpeedFactor(&self) -> ::windows::runtime::Result<f64>7072     pub fn PlaybackSpeedFactor(&self) -> ::windows::runtime::Result<f64> {
7073         let this = self;
7074         unsafe {
7075             let mut result__: f64 = ::std::mem::zeroed();
7076             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
7077         }
7078     }
7079     #[cfg(feature = "Foundation")]
Position(&self) -> ::windows::runtime::Result<super::super::Foundation::TimeSpan>7080     pub fn Position(&self) -> ::windows::runtime::Result<super::super::Foundation::TimeSpan> {
7081         let this = self;
7082         unsafe {
7083             let mut result__: super::super::Foundation::TimeSpan = ::std::mem::zeroed();
7084             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::TimeSpan>(result__)
7085         }
7086     }
7087     #[cfg(feature = "Foundation")]
Seek<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TimeSpan>>(&self, position: Param0) -> ::windows::runtime::Result<()>7088     pub fn Seek<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TimeSpan>>(&self, position: Param0) -> ::windows::runtime::Result<()> {
7089         let this = self;
7090         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), position.into_param().abi()).ok() }
7091     }
7092     #[cfg(feature = "Foundation")]
StartTime(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<super::super::Foundation::TimeSpan>>7093     pub fn StartTime(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<super::super::Foundation::TimeSpan>> {
7094         let this = self;
7095         unsafe {
7096             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
7097             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<super::super::Foundation::TimeSpan>>(result__)
7098         }
7099     }
7100     #[cfg(feature = "Foundation")]
SetStartTime<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<super::super::Foundation::TimeSpan>>>(&self, value: Param0) -> ::windows::runtime::Result<()>7101     pub fn SetStartTime<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<super::super::Foundation::TimeSpan>>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
7102         let this = self;
7103         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
7104     }
7105     #[cfg(feature = "Foundation")]
EndTime(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<super::super::Foundation::TimeSpan>>7106     pub fn EndTime(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<super::super::Foundation::TimeSpan>> {
7107         let this = self;
7108         unsafe {
7109             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
7110             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<super::super::Foundation::TimeSpan>>(result__)
7111         }
7112     }
7113     #[cfg(feature = "Foundation")]
SetEndTime<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<super::super::Foundation::TimeSpan>>>(&self, value: Param0) -> ::windows::runtime::Result<()>7114     pub fn SetEndTime<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<super::super::Foundation::TimeSpan>>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
7115         let this = self;
7116         unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
7117     }
7118     #[cfg(feature = "Foundation")]
LoopCount(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<i32>>7119     pub fn LoopCount(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<i32>> {
7120         let this = self;
7121         unsafe {
7122             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
7123             (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<i32>>(result__)
7124         }
7125     }
7126     #[cfg(feature = "Foundation")]
SetLoopCount<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<i32>>>(&self, value: Param0) -> ::windows::runtime::Result<()>7127     pub fn SetLoopCount<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<i32>>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
7128         let this = self;
7129         unsafe { (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
7130     }
7131     #[cfg(feature = "Foundation")]
Duration(&self) -> ::windows::runtime::Result<super::super::Foundation::TimeSpan>7132     pub fn Duration(&self) -> ::windows::runtime::Result<super::super::Foundation::TimeSpan> {
7133         let this = self;
7134         unsafe {
7135             let mut result__: super::super::Foundation::TimeSpan = ::std::mem::zeroed();
7136             (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::TimeSpan>(result__)
7137         }
7138     }
7139     #[cfg(feature = "Media_Core")]
MediaSource(&self) -> ::windows::runtime::Result<super::Core::MediaSource>7140     pub fn MediaSource(&self) -> ::windows::runtime::Result<super::Core::MediaSource> {
7141         let this = self;
7142         unsafe {
7143             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
7144             (::windows::runtime::Interface::vtable(this).17)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::Core::MediaSource>(result__)
7145         }
7146     }
7147     #[cfg(feature = "Foundation")]
MediaSourceCompleted<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<MediaSourceAudioInputNode, ::windows::runtime::IInspectable>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken>7148     pub fn MediaSourceCompleted<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<MediaSourceAudioInputNode, ::windows::runtime::IInspectable>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken> {
7149         let this = self;
7150         unsafe {
7151             let mut result__: super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
7152             (::windows::runtime::Interface::vtable(this).18)(::std::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::EventRegistrationToken>(result__)
7153         }
7154     }
7155     #[cfg(feature = "Foundation")]
RemoveMediaSourceCompleted<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()>7156     pub fn RemoveMediaSourceCompleted<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()> {
7157         let this = self;
7158         unsafe { (::windows::runtime::Interface::vtable(this).19)(::std::mem::transmute_copy(this), token.into_param().abi()).ok() }
7159     }
7160 }
7161 unsafe impl ::windows::runtime::RuntimeType for MediaSourceAudioInputNode {
7162     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.MediaSourceAudioInputNode;{99d8983b-a88a-4041-8e4f-ddbac0c91fd3})");
7163 }
7164 unsafe impl ::windows::runtime::Interface for MediaSourceAudioInputNode {
7165     type Vtable = IMediaSourceAudioInputNode_abi;
7166     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2581108795, 43146, 16449, [142, 79, 221, 186, 192, 201, 31, 211]);
7167 }
7168 impl ::windows::runtime::RuntimeName for MediaSourceAudioInputNode {
7169     const NAME: &'static str = "Windows.Media.Audio.MediaSourceAudioInputNode";
7170 }
7171 impl ::std::convert::From<MediaSourceAudioInputNode> for ::windows::runtime::IUnknown {
from(value: MediaSourceAudioInputNode) -> Self7172     fn from(value: MediaSourceAudioInputNode) -> Self {
7173         unsafe { ::std::mem::transmute(value) }
7174     }
7175 }
7176 impl ::std::convert::From<&MediaSourceAudioInputNode> for ::windows::runtime::IUnknown {
from(value: &MediaSourceAudioInputNode) -> Self7177     fn from(value: &MediaSourceAudioInputNode) -> Self {
7178         ::std::convert::From::from(::std::clone::Clone::clone(value))
7179     }
7180 }
7181 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for MediaSourceAudioInputNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7182     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7183         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
7184     }
7185 }
7186 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &MediaSourceAudioInputNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7187     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7188         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
7189     }
7190 }
7191 impl ::std::convert::From<MediaSourceAudioInputNode> for ::windows::runtime::IInspectable {
from(value: MediaSourceAudioInputNode) -> Self7192     fn from(value: MediaSourceAudioInputNode) -> Self {
7193         value.0
7194     }
7195 }
7196 impl ::std::convert::From<&MediaSourceAudioInputNode> for ::windows::runtime::IInspectable {
from(value: &MediaSourceAudioInputNode) -> Self7197     fn from(value: &MediaSourceAudioInputNode) -> Self {
7198         value.0.clone()
7199     }
7200 }
7201 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for MediaSourceAudioInputNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>7202     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
7203         ::windows::runtime::Param::Owned(self.0)
7204     }
7205 }
7206 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a MediaSourceAudioInputNode {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>7207     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
7208         ::windows::runtime::Param::Borrowed(&self.0)
7209     }
7210 }
7211 #[cfg(feature = "Foundation")]
7212 impl ::std::convert::TryFrom<MediaSourceAudioInputNode> for super::super::Foundation::IClosable {
7213     type Error = ::windows::runtime::Error;
try_from(value: MediaSourceAudioInputNode) -> ::windows::runtime::Result<Self>7214     fn try_from(value: MediaSourceAudioInputNode) -> ::windows::runtime::Result<Self> {
7215         ::std::convert::TryFrom::try_from(&value)
7216     }
7217 }
7218 #[cfg(feature = "Foundation")]
7219 impl ::std::convert::TryFrom<&MediaSourceAudioInputNode> for super::super::Foundation::IClosable {
7220     type Error = ::windows::runtime::Error;
try_from(value: &MediaSourceAudioInputNode) -> ::windows::runtime::Result<Self>7221     fn try_from(value: &MediaSourceAudioInputNode) -> ::windows::runtime::Result<Self> {
7222         ::windows::runtime::Interface::cast(value)
7223     }
7224 }
7225 #[cfg(feature = "Foundation")]
7226 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for MediaSourceAudioInputNode {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>7227     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
7228         ::windows::runtime::IntoParam::into_param(&self)
7229     }
7230 }
7231 #[cfg(feature = "Foundation")]
7232 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &MediaSourceAudioInputNode {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>7233     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
7234         ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
7235     }
7236 }
7237 impl ::std::convert::TryFrom<MediaSourceAudioInputNode> for IAudioInputNode {
7238     type Error = ::windows::runtime::Error;
try_from(value: MediaSourceAudioInputNode) -> ::windows::runtime::Result<Self>7239     fn try_from(value: MediaSourceAudioInputNode) -> ::windows::runtime::Result<Self> {
7240         ::std::convert::TryFrom::try_from(&value)
7241     }
7242 }
7243 impl ::std::convert::TryFrom<&MediaSourceAudioInputNode> for IAudioInputNode {
7244     type Error = ::windows::runtime::Error;
try_from(value: &MediaSourceAudioInputNode) -> ::windows::runtime::Result<Self>7245     fn try_from(value: &MediaSourceAudioInputNode) -> ::windows::runtime::Result<Self> {
7246         ::windows::runtime::Interface::cast(value)
7247     }
7248 }
7249 impl<'a> ::windows::runtime::IntoParam<'a, IAudioInputNode> for MediaSourceAudioInputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode>7250     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode> {
7251         ::windows::runtime::IntoParam::into_param(&self)
7252     }
7253 }
7254 impl<'a> ::windows::runtime::IntoParam<'a, IAudioInputNode> for &MediaSourceAudioInputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode>7255     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode> {
7256         ::std::convert::TryInto::<IAudioInputNode>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
7257     }
7258 }
7259 impl ::std::convert::TryFrom<MediaSourceAudioInputNode> for IAudioNode {
7260     type Error = ::windows::runtime::Error;
try_from(value: MediaSourceAudioInputNode) -> ::windows::runtime::Result<Self>7261     fn try_from(value: MediaSourceAudioInputNode) -> ::windows::runtime::Result<Self> {
7262         ::std::convert::TryFrom::try_from(&value)
7263     }
7264 }
7265 impl ::std::convert::TryFrom<&MediaSourceAudioInputNode> for IAudioNode {
7266     type Error = ::windows::runtime::Error;
try_from(value: &MediaSourceAudioInputNode) -> ::windows::runtime::Result<Self>7267     fn try_from(value: &MediaSourceAudioInputNode) -> ::windows::runtime::Result<Self> {
7268         ::windows::runtime::Interface::cast(value)
7269     }
7270 }
7271 impl<'a> ::windows::runtime::IntoParam<'a, IAudioNode> for MediaSourceAudioInputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioNode>7272     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioNode> {
7273         ::windows::runtime::IntoParam::into_param(&self)
7274     }
7275 }
7276 impl<'a> ::windows::runtime::IntoParam<'a, IAudioNode> for &MediaSourceAudioInputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioNode>7277     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioNode> {
7278         ::std::convert::TryInto::<IAudioNode>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
7279     }
7280 }
7281 impl ::std::convert::TryFrom<MediaSourceAudioInputNode> for IAudioInputNode2 {
7282     type Error = ::windows::runtime::Error;
try_from(value: MediaSourceAudioInputNode) -> ::windows::runtime::Result<Self>7283     fn try_from(value: MediaSourceAudioInputNode) -> ::windows::runtime::Result<Self> {
7284         ::std::convert::TryFrom::try_from(&value)
7285     }
7286 }
7287 impl ::std::convert::TryFrom<&MediaSourceAudioInputNode> for IAudioInputNode2 {
7288     type Error = ::windows::runtime::Error;
try_from(value: &MediaSourceAudioInputNode) -> ::windows::runtime::Result<Self>7289     fn try_from(value: &MediaSourceAudioInputNode) -> ::windows::runtime::Result<Self> {
7290         ::windows::runtime::Interface::cast(value)
7291     }
7292 }
7293 impl<'a> ::windows::runtime::IntoParam<'a, IAudioInputNode2> for MediaSourceAudioInputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode2>7294     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode2> {
7295         ::windows::runtime::IntoParam::into_param(&self)
7296     }
7297 }
7298 impl<'a> ::windows::runtime::IntoParam<'a, IAudioInputNode2> for &MediaSourceAudioInputNode {
into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode2>7299     fn into_param(self) -> ::windows::runtime::Param<'a, IAudioInputNode2> {
7300         ::std::convert::TryInto::<IAudioInputNode2>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
7301     }
7302 }
7303 unsafe impl ::std::marker::Send for MediaSourceAudioInputNode {}
7304 unsafe impl ::std::marker::Sync for MediaSourceAudioInputNode {}
7305 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
7306 #[repr(transparent)]
7307 pub struct MediaSourceAudioInputNodeCreationStatus(pub i32);
7308 impl MediaSourceAudioInputNodeCreationStatus {
7309     pub const Success: MediaSourceAudioInputNodeCreationStatus = MediaSourceAudioInputNodeCreationStatus(0i32);
7310     pub const FormatNotSupported: MediaSourceAudioInputNodeCreationStatus = MediaSourceAudioInputNodeCreationStatus(1i32);
7311     pub const NetworkError: MediaSourceAudioInputNodeCreationStatus = MediaSourceAudioInputNodeCreationStatus(2i32);
7312     pub const UnknownFailure: MediaSourceAudioInputNodeCreationStatus = MediaSourceAudioInputNodeCreationStatus(3i32);
7313 }
7314 impl ::std::convert::From<i32> for MediaSourceAudioInputNodeCreationStatus {
from(value: i32) -> Self7315     fn from(value: i32) -> Self {
7316         Self(value)
7317     }
7318 }
7319 unsafe impl ::windows::runtime::Abi for MediaSourceAudioInputNodeCreationStatus {
7320     type Abi = Self;
7321     type DefaultType = Self;
7322 }
7323 unsafe impl ::windows::runtime::RuntimeType for MediaSourceAudioInputNodeCreationStatus {
7324     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Audio.MediaSourceAudioInputNodeCreationStatus;i4)");
7325 }
7326 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
7327 #[repr(transparent)]
7328 pub struct MixedRealitySpatialAudioFormatPolicy(pub i32);
7329 impl MixedRealitySpatialAudioFormatPolicy {
7330     pub const UseMixedRealityDefaultSpatialAudioFormat: MixedRealitySpatialAudioFormatPolicy = MixedRealitySpatialAudioFormatPolicy(0i32);
7331     pub const UseDeviceConfigurationDefaultSpatialAudioFormat: MixedRealitySpatialAudioFormatPolicy = MixedRealitySpatialAudioFormatPolicy(1i32);
7332 }
7333 impl ::std::convert::From<i32> for MixedRealitySpatialAudioFormatPolicy {
from(value: i32) -> Self7334     fn from(value: i32) -> Self {
7335         Self(value)
7336     }
7337 }
7338 unsafe impl ::windows::runtime::Abi for MixedRealitySpatialAudioFormatPolicy {
7339     type Abi = Self;
7340     type DefaultType = Self;
7341 }
7342 unsafe impl ::windows::runtime::RuntimeType for MixedRealitySpatialAudioFormatPolicy {
7343     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Audio.MixedRealitySpatialAudioFormatPolicy;i4)");
7344 }
7345 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
7346 #[repr(transparent)]
7347 pub struct QuantumSizeSelectionMode(pub i32);
7348 impl QuantumSizeSelectionMode {
7349     pub const SystemDefault: QuantumSizeSelectionMode = QuantumSizeSelectionMode(0i32);
7350     pub const LowestLatency: QuantumSizeSelectionMode = QuantumSizeSelectionMode(1i32);
7351     pub const ClosestToDesired: QuantumSizeSelectionMode = QuantumSizeSelectionMode(2i32);
7352 }
7353 impl ::std::convert::From<i32> for QuantumSizeSelectionMode {
from(value: i32) -> Self7354     fn from(value: i32) -> Self {
7355         Self(value)
7356     }
7357 }
7358 unsafe impl ::windows::runtime::Abi for QuantumSizeSelectionMode {
7359     type Abi = Self;
7360     type DefaultType = Self;
7361 }
7362 unsafe impl ::windows::runtime::RuntimeType for QuantumSizeSelectionMode {
7363     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Audio.QuantumSizeSelectionMode;i4)");
7364 }
7365 #[repr(transparent)]
7366 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
7367 pub struct ReverbEffectDefinition(::windows::runtime::IInspectable);
7368 impl ReverbEffectDefinition {
SetWetDryMix(&self, value: f64) -> ::windows::runtime::Result<()>7369     pub fn SetWetDryMix(&self, value: f64) -> ::windows::runtime::Result<()> {
7370         let this = self;
7371         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), value).ok() }
7372     }
WetDryMix(&self) -> ::windows::runtime::Result<f64>7373     pub fn WetDryMix(&self) -> ::windows::runtime::Result<f64> {
7374         let this = self;
7375         unsafe {
7376             let mut result__: f64 = ::std::mem::zeroed();
7377             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
7378         }
7379     }
SetReflectionsDelay(&self, value: u32) -> ::windows::runtime::Result<()>7380     pub fn SetReflectionsDelay(&self, value: u32) -> ::windows::runtime::Result<()> {
7381         let this = self;
7382         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), value).ok() }
7383     }
ReflectionsDelay(&self) -> ::windows::runtime::Result<u32>7384     pub fn ReflectionsDelay(&self) -> ::windows::runtime::Result<u32> {
7385         let this = self;
7386         unsafe {
7387             let mut result__: u32 = ::std::mem::zeroed();
7388             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
7389         }
7390     }
SetReverbDelay(&self, value: u8) -> ::windows::runtime::Result<()>7391     pub fn SetReverbDelay(&self, value: u8) -> ::windows::runtime::Result<()> {
7392         let this = self;
7393         unsafe { (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), value).ok() }
7394     }
ReverbDelay(&self) -> ::windows::runtime::Result<u8>7395     pub fn ReverbDelay(&self) -> ::windows::runtime::Result<u8> {
7396         let this = self;
7397         unsafe {
7398             let mut result__: u8 = ::std::mem::zeroed();
7399             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u8>(result__)
7400         }
7401     }
SetRearDelay(&self, value: u8) -> ::windows::runtime::Result<()>7402     pub fn SetRearDelay(&self, value: u8) -> ::windows::runtime::Result<()> {
7403         let this = self;
7404         unsafe { (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), value).ok() }
7405     }
RearDelay(&self) -> ::windows::runtime::Result<u8>7406     pub fn RearDelay(&self) -> ::windows::runtime::Result<u8> {
7407         let this = self;
7408         unsafe {
7409             let mut result__: u8 = ::std::mem::zeroed();
7410             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u8>(result__)
7411         }
7412     }
SetPositionLeft(&self, value: u8) -> ::windows::runtime::Result<()>7413     pub fn SetPositionLeft(&self, value: u8) -> ::windows::runtime::Result<()> {
7414         let this = self;
7415         unsafe { (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), value).ok() }
7416     }
PositionLeft(&self) -> ::windows::runtime::Result<u8>7417     pub fn PositionLeft(&self) -> ::windows::runtime::Result<u8> {
7418         let this = self;
7419         unsafe {
7420             let mut result__: u8 = ::std::mem::zeroed();
7421             (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u8>(result__)
7422         }
7423     }
SetPositionRight(&self, value: u8) -> ::windows::runtime::Result<()>7424     pub fn SetPositionRight(&self, value: u8) -> ::windows::runtime::Result<()> {
7425         let this = self;
7426         unsafe { (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), value).ok() }
7427     }
PositionRight(&self) -> ::windows::runtime::Result<u8>7428     pub fn PositionRight(&self) -> ::windows::runtime::Result<u8> {
7429         let this = self;
7430         unsafe {
7431             let mut result__: u8 = ::std::mem::zeroed();
7432             (::windows::runtime::Interface::vtable(this).17)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u8>(result__)
7433         }
7434     }
SetPositionMatrixLeft(&self, value: u8) -> ::windows::runtime::Result<()>7435     pub fn SetPositionMatrixLeft(&self, value: u8) -> ::windows::runtime::Result<()> {
7436         let this = self;
7437         unsafe { (::windows::runtime::Interface::vtable(this).18)(::std::mem::transmute_copy(this), value).ok() }
7438     }
PositionMatrixLeft(&self) -> ::windows::runtime::Result<u8>7439     pub fn PositionMatrixLeft(&self) -> ::windows::runtime::Result<u8> {
7440         let this = self;
7441         unsafe {
7442             let mut result__: u8 = ::std::mem::zeroed();
7443             (::windows::runtime::Interface::vtable(this).19)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u8>(result__)
7444         }
7445     }
SetPositionMatrixRight(&self, value: u8) -> ::windows::runtime::Result<()>7446     pub fn SetPositionMatrixRight(&self, value: u8) -> ::windows::runtime::Result<()> {
7447         let this = self;
7448         unsafe { (::windows::runtime::Interface::vtable(this).20)(::std::mem::transmute_copy(this), value).ok() }
7449     }
PositionMatrixRight(&self) -> ::windows::runtime::Result<u8>7450     pub fn PositionMatrixRight(&self) -> ::windows::runtime::Result<u8> {
7451         let this = self;
7452         unsafe {
7453             let mut result__: u8 = ::std::mem::zeroed();
7454             (::windows::runtime::Interface::vtable(this).21)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u8>(result__)
7455         }
7456     }
SetEarlyDiffusion(&self, value: u8) -> ::windows::runtime::Result<()>7457     pub fn SetEarlyDiffusion(&self, value: u8) -> ::windows::runtime::Result<()> {
7458         let this = self;
7459         unsafe { (::windows::runtime::Interface::vtable(this).22)(::std::mem::transmute_copy(this), value).ok() }
7460     }
EarlyDiffusion(&self) -> ::windows::runtime::Result<u8>7461     pub fn EarlyDiffusion(&self) -> ::windows::runtime::Result<u8> {
7462         let this = self;
7463         unsafe {
7464             let mut result__: u8 = ::std::mem::zeroed();
7465             (::windows::runtime::Interface::vtable(this).23)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u8>(result__)
7466         }
7467     }
SetLateDiffusion(&self, value: u8) -> ::windows::runtime::Result<()>7468     pub fn SetLateDiffusion(&self, value: u8) -> ::windows::runtime::Result<()> {
7469         let this = self;
7470         unsafe { (::windows::runtime::Interface::vtable(this).24)(::std::mem::transmute_copy(this), value).ok() }
7471     }
LateDiffusion(&self) -> ::windows::runtime::Result<u8>7472     pub fn LateDiffusion(&self) -> ::windows::runtime::Result<u8> {
7473         let this = self;
7474         unsafe {
7475             let mut result__: u8 = ::std::mem::zeroed();
7476             (::windows::runtime::Interface::vtable(this).25)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u8>(result__)
7477         }
7478     }
SetLowEQGain(&self, value: u8) -> ::windows::runtime::Result<()>7479     pub fn SetLowEQGain(&self, value: u8) -> ::windows::runtime::Result<()> {
7480         let this = self;
7481         unsafe { (::windows::runtime::Interface::vtable(this).26)(::std::mem::transmute_copy(this), value).ok() }
7482     }
LowEQGain(&self) -> ::windows::runtime::Result<u8>7483     pub fn LowEQGain(&self) -> ::windows::runtime::Result<u8> {
7484         let this = self;
7485         unsafe {
7486             let mut result__: u8 = ::std::mem::zeroed();
7487             (::windows::runtime::Interface::vtable(this).27)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u8>(result__)
7488         }
7489     }
SetLowEQCutoff(&self, value: u8) -> ::windows::runtime::Result<()>7490     pub fn SetLowEQCutoff(&self, value: u8) -> ::windows::runtime::Result<()> {
7491         let this = self;
7492         unsafe { (::windows::runtime::Interface::vtable(this).28)(::std::mem::transmute_copy(this), value).ok() }
7493     }
LowEQCutoff(&self) -> ::windows::runtime::Result<u8>7494     pub fn LowEQCutoff(&self) -> ::windows::runtime::Result<u8> {
7495         let this = self;
7496         unsafe {
7497             let mut result__: u8 = ::std::mem::zeroed();
7498             (::windows::runtime::Interface::vtable(this).29)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u8>(result__)
7499         }
7500     }
SetHighEQGain(&self, value: u8) -> ::windows::runtime::Result<()>7501     pub fn SetHighEQGain(&self, value: u8) -> ::windows::runtime::Result<()> {
7502         let this = self;
7503         unsafe { (::windows::runtime::Interface::vtable(this).30)(::std::mem::transmute_copy(this), value).ok() }
7504     }
HighEQGain(&self) -> ::windows::runtime::Result<u8>7505     pub fn HighEQGain(&self) -> ::windows::runtime::Result<u8> {
7506         let this = self;
7507         unsafe {
7508             let mut result__: u8 = ::std::mem::zeroed();
7509             (::windows::runtime::Interface::vtable(this).31)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u8>(result__)
7510         }
7511     }
SetHighEQCutoff(&self, value: u8) -> ::windows::runtime::Result<()>7512     pub fn SetHighEQCutoff(&self, value: u8) -> ::windows::runtime::Result<()> {
7513         let this = self;
7514         unsafe { (::windows::runtime::Interface::vtable(this).32)(::std::mem::transmute_copy(this), value).ok() }
7515     }
HighEQCutoff(&self) -> ::windows::runtime::Result<u8>7516     pub fn HighEQCutoff(&self) -> ::windows::runtime::Result<u8> {
7517         let this = self;
7518         unsafe {
7519             let mut result__: u8 = ::std::mem::zeroed();
7520             (::windows::runtime::Interface::vtable(this).33)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u8>(result__)
7521         }
7522     }
SetRoomFilterFreq(&self, value: f64) -> ::windows::runtime::Result<()>7523     pub fn SetRoomFilterFreq(&self, value: f64) -> ::windows::runtime::Result<()> {
7524         let this = self;
7525         unsafe { (::windows::runtime::Interface::vtable(this).34)(::std::mem::transmute_copy(this), value).ok() }
7526     }
RoomFilterFreq(&self) -> ::windows::runtime::Result<f64>7527     pub fn RoomFilterFreq(&self) -> ::windows::runtime::Result<f64> {
7528         let this = self;
7529         unsafe {
7530             let mut result__: f64 = ::std::mem::zeroed();
7531             (::windows::runtime::Interface::vtable(this).35)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
7532         }
7533     }
SetRoomFilterMain(&self, value: f64) -> ::windows::runtime::Result<()>7534     pub fn SetRoomFilterMain(&self, value: f64) -> ::windows::runtime::Result<()> {
7535         let this = self;
7536         unsafe { (::windows::runtime::Interface::vtable(this).36)(::std::mem::transmute_copy(this), value).ok() }
7537     }
RoomFilterMain(&self) -> ::windows::runtime::Result<f64>7538     pub fn RoomFilterMain(&self) -> ::windows::runtime::Result<f64> {
7539         let this = self;
7540         unsafe {
7541             let mut result__: f64 = ::std::mem::zeroed();
7542             (::windows::runtime::Interface::vtable(this).37)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
7543         }
7544     }
SetRoomFilterHF(&self, value: f64) -> ::windows::runtime::Result<()>7545     pub fn SetRoomFilterHF(&self, value: f64) -> ::windows::runtime::Result<()> {
7546         let this = self;
7547         unsafe { (::windows::runtime::Interface::vtable(this).38)(::std::mem::transmute_copy(this), value).ok() }
7548     }
RoomFilterHF(&self) -> ::windows::runtime::Result<f64>7549     pub fn RoomFilterHF(&self) -> ::windows::runtime::Result<f64> {
7550         let this = self;
7551         unsafe {
7552             let mut result__: f64 = ::std::mem::zeroed();
7553             (::windows::runtime::Interface::vtable(this).39)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
7554         }
7555     }
SetReflectionsGain(&self, value: f64) -> ::windows::runtime::Result<()>7556     pub fn SetReflectionsGain(&self, value: f64) -> ::windows::runtime::Result<()> {
7557         let this = self;
7558         unsafe { (::windows::runtime::Interface::vtable(this).40)(::std::mem::transmute_copy(this), value).ok() }
7559     }
ReflectionsGain(&self) -> ::windows::runtime::Result<f64>7560     pub fn ReflectionsGain(&self) -> ::windows::runtime::Result<f64> {
7561         let this = self;
7562         unsafe {
7563             let mut result__: f64 = ::std::mem::zeroed();
7564             (::windows::runtime::Interface::vtable(this).41)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
7565         }
7566     }
SetReverbGain(&self, value: f64) -> ::windows::runtime::Result<()>7567     pub fn SetReverbGain(&self, value: f64) -> ::windows::runtime::Result<()> {
7568         let this = self;
7569         unsafe { (::windows::runtime::Interface::vtable(this).42)(::std::mem::transmute_copy(this), value).ok() }
7570     }
ReverbGain(&self) -> ::windows::runtime::Result<f64>7571     pub fn ReverbGain(&self) -> ::windows::runtime::Result<f64> {
7572         let this = self;
7573         unsafe {
7574             let mut result__: f64 = ::std::mem::zeroed();
7575             (::windows::runtime::Interface::vtable(this).43)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
7576         }
7577     }
SetDecayTime(&self, value: f64) -> ::windows::runtime::Result<()>7578     pub fn SetDecayTime(&self, value: f64) -> ::windows::runtime::Result<()> {
7579         let this = self;
7580         unsafe { (::windows::runtime::Interface::vtable(this).44)(::std::mem::transmute_copy(this), value).ok() }
7581     }
DecayTime(&self) -> ::windows::runtime::Result<f64>7582     pub fn DecayTime(&self) -> ::windows::runtime::Result<f64> {
7583         let this = self;
7584         unsafe {
7585             let mut result__: f64 = ::std::mem::zeroed();
7586             (::windows::runtime::Interface::vtable(this).45)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
7587         }
7588     }
SetDensity(&self, value: f64) -> ::windows::runtime::Result<()>7589     pub fn SetDensity(&self, value: f64) -> ::windows::runtime::Result<()> {
7590         let this = self;
7591         unsafe { (::windows::runtime::Interface::vtable(this).46)(::std::mem::transmute_copy(this), value).ok() }
7592     }
Density(&self) -> ::windows::runtime::Result<f64>7593     pub fn Density(&self) -> ::windows::runtime::Result<f64> {
7594         let this = self;
7595         unsafe {
7596             let mut result__: f64 = ::std::mem::zeroed();
7597             (::windows::runtime::Interface::vtable(this).47)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
7598         }
7599     }
SetRoomSize(&self, value: f64) -> ::windows::runtime::Result<()>7600     pub fn SetRoomSize(&self, value: f64) -> ::windows::runtime::Result<()> {
7601         let this = self;
7602         unsafe { (::windows::runtime::Interface::vtable(this).48)(::std::mem::transmute_copy(this), value).ok() }
7603     }
RoomSize(&self) -> ::windows::runtime::Result<f64>7604     pub fn RoomSize(&self) -> ::windows::runtime::Result<f64> {
7605         let this = self;
7606         unsafe {
7607             let mut result__: f64 = ::std::mem::zeroed();
7608             (::windows::runtime::Interface::vtable(this).49)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
7609         }
7610     }
SetDisableLateField(&self, value: bool) -> ::windows::runtime::Result<()>7611     pub fn SetDisableLateField(&self, value: bool) -> ::windows::runtime::Result<()> {
7612         let this = self;
7613         unsafe { (::windows::runtime::Interface::vtable(this).50)(::std::mem::transmute_copy(this), value).ok() }
7614     }
DisableLateField(&self) -> ::windows::runtime::Result<bool>7615     pub fn DisableLateField(&self) -> ::windows::runtime::Result<bool> {
7616         let this = self;
7617         unsafe {
7618             let mut result__: bool = ::std::mem::zeroed();
7619             (::windows::runtime::Interface::vtable(this).51)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
7620         }
7621     }
7622     #[cfg(feature = "Media_Effects")]
ActivatableClassId(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>7623     pub fn ActivatableClassId(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
7624         let this = &::windows::runtime::Interface::cast::<super::Effects::IAudioEffectDefinition>(self)?;
7625         unsafe {
7626             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
7627             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
7628         }
7629     }
7630     #[cfg(all(feature = "Foundation_Collections", feature = "Media_Effects"))]
Properties(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IPropertySet>7631     pub fn Properties(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IPropertySet> {
7632         let this = &::windows::runtime::Interface::cast::<super::Effects::IAudioEffectDefinition>(self)?;
7633         unsafe {
7634             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
7635             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IPropertySet>(result__)
7636         }
7637     }
Create<'a, Param0: ::windows::runtime::IntoParam<'a, AudioGraph>>(audiograph: Param0) -> ::windows::runtime::Result<ReverbEffectDefinition>7638     pub fn Create<'a, Param0: ::windows::runtime::IntoParam<'a, AudioGraph>>(audiograph: Param0) -> ::windows::runtime::Result<ReverbEffectDefinition> {
7639         Self::IReverbEffectDefinitionFactory(|this| unsafe {
7640             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
7641             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), audiograph.into_param().abi(), &mut result__).from_abi::<ReverbEffectDefinition>(result__)
7642         })
7643     }
IReverbEffectDefinitionFactory<R, F: FnOnce(&IReverbEffectDefinitionFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>7644     pub fn IReverbEffectDefinitionFactory<R, F: FnOnce(&IReverbEffectDefinitionFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
7645         static mut SHARED: ::windows::runtime::FactoryCache<ReverbEffectDefinition, IReverbEffectDefinitionFactory> = ::windows::runtime::FactoryCache::new();
7646         unsafe { SHARED.call(callback) }
7647     }
7648 }
7649 unsafe impl ::windows::runtime::RuntimeType for ReverbEffectDefinition {
7650     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.ReverbEffectDefinition;{4606aa89-f563-4d0a-8f6e-f0cddff35d84})");
7651 }
7652 unsafe impl ::windows::runtime::Interface for ReverbEffectDefinition {
7653     type Vtable = IReverbEffectDefinition_abi;
7654     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1174841993, 62819, 19722, [143, 110, 240, 205, 223, 243, 93, 132]);
7655 }
7656 impl ::windows::runtime::RuntimeName for ReverbEffectDefinition {
7657     const NAME: &'static str = "Windows.Media.Audio.ReverbEffectDefinition";
7658 }
7659 impl ::std::convert::From<ReverbEffectDefinition> for ::windows::runtime::IUnknown {
from(value: ReverbEffectDefinition) -> Self7660     fn from(value: ReverbEffectDefinition) -> Self {
7661         unsafe { ::std::mem::transmute(value) }
7662     }
7663 }
7664 impl ::std::convert::From<&ReverbEffectDefinition> for ::windows::runtime::IUnknown {
from(value: &ReverbEffectDefinition) -> Self7665     fn from(value: &ReverbEffectDefinition) -> Self {
7666         ::std::convert::From::from(::std::clone::Clone::clone(value))
7667     }
7668 }
7669 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for ReverbEffectDefinition {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7670     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7671         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
7672     }
7673 }
7674 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &ReverbEffectDefinition {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7675     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7676         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
7677     }
7678 }
7679 impl ::std::convert::From<ReverbEffectDefinition> for ::windows::runtime::IInspectable {
from(value: ReverbEffectDefinition) -> Self7680     fn from(value: ReverbEffectDefinition) -> Self {
7681         value.0
7682     }
7683 }
7684 impl ::std::convert::From<&ReverbEffectDefinition> for ::windows::runtime::IInspectable {
from(value: &ReverbEffectDefinition) -> Self7685     fn from(value: &ReverbEffectDefinition) -> Self {
7686         value.0.clone()
7687     }
7688 }
7689 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for ReverbEffectDefinition {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>7690     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
7691         ::windows::runtime::Param::Owned(self.0)
7692     }
7693 }
7694 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a ReverbEffectDefinition {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>7695     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
7696         ::windows::runtime::Param::Borrowed(&self.0)
7697     }
7698 }
7699 #[cfg(feature = "Media_Effects")]
7700 impl ::std::convert::TryFrom<ReverbEffectDefinition> for super::Effects::IAudioEffectDefinition {
7701     type Error = ::windows::runtime::Error;
try_from(value: ReverbEffectDefinition) -> ::windows::runtime::Result<Self>7702     fn try_from(value: ReverbEffectDefinition) -> ::windows::runtime::Result<Self> {
7703         ::std::convert::TryFrom::try_from(&value)
7704     }
7705 }
7706 #[cfg(feature = "Media_Effects")]
7707 impl ::std::convert::TryFrom<&ReverbEffectDefinition> for super::Effects::IAudioEffectDefinition {
7708     type Error = ::windows::runtime::Error;
try_from(value: &ReverbEffectDefinition) -> ::windows::runtime::Result<Self>7709     fn try_from(value: &ReverbEffectDefinition) -> ::windows::runtime::Result<Self> {
7710         ::windows::runtime::Interface::cast(value)
7711     }
7712 }
7713 #[cfg(feature = "Media_Effects")]
7714 impl<'a> ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition> for ReverbEffectDefinition {
into_param(self) -> ::windows::runtime::Param<'a, super::Effects::IAudioEffectDefinition>7715     fn into_param(self) -> ::windows::runtime::Param<'a, super::Effects::IAudioEffectDefinition> {
7716         ::windows::runtime::IntoParam::into_param(&self)
7717     }
7718 }
7719 #[cfg(feature = "Media_Effects")]
7720 impl<'a> ::windows::runtime::IntoParam<'a, super::Effects::IAudioEffectDefinition> for &ReverbEffectDefinition {
into_param(self) -> ::windows::runtime::Param<'a, super::Effects::IAudioEffectDefinition>7721     fn into_param(self) -> ::windows::runtime::Param<'a, super::Effects::IAudioEffectDefinition> {
7722         ::std::convert::TryInto::<super::Effects::IAudioEffectDefinition>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
7723     }
7724 }
7725 unsafe impl ::std::marker::Send for ReverbEffectDefinition {}
7726 unsafe impl ::std::marker::Sync for ReverbEffectDefinition {}
7727 #[repr(transparent)]
7728 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
7729 pub struct SetDefaultSpatialAudioFormatResult(::windows::runtime::IInspectable);
7730 impl SetDefaultSpatialAudioFormatResult {
Status(&self) -> ::windows::runtime::Result<SetDefaultSpatialAudioFormatStatus>7731     pub fn Status(&self) -> ::windows::runtime::Result<SetDefaultSpatialAudioFormatStatus> {
7732         let this = self;
7733         unsafe {
7734             let mut result__: SetDefaultSpatialAudioFormatStatus = ::std::mem::zeroed();
7735             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<SetDefaultSpatialAudioFormatStatus>(result__)
7736         }
7737     }
7738 }
7739 unsafe impl ::windows::runtime::RuntimeType for SetDefaultSpatialAudioFormatResult {
7740     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.SetDefaultSpatialAudioFormatResult;{1c2aa511-1400-5e70-9ea9-ae151241e8ea})");
7741 }
7742 unsafe impl ::windows::runtime::Interface for SetDefaultSpatialAudioFormatResult {
7743     type Vtable = ISetDefaultSpatialAudioFormatResult_abi;
7744     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(472556817, 5120, 24176, [158, 169, 174, 21, 18, 65, 232, 234]);
7745 }
7746 impl ::windows::runtime::RuntimeName for SetDefaultSpatialAudioFormatResult {
7747     const NAME: &'static str = "Windows.Media.Audio.SetDefaultSpatialAudioFormatResult";
7748 }
7749 impl ::std::convert::From<SetDefaultSpatialAudioFormatResult> for ::windows::runtime::IUnknown {
from(value: SetDefaultSpatialAudioFormatResult) -> Self7750     fn from(value: SetDefaultSpatialAudioFormatResult) -> Self {
7751         unsafe { ::std::mem::transmute(value) }
7752     }
7753 }
7754 impl ::std::convert::From<&SetDefaultSpatialAudioFormatResult> for ::windows::runtime::IUnknown {
from(value: &SetDefaultSpatialAudioFormatResult) -> Self7755     fn from(value: &SetDefaultSpatialAudioFormatResult) -> Self {
7756         ::std::convert::From::from(::std::clone::Clone::clone(value))
7757     }
7758 }
7759 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for SetDefaultSpatialAudioFormatResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7760     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7761         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
7762     }
7763 }
7764 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &SetDefaultSpatialAudioFormatResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7765     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7766         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
7767     }
7768 }
7769 impl ::std::convert::From<SetDefaultSpatialAudioFormatResult> for ::windows::runtime::IInspectable {
from(value: SetDefaultSpatialAudioFormatResult) -> Self7770     fn from(value: SetDefaultSpatialAudioFormatResult) -> Self {
7771         value.0
7772     }
7773 }
7774 impl ::std::convert::From<&SetDefaultSpatialAudioFormatResult> for ::windows::runtime::IInspectable {
from(value: &SetDefaultSpatialAudioFormatResult) -> Self7775     fn from(value: &SetDefaultSpatialAudioFormatResult) -> Self {
7776         value.0.clone()
7777     }
7778 }
7779 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for SetDefaultSpatialAudioFormatResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>7780     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
7781         ::windows::runtime::Param::Owned(self.0)
7782     }
7783 }
7784 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a SetDefaultSpatialAudioFormatResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>7785     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
7786         ::windows::runtime::Param::Borrowed(&self.0)
7787     }
7788 }
7789 unsafe impl ::std::marker::Send for SetDefaultSpatialAudioFormatResult {}
7790 unsafe impl ::std::marker::Sync for SetDefaultSpatialAudioFormatResult {}
7791 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
7792 #[repr(transparent)]
7793 pub struct SetDefaultSpatialAudioFormatStatus(pub i32);
7794 impl SetDefaultSpatialAudioFormatStatus {
7795     pub const Succeeded: SetDefaultSpatialAudioFormatStatus = SetDefaultSpatialAudioFormatStatus(0i32);
7796     pub const AccessDenied: SetDefaultSpatialAudioFormatStatus = SetDefaultSpatialAudioFormatStatus(1i32);
7797     pub const LicenseExpired: SetDefaultSpatialAudioFormatStatus = SetDefaultSpatialAudioFormatStatus(2i32);
7798     pub const LicenseNotValidForAudioEndpoint: SetDefaultSpatialAudioFormatStatus = SetDefaultSpatialAudioFormatStatus(3i32);
7799     pub const NotSupportedOnAudioEndpoint: SetDefaultSpatialAudioFormatStatus = SetDefaultSpatialAudioFormatStatus(4i32);
7800     pub const UnknownError: SetDefaultSpatialAudioFormatStatus = SetDefaultSpatialAudioFormatStatus(5i32);
7801 }
7802 impl ::std::convert::From<i32> for SetDefaultSpatialAudioFormatStatus {
from(value: i32) -> Self7803     fn from(value: i32) -> Self {
7804         Self(value)
7805     }
7806 }
7807 unsafe impl ::windows::runtime::Abi for SetDefaultSpatialAudioFormatStatus {
7808     type Abi = Self;
7809     type DefaultType = Self;
7810 }
7811 unsafe impl ::windows::runtime::RuntimeType for SetDefaultSpatialAudioFormatStatus {
7812     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Audio.SetDefaultSpatialAudioFormatStatus;i4)");
7813 }
7814 #[repr(transparent)]
7815 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
7816 pub struct SpatialAudioDeviceConfiguration(::windows::runtime::IInspectable);
7817 impl SpatialAudioDeviceConfiguration {
DeviceId(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>7818     pub fn DeviceId(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
7819         let this = self;
7820         unsafe {
7821             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
7822             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
7823         }
7824     }
IsSpatialAudioSupported(&self) -> ::windows::runtime::Result<bool>7825     pub fn IsSpatialAudioSupported(&self) -> ::windows::runtime::Result<bool> {
7826         let this = self;
7827         unsafe {
7828             let mut result__: bool = ::std::mem::zeroed();
7829             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
7830         }
7831     }
IsSpatialAudioFormatSupported<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, subtype: Param0) -> ::windows::runtime::Result<bool>7832     pub fn IsSpatialAudioFormatSupported<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, subtype: Param0) -> ::windows::runtime::Result<bool> {
7833         let this = self;
7834         unsafe {
7835             let mut result__: bool = ::std::mem::zeroed();
7836             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), subtype.into_param().abi(), &mut result__).from_abi::<bool>(result__)
7837         }
7838     }
ActiveSpatialAudioFormat(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>7839     pub fn ActiveSpatialAudioFormat(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
7840         let this = self;
7841         unsafe {
7842             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
7843             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
7844         }
7845     }
DefaultSpatialAudioFormat(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>7846     pub fn DefaultSpatialAudioFormat(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
7847         let this = self;
7848         unsafe {
7849             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
7850             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
7851         }
7852     }
7853     #[cfg(feature = "Foundation")]
SetDefaultSpatialAudioFormatAsync<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, subtype: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<SetDefaultSpatialAudioFormatResult>>7854     pub fn SetDefaultSpatialAudioFormatAsync<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, subtype: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<SetDefaultSpatialAudioFormatResult>> {
7855         let this = self;
7856         unsafe {
7857             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
7858             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), subtype.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<SetDefaultSpatialAudioFormatResult>>(result__)
7859         }
7860     }
7861     #[cfg(feature = "Foundation")]
ConfigurationChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<SpatialAudioDeviceConfiguration, ::windows::runtime::IInspectable>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken>7862     pub fn ConfigurationChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<SpatialAudioDeviceConfiguration, ::windows::runtime::IInspectable>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken> {
7863         let this = self;
7864         unsafe {
7865             let mut result__: super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
7866             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::EventRegistrationToken>(result__)
7867         }
7868     }
7869     #[cfg(feature = "Foundation")]
RemoveConfigurationChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()>7870     pub fn RemoveConfigurationChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()> {
7871         let this = self;
7872         unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), token.into_param().abi()).ok() }
7873     }
GetForDeviceId<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(deviceid: Param0) -> ::windows::runtime::Result<SpatialAudioDeviceConfiguration>7874     pub fn GetForDeviceId<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(deviceid: Param0) -> ::windows::runtime::Result<SpatialAudioDeviceConfiguration> {
7875         Self::ISpatialAudioDeviceConfigurationStatics(|this| unsafe {
7876             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
7877             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), deviceid.into_param().abi(), &mut result__).from_abi::<SpatialAudioDeviceConfiguration>(result__)
7878         })
7879     }
ISpatialAudioDeviceConfigurationStatics<R, F: FnOnce(&ISpatialAudioDeviceConfigurationStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>7880     pub fn ISpatialAudioDeviceConfigurationStatics<R, F: FnOnce(&ISpatialAudioDeviceConfigurationStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
7881         static mut SHARED: ::windows::runtime::FactoryCache<SpatialAudioDeviceConfiguration, ISpatialAudioDeviceConfigurationStatics> = ::windows::runtime::FactoryCache::new();
7882         unsafe { SHARED.call(callback) }
7883     }
7884 }
7885 unsafe impl ::windows::runtime::RuntimeType for SpatialAudioDeviceConfiguration {
7886     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.SpatialAudioDeviceConfiguration;{ee830034-61cf-5749-9da4-10f0fe028199})");
7887 }
7888 unsafe impl ::windows::runtime::Interface for SpatialAudioDeviceConfiguration {
7889     type Vtable = ISpatialAudioDeviceConfiguration_abi;
7890     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4001562676, 25039, 22345, [157, 164, 16, 240, 254, 2, 129, 153]);
7891 }
7892 impl ::windows::runtime::RuntimeName for SpatialAudioDeviceConfiguration {
7893     const NAME: &'static str = "Windows.Media.Audio.SpatialAudioDeviceConfiguration";
7894 }
7895 impl ::std::convert::From<SpatialAudioDeviceConfiguration> for ::windows::runtime::IUnknown {
from(value: SpatialAudioDeviceConfiguration) -> Self7896     fn from(value: SpatialAudioDeviceConfiguration) -> Self {
7897         unsafe { ::std::mem::transmute(value) }
7898     }
7899 }
7900 impl ::std::convert::From<&SpatialAudioDeviceConfiguration> for ::windows::runtime::IUnknown {
from(value: &SpatialAudioDeviceConfiguration) -> Self7901     fn from(value: &SpatialAudioDeviceConfiguration) -> Self {
7902         ::std::convert::From::from(::std::clone::Clone::clone(value))
7903     }
7904 }
7905 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for SpatialAudioDeviceConfiguration {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7906     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7907         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
7908     }
7909 }
7910 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &SpatialAudioDeviceConfiguration {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7911     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7912         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
7913     }
7914 }
7915 impl ::std::convert::From<SpatialAudioDeviceConfiguration> for ::windows::runtime::IInspectable {
from(value: SpatialAudioDeviceConfiguration) -> Self7916     fn from(value: SpatialAudioDeviceConfiguration) -> Self {
7917         value.0
7918     }
7919 }
7920 impl ::std::convert::From<&SpatialAudioDeviceConfiguration> for ::windows::runtime::IInspectable {
from(value: &SpatialAudioDeviceConfiguration) -> Self7921     fn from(value: &SpatialAudioDeviceConfiguration) -> Self {
7922         value.0.clone()
7923     }
7924 }
7925 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for SpatialAudioDeviceConfiguration {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>7926     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
7927         ::windows::runtime::Param::Owned(self.0)
7928     }
7929 }
7930 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a SpatialAudioDeviceConfiguration {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>7931     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
7932         ::windows::runtime::Param::Borrowed(&self.0)
7933     }
7934 }
7935 unsafe impl ::std::marker::Send for SpatialAudioDeviceConfiguration {}
7936 unsafe impl ::std::marker::Sync for SpatialAudioDeviceConfiguration {}
7937 #[repr(transparent)]
7938 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
7939 pub struct SpatialAudioFormatConfiguration(::windows::runtime::IInspectable);
7940 impl SpatialAudioFormatConfiguration {
7941     #[cfg(feature = "Foundation")]
ReportLicenseChangedAsync<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, subtype: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>7942     pub fn ReportLicenseChangedAsync<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, subtype: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
7943         let this = self;
7944         unsafe {
7945             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
7946             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), subtype.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
7947         }
7948     }
7949     #[cfg(feature = "Foundation")]
ReportConfigurationChangedAsync<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, subtype: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>7950     pub fn ReportConfigurationChangedAsync<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, subtype: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
7951         let this = self;
7952         unsafe {
7953             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
7954             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), subtype.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
7955         }
7956     }
MixedRealityExclusiveModePolicy(&self) -> ::windows::runtime::Result<MixedRealitySpatialAudioFormatPolicy>7957     pub fn MixedRealityExclusiveModePolicy(&self) -> ::windows::runtime::Result<MixedRealitySpatialAudioFormatPolicy> {
7958         let this = self;
7959         unsafe {
7960             let mut result__: MixedRealitySpatialAudioFormatPolicy = ::std::mem::zeroed();
7961             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<MixedRealitySpatialAudioFormatPolicy>(result__)
7962         }
7963     }
SetMixedRealityExclusiveModePolicy(&self, value: MixedRealitySpatialAudioFormatPolicy) -> ::windows::runtime::Result<()>7964     pub fn SetMixedRealityExclusiveModePolicy(&self, value: MixedRealitySpatialAudioFormatPolicy) -> ::windows::runtime::Result<()> {
7965         let this = self;
7966         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), value).ok() }
7967     }
GetDefault() -> ::windows::runtime::Result<SpatialAudioFormatConfiguration>7968     pub fn GetDefault() -> ::windows::runtime::Result<SpatialAudioFormatConfiguration> {
7969         Self::ISpatialAudioFormatConfigurationStatics(|this| unsafe {
7970             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
7971             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<SpatialAudioFormatConfiguration>(result__)
7972         })
7973     }
ISpatialAudioFormatConfigurationStatics<R, F: FnOnce(&ISpatialAudioFormatConfigurationStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>7974     pub fn ISpatialAudioFormatConfigurationStatics<R, F: FnOnce(&ISpatialAudioFormatConfigurationStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
7975         static mut SHARED: ::windows::runtime::FactoryCache<SpatialAudioFormatConfiguration, ISpatialAudioFormatConfigurationStatics> = ::windows::runtime::FactoryCache::new();
7976         unsafe { SHARED.call(callback) }
7977     }
7978 }
7979 unsafe impl ::windows::runtime::RuntimeType for SpatialAudioFormatConfiguration {
7980     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Audio.SpatialAudioFormatConfiguration;{32df09a8-50f0-5395-9923-7d44ca71ed6d})");
7981 }
7982 unsafe impl ::windows::runtime::Interface for SpatialAudioFormatConfiguration {
7983     type Vtable = ISpatialAudioFormatConfiguration_abi;
7984     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(853477800, 20720, 21397, [153, 35, 125, 68, 202, 113, 237, 109]);
7985 }
7986 impl ::windows::runtime::RuntimeName for SpatialAudioFormatConfiguration {
7987     const NAME: &'static str = "Windows.Media.Audio.SpatialAudioFormatConfiguration";
7988 }
7989 impl ::std::convert::From<SpatialAudioFormatConfiguration> for ::windows::runtime::IUnknown {
from(value: SpatialAudioFormatConfiguration) -> Self7990     fn from(value: SpatialAudioFormatConfiguration) -> Self {
7991         unsafe { ::std::mem::transmute(value) }
7992     }
7993 }
7994 impl ::std::convert::From<&SpatialAudioFormatConfiguration> for ::windows::runtime::IUnknown {
from(value: &SpatialAudioFormatConfiguration) -> Self7995     fn from(value: &SpatialAudioFormatConfiguration) -> Self {
7996         ::std::convert::From::from(::std::clone::Clone::clone(value))
7997     }
7998 }
7999 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for SpatialAudioFormatConfiguration {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>8000     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
8001         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
8002     }
8003 }
8004 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &SpatialAudioFormatConfiguration {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>8005     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
8006         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
8007     }
8008 }
8009 impl ::std::convert::From<SpatialAudioFormatConfiguration> for ::windows::runtime::IInspectable {
from(value: SpatialAudioFormatConfiguration) -> Self8010     fn from(value: SpatialAudioFormatConfiguration) -> Self {
8011         value.0
8012     }
8013 }
8014 impl ::std::convert::From<&SpatialAudioFormatConfiguration> for ::windows::runtime::IInspectable {
from(value: &SpatialAudioFormatConfiguration) -> Self8015     fn from(value: &SpatialAudioFormatConfiguration) -> Self {
8016         value.0.clone()
8017     }
8018 }
8019 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for SpatialAudioFormatConfiguration {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>8020     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
8021         ::windows::runtime::Param::Owned(self.0)
8022     }
8023 }
8024 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a SpatialAudioFormatConfiguration {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>8025     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
8026         ::windows::runtime::Param::Borrowed(&self.0)
8027     }
8028 }
8029 unsafe impl ::std::marker::Send for SpatialAudioFormatConfiguration {}
8030 unsafe impl ::std::marker::Sync for SpatialAudioFormatConfiguration {}
8031 pub struct SpatialAudioFormatSubtype {}
8032 impl SpatialAudioFormatSubtype {
WindowsSonic() -> ::windows::runtime::Result<::windows::runtime::HSTRING>8033     pub fn WindowsSonic() -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
8034         Self::ISpatialAudioFormatSubtypeStatics(|this| unsafe {
8035             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
8036             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
8037         })
8038     }
DolbyAtmosForHeadphones() -> ::windows::runtime::Result<::windows::runtime::HSTRING>8039     pub fn DolbyAtmosForHeadphones() -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
8040         Self::ISpatialAudioFormatSubtypeStatics(|this| unsafe {
8041             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
8042             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
8043         })
8044     }
DolbyAtmosForHomeTheater() -> ::windows::runtime::Result<::windows::runtime::HSTRING>8045     pub fn DolbyAtmosForHomeTheater() -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
8046         Self::ISpatialAudioFormatSubtypeStatics(|this| unsafe {
8047             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
8048             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
8049         })
8050     }
DolbyAtmosForSpeakers() -> ::windows::runtime::Result<::windows::runtime::HSTRING>8051     pub fn DolbyAtmosForSpeakers() -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
8052         Self::ISpatialAudioFormatSubtypeStatics(|this| unsafe {
8053             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
8054             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
8055         })
8056     }
DTSHeadphoneX() -> ::windows::runtime::Result<::windows::runtime::HSTRING>8057     pub fn DTSHeadphoneX() -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
8058         Self::ISpatialAudioFormatSubtypeStatics(|this| unsafe {
8059             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
8060             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
8061         })
8062     }
DTSXUltra() -> ::windows::runtime::Result<::windows::runtime::HSTRING>8063     pub fn DTSXUltra() -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
8064         Self::ISpatialAudioFormatSubtypeStatics(|this| unsafe {
8065             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
8066             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
8067         })
8068     }
DTSXForHomeTheater() -> ::windows::runtime::Result<::windows::runtime::HSTRING>8069     pub fn DTSXForHomeTheater() -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
8070         Self::ISpatialAudioFormatSubtypeStatics2(|this| unsafe {
8071             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
8072             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
8073         })
8074     }
ISpatialAudioFormatSubtypeStatics<R, F: FnOnce(&ISpatialAudioFormatSubtypeStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>8075     pub fn ISpatialAudioFormatSubtypeStatics<R, F: FnOnce(&ISpatialAudioFormatSubtypeStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
8076         static mut SHARED: ::windows::runtime::FactoryCache<SpatialAudioFormatSubtype, ISpatialAudioFormatSubtypeStatics> = ::windows::runtime::FactoryCache::new();
8077         unsafe { SHARED.call(callback) }
8078     }
ISpatialAudioFormatSubtypeStatics2<R, F: FnOnce(&ISpatialAudioFormatSubtypeStatics2) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>8079     pub fn ISpatialAudioFormatSubtypeStatics2<R, F: FnOnce(&ISpatialAudioFormatSubtypeStatics2) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
8080         static mut SHARED: ::windows::runtime::FactoryCache<SpatialAudioFormatSubtype, ISpatialAudioFormatSubtypeStatics2> = ::windows::runtime::FactoryCache::new();
8081         unsafe { SHARED.call(callback) }
8082     }
8083 }
8084 impl ::windows::runtime::RuntimeName for SpatialAudioFormatSubtype {
8085     const NAME: &'static str = "Windows.Media.Audio.SpatialAudioFormatSubtype";
8086 }
8087 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
8088 #[repr(transparent)]
8089 pub struct SpatialAudioModel(pub i32);
8090 impl SpatialAudioModel {
8091     pub const ObjectBased: SpatialAudioModel = SpatialAudioModel(0i32);
8092     pub const FoldDown: SpatialAudioModel = SpatialAudioModel(1i32);
8093 }
8094 impl ::std::convert::From<i32> for SpatialAudioModel {
from(value: i32) -> Self8095     fn from(value: i32) -> Self {
8096         Self(value)
8097     }
8098 }
8099 unsafe impl ::windows::runtime::Abi for SpatialAudioModel {
8100     type Abi = Self;
8101     type DefaultType = Self;
8102 }
8103 unsafe impl ::windows::runtime::RuntimeType for SpatialAudioModel {
8104     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Audio.SpatialAudioModel;i4)");
8105 }
8106