1 #![allow(unused_variables, non_upper_case_globals, non_snake_case, unused_unsafe, non_camel_case_types, dead_code, clippy::all)]
2 #[cfg(feature = "Media_Devices_Core")]
3 pub mod Core;
4 #[repr(transparent)]
5 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6 pub struct AdvancedPhotoCaptureSettings(::windows::runtime::IInspectable);
7 impl AdvancedPhotoCaptureSettings {
new() -> ::windows::runtime::Result<Self>8     pub fn new() -> ::windows::runtime::Result<Self> {
9         Self::IActivationFactory(|f| f.activate_instance::<Self>())
10     }
IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>11     fn IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
12         static mut SHARED: ::windows::runtime::FactoryCache<AdvancedPhotoCaptureSettings, ::windows::runtime::IActivationFactory> = ::windows::runtime::FactoryCache::new();
13         unsafe { SHARED.call(callback) }
14     }
Mode(&self) -> ::windows::runtime::Result<AdvancedPhotoMode>15     pub fn Mode(&self) -> ::windows::runtime::Result<AdvancedPhotoMode> {
16         let this = self;
17         unsafe {
18             let mut result__: AdvancedPhotoMode = ::std::mem::zeroed();
19             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AdvancedPhotoMode>(result__)
20         }
21     }
SetMode(&self, value: AdvancedPhotoMode) -> ::windows::runtime::Result<()>22     pub fn SetMode(&self, value: AdvancedPhotoMode) -> ::windows::runtime::Result<()> {
23         let this = self;
24         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() }
25     }
26 }
27 unsafe impl ::windows::runtime::RuntimeType for AdvancedPhotoCaptureSettings {
28     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.AdvancedPhotoCaptureSettings;{08f3863a-0018-445b-93d2-646d1c5ed05c})");
29 }
30 unsafe impl ::windows::runtime::Interface for AdvancedPhotoCaptureSettings {
31     type Vtable = IAdvancedPhotoCaptureSettings_abi;
32     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(150177338, 24, 17499, [147, 210, 100, 109, 28, 94, 208, 92]);
33 }
34 impl ::windows::runtime::RuntimeName for AdvancedPhotoCaptureSettings {
35     const NAME: &'static str = "Windows.Media.Devices.AdvancedPhotoCaptureSettings";
36 }
37 impl ::std::convert::From<AdvancedPhotoCaptureSettings> for ::windows::runtime::IUnknown {
from(value: AdvancedPhotoCaptureSettings) -> Self38     fn from(value: AdvancedPhotoCaptureSettings) -> Self {
39         unsafe { ::std::mem::transmute(value) }
40     }
41 }
42 impl ::std::convert::From<&AdvancedPhotoCaptureSettings> for ::windows::runtime::IUnknown {
from(value: &AdvancedPhotoCaptureSettings) -> Self43     fn from(value: &AdvancedPhotoCaptureSettings) -> Self {
44         ::std::convert::From::from(::std::clone::Clone::clone(value))
45     }
46 }
47 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for AdvancedPhotoCaptureSettings {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>48     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
49         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
50     }
51 }
52 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &AdvancedPhotoCaptureSettings {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>53     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
54         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
55     }
56 }
57 impl ::std::convert::From<AdvancedPhotoCaptureSettings> for ::windows::runtime::IInspectable {
from(value: AdvancedPhotoCaptureSettings) -> Self58     fn from(value: AdvancedPhotoCaptureSettings) -> Self {
59         value.0
60     }
61 }
62 impl ::std::convert::From<&AdvancedPhotoCaptureSettings> for ::windows::runtime::IInspectable {
from(value: &AdvancedPhotoCaptureSettings) -> Self63     fn from(value: &AdvancedPhotoCaptureSettings) -> Self {
64         value.0.clone()
65     }
66 }
67 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for AdvancedPhotoCaptureSettings {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>68     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
69         ::windows::runtime::Param::Owned(self.0)
70     }
71 }
72 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a AdvancedPhotoCaptureSettings {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>73     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
74         ::windows::runtime::Param::Borrowed(&self.0)
75     }
76 }
77 unsafe impl ::std::marker::Send for AdvancedPhotoCaptureSettings {}
78 unsafe impl ::std::marker::Sync for AdvancedPhotoCaptureSettings {}
79 #[repr(transparent)]
80 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
81 pub struct AdvancedPhotoControl(::windows::runtime::IInspectable);
82 impl AdvancedPhotoControl {
Supported(&self) -> ::windows::runtime::Result<bool>83     pub fn Supported(&self) -> ::windows::runtime::Result<bool> {
84         let this = self;
85         unsafe {
86             let mut result__: bool = ::std::mem::zeroed();
87             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
88         }
89     }
90     #[cfg(feature = "Foundation_Collections")]
SupportedModes(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<AdvancedPhotoMode>>91     pub fn SupportedModes(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<AdvancedPhotoMode>> {
92         let this = self;
93         unsafe {
94             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
95             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<AdvancedPhotoMode>>(result__)
96         }
97     }
Mode(&self) -> ::windows::runtime::Result<AdvancedPhotoMode>98     pub fn Mode(&self) -> ::windows::runtime::Result<AdvancedPhotoMode> {
99         let this = self;
100         unsafe {
101             let mut result__: AdvancedPhotoMode = ::std::mem::zeroed();
102             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AdvancedPhotoMode>(result__)
103         }
104     }
Configure<'a, Param0: ::windows::runtime::IntoParam<'a, AdvancedPhotoCaptureSettings>>(&self, settings: Param0) -> ::windows::runtime::Result<()>105     pub fn Configure<'a, Param0: ::windows::runtime::IntoParam<'a, AdvancedPhotoCaptureSettings>>(&self, settings: Param0) -> ::windows::runtime::Result<()> {
106         let this = self;
107         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), settings.into_param().abi()).ok() }
108     }
109 }
110 unsafe impl ::windows::runtime::RuntimeType for AdvancedPhotoControl {
111     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.AdvancedPhotoControl;{c5b15486-9001-4682-9309-68eae0080eec})");
112 }
113 unsafe impl ::windows::runtime::Interface for AdvancedPhotoControl {
114     type Vtable = IAdvancedPhotoControl_abi;
115     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3316733062, 36865, 18050, [147, 9, 104, 234, 224, 8, 14, 236]);
116 }
117 impl ::windows::runtime::RuntimeName for AdvancedPhotoControl {
118     const NAME: &'static str = "Windows.Media.Devices.AdvancedPhotoControl";
119 }
120 impl ::std::convert::From<AdvancedPhotoControl> for ::windows::runtime::IUnknown {
from(value: AdvancedPhotoControl) -> Self121     fn from(value: AdvancedPhotoControl) -> Self {
122         unsafe { ::std::mem::transmute(value) }
123     }
124 }
125 impl ::std::convert::From<&AdvancedPhotoControl> for ::windows::runtime::IUnknown {
from(value: &AdvancedPhotoControl) -> Self126     fn from(value: &AdvancedPhotoControl) -> Self {
127         ::std::convert::From::from(::std::clone::Clone::clone(value))
128     }
129 }
130 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for AdvancedPhotoControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>131     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
132         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
133     }
134 }
135 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &AdvancedPhotoControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>136     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
137         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
138     }
139 }
140 impl ::std::convert::From<AdvancedPhotoControl> for ::windows::runtime::IInspectable {
from(value: AdvancedPhotoControl) -> Self141     fn from(value: AdvancedPhotoControl) -> Self {
142         value.0
143     }
144 }
145 impl ::std::convert::From<&AdvancedPhotoControl> for ::windows::runtime::IInspectable {
from(value: &AdvancedPhotoControl) -> Self146     fn from(value: &AdvancedPhotoControl) -> Self {
147         value.0.clone()
148     }
149 }
150 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for AdvancedPhotoControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>151     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
152         ::windows::runtime::Param::Owned(self.0)
153     }
154 }
155 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a AdvancedPhotoControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>156     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
157         ::windows::runtime::Param::Borrowed(&self.0)
158     }
159 }
160 unsafe impl ::std::marker::Send for AdvancedPhotoControl {}
161 unsafe impl ::std::marker::Sync for AdvancedPhotoControl {}
162 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
163 #[repr(transparent)]
164 pub struct AdvancedPhotoMode(pub i32);
165 impl AdvancedPhotoMode {
166     pub const Auto: AdvancedPhotoMode = AdvancedPhotoMode(0i32);
167     pub const Standard: AdvancedPhotoMode = AdvancedPhotoMode(1i32);
168     pub const Hdr: AdvancedPhotoMode = AdvancedPhotoMode(2i32);
169     pub const LowLight: AdvancedPhotoMode = AdvancedPhotoMode(3i32);
170 }
171 impl ::std::convert::From<i32> for AdvancedPhotoMode {
from(value: i32) -> Self172     fn from(value: i32) -> Self {
173         Self(value)
174     }
175 }
176 unsafe impl ::windows::runtime::Abi for AdvancedPhotoMode {
177     type Abi = Self;
178     type DefaultType = Self;
179 }
180 unsafe impl ::windows::runtime::RuntimeType for AdvancedPhotoMode {
181     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Devices.AdvancedPhotoMode;i4)");
182 }
183 #[repr(transparent)]
184 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
185 pub struct AudioDeviceController(::windows::runtime::IInspectable);
186 impl AudioDeviceController {
SetMuted(&self, value: bool) -> ::windows::runtime::Result<()>187     pub fn SetMuted(&self, value: bool) -> ::windows::runtime::Result<()> {
188         let this = self;
189         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), value).ok() }
190     }
Muted(&self) -> ::windows::runtime::Result<bool>191     pub fn Muted(&self) -> ::windows::runtime::Result<bool> {
192         let this = self;
193         unsafe {
194             let mut result__: bool = ::std::mem::zeroed();
195             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
196         }
197     }
SetVolumePercent(&self, value: f32) -> ::windows::runtime::Result<()>198     pub fn SetVolumePercent(&self, value: f32) -> ::windows::runtime::Result<()> {
199         let this = self;
200         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), value).ok() }
201     }
VolumePercent(&self) -> ::windows::runtime::Result<f32>202     pub fn VolumePercent(&self) -> ::windows::runtime::Result<f32> {
203         let this = self;
204         unsafe {
205             let mut result__: f32 = ::std::mem::zeroed();
206             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f32>(result__)
207         }
208     }
209     #[cfg(all(feature = "Foundation_Collections", feature = "Media_Capture", feature = "Media_MediaProperties"))]
GetAvailableMediaStreamProperties(&self, mediastreamtype: super::Capture::MediaStreamType) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<super::MediaProperties::IMediaEncodingProperties>>210     pub fn GetAvailableMediaStreamProperties(&self, mediastreamtype: super::Capture::MediaStreamType) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<super::MediaProperties::IMediaEncodingProperties>> {
211         let this = &::windows::runtime::Interface::cast::<IMediaDeviceController>(self)?;
212         unsafe {
213             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
214             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), mediastreamtype, &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<super::MediaProperties::IMediaEncodingProperties>>(result__)
215         }
216     }
217     #[cfg(all(feature = "Media_Capture", feature = "Media_MediaProperties"))]
GetMediaStreamProperties(&self, mediastreamtype: super::Capture::MediaStreamType) -> ::windows::runtime::Result<super::MediaProperties::IMediaEncodingProperties>218     pub fn GetMediaStreamProperties(&self, mediastreamtype: super::Capture::MediaStreamType) -> ::windows::runtime::Result<super::MediaProperties::IMediaEncodingProperties> {
219         let this = &::windows::runtime::Interface::cast::<IMediaDeviceController>(self)?;
220         unsafe {
221             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
222             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), mediastreamtype, &mut result__).from_abi::<super::MediaProperties::IMediaEncodingProperties>(result__)
223         }
224     }
225     #[cfg(all(feature = "Foundation", feature = "Media_Capture", feature = "Media_MediaProperties"))]
SetMediaStreamPropertiesAsync<'a, Param1: ::windows::runtime::IntoParam<'a, super::MediaProperties::IMediaEncodingProperties>>(&self, mediastreamtype: super::Capture::MediaStreamType, mediaencodingproperties: Param1) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>226     pub fn SetMediaStreamPropertiesAsync<'a, Param1: ::windows::runtime::IntoParam<'a, super::MediaProperties::IMediaEncodingProperties>>(&self, mediastreamtype: super::Capture::MediaStreamType, mediaencodingproperties: Param1) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
227         let this = &::windows::runtime::Interface::cast::<IMediaDeviceController>(self)?;
228         unsafe {
229             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
230             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), mediastreamtype, mediaencodingproperties.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
231         }
232     }
233 }
234 unsafe impl ::windows::runtime::RuntimeType for AudioDeviceController {
235     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.AudioDeviceController;{edd4a388-79c7-4f7c-90e8-ef934b21580a})");
236 }
237 unsafe impl ::windows::runtime::Interface for AudioDeviceController {
238     type Vtable = IAudioDeviceController_abi;
239     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3990135688, 31175, 20348, [144, 232, 239, 147, 75, 33, 88, 10]);
240 }
241 impl ::windows::runtime::RuntimeName for AudioDeviceController {
242     const NAME: &'static str = "Windows.Media.Devices.AudioDeviceController";
243 }
244 impl ::std::convert::From<AudioDeviceController> for ::windows::runtime::IUnknown {
from(value: AudioDeviceController) -> Self245     fn from(value: AudioDeviceController) -> Self {
246         unsafe { ::std::mem::transmute(value) }
247     }
248 }
249 impl ::std::convert::From<&AudioDeviceController> for ::windows::runtime::IUnknown {
from(value: &AudioDeviceController) -> Self250     fn from(value: &AudioDeviceController) -> Self {
251         ::std::convert::From::from(::std::clone::Clone::clone(value))
252     }
253 }
254 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for AudioDeviceController {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>255     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
256         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
257     }
258 }
259 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &AudioDeviceController {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>260     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
261         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
262     }
263 }
264 impl ::std::convert::From<AudioDeviceController> for ::windows::runtime::IInspectable {
from(value: AudioDeviceController) -> Self265     fn from(value: AudioDeviceController) -> Self {
266         value.0
267     }
268 }
269 impl ::std::convert::From<&AudioDeviceController> for ::windows::runtime::IInspectable {
from(value: &AudioDeviceController) -> Self270     fn from(value: &AudioDeviceController) -> Self {
271         value.0.clone()
272     }
273 }
274 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for AudioDeviceController {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>275     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
276         ::windows::runtime::Param::Owned(self.0)
277     }
278 }
279 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a AudioDeviceController {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>280     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
281         ::windows::runtime::Param::Borrowed(&self.0)
282     }
283 }
284 impl ::std::convert::TryFrom<AudioDeviceController> for IMediaDeviceController {
285     type Error = ::windows::runtime::Error;
try_from(value: AudioDeviceController) -> ::windows::runtime::Result<Self>286     fn try_from(value: AudioDeviceController) -> ::windows::runtime::Result<Self> {
287         ::std::convert::TryFrom::try_from(&value)
288     }
289 }
290 impl ::std::convert::TryFrom<&AudioDeviceController> for IMediaDeviceController {
291     type Error = ::windows::runtime::Error;
try_from(value: &AudioDeviceController) -> ::windows::runtime::Result<Self>292     fn try_from(value: &AudioDeviceController) -> ::windows::runtime::Result<Self> {
293         ::windows::runtime::Interface::cast(value)
294     }
295 }
296 impl<'a> ::windows::runtime::IntoParam<'a, IMediaDeviceController> for AudioDeviceController {
into_param(self) -> ::windows::runtime::Param<'a, IMediaDeviceController>297     fn into_param(self) -> ::windows::runtime::Param<'a, IMediaDeviceController> {
298         ::windows::runtime::IntoParam::into_param(&self)
299     }
300 }
301 impl<'a> ::windows::runtime::IntoParam<'a, IMediaDeviceController> for &AudioDeviceController {
into_param(self) -> ::windows::runtime::Param<'a, IMediaDeviceController>302     fn into_param(self) -> ::windows::runtime::Param<'a, IMediaDeviceController> {
303         ::std::convert::TryInto::<IMediaDeviceController>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
304     }
305 }
306 #[repr(transparent)]
307 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
308 pub struct AudioDeviceModule(::windows::runtime::IInspectable);
309 impl AudioDeviceModule {
ClassId(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>310     pub fn ClassId(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
311         let this = self;
312         unsafe {
313             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
314             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
315         }
316     }
DisplayName(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>317     pub fn DisplayName(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
318         let this = self;
319         unsafe {
320             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
321             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
322         }
323     }
InstanceId(&self) -> ::windows::runtime::Result<u32>324     pub fn InstanceId(&self) -> ::windows::runtime::Result<u32> {
325         let this = self;
326         unsafe {
327             let mut result__: u32 = ::std::mem::zeroed();
328             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
329         }
330     }
MajorVersion(&self) -> ::windows::runtime::Result<u32>331     pub fn MajorVersion(&self) -> ::windows::runtime::Result<u32> {
332         let this = self;
333         unsafe {
334             let mut result__: u32 = ::std::mem::zeroed();
335             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
336         }
337     }
MinorVersion(&self) -> ::windows::runtime::Result<u32>338     pub fn MinorVersion(&self) -> ::windows::runtime::Result<u32> {
339         let this = self;
340         unsafe {
341             let mut result__: u32 = ::std::mem::zeroed();
342             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
343         }
344     }
345     #[cfg(all(feature = "Foundation", feature = "Storage_Streams"))]
SendCommandAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Storage::Streams::IBuffer>>(&self, command: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<ModuleCommandResult>>346     pub fn SendCommandAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Storage::Streams::IBuffer>>(&self, command: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<ModuleCommandResult>> {
347         let this = self;
348         unsafe {
349             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
350             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), command.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<ModuleCommandResult>>(result__)
351         }
352     }
353 }
354 unsafe impl ::windows::runtime::RuntimeType for AudioDeviceModule {
355     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.AudioDeviceModule;{86cfac36-47c1-4b33-9852-8773ec4be123})");
356 }
357 unsafe impl ::windows::runtime::Interface for AudioDeviceModule {
358     type Vtable = IAudioDeviceModule_abi;
359     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2261756982, 18369, 19251, [152, 82, 135, 115, 236, 75, 225, 35]);
360 }
361 impl ::windows::runtime::RuntimeName for AudioDeviceModule {
362     const NAME: &'static str = "Windows.Media.Devices.AudioDeviceModule";
363 }
364 impl ::std::convert::From<AudioDeviceModule> for ::windows::runtime::IUnknown {
from(value: AudioDeviceModule) -> Self365     fn from(value: AudioDeviceModule) -> Self {
366         unsafe { ::std::mem::transmute(value) }
367     }
368 }
369 impl ::std::convert::From<&AudioDeviceModule> for ::windows::runtime::IUnknown {
from(value: &AudioDeviceModule) -> Self370     fn from(value: &AudioDeviceModule) -> Self {
371         ::std::convert::From::from(::std::clone::Clone::clone(value))
372     }
373 }
374 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for AudioDeviceModule {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>375     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
376         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
377     }
378 }
379 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &AudioDeviceModule {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>380     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
381         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
382     }
383 }
384 impl ::std::convert::From<AudioDeviceModule> for ::windows::runtime::IInspectable {
from(value: AudioDeviceModule) -> Self385     fn from(value: AudioDeviceModule) -> Self {
386         value.0
387     }
388 }
389 impl ::std::convert::From<&AudioDeviceModule> for ::windows::runtime::IInspectable {
from(value: &AudioDeviceModule) -> Self390     fn from(value: &AudioDeviceModule) -> Self {
391         value.0.clone()
392     }
393 }
394 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for AudioDeviceModule {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>395     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
396         ::windows::runtime::Param::Owned(self.0)
397     }
398 }
399 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a AudioDeviceModule {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>400     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
401         ::windows::runtime::Param::Borrowed(&self.0)
402     }
403 }
404 #[repr(transparent)]
405 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
406 pub struct AudioDeviceModuleNotificationEventArgs(::windows::runtime::IInspectable);
407 impl AudioDeviceModuleNotificationEventArgs {
Module(&self) -> ::windows::runtime::Result<AudioDeviceModule>408     pub fn Module(&self) -> ::windows::runtime::Result<AudioDeviceModule> {
409         let this = self;
410         unsafe {
411             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
412             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioDeviceModule>(result__)
413         }
414     }
415     #[cfg(feature = "Storage_Streams")]
NotificationData(&self) -> ::windows::runtime::Result<super::super::Storage::Streams::IBuffer>416     pub fn NotificationData(&self) -> ::windows::runtime::Result<super::super::Storage::Streams::IBuffer> {
417         let this = self;
418         unsafe {
419             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
420             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Storage::Streams::IBuffer>(result__)
421         }
422     }
423 }
424 unsafe impl ::windows::runtime::RuntimeType for AudioDeviceModuleNotificationEventArgs {
425     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.AudioDeviceModuleNotificationEventArgs;{e3e3ccaf-224c-48be-956b-9a13134e96e8})");
426 }
427 unsafe impl ::windows::runtime::Interface for AudioDeviceModuleNotificationEventArgs {
428     type Vtable = IAudioDeviceModuleNotificationEventArgs_abi;
429     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3823357103, 8780, 18622, [149, 107, 154, 19, 19, 78, 150, 232]);
430 }
431 impl ::windows::runtime::RuntimeName for AudioDeviceModuleNotificationEventArgs {
432     const NAME: &'static str = "Windows.Media.Devices.AudioDeviceModuleNotificationEventArgs";
433 }
434 impl ::std::convert::From<AudioDeviceModuleNotificationEventArgs> for ::windows::runtime::IUnknown {
from(value: AudioDeviceModuleNotificationEventArgs) -> Self435     fn from(value: AudioDeviceModuleNotificationEventArgs) -> Self {
436         unsafe { ::std::mem::transmute(value) }
437     }
438 }
439 impl ::std::convert::From<&AudioDeviceModuleNotificationEventArgs> for ::windows::runtime::IUnknown {
from(value: &AudioDeviceModuleNotificationEventArgs) -> Self440     fn from(value: &AudioDeviceModuleNotificationEventArgs) -> Self {
441         ::std::convert::From::from(::std::clone::Clone::clone(value))
442     }
443 }
444 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for AudioDeviceModuleNotificationEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>445     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
446         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
447     }
448 }
449 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &AudioDeviceModuleNotificationEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>450     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
451         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
452     }
453 }
454 impl ::std::convert::From<AudioDeviceModuleNotificationEventArgs> for ::windows::runtime::IInspectable {
from(value: AudioDeviceModuleNotificationEventArgs) -> Self455     fn from(value: AudioDeviceModuleNotificationEventArgs) -> Self {
456         value.0
457     }
458 }
459 impl ::std::convert::From<&AudioDeviceModuleNotificationEventArgs> for ::windows::runtime::IInspectable {
from(value: &AudioDeviceModuleNotificationEventArgs) -> Self460     fn from(value: &AudioDeviceModuleNotificationEventArgs) -> Self {
461         value.0.clone()
462     }
463 }
464 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for AudioDeviceModuleNotificationEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>465     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
466         ::windows::runtime::Param::Owned(self.0)
467     }
468 }
469 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a AudioDeviceModuleNotificationEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>470     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
471         ::windows::runtime::Param::Borrowed(&self.0)
472     }
473 }
474 unsafe impl ::std::marker::Send for AudioDeviceModuleNotificationEventArgs {}
475 unsafe impl ::std::marker::Sync for AudioDeviceModuleNotificationEventArgs {}
476 #[repr(transparent)]
477 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
478 pub struct AudioDeviceModulesManager(::windows::runtime::IInspectable);
479 impl AudioDeviceModulesManager {
480     #[cfg(feature = "Foundation")]
ModuleNotificationReceived<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<AudioDeviceModulesManager, AudioDeviceModuleNotificationEventArgs>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken>481     pub fn ModuleNotificationReceived<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<AudioDeviceModulesManager, AudioDeviceModuleNotificationEventArgs>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken> {
482         let this = self;
483         unsafe {
484             let mut result__: super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
485             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::EventRegistrationToken>(result__)
486         }
487     }
488     #[cfg(feature = "Foundation")]
RemoveModuleNotificationReceived<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()>489     pub fn RemoveModuleNotificationReceived<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()> {
490         let this = self;
491         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), token.into_param().abi()).ok() }
492     }
493     #[cfg(feature = "Foundation_Collections")]
FindAllById<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, moduleid: Param0) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<AudioDeviceModule>>494     pub fn FindAllById<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, moduleid: Param0) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<AudioDeviceModule>> {
495         let this = self;
496         unsafe {
497             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
498             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), moduleid.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<AudioDeviceModule>>(result__)
499         }
500     }
501     #[cfg(feature = "Foundation_Collections")]
FindAll(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<AudioDeviceModule>>502     pub fn FindAll(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<AudioDeviceModule>> {
503         let this = self;
504         unsafe {
505             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
506             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<AudioDeviceModule>>(result__)
507         }
508     }
Create<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(deviceid: Param0) -> ::windows::runtime::Result<AudioDeviceModulesManager>509     pub fn Create<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(deviceid: Param0) -> ::windows::runtime::Result<AudioDeviceModulesManager> {
510         Self::IAudioDeviceModulesManagerFactory(|this| unsafe {
511             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
512             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), deviceid.into_param().abi(), &mut result__).from_abi::<AudioDeviceModulesManager>(result__)
513         })
514     }
IAudioDeviceModulesManagerFactory<R, F: FnOnce(&IAudioDeviceModulesManagerFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>515     pub fn IAudioDeviceModulesManagerFactory<R, F: FnOnce(&IAudioDeviceModulesManagerFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
516         static mut SHARED: ::windows::runtime::FactoryCache<AudioDeviceModulesManager, IAudioDeviceModulesManagerFactory> = ::windows::runtime::FactoryCache::new();
517         unsafe { SHARED.call(callback) }
518     }
519 }
520 unsafe impl ::windows::runtime::RuntimeType for AudioDeviceModulesManager {
521     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.AudioDeviceModulesManager;{6aa40c4d-960a-4d1c-b318-0022604547ed})");
522 }
523 unsafe impl ::windows::runtime::Interface for AudioDeviceModulesManager {
524     type Vtable = IAudioDeviceModulesManager_abi;
525     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1789135949, 38410, 19740, [179, 24, 0, 34, 96, 69, 71, 237]);
526 }
527 impl ::windows::runtime::RuntimeName for AudioDeviceModulesManager {
528     const NAME: &'static str = "Windows.Media.Devices.AudioDeviceModulesManager";
529 }
530 impl ::std::convert::From<AudioDeviceModulesManager> for ::windows::runtime::IUnknown {
from(value: AudioDeviceModulesManager) -> Self531     fn from(value: AudioDeviceModulesManager) -> Self {
532         unsafe { ::std::mem::transmute(value) }
533     }
534 }
535 impl ::std::convert::From<&AudioDeviceModulesManager> for ::windows::runtime::IUnknown {
from(value: &AudioDeviceModulesManager) -> Self536     fn from(value: &AudioDeviceModulesManager) -> Self {
537         ::std::convert::From::from(::std::clone::Clone::clone(value))
538     }
539 }
540 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for AudioDeviceModulesManager {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>541     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
542         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
543     }
544 }
545 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &AudioDeviceModulesManager {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>546     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
547         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
548     }
549 }
550 impl ::std::convert::From<AudioDeviceModulesManager> for ::windows::runtime::IInspectable {
from(value: AudioDeviceModulesManager) -> Self551     fn from(value: AudioDeviceModulesManager) -> Self {
552         value.0
553     }
554 }
555 impl ::std::convert::From<&AudioDeviceModulesManager> for ::windows::runtime::IInspectable {
from(value: &AudioDeviceModulesManager) -> Self556     fn from(value: &AudioDeviceModulesManager) -> Self {
557         value.0.clone()
558     }
559 }
560 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for AudioDeviceModulesManager {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>561     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
562         ::windows::runtime::Param::Owned(self.0)
563     }
564 }
565 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a AudioDeviceModulesManager {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>566     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
567         ::windows::runtime::Param::Borrowed(&self.0)
568     }
569 }
570 unsafe impl ::std::marker::Send for AudioDeviceModulesManager {}
571 unsafe impl ::std::marker::Sync for AudioDeviceModulesManager {}
572 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
573 #[repr(transparent)]
574 pub struct AudioDeviceRole(pub i32);
575 impl AudioDeviceRole {
576     pub const Default: AudioDeviceRole = AudioDeviceRole(0i32);
577     pub const Communications: AudioDeviceRole = AudioDeviceRole(1i32);
578 }
579 impl ::std::convert::From<i32> for AudioDeviceRole {
from(value: i32) -> Self580     fn from(value: i32) -> Self {
581         Self(value)
582     }
583 }
584 unsafe impl ::windows::runtime::Abi for AudioDeviceRole {
585     type Abi = Self;
586     type DefaultType = Self;
587 }
588 unsafe impl ::windows::runtime::RuntimeType for AudioDeviceRole {
589     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Devices.AudioDeviceRole;i4)");
590 }
591 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
592 #[repr(transparent)]
593 pub struct AutoFocusRange(pub i32);
594 impl AutoFocusRange {
595     pub const FullRange: AutoFocusRange = AutoFocusRange(0i32);
596     pub const Macro: AutoFocusRange = AutoFocusRange(1i32);
597     pub const Normal: AutoFocusRange = AutoFocusRange(2i32);
598 }
599 impl ::std::convert::From<i32> for AutoFocusRange {
from(value: i32) -> Self600     fn from(value: i32) -> Self {
601         Self(value)
602     }
603 }
604 unsafe impl ::windows::runtime::Abi for AutoFocusRange {
605     type Abi = Self;
606     type DefaultType = Self;
607 }
608 unsafe impl ::windows::runtime::RuntimeType for AutoFocusRange {
609     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Devices.AutoFocusRange;i4)");
610 }
611 #[repr(transparent)]
612 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
613 pub struct CallControl(::windows::runtime::IInspectable);
614 impl CallControl {
IndicateNewIncomingCall<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, enableringer: bool, callerid: Param1) -> ::windows::runtime::Result<u64>615     pub fn IndicateNewIncomingCall<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, enableringer: bool, callerid: Param1) -> ::windows::runtime::Result<u64> {
616         let this = self;
617         unsafe {
618             let mut result__: u64 = ::std::mem::zeroed();
619             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), enableringer, callerid.into_param().abi(), &mut result__).from_abi::<u64>(result__)
620         }
621     }
IndicateNewOutgoingCall(&self) -> ::windows::runtime::Result<u64>622     pub fn IndicateNewOutgoingCall(&self) -> ::windows::runtime::Result<u64> {
623         let this = self;
624         unsafe {
625             let mut result__: u64 = ::std::mem::zeroed();
626             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u64>(result__)
627         }
628     }
IndicateActiveCall(&self, calltoken: u64) -> ::windows::runtime::Result<()>629     pub fn IndicateActiveCall(&self, calltoken: u64) -> ::windows::runtime::Result<()> {
630         let this = self;
631         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), calltoken).ok() }
632     }
EndCall(&self, calltoken: u64) -> ::windows::runtime::Result<()>633     pub fn EndCall(&self, calltoken: u64) -> ::windows::runtime::Result<()> {
634         let this = self;
635         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), calltoken).ok() }
636     }
HasRinger(&self) -> ::windows::runtime::Result<bool>637     pub fn HasRinger(&self) -> ::windows::runtime::Result<bool> {
638         let this = self;
639         unsafe {
640             let mut result__: bool = ::std::mem::zeroed();
641             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
642         }
643     }
644     #[cfg(feature = "Foundation")]
AnswerRequested<'a, Param0: ::windows::runtime::IntoParam<'a, CallControlEventHandler>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken>645     pub fn AnswerRequested<'a, Param0: ::windows::runtime::IntoParam<'a, CallControlEventHandler>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken> {
646         let this = self;
647         unsafe {
648             let mut result__: super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
649             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::EventRegistrationToken>(result__)
650         }
651     }
652     #[cfg(feature = "Foundation")]
RemoveAnswerRequested<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()>653     pub fn RemoveAnswerRequested<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()> {
654         let this = self;
655         unsafe { (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), token.into_param().abi()).ok() }
656     }
657     #[cfg(feature = "Foundation")]
HangUpRequested<'a, Param0: ::windows::runtime::IntoParam<'a, CallControlEventHandler>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken>658     pub fn HangUpRequested<'a, Param0: ::windows::runtime::IntoParam<'a, CallControlEventHandler>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken> {
659         let this = self;
660         unsafe {
661             let mut result__: super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
662             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::EventRegistrationToken>(result__)
663         }
664     }
665     #[cfg(feature = "Foundation")]
RemoveHangUpRequested<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()>666     pub fn RemoveHangUpRequested<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()> {
667         let this = self;
668         unsafe { (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), token.into_param().abi()).ok() }
669     }
670     #[cfg(feature = "Foundation")]
DialRequested<'a, Param0: ::windows::runtime::IntoParam<'a, DialRequestedEventHandler>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken>671     pub fn DialRequested<'a, Param0: ::windows::runtime::IntoParam<'a, DialRequestedEventHandler>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken> {
672         let this = self;
673         unsafe {
674             let mut result__: super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
675             (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::EventRegistrationToken>(result__)
676         }
677     }
678     #[cfg(feature = "Foundation")]
RemoveDialRequested<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()>679     pub fn RemoveDialRequested<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()> {
680         let this = self;
681         unsafe { (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), token.into_param().abi()).ok() }
682     }
683     #[cfg(feature = "Foundation")]
RedialRequested<'a, Param0: ::windows::runtime::IntoParam<'a, RedialRequestedEventHandler>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken>684     pub fn RedialRequested<'a, Param0: ::windows::runtime::IntoParam<'a, RedialRequestedEventHandler>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken> {
685         let this = self;
686         unsafe {
687             let mut result__: super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
688             (::windows::runtime::Interface::vtable(this).17)(::std::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::EventRegistrationToken>(result__)
689         }
690     }
691     #[cfg(feature = "Foundation")]
RemoveRedialRequested<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()>692     pub fn RemoveRedialRequested<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()> {
693         let this = self;
694         unsafe { (::windows::runtime::Interface::vtable(this).18)(::std::mem::transmute_copy(this), token.into_param().abi()).ok() }
695     }
696     #[cfg(feature = "Foundation")]
KeypadPressed<'a, Param0: ::windows::runtime::IntoParam<'a, KeypadPressedEventHandler>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken>697     pub fn KeypadPressed<'a, Param0: ::windows::runtime::IntoParam<'a, KeypadPressedEventHandler>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken> {
698         let this = self;
699         unsafe {
700             let mut result__: super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
701             (::windows::runtime::Interface::vtable(this).19)(::std::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::EventRegistrationToken>(result__)
702         }
703     }
704     #[cfg(feature = "Foundation")]
RemoveKeypadPressed<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()>705     pub fn RemoveKeypadPressed<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()> {
706         let this = self;
707         unsafe { (::windows::runtime::Interface::vtable(this).20)(::std::mem::transmute_copy(this), token.into_param().abi()).ok() }
708     }
709     #[cfg(feature = "Foundation")]
AudioTransferRequested<'a, Param0: ::windows::runtime::IntoParam<'a, CallControlEventHandler>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken>710     pub fn AudioTransferRequested<'a, Param0: ::windows::runtime::IntoParam<'a, CallControlEventHandler>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken> {
711         let this = self;
712         unsafe {
713             let mut result__: super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
714             (::windows::runtime::Interface::vtable(this).21)(::std::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::EventRegistrationToken>(result__)
715         }
716     }
717     #[cfg(feature = "Foundation")]
RemoveAudioTransferRequested<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()>718     pub fn RemoveAudioTransferRequested<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()> {
719         let this = self;
720         unsafe { (::windows::runtime::Interface::vtable(this).22)(::std::mem::transmute_copy(this), token.into_param().abi()).ok() }
721     }
GetDefault() -> ::windows::runtime::Result<CallControl>722     pub fn GetDefault() -> ::windows::runtime::Result<CallControl> {
723         Self::ICallControlStatics(|this| unsafe {
724             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
725             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<CallControl>(result__)
726         })
727     }
FromId<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(deviceid: Param0) -> ::windows::runtime::Result<CallControl>728     pub fn FromId<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(deviceid: Param0) -> ::windows::runtime::Result<CallControl> {
729         Self::ICallControlStatics(|this| unsafe {
730             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
731             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), deviceid.into_param().abi(), &mut result__).from_abi::<CallControl>(result__)
732         })
733     }
ICallControlStatics<R, F: FnOnce(&ICallControlStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>734     pub fn ICallControlStatics<R, F: FnOnce(&ICallControlStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
735         static mut SHARED: ::windows::runtime::FactoryCache<CallControl, ICallControlStatics> = ::windows::runtime::FactoryCache::new();
736         unsafe { SHARED.call(callback) }
737     }
738 }
739 unsafe impl ::windows::runtime::RuntimeType for CallControl {
740     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.CallControl;{a520d0d6-ae8d-45db-8011-ca49d3b3e578})");
741 }
742 unsafe impl ::windows::runtime::Interface for CallControl {
743     type Vtable = ICallControl_abi;
744     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2770391254, 44685, 17883, [128, 17, 202, 73, 211, 179, 229, 120]);
745 }
746 impl ::windows::runtime::RuntimeName for CallControl {
747     const NAME: &'static str = "Windows.Media.Devices.CallControl";
748 }
749 impl ::std::convert::From<CallControl> for ::windows::runtime::IUnknown {
from(value: CallControl) -> Self750     fn from(value: CallControl) -> Self {
751         unsafe { ::std::mem::transmute(value) }
752     }
753 }
754 impl ::std::convert::From<&CallControl> for ::windows::runtime::IUnknown {
from(value: &CallControl) -> Self755     fn from(value: &CallControl) -> Self {
756         ::std::convert::From::from(::std::clone::Clone::clone(value))
757     }
758 }
759 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for CallControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>760     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
761         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
762     }
763 }
764 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &CallControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>765     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
766         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
767     }
768 }
769 impl ::std::convert::From<CallControl> for ::windows::runtime::IInspectable {
from(value: CallControl) -> Self770     fn from(value: CallControl) -> Self {
771         value.0
772     }
773 }
774 impl ::std::convert::From<&CallControl> for ::windows::runtime::IInspectable {
from(value: &CallControl) -> Self775     fn from(value: &CallControl) -> Self {
776         value.0.clone()
777     }
778 }
779 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for CallControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>780     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
781         ::windows::runtime::Param::Owned(self.0)
782     }
783 }
784 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a CallControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>785     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
786         ::windows::runtime::Param::Borrowed(&self.0)
787     }
788 }
789 unsafe impl ::std::marker::Send for CallControl {}
790 unsafe impl ::std::marker::Sync for CallControl {}
791 #[repr(C)]
792 #[derive(:: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug, :: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy)]
793 pub struct CallControlContract(pub u8);
794 #[repr(transparent)]
795 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
796 pub struct CallControlEventHandler(::windows::runtime::IUnknown);
797 impl CallControlEventHandler {
new<F: FnMut(&::std::option::Option<CallControl>) -> ::windows::runtime::Result<()> + 'static>(invoke: F) -> Self798     pub fn new<F: FnMut(&::std::option::Option<CallControl>) -> ::windows::runtime::Result<()> + 'static>(invoke: F) -> Self {
799         let com = CallControlEventHandler_box::<F> {
800             vtable: &CallControlEventHandler_box::<F>::VTABLE,
801             count: ::windows::runtime::RefCount::new(1),
802             invoke,
803         };
804         unsafe { std::mem::transmute(::std::boxed::Box::new(com)) }
805     }
Invoke<'a, Param0: ::windows::runtime::IntoParam<'a, CallControl>>(&self, sender: Param0) -> ::windows::runtime::Result<()>806     pub fn Invoke<'a, Param0: ::windows::runtime::IntoParam<'a, CallControl>>(&self, sender: Param0) -> ::windows::runtime::Result<()> {
807         let this = self;
808         unsafe { (::windows::runtime::Interface::vtable(this).3)(::std::mem::transmute_copy(this), sender.into_param().abi()).ok() }
809     }
810 }
811 unsafe impl ::windows::runtime::RuntimeType for CallControlEventHandler {
812     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"delegate({596f759f-50df-4454-bc63-4d3d01b61958})");
813 }
814 unsafe impl ::windows::runtime::Interface for CallControlEventHandler {
815     type Vtable = CallControlEventHandler_abi;
816     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1500476831, 20703, 17492, [188, 99, 77, 61, 1, 182, 25, 88]);
817 }
818 #[repr(C)]
819 #[doc(hidden)]
820 pub struct CallControlEventHandler_abi(
821     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
822     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
823     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
824     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, sender: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
825 );
826 #[repr(C)]
827 struct CallControlEventHandler_box<F: FnMut(&::std::option::Option<CallControl>) -> ::windows::runtime::Result<()> + 'static> {
828     vtable: *const CallControlEventHandler_abi,
829     invoke: F,
830     count: ::windows::runtime::RefCount,
831 }
832 impl<F: FnMut(&::std::option::Option<CallControl>) -> ::windows::runtime::Result<()> + 'static> CallControlEventHandler_box<F> {
833     const VTABLE: CallControlEventHandler_abi = CallControlEventHandler_abi(Self::QueryInterface, Self::AddRef, Self::Release, Self::Invoke);
QueryInterface(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT834     unsafe extern "system" fn QueryInterface(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT {
835         let this = this as *mut ::windows::runtime::RawPtr as *mut Self;
836         *interface = if iid == &<CallControlEventHandler as ::windows::runtime::Interface>::IID || iid == &<::windows::runtime::IUnknown as ::windows::runtime::Interface>::IID || iid == &<::windows::runtime::IAgileObject as ::windows::runtime::Interface>::IID {
837             &mut (*this).vtable as *mut _ as _
838         } else {
839             ::std::ptr::null_mut()
840         };
841         if (*interface).is_null() {
842             ::windows::runtime::HRESULT(0x8000_4002)
843         } else {
844             (*this).count.add_ref();
845             ::windows::runtime::HRESULT(0)
846         }
847     }
AddRef(this: ::windows::runtime::RawPtr) -> u32848     unsafe extern "system" fn AddRef(this: ::windows::runtime::RawPtr) -> u32 {
849         let this = this as *mut ::windows::runtime::RawPtr as *mut Self;
850         (*this).count.add_ref()
851     }
Release(this: ::windows::runtime::RawPtr) -> u32852     unsafe extern "system" fn Release(this: ::windows::runtime::RawPtr) -> u32 {
853         let this = this as *mut ::windows::runtime::RawPtr as *mut Self;
854         let remaining = (*this).count.release();
855         if remaining == 0 {
856             Box::from_raw(this);
857         }
858         remaining
859     }
Invoke(this: ::windows::runtime::RawPtr, sender: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT860     unsafe extern "system" fn Invoke(this: ::windows::runtime::RawPtr, sender: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT {
861         let this = this as *mut ::windows::runtime::RawPtr as *mut Self;
862         ((*this).invoke)(&*(&sender as *const <CallControl as ::windows::runtime::Abi>::Abi as *const <CallControl as ::windows::runtime::Abi>::DefaultType)).into()
863     }
864 }
865 #[repr(transparent)]
866 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
867 pub struct CameraOcclusionInfo(::windows::runtime::IInspectable);
868 impl CameraOcclusionInfo {
GetState(&self) -> ::windows::runtime::Result<CameraOcclusionState>869     pub fn GetState(&self) -> ::windows::runtime::Result<CameraOcclusionState> {
870         let this = self;
871         unsafe {
872             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
873             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<CameraOcclusionState>(result__)
874         }
875     }
IsOcclusionKindSupported(&self, occlusionkind: CameraOcclusionKind) -> ::windows::runtime::Result<bool>876     pub fn IsOcclusionKindSupported(&self, occlusionkind: CameraOcclusionKind) -> ::windows::runtime::Result<bool> {
877         let this = self;
878         unsafe {
879             let mut result__: bool = ::std::mem::zeroed();
880             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), occlusionkind, &mut result__).from_abi::<bool>(result__)
881         }
882     }
883     #[cfg(feature = "Foundation")]
StateChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<CameraOcclusionInfo, CameraOcclusionStateChangedEventArgs>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken>884     pub fn StateChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<CameraOcclusionInfo, CameraOcclusionStateChangedEventArgs>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken> {
885         let this = self;
886         unsafe {
887             let mut result__: super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
888             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::EventRegistrationToken>(result__)
889         }
890     }
891     #[cfg(feature = "Foundation")]
RemoveStateChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()>892     pub fn RemoveStateChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()> {
893         let this = self;
894         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), token.into_param().abi()).ok() }
895     }
896 }
897 unsafe impl ::windows::runtime::RuntimeType for CameraOcclusionInfo {
898     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.CameraOcclusionInfo;{af6c4ad0-a84d-5db6-be58-a5da21cfe011})");
899 }
900 unsafe impl ::windows::runtime::Interface for CameraOcclusionInfo {
901     type Vtable = ICameraOcclusionInfo_abi;
902     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2943109840, 43085, 23990, [190, 88, 165, 218, 33, 207, 224, 17]);
903 }
904 impl ::windows::runtime::RuntimeName for CameraOcclusionInfo {
905     const NAME: &'static str = "Windows.Media.Devices.CameraOcclusionInfo";
906 }
907 impl ::std::convert::From<CameraOcclusionInfo> for ::windows::runtime::IUnknown {
from(value: CameraOcclusionInfo) -> Self908     fn from(value: CameraOcclusionInfo) -> Self {
909         unsafe { ::std::mem::transmute(value) }
910     }
911 }
912 impl ::std::convert::From<&CameraOcclusionInfo> for ::windows::runtime::IUnknown {
from(value: &CameraOcclusionInfo) -> Self913     fn from(value: &CameraOcclusionInfo) -> Self {
914         ::std::convert::From::from(::std::clone::Clone::clone(value))
915     }
916 }
917 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for CameraOcclusionInfo {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>918     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
919         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
920     }
921 }
922 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &CameraOcclusionInfo {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>923     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
924         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
925     }
926 }
927 impl ::std::convert::From<CameraOcclusionInfo> for ::windows::runtime::IInspectable {
from(value: CameraOcclusionInfo) -> Self928     fn from(value: CameraOcclusionInfo) -> Self {
929         value.0
930     }
931 }
932 impl ::std::convert::From<&CameraOcclusionInfo> for ::windows::runtime::IInspectable {
from(value: &CameraOcclusionInfo) -> Self933     fn from(value: &CameraOcclusionInfo) -> Self {
934         value.0.clone()
935     }
936 }
937 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for CameraOcclusionInfo {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>938     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
939         ::windows::runtime::Param::Owned(self.0)
940     }
941 }
942 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a CameraOcclusionInfo {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>943     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
944         ::windows::runtime::Param::Borrowed(&self.0)
945     }
946 }
947 unsafe impl ::std::marker::Send for CameraOcclusionInfo {}
948 unsafe impl ::std::marker::Sync for CameraOcclusionInfo {}
949 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
950 #[repr(transparent)]
951 pub struct CameraOcclusionKind(pub i32);
952 impl CameraOcclusionKind {
953     pub const Lid: CameraOcclusionKind = CameraOcclusionKind(0i32);
954     pub const CameraHardware: CameraOcclusionKind = CameraOcclusionKind(1i32);
955 }
956 impl ::std::convert::From<i32> for CameraOcclusionKind {
from(value: i32) -> Self957     fn from(value: i32) -> Self {
958         Self(value)
959     }
960 }
961 unsafe impl ::windows::runtime::Abi for CameraOcclusionKind {
962     type Abi = Self;
963     type DefaultType = Self;
964 }
965 unsafe impl ::windows::runtime::RuntimeType for CameraOcclusionKind {
966     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Devices.CameraOcclusionKind;i4)");
967 }
968 #[repr(transparent)]
969 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
970 pub struct CameraOcclusionState(::windows::runtime::IInspectable);
971 impl CameraOcclusionState {
IsOccluded(&self) -> ::windows::runtime::Result<bool>972     pub fn IsOccluded(&self) -> ::windows::runtime::Result<bool> {
973         let this = self;
974         unsafe {
975             let mut result__: bool = ::std::mem::zeroed();
976             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
977         }
978     }
IsOcclusionKind(&self, occlusionkind: CameraOcclusionKind) -> ::windows::runtime::Result<bool>979     pub fn IsOcclusionKind(&self, occlusionkind: CameraOcclusionKind) -> ::windows::runtime::Result<bool> {
980         let this = self;
981         unsafe {
982             let mut result__: bool = ::std::mem::zeroed();
983             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), occlusionkind, &mut result__).from_abi::<bool>(result__)
984         }
985     }
986 }
987 unsafe impl ::windows::runtime::RuntimeType for CameraOcclusionState {
988     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.CameraOcclusionState;{430adeb8-6842-5e55-9bde-04b4ef3a8a57})");
989 }
990 unsafe impl ::windows::runtime::Interface for CameraOcclusionState {
991     type Vtable = ICameraOcclusionState_abi;
992     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1124785848, 26690, 24149, [155, 222, 4, 180, 239, 58, 138, 87]);
993 }
994 impl ::windows::runtime::RuntimeName for CameraOcclusionState {
995     const NAME: &'static str = "Windows.Media.Devices.CameraOcclusionState";
996 }
997 impl ::std::convert::From<CameraOcclusionState> for ::windows::runtime::IUnknown {
from(value: CameraOcclusionState) -> Self998     fn from(value: CameraOcclusionState) -> Self {
999         unsafe { ::std::mem::transmute(value) }
1000     }
1001 }
1002 impl ::std::convert::From<&CameraOcclusionState> for ::windows::runtime::IUnknown {
from(value: &CameraOcclusionState) -> Self1003     fn from(value: &CameraOcclusionState) -> Self {
1004         ::std::convert::From::from(::std::clone::Clone::clone(value))
1005     }
1006 }
1007 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for CameraOcclusionState {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1008     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1009         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1010     }
1011 }
1012 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &CameraOcclusionState {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1013     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1014         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1015     }
1016 }
1017 impl ::std::convert::From<CameraOcclusionState> for ::windows::runtime::IInspectable {
from(value: CameraOcclusionState) -> Self1018     fn from(value: CameraOcclusionState) -> Self {
1019         value.0
1020     }
1021 }
1022 impl ::std::convert::From<&CameraOcclusionState> for ::windows::runtime::IInspectable {
from(value: &CameraOcclusionState) -> Self1023     fn from(value: &CameraOcclusionState) -> Self {
1024         value.0.clone()
1025     }
1026 }
1027 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for CameraOcclusionState {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1028     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1029         ::windows::runtime::Param::Owned(self.0)
1030     }
1031 }
1032 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a CameraOcclusionState {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1033     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1034         ::windows::runtime::Param::Borrowed(&self.0)
1035     }
1036 }
1037 unsafe impl ::std::marker::Send for CameraOcclusionState {}
1038 unsafe impl ::std::marker::Sync for CameraOcclusionState {}
1039 #[repr(transparent)]
1040 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1041 pub struct CameraOcclusionStateChangedEventArgs(::windows::runtime::IInspectable);
1042 impl CameraOcclusionStateChangedEventArgs {
State(&self) -> ::windows::runtime::Result<CameraOcclusionState>1043     pub fn State(&self) -> ::windows::runtime::Result<CameraOcclusionState> {
1044         let this = self;
1045         unsafe {
1046             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1047             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<CameraOcclusionState>(result__)
1048         }
1049     }
1050 }
1051 unsafe impl ::windows::runtime::RuntimeType for CameraOcclusionStateChangedEventArgs {
1052     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.CameraOcclusionStateChangedEventArgs;{8512d848-c0de-57ca-a1ca-fb2c3d23df55})");
1053 }
1054 unsafe impl ::windows::runtime::Interface for CameraOcclusionStateChangedEventArgs {
1055     type Vtable = ICameraOcclusionStateChangedEventArgs_abi;
1056     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2232604744, 49374, 22474, [161, 202, 251, 44, 61, 35, 223, 85]);
1057 }
1058 impl ::windows::runtime::RuntimeName for CameraOcclusionStateChangedEventArgs {
1059     const NAME: &'static str = "Windows.Media.Devices.CameraOcclusionStateChangedEventArgs";
1060 }
1061 impl ::std::convert::From<CameraOcclusionStateChangedEventArgs> for ::windows::runtime::IUnknown {
from(value: CameraOcclusionStateChangedEventArgs) -> Self1062     fn from(value: CameraOcclusionStateChangedEventArgs) -> Self {
1063         unsafe { ::std::mem::transmute(value) }
1064     }
1065 }
1066 impl ::std::convert::From<&CameraOcclusionStateChangedEventArgs> for ::windows::runtime::IUnknown {
from(value: &CameraOcclusionStateChangedEventArgs) -> Self1067     fn from(value: &CameraOcclusionStateChangedEventArgs) -> Self {
1068         ::std::convert::From::from(::std::clone::Clone::clone(value))
1069     }
1070 }
1071 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for CameraOcclusionStateChangedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1072     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1073         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1074     }
1075 }
1076 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &CameraOcclusionStateChangedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1077     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1078         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1079     }
1080 }
1081 impl ::std::convert::From<CameraOcclusionStateChangedEventArgs> for ::windows::runtime::IInspectable {
from(value: CameraOcclusionStateChangedEventArgs) -> Self1082     fn from(value: CameraOcclusionStateChangedEventArgs) -> Self {
1083         value.0
1084     }
1085 }
1086 impl ::std::convert::From<&CameraOcclusionStateChangedEventArgs> for ::windows::runtime::IInspectable {
from(value: &CameraOcclusionStateChangedEventArgs) -> Self1087     fn from(value: &CameraOcclusionStateChangedEventArgs) -> Self {
1088         value.0.clone()
1089     }
1090 }
1091 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for CameraOcclusionStateChangedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1092     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1093         ::windows::runtime::Param::Owned(self.0)
1094     }
1095 }
1096 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a CameraOcclusionStateChangedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1097     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1098         ::windows::runtime::Param::Borrowed(&self.0)
1099     }
1100 }
1101 unsafe impl ::std::marker::Send for CameraOcclusionStateChangedEventArgs {}
1102 unsafe impl ::std::marker::Sync for CameraOcclusionStateChangedEventArgs {}
1103 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1104 #[repr(transparent)]
1105 pub struct CameraStreamState(pub i32);
1106 impl CameraStreamState {
1107     pub const NotStreaming: CameraStreamState = CameraStreamState(0i32);
1108     pub const Streaming: CameraStreamState = CameraStreamState(1i32);
1109     pub const BlockedForPrivacy: CameraStreamState = CameraStreamState(2i32);
1110     pub const Shutdown: CameraStreamState = CameraStreamState(3i32);
1111 }
1112 impl ::std::convert::From<i32> for CameraStreamState {
from(value: i32) -> Self1113     fn from(value: i32) -> Self {
1114         Self(value)
1115     }
1116 }
1117 unsafe impl ::windows::runtime::Abi for CameraStreamState {
1118     type Abi = Self;
1119     type DefaultType = Self;
1120 }
1121 unsafe impl ::windows::runtime::RuntimeType for CameraStreamState {
1122     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Devices.CameraStreamState;i4)");
1123 }
1124 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1125 #[repr(transparent)]
1126 pub struct CaptureSceneMode(pub i32);
1127 impl CaptureSceneMode {
1128     pub const Auto: CaptureSceneMode = CaptureSceneMode(0i32);
1129     pub const Manual: CaptureSceneMode = CaptureSceneMode(1i32);
1130     pub const Macro: CaptureSceneMode = CaptureSceneMode(2i32);
1131     pub const Portrait: CaptureSceneMode = CaptureSceneMode(3i32);
1132     pub const Sport: CaptureSceneMode = CaptureSceneMode(4i32);
1133     pub const Snow: CaptureSceneMode = CaptureSceneMode(5i32);
1134     pub const Night: CaptureSceneMode = CaptureSceneMode(6i32);
1135     pub const Beach: CaptureSceneMode = CaptureSceneMode(7i32);
1136     pub const Sunset: CaptureSceneMode = CaptureSceneMode(8i32);
1137     pub const Candlelight: CaptureSceneMode = CaptureSceneMode(9i32);
1138     pub const Landscape: CaptureSceneMode = CaptureSceneMode(10i32);
1139     pub const NightPortrait: CaptureSceneMode = CaptureSceneMode(11i32);
1140     pub const Backlit: CaptureSceneMode = CaptureSceneMode(12i32);
1141 }
1142 impl ::std::convert::From<i32> for CaptureSceneMode {
from(value: i32) -> Self1143     fn from(value: i32) -> Self {
1144         Self(value)
1145     }
1146 }
1147 unsafe impl ::windows::runtime::Abi for CaptureSceneMode {
1148     type Abi = Self;
1149     type DefaultType = Self;
1150 }
1151 unsafe impl ::windows::runtime::RuntimeType for CaptureSceneMode {
1152     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Devices.CaptureSceneMode;i4)");
1153 }
1154 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1155 #[repr(transparent)]
1156 pub struct CaptureUse(pub i32);
1157 impl CaptureUse {
1158     pub const None: CaptureUse = CaptureUse(0i32);
1159     pub const Photo: CaptureUse = CaptureUse(1i32);
1160     pub const Video: CaptureUse = CaptureUse(2i32);
1161 }
1162 impl ::std::convert::From<i32> for CaptureUse {
from(value: i32) -> Self1163     fn from(value: i32) -> Self {
1164         Self(value)
1165     }
1166 }
1167 unsafe impl ::windows::runtime::Abi for CaptureUse {
1168     type Abi = Self;
1169     type DefaultType = Self;
1170 }
1171 unsafe impl ::windows::runtime::RuntimeType for CaptureUse {
1172     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Devices.CaptureUse;i4)");
1173 }
1174 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1175 #[repr(transparent)]
1176 pub struct ColorTemperaturePreset(pub i32);
1177 impl ColorTemperaturePreset {
1178     pub const Auto: ColorTemperaturePreset = ColorTemperaturePreset(0i32);
1179     pub const Manual: ColorTemperaturePreset = ColorTemperaturePreset(1i32);
1180     pub const Cloudy: ColorTemperaturePreset = ColorTemperaturePreset(2i32);
1181     pub const Daylight: ColorTemperaturePreset = ColorTemperaturePreset(3i32);
1182     pub const Flash: ColorTemperaturePreset = ColorTemperaturePreset(4i32);
1183     pub const Fluorescent: ColorTemperaturePreset = ColorTemperaturePreset(5i32);
1184     pub const Tungsten: ColorTemperaturePreset = ColorTemperaturePreset(6i32);
1185     pub const Candlelight: ColorTemperaturePreset = ColorTemperaturePreset(7i32);
1186 }
1187 impl ::std::convert::From<i32> for ColorTemperaturePreset {
from(value: i32) -> Self1188     fn from(value: i32) -> Self {
1189         Self(value)
1190     }
1191 }
1192 unsafe impl ::windows::runtime::Abi for ColorTemperaturePreset {
1193     type Abi = Self;
1194     type DefaultType = Self;
1195 }
1196 unsafe impl ::windows::runtime::RuntimeType for ColorTemperaturePreset {
1197     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Devices.ColorTemperaturePreset;i4)");
1198 }
1199 #[repr(transparent)]
1200 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1201 pub struct DefaultAudioCaptureDeviceChangedEventArgs(::windows::runtime::IInspectable);
1202 impl DefaultAudioCaptureDeviceChangedEventArgs {
Id(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>1203     pub fn Id(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
1204         let this = self;
1205         unsafe {
1206             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
1207             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
1208         }
1209     }
Role(&self) -> ::windows::runtime::Result<AudioDeviceRole>1210     pub fn Role(&self) -> ::windows::runtime::Result<AudioDeviceRole> {
1211         let this = self;
1212         unsafe {
1213             let mut result__: AudioDeviceRole = ::std::mem::zeroed();
1214             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioDeviceRole>(result__)
1215         }
1216     }
1217 }
1218 unsafe impl ::windows::runtime::RuntimeType for DefaultAudioCaptureDeviceChangedEventArgs {
1219     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.DefaultAudioCaptureDeviceChangedEventArgs;{110f882f-1c05-4657-a18e-47c9b69f07ab})");
1220 }
1221 unsafe impl ::windows::runtime::Interface for DefaultAudioCaptureDeviceChangedEventArgs {
1222     type Vtable = IDefaultAudioDeviceChangedEventArgs_abi;
1223     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(286230575, 7173, 18007, [161, 142, 71, 201, 182, 159, 7, 171]);
1224 }
1225 impl ::windows::runtime::RuntimeName for DefaultAudioCaptureDeviceChangedEventArgs {
1226     const NAME: &'static str = "Windows.Media.Devices.DefaultAudioCaptureDeviceChangedEventArgs";
1227 }
1228 impl ::std::convert::From<DefaultAudioCaptureDeviceChangedEventArgs> for ::windows::runtime::IUnknown {
from(value: DefaultAudioCaptureDeviceChangedEventArgs) -> Self1229     fn from(value: DefaultAudioCaptureDeviceChangedEventArgs) -> Self {
1230         unsafe { ::std::mem::transmute(value) }
1231     }
1232 }
1233 impl ::std::convert::From<&DefaultAudioCaptureDeviceChangedEventArgs> for ::windows::runtime::IUnknown {
from(value: &DefaultAudioCaptureDeviceChangedEventArgs) -> Self1234     fn from(value: &DefaultAudioCaptureDeviceChangedEventArgs) -> Self {
1235         ::std::convert::From::from(::std::clone::Clone::clone(value))
1236     }
1237 }
1238 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for DefaultAudioCaptureDeviceChangedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1239     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1240         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1241     }
1242 }
1243 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &DefaultAudioCaptureDeviceChangedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1244     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1245         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1246     }
1247 }
1248 impl ::std::convert::From<DefaultAudioCaptureDeviceChangedEventArgs> for ::windows::runtime::IInspectable {
from(value: DefaultAudioCaptureDeviceChangedEventArgs) -> Self1249     fn from(value: DefaultAudioCaptureDeviceChangedEventArgs) -> Self {
1250         value.0
1251     }
1252 }
1253 impl ::std::convert::From<&DefaultAudioCaptureDeviceChangedEventArgs> for ::windows::runtime::IInspectable {
from(value: &DefaultAudioCaptureDeviceChangedEventArgs) -> Self1254     fn from(value: &DefaultAudioCaptureDeviceChangedEventArgs) -> Self {
1255         value.0.clone()
1256     }
1257 }
1258 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for DefaultAudioCaptureDeviceChangedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1259     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1260         ::windows::runtime::Param::Owned(self.0)
1261     }
1262 }
1263 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a DefaultAudioCaptureDeviceChangedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1264     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1265         ::windows::runtime::Param::Borrowed(&self.0)
1266     }
1267 }
1268 impl ::std::convert::From<DefaultAudioCaptureDeviceChangedEventArgs> for IDefaultAudioDeviceChangedEventArgs {
from(value: DefaultAudioCaptureDeviceChangedEventArgs) -> Self1269     fn from(value: DefaultAudioCaptureDeviceChangedEventArgs) -> Self {
1270         unsafe { ::std::mem::transmute(value) }
1271     }
1272 }
1273 impl ::std::convert::From<&DefaultAudioCaptureDeviceChangedEventArgs> for IDefaultAudioDeviceChangedEventArgs {
from(value: &DefaultAudioCaptureDeviceChangedEventArgs) -> Self1274     fn from(value: &DefaultAudioCaptureDeviceChangedEventArgs) -> Self {
1275         ::std::convert::From::from(::std::clone::Clone::clone(value))
1276     }
1277 }
1278 impl<'a> ::windows::runtime::IntoParam<'a, IDefaultAudioDeviceChangedEventArgs> for DefaultAudioCaptureDeviceChangedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, IDefaultAudioDeviceChangedEventArgs>1279     fn into_param(self) -> ::windows::runtime::Param<'a, IDefaultAudioDeviceChangedEventArgs> {
1280         ::windows::runtime::Param::Owned(::std::convert::Into::<IDefaultAudioDeviceChangedEventArgs>::into(self))
1281     }
1282 }
1283 impl<'a> ::windows::runtime::IntoParam<'a, IDefaultAudioDeviceChangedEventArgs> for &DefaultAudioCaptureDeviceChangedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, IDefaultAudioDeviceChangedEventArgs>1284     fn into_param(self) -> ::windows::runtime::Param<'a, IDefaultAudioDeviceChangedEventArgs> {
1285         ::windows::runtime::Param::Owned(::std::convert::Into::<IDefaultAudioDeviceChangedEventArgs>::into(::std::clone::Clone::clone(self)))
1286     }
1287 }
1288 unsafe impl ::std::marker::Send for DefaultAudioCaptureDeviceChangedEventArgs {}
1289 unsafe impl ::std::marker::Sync for DefaultAudioCaptureDeviceChangedEventArgs {}
1290 #[repr(transparent)]
1291 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1292 pub struct DefaultAudioRenderDeviceChangedEventArgs(::windows::runtime::IInspectable);
1293 impl DefaultAudioRenderDeviceChangedEventArgs {
Id(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>1294     pub fn Id(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
1295         let this = self;
1296         unsafe {
1297             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
1298             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
1299         }
1300     }
Role(&self) -> ::windows::runtime::Result<AudioDeviceRole>1301     pub fn Role(&self) -> ::windows::runtime::Result<AudioDeviceRole> {
1302         let this = self;
1303         unsafe {
1304             let mut result__: AudioDeviceRole = ::std::mem::zeroed();
1305             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioDeviceRole>(result__)
1306         }
1307     }
1308 }
1309 unsafe impl ::windows::runtime::RuntimeType for DefaultAudioRenderDeviceChangedEventArgs {
1310     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.DefaultAudioRenderDeviceChangedEventArgs;{110f882f-1c05-4657-a18e-47c9b69f07ab})");
1311 }
1312 unsafe impl ::windows::runtime::Interface for DefaultAudioRenderDeviceChangedEventArgs {
1313     type Vtable = IDefaultAudioDeviceChangedEventArgs_abi;
1314     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(286230575, 7173, 18007, [161, 142, 71, 201, 182, 159, 7, 171]);
1315 }
1316 impl ::windows::runtime::RuntimeName for DefaultAudioRenderDeviceChangedEventArgs {
1317     const NAME: &'static str = "Windows.Media.Devices.DefaultAudioRenderDeviceChangedEventArgs";
1318 }
1319 impl ::std::convert::From<DefaultAudioRenderDeviceChangedEventArgs> for ::windows::runtime::IUnknown {
from(value: DefaultAudioRenderDeviceChangedEventArgs) -> Self1320     fn from(value: DefaultAudioRenderDeviceChangedEventArgs) -> Self {
1321         unsafe { ::std::mem::transmute(value) }
1322     }
1323 }
1324 impl ::std::convert::From<&DefaultAudioRenderDeviceChangedEventArgs> for ::windows::runtime::IUnknown {
from(value: &DefaultAudioRenderDeviceChangedEventArgs) -> Self1325     fn from(value: &DefaultAudioRenderDeviceChangedEventArgs) -> Self {
1326         ::std::convert::From::from(::std::clone::Clone::clone(value))
1327     }
1328 }
1329 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for DefaultAudioRenderDeviceChangedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1330     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1331         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1332     }
1333 }
1334 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &DefaultAudioRenderDeviceChangedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1335     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1336         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1337     }
1338 }
1339 impl ::std::convert::From<DefaultAudioRenderDeviceChangedEventArgs> for ::windows::runtime::IInspectable {
from(value: DefaultAudioRenderDeviceChangedEventArgs) -> Self1340     fn from(value: DefaultAudioRenderDeviceChangedEventArgs) -> Self {
1341         value.0
1342     }
1343 }
1344 impl ::std::convert::From<&DefaultAudioRenderDeviceChangedEventArgs> for ::windows::runtime::IInspectable {
from(value: &DefaultAudioRenderDeviceChangedEventArgs) -> Self1345     fn from(value: &DefaultAudioRenderDeviceChangedEventArgs) -> Self {
1346         value.0.clone()
1347     }
1348 }
1349 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for DefaultAudioRenderDeviceChangedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1350     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1351         ::windows::runtime::Param::Owned(self.0)
1352     }
1353 }
1354 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a DefaultAudioRenderDeviceChangedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1355     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1356         ::windows::runtime::Param::Borrowed(&self.0)
1357     }
1358 }
1359 impl ::std::convert::From<DefaultAudioRenderDeviceChangedEventArgs> for IDefaultAudioDeviceChangedEventArgs {
from(value: DefaultAudioRenderDeviceChangedEventArgs) -> Self1360     fn from(value: DefaultAudioRenderDeviceChangedEventArgs) -> Self {
1361         unsafe { ::std::mem::transmute(value) }
1362     }
1363 }
1364 impl ::std::convert::From<&DefaultAudioRenderDeviceChangedEventArgs> for IDefaultAudioDeviceChangedEventArgs {
from(value: &DefaultAudioRenderDeviceChangedEventArgs) -> Self1365     fn from(value: &DefaultAudioRenderDeviceChangedEventArgs) -> Self {
1366         ::std::convert::From::from(::std::clone::Clone::clone(value))
1367     }
1368 }
1369 impl<'a> ::windows::runtime::IntoParam<'a, IDefaultAudioDeviceChangedEventArgs> for DefaultAudioRenderDeviceChangedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, IDefaultAudioDeviceChangedEventArgs>1370     fn into_param(self) -> ::windows::runtime::Param<'a, IDefaultAudioDeviceChangedEventArgs> {
1371         ::windows::runtime::Param::Owned(::std::convert::Into::<IDefaultAudioDeviceChangedEventArgs>::into(self))
1372     }
1373 }
1374 impl<'a> ::windows::runtime::IntoParam<'a, IDefaultAudioDeviceChangedEventArgs> for &DefaultAudioRenderDeviceChangedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, IDefaultAudioDeviceChangedEventArgs>1375     fn into_param(self) -> ::windows::runtime::Param<'a, IDefaultAudioDeviceChangedEventArgs> {
1376         ::windows::runtime::Param::Owned(::std::convert::Into::<IDefaultAudioDeviceChangedEventArgs>::into(::std::clone::Clone::clone(self)))
1377     }
1378 }
1379 unsafe impl ::std::marker::Send for DefaultAudioRenderDeviceChangedEventArgs {}
1380 unsafe impl ::std::marker::Sync for DefaultAudioRenderDeviceChangedEventArgs {}
1381 #[repr(transparent)]
1382 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1383 pub struct DialRequestedEventArgs(::windows::runtime::IInspectable);
1384 impl DialRequestedEventArgs {
Handled(&self) -> ::windows::runtime::Result<()>1385     pub fn Handled(&self) -> ::windows::runtime::Result<()> {
1386         let this = self;
1387         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() }
1388     }
Contact(&self) -> ::windows::runtime::Result<::windows::runtime::IInspectable>1389     pub fn Contact(&self) -> ::windows::runtime::Result<::windows::runtime::IInspectable> {
1390         let this = self;
1391         unsafe {
1392             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1393             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::IInspectable>(result__)
1394         }
1395     }
1396 }
1397 unsafe impl ::windows::runtime::RuntimeType for DialRequestedEventArgs {
1398     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.DialRequestedEventArgs;{037b929e-953c-4286-8866-4f0f376c855a})");
1399 }
1400 unsafe impl ::windows::runtime::Interface for DialRequestedEventArgs {
1401     type Vtable = IDialRequestedEventArgs_abi;
1402     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(58430110, 38204, 17030, [136, 102, 79, 15, 55, 108, 133, 90]);
1403 }
1404 impl ::windows::runtime::RuntimeName for DialRequestedEventArgs {
1405     const NAME: &'static str = "Windows.Media.Devices.DialRequestedEventArgs";
1406 }
1407 impl ::std::convert::From<DialRequestedEventArgs> for ::windows::runtime::IUnknown {
from(value: DialRequestedEventArgs) -> Self1408     fn from(value: DialRequestedEventArgs) -> Self {
1409         unsafe { ::std::mem::transmute(value) }
1410     }
1411 }
1412 impl ::std::convert::From<&DialRequestedEventArgs> for ::windows::runtime::IUnknown {
from(value: &DialRequestedEventArgs) -> Self1413     fn from(value: &DialRequestedEventArgs) -> Self {
1414         ::std::convert::From::from(::std::clone::Clone::clone(value))
1415     }
1416 }
1417 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for DialRequestedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1418     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1419         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1420     }
1421 }
1422 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &DialRequestedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1423     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1424         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1425     }
1426 }
1427 impl ::std::convert::From<DialRequestedEventArgs> for ::windows::runtime::IInspectable {
from(value: DialRequestedEventArgs) -> Self1428     fn from(value: DialRequestedEventArgs) -> Self {
1429         value.0
1430     }
1431 }
1432 impl ::std::convert::From<&DialRequestedEventArgs> for ::windows::runtime::IInspectable {
from(value: &DialRequestedEventArgs) -> Self1433     fn from(value: &DialRequestedEventArgs) -> Self {
1434         value.0.clone()
1435     }
1436 }
1437 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for DialRequestedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1438     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1439         ::windows::runtime::Param::Owned(self.0)
1440     }
1441 }
1442 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a DialRequestedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1443     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1444         ::windows::runtime::Param::Borrowed(&self.0)
1445     }
1446 }
1447 unsafe impl ::std::marker::Send for DialRequestedEventArgs {}
1448 unsafe impl ::std::marker::Sync for DialRequestedEventArgs {}
1449 #[repr(transparent)]
1450 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1451 pub struct DialRequestedEventHandler(::windows::runtime::IUnknown);
1452 impl DialRequestedEventHandler {
new<F: FnMut(&::std::option::Option<CallControl>, &::std::option::Option<DialRequestedEventArgs>) -> ::windows::runtime::Result<()> + 'static>(invoke: F) -> Self1453     pub fn new<F: FnMut(&::std::option::Option<CallControl>, &::std::option::Option<DialRequestedEventArgs>) -> ::windows::runtime::Result<()> + 'static>(invoke: F) -> Self {
1454         let com = DialRequestedEventHandler_box::<F> {
1455             vtable: &DialRequestedEventHandler_box::<F>::VTABLE,
1456             count: ::windows::runtime::RefCount::new(1),
1457             invoke,
1458         };
1459         unsafe { std::mem::transmute(::std::boxed::Box::new(com)) }
1460     }
Invoke<'a, Param0: ::windows::runtime::IntoParam<'a, CallControl>, Param1: ::windows::runtime::IntoParam<'a, DialRequestedEventArgs>>(&self, sender: Param0, e: Param1) -> ::windows::runtime::Result<()>1461     pub fn Invoke<'a, Param0: ::windows::runtime::IntoParam<'a, CallControl>, Param1: ::windows::runtime::IntoParam<'a, DialRequestedEventArgs>>(&self, sender: Param0, e: Param1) -> ::windows::runtime::Result<()> {
1462         let this = self;
1463         unsafe { (::windows::runtime::Interface::vtable(this).3)(::std::mem::transmute_copy(this), sender.into_param().abi(), e.into_param().abi()).ok() }
1464     }
1465 }
1466 unsafe impl ::windows::runtime::RuntimeType for DialRequestedEventHandler {
1467     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"delegate({5abbffdb-c21f-4bc4-891b-257e28c1b1a4})");
1468 }
1469 unsafe impl ::windows::runtime::Interface for DialRequestedEventHandler {
1470     type Vtable = DialRequestedEventHandler_abi;
1471     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1522270171, 49695, 19396, [137, 27, 37, 126, 40, 193, 177, 164]);
1472 }
1473 #[repr(C)]
1474 #[doc(hidden)]
1475 pub struct DialRequestedEventHandler_abi(
1476     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1477     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1478     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1479     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, sender: ::windows::runtime::RawPtr, e: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1480 );
1481 #[repr(C)]
1482 struct DialRequestedEventHandler_box<F: FnMut(&::std::option::Option<CallControl>, &::std::option::Option<DialRequestedEventArgs>) -> ::windows::runtime::Result<()> + 'static> {
1483     vtable: *const DialRequestedEventHandler_abi,
1484     invoke: F,
1485     count: ::windows::runtime::RefCount,
1486 }
1487 impl<F: FnMut(&::std::option::Option<CallControl>, &::std::option::Option<DialRequestedEventArgs>) -> ::windows::runtime::Result<()> + 'static> DialRequestedEventHandler_box<F> {
1488     const VTABLE: DialRequestedEventHandler_abi = DialRequestedEventHandler_abi(Self::QueryInterface, Self::AddRef, Self::Release, Self::Invoke);
QueryInterface(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT1489     unsafe extern "system" fn QueryInterface(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT {
1490         let this = this as *mut ::windows::runtime::RawPtr as *mut Self;
1491         *interface = if iid == &<DialRequestedEventHandler as ::windows::runtime::Interface>::IID || iid == &<::windows::runtime::IUnknown as ::windows::runtime::Interface>::IID || iid == &<::windows::runtime::IAgileObject as ::windows::runtime::Interface>::IID {
1492             &mut (*this).vtable as *mut _ as _
1493         } else {
1494             ::std::ptr::null_mut()
1495         };
1496         if (*interface).is_null() {
1497             ::windows::runtime::HRESULT(0x8000_4002)
1498         } else {
1499             (*this).count.add_ref();
1500             ::windows::runtime::HRESULT(0)
1501         }
1502     }
AddRef(this: ::windows::runtime::RawPtr) -> u321503     unsafe extern "system" fn AddRef(this: ::windows::runtime::RawPtr) -> u32 {
1504         let this = this as *mut ::windows::runtime::RawPtr as *mut Self;
1505         (*this).count.add_ref()
1506     }
Release(this: ::windows::runtime::RawPtr) -> u321507     unsafe extern "system" fn Release(this: ::windows::runtime::RawPtr) -> u32 {
1508         let this = this as *mut ::windows::runtime::RawPtr as *mut Self;
1509         let remaining = (*this).count.release();
1510         if remaining == 0 {
1511             Box::from_raw(this);
1512         }
1513         remaining
1514     }
Invoke(this: ::windows::runtime::RawPtr, sender: ::windows::runtime::RawPtr, e: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT1515     unsafe extern "system" fn Invoke(this: ::windows::runtime::RawPtr, sender: ::windows::runtime::RawPtr, e: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT {
1516         let this = this as *mut ::windows::runtime::RawPtr as *mut Self;
1517         ((*this).invoke)(&*(&sender as *const <CallControl as ::windows::runtime::Abi>::Abi as *const <CallControl as ::windows::runtime::Abi>::DefaultType), &*(&e as *const <DialRequestedEventArgs as ::windows::runtime::Abi>::Abi as *const <DialRequestedEventArgs as ::windows::runtime::Abi>::DefaultType)).into()
1518     }
1519 }
1520 #[repr(transparent)]
1521 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1522 pub struct DigitalWindowBounds(::windows::runtime::IInspectable);
1523 impl DigitalWindowBounds {
new() -> ::windows::runtime::Result<Self>1524     pub fn new() -> ::windows::runtime::Result<Self> {
1525         Self::IActivationFactory(|f| f.activate_instance::<Self>())
1526     }
IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>1527     fn IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
1528         static mut SHARED: ::windows::runtime::FactoryCache<DigitalWindowBounds, ::windows::runtime::IActivationFactory> = ::windows::runtime::FactoryCache::new();
1529         unsafe { SHARED.call(callback) }
1530     }
NormalizedOriginTop(&self) -> ::windows::runtime::Result<f64>1531     pub fn NormalizedOriginTop(&self) -> ::windows::runtime::Result<f64> {
1532         let this = self;
1533         unsafe {
1534             let mut result__: f64 = ::std::mem::zeroed();
1535             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
1536         }
1537     }
SetNormalizedOriginTop(&self, value: f64) -> ::windows::runtime::Result<()>1538     pub fn SetNormalizedOriginTop(&self, value: f64) -> ::windows::runtime::Result<()> {
1539         let this = self;
1540         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() }
1541     }
NormalizedOriginLeft(&self) -> ::windows::runtime::Result<f64>1542     pub fn NormalizedOriginLeft(&self) -> ::windows::runtime::Result<f64> {
1543         let this = self;
1544         unsafe {
1545             let mut result__: f64 = ::std::mem::zeroed();
1546             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
1547         }
1548     }
SetNormalizedOriginLeft(&self, value: f64) -> ::windows::runtime::Result<()>1549     pub fn SetNormalizedOriginLeft(&self, value: f64) -> ::windows::runtime::Result<()> {
1550         let this = self;
1551         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), value).ok() }
1552     }
Scale(&self) -> ::windows::runtime::Result<f64>1553     pub fn Scale(&self) -> ::windows::runtime::Result<f64> {
1554         let this = self;
1555         unsafe {
1556             let mut result__: f64 = ::std::mem::zeroed();
1557             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
1558         }
1559     }
SetScale(&self, value: f64) -> ::windows::runtime::Result<()>1560     pub fn SetScale(&self, value: f64) -> ::windows::runtime::Result<()> {
1561         let this = self;
1562         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value).ok() }
1563     }
1564 }
1565 unsafe impl ::windows::runtime::RuntimeType for DigitalWindowBounds {
1566     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.DigitalWindowBounds;{dd4f21dd-d173-5c6b-8c25-bdd26d5122b1})");
1567 }
1568 unsafe impl ::windows::runtime::Interface for DigitalWindowBounds {
1569     type Vtable = IDigitalWindowBounds_abi;
1570     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3712950749, 53619, 23659, [140, 37, 189, 210, 109, 81, 34, 177]);
1571 }
1572 impl ::windows::runtime::RuntimeName for DigitalWindowBounds {
1573     const NAME: &'static str = "Windows.Media.Devices.DigitalWindowBounds";
1574 }
1575 impl ::std::convert::From<DigitalWindowBounds> for ::windows::runtime::IUnknown {
from(value: DigitalWindowBounds) -> Self1576     fn from(value: DigitalWindowBounds) -> Self {
1577         unsafe { ::std::mem::transmute(value) }
1578     }
1579 }
1580 impl ::std::convert::From<&DigitalWindowBounds> for ::windows::runtime::IUnknown {
from(value: &DigitalWindowBounds) -> Self1581     fn from(value: &DigitalWindowBounds) -> Self {
1582         ::std::convert::From::from(::std::clone::Clone::clone(value))
1583     }
1584 }
1585 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for DigitalWindowBounds {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1586     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1587         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1588     }
1589 }
1590 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &DigitalWindowBounds {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1591     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1592         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1593     }
1594 }
1595 impl ::std::convert::From<DigitalWindowBounds> for ::windows::runtime::IInspectable {
from(value: DigitalWindowBounds) -> Self1596     fn from(value: DigitalWindowBounds) -> Self {
1597         value.0
1598     }
1599 }
1600 impl ::std::convert::From<&DigitalWindowBounds> for ::windows::runtime::IInspectable {
from(value: &DigitalWindowBounds) -> Self1601     fn from(value: &DigitalWindowBounds) -> Self {
1602         value.0.clone()
1603     }
1604 }
1605 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for DigitalWindowBounds {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1606     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1607         ::windows::runtime::Param::Owned(self.0)
1608     }
1609 }
1610 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a DigitalWindowBounds {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1611     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1612         ::windows::runtime::Param::Borrowed(&self.0)
1613     }
1614 }
1615 unsafe impl ::std::marker::Send for DigitalWindowBounds {}
1616 unsafe impl ::std::marker::Sync for DigitalWindowBounds {}
1617 #[repr(transparent)]
1618 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1619 pub struct DigitalWindowCapability(::windows::runtime::IInspectable);
1620 impl DigitalWindowCapability {
Width(&self) -> ::windows::runtime::Result<i32>1621     pub fn Width(&self) -> ::windows::runtime::Result<i32> {
1622         let this = self;
1623         unsafe {
1624             let mut result__: i32 = ::std::mem::zeroed();
1625             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
1626         }
1627     }
Height(&self) -> ::windows::runtime::Result<i32>1628     pub fn Height(&self) -> ::windows::runtime::Result<i32> {
1629         let this = self;
1630         unsafe {
1631             let mut result__: i32 = ::std::mem::zeroed();
1632             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
1633         }
1634     }
MinScaleValue(&self) -> ::windows::runtime::Result<f64>1635     pub fn MinScaleValue(&self) -> ::windows::runtime::Result<f64> {
1636         let this = self;
1637         unsafe {
1638             let mut result__: f64 = ::std::mem::zeroed();
1639             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
1640         }
1641     }
MaxScaleValue(&self) -> ::windows::runtime::Result<f64>1642     pub fn MaxScaleValue(&self) -> ::windows::runtime::Result<f64> {
1643         let this = self;
1644         unsafe {
1645             let mut result__: f64 = ::std::mem::zeroed();
1646             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
1647         }
1648     }
MinScaleValueWithoutUpsampling(&self) -> ::windows::runtime::Result<f64>1649     pub fn MinScaleValueWithoutUpsampling(&self) -> ::windows::runtime::Result<f64> {
1650         let this = self;
1651         unsafe {
1652             let mut result__: f64 = ::std::mem::zeroed();
1653             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
1654         }
1655     }
1656     #[cfg(feature = "Foundation")]
NormalizedFieldOfViewLimit(&self) -> ::windows::runtime::Result<super::super::Foundation::Rect>1657     pub fn NormalizedFieldOfViewLimit(&self) -> ::windows::runtime::Result<super::super::Foundation::Rect> {
1658         let this = self;
1659         unsafe {
1660             let mut result__: super::super::Foundation::Rect = ::std::mem::zeroed();
1661             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Rect>(result__)
1662         }
1663     }
1664 }
1665 unsafe impl ::windows::runtime::RuntimeType for DigitalWindowCapability {
1666     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.DigitalWindowCapability;{d78bad2c-f721-5244-a196-b56ccbec606c})");
1667 }
1668 unsafe impl ::windows::runtime::Interface for DigitalWindowCapability {
1669     type Vtable = IDigitalWindowCapability_abi;
1670     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3616255276, 63265, 21060, [161, 150, 181, 108, 203, 236, 96, 108]);
1671 }
1672 impl ::windows::runtime::RuntimeName for DigitalWindowCapability {
1673     const NAME: &'static str = "Windows.Media.Devices.DigitalWindowCapability";
1674 }
1675 impl ::std::convert::From<DigitalWindowCapability> for ::windows::runtime::IUnknown {
from(value: DigitalWindowCapability) -> Self1676     fn from(value: DigitalWindowCapability) -> Self {
1677         unsafe { ::std::mem::transmute(value) }
1678     }
1679 }
1680 impl ::std::convert::From<&DigitalWindowCapability> for ::windows::runtime::IUnknown {
from(value: &DigitalWindowCapability) -> Self1681     fn from(value: &DigitalWindowCapability) -> Self {
1682         ::std::convert::From::from(::std::clone::Clone::clone(value))
1683     }
1684 }
1685 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for DigitalWindowCapability {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1686     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1687         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1688     }
1689 }
1690 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &DigitalWindowCapability {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1691     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1692         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1693     }
1694 }
1695 impl ::std::convert::From<DigitalWindowCapability> for ::windows::runtime::IInspectable {
from(value: DigitalWindowCapability) -> Self1696     fn from(value: DigitalWindowCapability) -> Self {
1697         value.0
1698     }
1699 }
1700 impl ::std::convert::From<&DigitalWindowCapability> for ::windows::runtime::IInspectable {
from(value: &DigitalWindowCapability) -> Self1701     fn from(value: &DigitalWindowCapability) -> Self {
1702         value.0.clone()
1703     }
1704 }
1705 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for DigitalWindowCapability {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1706     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1707         ::windows::runtime::Param::Owned(self.0)
1708     }
1709 }
1710 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a DigitalWindowCapability {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1711     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1712         ::windows::runtime::Param::Borrowed(&self.0)
1713     }
1714 }
1715 unsafe impl ::std::marker::Send for DigitalWindowCapability {}
1716 unsafe impl ::std::marker::Sync for DigitalWindowCapability {}
1717 #[repr(transparent)]
1718 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1719 pub struct DigitalWindowControl(::windows::runtime::IInspectable);
1720 impl DigitalWindowControl {
IsSupported(&self) -> ::windows::runtime::Result<bool>1721     pub fn IsSupported(&self) -> ::windows::runtime::Result<bool> {
1722         let this = self;
1723         unsafe {
1724             let mut result__: bool = ::std::mem::zeroed();
1725             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
1726         }
1727     }
SupportedModes(&self) -> ::windows::runtime::Result<::windows::runtime::Array<DigitalWindowMode>>1728     pub fn SupportedModes(&self) -> ::windows::runtime::Result<::windows::runtime::Array<DigitalWindowMode>> {
1729         let this = self;
1730         unsafe {
1731             let mut result__: ::windows::runtime::Array<DigitalWindowMode> = ::std::mem::zeroed();
1732             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), ::windows::runtime::Array::<DigitalWindowMode>::set_abi_len(&mut result__), &mut result__ as *mut _ as _).and_then(|| result__)
1733         }
1734     }
CurrentMode(&self) -> ::windows::runtime::Result<DigitalWindowMode>1735     pub fn CurrentMode(&self) -> ::windows::runtime::Result<DigitalWindowMode> {
1736         let this = self;
1737         unsafe {
1738             let mut result__: DigitalWindowMode = ::std::mem::zeroed();
1739             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<DigitalWindowMode>(result__)
1740         }
1741     }
GetBounds(&self) -> ::windows::runtime::Result<DigitalWindowBounds>1742     pub fn GetBounds(&self) -> ::windows::runtime::Result<DigitalWindowBounds> {
1743         let this = self;
1744         unsafe {
1745             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1746             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<DigitalWindowBounds>(result__)
1747         }
1748     }
Configure(&self, digitalwindowmode: DigitalWindowMode) -> ::windows::runtime::Result<()>1749     pub fn Configure(&self, digitalwindowmode: DigitalWindowMode) -> ::windows::runtime::Result<()> {
1750         let this = self;
1751         unsafe { (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), digitalwindowmode).ok() }
1752     }
ConfigureWithBounds<'a, Param1: ::windows::runtime::IntoParam<'a, DigitalWindowBounds>>(&self, digitalwindowmode: DigitalWindowMode, digitalwindowbounds: Param1) -> ::windows::runtime::Result<()>1753     pub fn ConfigureWithBounds<'a, Param1: ::windows::runtime::IntoParam<'a, DigitalWindowBounds>>(&self, digitalwindowmode: DigitalWindowMode, digitalwindowbounds: Param1) -> ::windows::runtime::Result<()> {
1754         let this = self;
1755         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), digitalwindowmode, digitalwindowbounds.into_param().abi()).ok() }
1756     }
1757     #[cfg(feature = "Foundation_Collections")]
SupportedCapabilities(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<DigitalWindowCapability>>1758     pub fn SupportedCapabilities(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<DigitalWindowCapability>> {
1759         let this = self;
1760         unsafe {
1761             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1762             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<DigitalWindowCapability>>(result__)
1763         }
1764     }
GetCapabilityForSize(&self, width: i32, height: i32) -> ::windows::runtime::Result<DigitalWindowCapability>1765     pub fn GetCapabilityForSize(&self, width: i32, height: i32) -> ::windows::runtime::Result<DigitalWindowCapability> {
1766         let this = self;
1767         unsafe {
1768             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1769             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), width, height, &mut result__).from_abi::<DigitalWindowCapability>(result__)
1770         }
1771     }
1772 }
1773 unsafe impl ::windows::runtime::RuntimeType for DigitalWindowControl {
1774     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.DigitalWindowControl;{23b69eff-65d2-53ea-8780-de582b48b544})");
1775 }
1776 unsafe impl ::windows::runtime::Interface for DigitalWindowControl {
1777     type Vtable = IDigitalWindowControl_abi;
1778     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(599170815, 26066, 21482, [135, 128, 222, 88, 43, 72, 181, 68]);
1779 }
1780 impl ::windows::runtime::RuntimeName for DigitalWindowControl {
1781     const NAME: &'static str = "Windows.Media.Devices.DigitalWindowControl";
1782 }
1783 impl ::std::convert::From<DigitalWindowControl> for ::windows::runtime::IUnknown {
from(value: DigitalWindowControl) -> Self1784     fn from(value: DigitalWindowControl) -> Self {
1785         unsafe { ::std::mem::transmute(value) }
1786     }
1787 }
1788 impl ::std::convert::From<&DigitalWindowControl> for ::windows::runtime::IUnknown {
from(value: &DigitalWindowControl) -> Self1789     fn from(value: &DigitalWindowControl) -> Self {
1790         ::std::convert::From::from(::std::clone::Clone::clone(value))
1791     }
1792 }
1793 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for DigitalWindowControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1794     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1795         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1796     }
1797 }
1798 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &DigitalWindowControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1799     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1800         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1801     }
1802 }
1803 impl ::std::convert::From<DigitalWindowControl> for ::windows::runtime::IInspectable {
from(value: DigitalWindowControl) -> Self1804     fn from(value: DigitalWindowControl) -> Self {
1805         value.0
1806     }
1807 }
1808 impl ::std::convert::From<&DigitalWindowControl> for ::windows::runtime::IInspectable {
from(value: &DigitalWindowControl) -> Self1809     fn from(value: &DigitalWindowControl) -> Self {
1810         value.0.clone()
1811     }
1812 }
1813 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for DigitalWindowControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1814     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1815         ::windows::runtime::Param::Owned(self.0)
1816     }
1817 }
1818 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a DigitalWindowControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1819     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1820         ::windows::runtime::Param::Borrowed(&self.0)
1821     }
1822 }
1823 unsafe impl ::std::marker::Send for DigitalWindowControl {}
1824 unsafe impl ::std::marker::Sync for DigitalWindowControl {}
1825 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1826 #[repr(transparent)]
1827 pub struct DigitalWindowMode(pub i32);
1828 impl DigitalWindowMode {
1829     pub const Off: DigitalWindowMode = DigitalWindowMode(0i32);
1830     pub const On: DigitalWindowMode = DigitalWindowMode(1i32);
1831     pub const Auto: DigitalWindowMode = DigitalWindowMode(2i32);
1832 }
1833 impl ::std::convert::From<i32> for DigitalWindowMode {
from(value: i32) -> Self1834     fn from(value: i32) -> Self {
1835         Self(value)
1836     }
1837 }
1838 unsafe impl ::windows::runtime::Abi for DigitalWindowMode {
1839     type Abi = Self;
1840     type DefaultType = Self;
1841 }
1842 unsafe impl ::windows::runtime::RuntimeType for DigitalWindowMode {
1843     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Devices.DigitalWindowMode;i4)");
1844 }
1845 #[repr(transparent)]
1846 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1847 pub struct ExposureCompensationControl(::windows::runtime::IInspectable);
1848 impl ExposureCompensationControl {
Supported(&self) -> ::windows::runtime::Result<bool>1849     pub fn Supported(&self) -> ::windows::runtime::Result<bool> {
1850         let this = self;
1851         unsafe {
1852             let mut result__: bool = ::std::mem::zeroed();
1853             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
1854         }
1855     }
Min(&self) -> ::windows::runtime::Result<f32>1856     pub fn Min(&self) -> ::windows::runtime::Result<f32> {
1857         let this = self;
1858         unsafe {
1859             let mut result__: f32 = ::std::mem::zeroed();
1860             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f32>(result__)
1861         }
1862     }
Max(&self) -> ::windows::runtime::Result<f32>1863     pub fn Max(&self) -> ::windows::runtime::Result<f32> {
1864         let this = self;
1865         unsafe {
1866             let mut result__: f32 = ::std::mem::zeroed();
1867             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f32>(result__)
1868         }
1869     }
Step(&self) -> ::windows::runtime::Result<f32>1870     pub fn Step(&self) -> ::windows::runtime::Result<f32> {
1871         let this = self;
1872         unsafe {
1873             let mut result__: f32 = ::std::mem::zeroed();
1874             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f32>(result__)
1875         }
1876     }
Value(&self) -> ::windows::runtime::Result<f32>1877     pub fn Value(&self) -> ::windows::runtime::Result<f32> {
1878         let this = self;
1879         unsafe {
1880             let mut result__: f32 = ::std::mem::zeroed();
1881             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f32>(result__)
1882         }
1883     }
1884     #[cfg(feature = "Foundation")]
SetValueAsync(&self, value: f32) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>1885     pub fn SetValueAsync(&self, value: f32) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
1886         let this = self;
1887         unsafe {
1888             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1889             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value, &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
1890         }
1891     }
1892 }
1893 unsafe impl ::windows::runtime::RuntimeType for ExposureCompensationControl {
1894     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.ExposureCompensationControl;{81c8e834-dcec-4011-a610-1f3847e64aca})");
1895 }
1896 unsafe impl ::windows::runtime::Interface for ExposureCompensationControl {
1897     type Vtable = IExposureCompensationControl_abi;
1898     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2177427508, 56556, 16401, [166, 16, 31, 56, 71, 230, 74, 202]);
1899 }
1900 impl ::windows::runtime::RuntimeName for ExposureCompensationControl {
1901     const NAME: &'static str = "Windows.Media.Devices.ExposureCompensationControl";
1902 }
1903 impl ::std::convert::From<ExposureCompensationControl> for ::windows::runtime::IUnknown {
from(value: ExposureCompensationControl) -> Self1904     fn from(value: ExposureCompensationControl) -> Self {
1905         unsafe { ::std::mem::transmute(value) }
1906     }
1907 }
1908 impl ::std::convert::From<&ExposureCompensationControl> for ::windows::runtime::IUnknown {
from(value: &ExposureCompensationControl) -> Self1909     fn from(value: &ExposureCompensationControl) -> Self {
1910         ::std::convert::From::from(::std::clone::Clone::clone(value))
1911     }
1912 }
1913 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for ExposureCompensationControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1914     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1915         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1916     }
1917 }
1918 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &ExposureCompensationControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1919     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1920         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1921     }
1922 }
1923 impl ::std::convert::From<ExposureCompensationControl> for ::windows::runtime::IInspectable {
from(value: ExposureCompensationControl) -> Self1924     fn from(value: ExposureCompensationControl) -> Self {
1925         value.0
1926     }
1927 }
1928 impl ::std::convert::From<&ExposureCompensationControl> for ::windows::runtime::IInspectable {
from(value: &ExposureCompensationControl) -> Self1929     fn from(value: &ExposureCompensationControl) -> Self {
1930         value.0.clone()
1931     }
1932 }
1933 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for ExposureCompensationControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1934     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1935         ::windows::runtime::Param::Owned(self.0)
1936     }
1937 }
1938 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a ExposureCompensationControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1939     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1940         ::windows::runtime::Param::Borrowed(&self.0)
1941     }
1942 }
1943 #[repr(transparent)]
1944 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1945 pub struct ExposureControl(::windows::runtime::IInspectable);
1946 impl ExposureControl {
Supported(&self) -> ::windows::runtime::Result<bool>1947     pub fn Supported(&self) -> ::windows::runtime::Result<bool> {
1948         let this = self;
1949         unsafe {
1950             let mut result__: bool = ::std::mem::zeroed();
1951             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
1952         }
1953     }
Auto(&self) -> ::windows::runtime::Result<bool>1954     pub fn Auto(&self) -> ::windows::runtime::Result<bool> {
1955         let this = self;
1956         unsafe {
1957             let mut result__: bool = ::std::mem::zeroed();
1958             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
1959         }
1960     }
1961     #[cfg(feature = "Foundation")]
SetAutoAsync(&self, value: bool) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>1962     pub fn SetAutoAsync(&self, value: bool) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
1963         let this = self;
1964         unsafe {
1965             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1966             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), value, &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
1967         }
1968     }
1969     #[cfg(feature = "Foundation")]
Min(&self) -> ::windows::runtime::Result<super::super::Foundation::TimeSpan>1970     pub fn Min(&self) -> ::windows::runtime::Result<super::super::Foundation::TimeSpan> {
1971         let this = self;
1972         unsafe {
1973             let mut result__: super::super::Foundation::TimeSpan = ::std::mem::zeroed();
1974             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::TimeSpan>(result__)
1975         }
1976     }
1977     #[cfg(feature = "Foundation")]
Max(&self) -> ::windows::runtime::Result<super::super::Foundation::TimeSpan>1978     pub fn Max(&self) -> ::windows::runtime::Result<super::super::Foundation::TimeSpan> {
1979         let this = self;
1980         unsafe {
1981             let mut result__: super::super::Foundation::TimeSpan = ::std::mem::zeroed();
1982             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::TimeSpan>(result__)
1983         }
1984     }
1985     #[cfg(feature = "Foundation")]
Step(&self) -> ::windows::runtime::Result<super::super::Foundation::TimeSpan>1986     pub fn Step(&self) -> ::windows::runtime::Result<super::super::Foundation::TimeSpan> {
1987         let this = self;
1988         unsafe {
1989             let mut result__: super::super::Foundation::TimeSpan = ::std::mem::zeroed();
1990             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::TimeSpan>(result__)
1991         }
1992     }
1993     #[cfg(feature = "Foundation")]
Value(&self) -> ::windows::runtime::Result<super::super::Foundation::TimeSpan>1994     pub fn Value(&self) -> ::windows::runtime::Result<super::super::Foundation::TimeSpan> {
1995         let this = self;
1996         unsafe {
1997             let mut result__: super::super::Foundation::TimeSpan = ::std::mem::zeroed();
1998             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::TimeSpan>(result__)
1999         }
2000     }
2001     #[cfg(feature = "Foundation")]
SetValueAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TimeSpan>>(&self, shutterduration: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>2002     pub fn SetValueAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TimeSpan>>(&self, shutterduration: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
2003         let this = self;
2004         unsafe {
2005             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2006             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), shutterduration.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
2007         }
2008     }
2009 }
2010 unsafe impl ::windows::runtime::RuntimeType for ExposureControl {
2011     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.ExposureControl;{09e8cbe2-ad96-4f28-a0e0-96ed7e1b5fd2})");
2012 }
2013 unsafe impl ::windows::runtime::Interface for ExposureControl {
2014     type Vtable = IExposureControl_abi;
2015     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(166251490, 44438, 20264, [160, 224, 150, 237, 126, 27, 95, 210]);
2016 }
2017 impl ::windows::runtime::RuntimeName for ExposureControl {
2018     const NAME: &'static str = "Windows.Media.Devices.ExposureControl";
2019 }
2020 impl ::std::convert::From<ExposureControl> for ::windows::runtime::IUnknown {
from(value: ExposureControl) -> Self2021     fn from(value: ExposureControl) -> Self {
2022         unsafe { ::std::mem::transmute(value) }
2023     }
2024 }
2025 impl ::std::convert::From<&ExposureControl> for ::windows::runtime::IUnknown {
from(value: &ExposureControl) -> Self2026     fn from(value: &ExposureControl) -> Self {
2027         ::std::convert::From::from(::std::clone::Clone::clone(value))
2028     }
2029 }
2030 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for ExposureControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2031     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2032         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2033     }
2034 }
2035 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &ExposureControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2036     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2037         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2038     }
2039 }
2040 impl ::std::convert::From<ExposureControl> for ::windows::runtime::IInspectable {
from(value: ExposureControl) -> Self2041     fn from(value: ExposureControl) -> Self {
2042         value.0
2043     }
2044 }
2045 impl ::std::convert::From<&ExposureControl> for ::windows::runtime::IInspectable {
from(value: &ExposureControl) -> Self2046     fn from(value: &ExposureControl) -> Self {
2047         value.0.clone()
2048     }
2049 }
2050 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for ExposureControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2051     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2052         ::windows::runtime::Param::Owned(self.0)
2053     }
2054 }
2055 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a ExposureControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2056     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2057         ::windows::runtime::Param::Borrowed(&self.0)
2058     }
2059 }
2060 #[repr(transparent)]
2061 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2062 pub struct ExposurePriorityVideoControl(::windows::runtime::IInspectable);
2063 impl ExposurePriorityVideoControl {
Supported(&self) -> ::windows::runtime::Result<bool>2064     pub fn Supported(&self) -> ::windows::runtime::Result<bool> {
2065         let this = self;
2066         unsafe {
2067             let mut result__: bool = ::std::mem::zeroed();
2068             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
2069         }
2070     }
Enabled(&self) -> ::windows::runtime::Result<bool>2071     pub fn Enabled(&self) -> ::windows::runtime::Result<bool> {
2072         let this = self;
2073         unsafe {
2074             let mut result__: bool = ::std::mem::zeroed();
2075             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
2076         }
2077     }
SetEnabled(&self, value: bool) -> ::windows::runtime::Result<()>2078     pub fn SetEnabled(&self, value: bool) -> ::windows::runtime::Result<()> {
2079         let this = self;
2080         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), value).ok() }
2081     }
2082 }
2083 unsafe impl ::windows::runtime::RuntimeType for ExposurePriorityVideoControl {
2084     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.ExposurePriorityVideoControl;{2cb240a3-5168-4271-9ea5-47621a98a352})");
2085 }
2086 unsafe impl ::windows::runtime::Interface for ExposurePriorityVideoControl {
2087     type Vtable = IExposurePriorityVideoControl_abi;
2088     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(749879459, 20840, 17009, [158, 165, 71, 98, 26, 152, 163, 82]);
2089 }
2090 impl ::windows::runtime::RuntimeName for ExposurePriorityVideoControl {
2091     const NAME: &'static str = "Windows.Media.Devices.ExposurePriorityVideoControl";
2092 }
2093 impl ::std::convert::From<ExposurePriorityVideoControl> for ::windows::runtime::IUnknown {
from(value: ExposurePriorityVideoControl) -> Self2094     fn from(value: ExposurePriorityVideoControl) -> Self {
2095         unsafe { ::std::mem::transmute(value) }
2096     }
2097 }
2098 impl ::std::convert::From<&ExposurePriorityVideoControl> for ::windows::runtime::IUnknown {
from(value: &ExposurePriorityVideoControl) -> Self2099     fn from(value: &ExposurePriorityVideoControl) -> Self {
2100         ::std::convert::From::from(::std::clone::Clone::clone(value))
2101     }
2102 }
2103 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for ExposurePriorityVideoControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2104     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2105         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2106     }
2107 }
2108 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &ExposurePriorityVideoControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2109     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2110         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2111     }
2112 }
2113 impl ::std::convert::From<ExposurePriorityVideoControl> for ::windows::runtime::IInspectable {
from(value: ExposurePriorityVideoControl) -> Self2114     fn from(value: ExposurePriorityVideoControl) -> Self {
2115         value.0
2116     }
2117 }
2118 impl ::std::convert::From<&ExposurePriorityVideoControl> for ::windows::runtime::IInspectable {
from(value: &ExposurePriorityVideoControl) -> Self2119     fn from(value: &ExposurePriorityVideoControl) -> Self {
2120         value.0.clone()
2121     }
2122 }
2123 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for ExposurePriorityVideoControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2124     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2125         ::windows::runtime::Param::Owned(self.0)
2126     }
2127 }
2128 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a ExposurePriorityVideoControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2129     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2130         ::windows::runtime::Param::Borrowed(&self.0)
2131     }
2132 }
2133 unsafe impl ::std::marker::Send for ExposurePriorityVideoControl {}
2134 unsafe impl ::std::marker::Sync for ExposurePriorityVideoControl {}
2135 #[repr(transparent)]
2136 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2137 pub struct FlashControl(::windows::runtime::IInspectable);
2138 impl FlashControl {
Supported(&self) -> ::windows::runtime::Result<bool>2139     pub fn Supported(&self) -> ::windows::runtime::Result<bool> {
2140         let this = self;
2141         unsafe {
2142             let mut result__: bool = ::std::mem::zeroed();
2143             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
2144         }
2145     }
PowerSupported(&self) -> ::windows::runtime::Result<bool>2146     pub fn PowerSupported(&self) -> ::windows::runtime::Result<bool> {
2147         let this = self;
2148         unsafe {
2149             let mut result__: bool = ::std::mem::zeroed();
2150             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
2151         }
2152     }
RedEyeReductionSupported(&self) -> ::windows::runtime::Result<bool>2153     pub fn RedEyeReductionSupported(&self) -> ::windows::runtime::Result<bool> {
2154         let this = self;
2155         unsafe {
2156             let mut result__: bool = ::std::mem::zeroed();
2157             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
2158         }
2159     }
Enabled(&self) -> ::windows::runtime::Result<bool>2160     pub fn Enabled(&self) -> ::windows::runtime::Result<bool> {
2161         let this = self;
2162         unsafe {
2163             let mut result__: bool = ::std::mem::zeroed();
2164             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
2165         }
2166     }
SetEnabled(&self, value: bool) -> ::windows::runtime::Result<()>2167     pub fn SetEnabled(&self, value: bool) -> ::windows::runtime::Result<()> {
2168         let this = self;
2169         unsafe { (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), value).ok() }
2170     }
Auto(&self) -> ::windows::runtime::Result<bool>2171     pub fn Auto(&self) -> ::windows::runtime::Result<bool> {
2172         let this = self;
2173         unsafe {
2174             let mut result__: bool = ::std::mem::zeroed();
2175             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
2176         }
2177     }
SetAuto(&self, value: bool) -> ::windows::runtime::Result<()>2178     pub fn SetAuto(&self, value: bool) -> ::windows::runtime::Result<()> {
2179         let this = self;
2180         unsafe { (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), value).ok() }
2181     }
RedEyeReduction(&self) -> ::windows::runtime::Result<bool>2182     pub fn RedEyeReduction(&self) -> ::windows::runtime::Result<bool> {
2183         let this = self;
2184         unsafe {
2185             let mut result__: bool = ::std::mem::zeroed();
2186             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
2187         }
2188     }
SetRedEyeReduction(&self, value: bool) -> ::windows::runtime::Result<()>2189     pub fn SetRedEyeReduction(&self, value: bool) -> ::windows::runtime::Result<()> {
2190         let this = self;
2191         unsafe { (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), value).ok() }
2192     }
PowerPercent(&self) -> ::windows::runtime::Result<f32>2193     pub fn PowerPercent(&self) -> ::windows::runtime::Result<f32> {
2194         let this = self;
2195         unsafe {
2196             let mut result__: f32 = ::std::mem::zeroed();
2197             (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f32>(result__)
2198         }
2199     }
SetPowerPercent(&self, value: f32) -> ::windows::runtime::Result<()>2200     pub fn SetPowerPercent(&self, value: f32) -> ::windows::runtime::Result<()> {
2201         let this = self;
2202         unsafe { (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), value).ok() }
2203     }
AssistantLightSupported(&self) -> ::windows::runtime::Result<bool>2204     pub fn AssistantLightSupported(&self) -> ::windows::runtime::Result<bool> {
2205         let this = &::windows::runtime::Interface::cast::<IFlashControl2>(self)?;
2206         unsafe {
2207             let mut result__: bool = ::std::mem::zeroed();
2208             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
2209         }
2210     }
AssistantLightEnabled(&self) -> ::windows::runtime::Result<bool>2211     pub fn AssistantLightEnabled(&self) -> ::windows::runtime::Result<bool> {
2212         let this = &::windows::runtime::Interface::cast::<IFlashControl2>(self)?;
2213         unsafe {
2214             let mut result__: bool = ::std::mem::zeroed();
2215             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
2216         }
2217     }
SetAssistantLightEnabled(&self, value: bool) -> ::windows::runtime::Result<()>2218     pub fn SetAssistantLightEnabled(&self, value: bool) -> ::windows::runtime::Result<()> {
2219         let this = &::windows::runtime::Interface::cast::<IFlashControl2>(self)?;
2220         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), value).ok() }
2221     }
2222 }
2223 unsafe impl ::windows::runtime::RuntimeType for FlashControl {
2224     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.FlashControl;{def41dbe-7d68-45e3-8c0f-be7bb32837d0})");
2225 }
2226 unsafe impl ::windows::runtime::Interface for FlashControl {
2227     type Vtable = IFlashControl_abi;
2228     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3740540350, 32104, 17891, [140, 15, 190, 123, 179, 40, 55, 208]);
2229 }
2230 impl ::windows::runtime::RuntimeName for FlashControl {
2231     const NAME: &'static str = "Windows.Media.Devices.FlashControl";
2232 }
2233 impl ::std::convert::From<FlashControl> for ::windows::runtime::IUnknown {
from(value: FlashControl) -> Self2234     fn from(value: FlashControl) -> Self {
2235         unsafe { ::std::mem::transmute(value) }
2236     }
2237 }
2238 impl ::std::convert::From<&FlashControl> for ::windows::runtime::IUnknown {
from(value: &FlashControl) -> Self2239     fn from(value: &FlashControl) -> Self {
2240         ::std::convert::From::from(::std::clone::Clone::clone(value))
2241     }
2242 }
2243 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for FlashControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2244     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2245         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2246     }
2247 }
2248 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &FlashControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2249     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2250         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2251     }
2252 }
2253 impl ::std::convert::From<FlashControl> for ::windows::runtime::IInspectable {
from(value: FlashControl) -> Self2254     fn from(value: FlashControl) -> Self {
2255         value.0
2256     }
2257 }
2258 impl ::std::convert::From<&FlashControl> for ::windows::runtime::IInspectable {
from(value: &FlashControl) -> Self2259     fn from(value: &FlashControl) -> Self {
2260         value.0.clone()
2261     }
2262 }
2263 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for FlashControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2264     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2265         ::windows::runtime::Param::Owned(self.0)
2266     }
2267 }
2268 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a FlashControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2269     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2270         ::windows::runtime::Param::Borrowed(&self.0)
2271     }
2272 }
2273 #[repr(transparent)]
2274 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2275 pub struct FocusControl(::windows::runtime::IInspectable);
2276 impl FocusControl {
Supported(&self) -> ::windows::runtime::Result<bool>2277     pub fn Supported(&self) -> ::windows::runtime::Result<bool> {
2278         let this = self;
2279         unsafe {
2280             let mut result__: bool = ::std::mem::zeroed();
2281             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
2282         }
2283     }
2284     #[cfg(feature = "Foundation_Collections")]
SupportedPresets(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<FocusPreset>>2285     pub fn SupportedPresets(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<FocusPreset>> {
2286         let this = self;
2287         unsafe {
2288             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2289             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<FocusPreset>>(result__)
2290         }
2291     }
Preset(&self) -> ::windows::runtime::Result<FocusPreset>2292     pub fn Preset(&self) -> ::windows::runtime::Result<FocusPreset> {
2293         let this = self;
2294         unsafe {
2295             let mut result__: FocusPreset = ::std::mem::zeroed();
2296             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<FocusPreset>(result__)
2297         }
2298     }
2299     #[cfg(feature = "Foundation")]
SetPresetAsync(&self, preset: FocusPreset) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>2300     pub fn SetPresetAsync(&self, preset: FocusPreset) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
2301         let this = self;
2302         unsafe {
2303             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2304             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), preset, &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
2305         }
2306     }
2307     #[cfg(feature = "Foundation")]
SetPresetWithCompletionOptionAsync(&self, preset: FocusPreset, completebeforefocus: bool) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>2308     pub fn SetPresetWithCompletionOptionAsync(&self, preset: FocusPreset, completebeforefocus: bool) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
2309         let this = self;
2310         unsafe {
2311             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2312             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), preset, completebeforefocus, &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
2313         }
2314     }
Min(&self) -> ::windows::runtime::Result<u32>2315     pub fn Min(&self) -> ::windows::runtime::Result<u32> {
2316         let this = self;
2317         unsafe {
2318             let mut result__: u32 = ::std::mem::zeroed();
2319             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
2320         }
2321     }
Max(&self) -> ::windows::runtime::Result<u32>2322     pub fn Max(&self) -> ::windows::runtime::Result<u32> {
2323         let this = self;
2324         unsafe {
2325             let mut result__: u32 = ::std::mem::zeroed();
2326             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
2327         }
2328     }
Step(&self) -> ::windows::runtime::Result<u32>2329     pub fn Step(&self) -> ::windows::runtime::Result<u32> {
2330         let this = self;
2331         unsafe {
2332             let mut result__: u32 = ::std::mem::zeroed();
2333             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
2334         }
2335     }
Value(&self) -> ::windows::runtime::Result<u32>2336     pub fn Value(&self) -> ::windows::runtime::Result<u32> {
2337         let this = self;
2338         unsafe {
2339             let mut result__: u32 = ::std::mem::zeroed();
2340             (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
2341         }
2342     }
2343     #[cfg(feature = "Foundation")]
SetValueAsync(&self, focus: u32) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>2344     pub fn SetValueAsync(&self, focus: u32) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
2345         let this = self;
2346         unsafe {
2347             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2348             (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), focus, &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
2349         }
2350     }
2351     #[cfg(feature = "Foundation")]
FocusAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>2352     pub fn FocusAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
2353         let this = self;
2354         unsafe {
2355             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2356             (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
2357         }
2358     }
FocusChangedSupported(&self) -> ::windows::runtime::Result<bool>2359     pub fn FocusChangedSupported(&self) -> ::windows::runtime::Result<bool> {
2360         let this = &::windows::runtime::Interface::cast::<IFocusControl2>(self)?;
2361         unsafe {
2362             let mut result__: bool = ::std::mem::zeroed();
2363             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
2364         }
2365     }
WaitForFocusSupported(&self) -> ::windows::runtime::Result<bool>2366     pub fn WaitForFocusSupported(&self) -> ::windows::runtime::Result<bool> {
2367         let this = &::windows::runtime::Interface::cast::<IFocusControl2>(self)?;
2368         unsafe {
2369             let mut result__: bool = ::std::mem::zeroed();
2370             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
2371         }
2372     }
2373     #[cfg(feature = "Foundation_Collections")]
SupportedFocusModes(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<FocusMode>>2374     pub fn SupportedFocusModes(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<FocusMode>> {
2375         let this = &::windows::runtime::Interface::cast::<IFocusControl2>(self)?;
2376         unsafe {
2377             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2378             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<FocusMode>>(result__)
2379         }
2380     }
2381     #[cfg(feature = "Foundation_Collections")]
SupportedFocusDistances(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<ManualFocusDistance>>2382     pub fn SupportedFocusDistances(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<ManualFocusDistance>> {
2383         let this = &::windows::runtime::Interface::cast::<IFocusControl2>(self)?;
2384         unsafe {
2385             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2386             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<ManualFocusDistance>>(result__)
2387         }
2388     }
2389     #[cfg(feature = "Foundation_Collections")]
SupportedFocusRanges(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<AutoFocusRange>>2390     pub fn SupportedFocusRanges(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<AutoFocusRange>> {
2391         let this = &::windows::runtime::Interface::cast::<IFocusControl2>(self)?;
2392         unsafe {
2393             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2394             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<AutoFocusRange>>(result__)
2395         }
2396     }
Mode(&self) -> ::windows::runtime::Result<FocusMode>2397     pub fn Mode(&self) -> ::windows::runtime::Result<FocusMode> {
2398         let this = &::windows::runtime::Interface::cast::<IFocusControl2>(self)?;
2399         unsafe {
2400             let mut result__: FocusMode = ::std::mem::zeroed();
2401             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<FocusMode>(result__)
2402         }
2403     }
FocusState(&self) -> ::windows::runtime::Result<MediaCaptureFocusState>2404     pub fn FocusState(&self) -> ::windows::runtime::Result<MediaCaptureFocusState> {
2405         let this = &::windows::runtime::Interface::cast::<IFocusControl2>(self)?;
2406         unsafe {
2407             let mut result__: MediaCaptureFocusState = ::std::mem::zeroed();
2408             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<MediaCaptureFocusState>(result__)
2409         }
2410     }
2411     #[cfg(feature = "Foundation")]
UnlockAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>2412     pub fn UnlockAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
2413         let this = &::windows::runtime::Interface::cast::<IFocusControl2>(self)?;
2414         unsafe {
2415             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2416             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
2417         }
2418     }
2419     #[cfg(feature = "Foundation")]
LockAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>2420     pub fn LockAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
2421         let this = &::windows::runtime::Interface::cast::<IFocusControl2>(self)?;
2422         unsafe {
2423             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2424             (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
2425         }
2426     }
Configure<'a, Param0: ::windows::runtime::IntoParam<'a, FocusSettings>>(&self, settings: Param0) -> ::windows::runtime::Result<()>2427     pub fn Configure<'a, Param0: ::windows::runtime::IntoParam<'a, FocusSettings>>(&self, settings: Param0) -> ::windows::runtime::Result<()> {
2428         let this = &::windows::runtime::Interface::cast::<IFocusControl2>(self)?;
2429         unsafe { (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), settings.into_param().abi()).ok() }
2430     }
2431 }
2432 unsafe impl ::windows::runtime::RuntimeType for FocusControl {
2433     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.FocusControl;{c0d889f6-5228-4453-b153-85606592b238})");
2434 }
2435 unsafe impl ::windows::runtime::Interface for FocusControl {
2436     type Vtable = IFocusControl_abi;
2437     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3235416566, 21032, 17491, [177, 83, 133, 96, 101, 146, 178, 56]);
2438 }
2439 impl ::windows::runtime::RuntimeName for FocusControl {
2440     const NAME: &'static str = "Windows.Media.Devices.FocusControl";
2441 }
2442 impl ::std::convert::From<FocusControl> for ::windows::runtime::IUnknown {
from(value: FocusControl) -> Self2443     fn from(value: FocusControl) -> Self {
2444         unsafe { ::std::mem::transmute(value) }
2445     }
2446 }
2447 impl ::std::convert::From<&FocusControl> for ::windows::runtime::IUnknown {
from(value: &FocusControl) -> Self2448     fn from(value: &FocusControl) -> Self {
2449         ::std::convert::From::from(::std::clone::Clone::clone(value))
2450     }
2451 }
2452 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for FocusControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2453     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2454         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2455     }
2456 }
2457 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &FocusControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2458     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2459         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2460     }
2461 }
2462 impl ::std::convert::From<FocusControl> for ::windows::runtime::IInspectable {
from(value: FocusControl) -> Self2463     fn from(value: FocusControl) -> Self {
2464         value.0
2465     }
2466 }
2467 impl ::std::convert::From<&FocusControl> for ::windows::runtime::IInspectable {
from(value: &FocusControl) -> Self2468     fn from(value: &FocusControl) -> Self {
2469         value.0.clone()
2470     }
2471 }
2472 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for FocusControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2473     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2474         ::windows::runtime::Param::Owned(self.0)
2475     }
2476 }
2477 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a FocusControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2478     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2479         ::windows::runtime::Param::Borrowed(&self.0)
2480     }
2481 }
2482 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2483 #[repr(transparent)]
2484 pub struct FocusMode(pub i32);
2485 impl FocusMode {
2486     pub const Auto: FocusMode = FocusMode(0i32);
2487     pub const Single: FocusMode = FocusMode(1i32);
2488     pub const Continuous: FocusMode = FocusMode(2i32);
2489     pub const Manual: FocusMode = FocusMode(3i32);
2490 }
2491 impl ::std::convert::From<i32> for FocusMode {
from(value: i32) -> Self2492     fn from(value: i32) -> Self {
2493         Self(value)
2494     }
2495 }
2496 unsafe impl ::windows::runtime::Abi for FocusMode {
2497     type Abi = Self;
2498     type DefaultType = Self;
2499 }
2500 unsafe impl ::windows::runtime::RuntimeType for FocusMode {
2501     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Devices.FocusMode;i4)");
2502 }
2503 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2504 #[repr(transparent)]
2505 pub struct FocusPreset(pub i32);
2506 impl FocusPreset {
2507     pub const Auto: FocusPreset = FocusPreset(0i32);
2508     pub const Manual: FocusPreset = FocusPreset(1i32);
2509     pub const AutoMacro: FocusPreset = FocusPreset(2i32);
2510     pub const AutoNormal: FocusPreset = FocusPreset(3i32);
2511     pub const AutoInfinity: FocusPreset = FocusPreset(4i32);
2512     pub const AutoHyperfocal: FocusPreset = FocusPreset(5i32);
2513 }
2514 impl ::std::convert::From<i32> for FocusPreset {
from(value: i32) -> Self2515     fn from(value: i32) -> Self {
2516         Self(value)
2517     }
2518 }
2519 unsafe impl ::windows::runtime::Abi for FocusPreset {
2520     type Abi = Self;
2521     type DefaultType = Self;
2522 }
2523 unsafe impl ::windows::runtime::RuntimeType for FocusPreset {
2524     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Devices.FocusPreset;i4)");
2525 }
2526 #[repr(transparent)]
2527 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2528 pub struct FocusSettings(::windows::runtime::IInspectable);
2529 impl FocusSettings {
new() -> ::windows::runtime::Result<Self>2530     pub fn new() -> ::windows::runtime::Result<Self> {
2531         Self::IActivationFactory(|f| f.activate_instance::<Self>())
2532     }
IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>2533     fn IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
2534         static mut SHARED: ::windows::runtime::FactoryCache<FocusSettings, ::windows::runtime::IActivationFactory> = ::windows::runtime::FactoryCache::new();
2535         unsafe { SHARED.call(callback) }
2536     }
Mode(&self) -> ::windows::runtime::Result<FocusMode>2537     pub fn Mode(&self) -> ::windows::runtime::Result<FocusMode> {
2538         let this = self;
2539         unsafe {
2540             let mut result__: FocusMode = ::std::mem::zeroed();
2541             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<FocusMode>(result__)
2542         }
2543     }
SetMode(&self, value: FocusMode) -> ::windows::runtime::Result<()>2544     pub fn SetMode(&self, value: FocusMode) -> ::windows::runtime::Result<()> {
2545         let this = self;
2546         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() }
2547     }
AutoFocusRange(&self) -> ::windows::runtime::Result<AutoFocusRange>2548     pub fn AutoFocusRange(&self) -> ::windows::runtime::Result<AutoFocusRange> {
2549         let this = self;
2550         unsafe {
2551             let mut result__: AutoFocusRange = ::std::mem::zeroed();
2552             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AutoFocusRange>(result__)
2553         }
2554     }
SetAutoFocusRange(&self, value: AutoFocusRange) -> ::windows::runtime::Result<()>2555     pub fn SetAutoFocusRange(&self, value: AutoFocusRange) -> ::windows::runtime::Result<()> {
2556         let this = self;
2557         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), value).ok() }
2558     }
2559     #[cfg(feature = "Foundation")]
Value(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<u32>>2560     pub fn Value(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<u32>> {
2561         let this = self;
2562         unsafe {
2563             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2564             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<u32>>(result__)
2565         }
2566     }
2567     #[cfg(feature = "Foundation")]
SetValue<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<u32>>>(&self, value: Param0) -> ::windows::runtime::Result<()>2568     pub fn SetValue<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<u32>>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
2569         let this = self;
2570         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
2571     }
2572     #[cfg(feature = "Foundation")]
Distance(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<ManualFocusDistance>>2573     pub fn Distance(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<ManualFocusDistance>> {
2574         let this = self;
2575         unsafe {
2576             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2577             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<ManualFocusDistance>>(result__)
2578         }
2579     }
2580     #[cfg(feature = "Foundation")]
SetDistance<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<ManualFocusDistance>>>(&self, value: Param0) -> ::windows::runtime::Result<()>2581     pub fn SetDistance<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<ManualFocusDistance>>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
2582         let this = self;
2583         unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
2584     }
WaitForFocus(&self) -> ::windows::runtime::Result<bool>2585     pub fn WaitForFocus(&self) -> ::windows::runtime::Result<bool> {
2586         let this = self;
2587         unsafe {
2588             let mut result__: bool = ::std::mem::zeroed();
2589             (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
2590         }
2591     }
SetWaitForFocus(&self, value: bool) -> ::windows::runtime::Result<()>2592     pub fn SetWaitForFocus(&self, value: bool) -> ::windows::runtime::Result<()> {
2593         let this = self;
2594         unsafe { (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), value).ok() }
2595     }
DisableDriverFallback(&self) -> ::windows::runtime::Result<bool>2596     pub fn DisableDriverFallback(&self) -> ::windows::runtime::Result<bool> {
2597         let this = self;
2598         unsafe {
2599             let mut result__: bool = ::std::mem::zeroed();
2600             (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
2601         }
2602     }
SetDisableDriverFallback(&self, value: bool) -> ::windows::runtime::Result<()>2603     pub fn SetDisableDriverFallback(&self, value: bool) -> ::windows::runtime::Result<()> {
2604         let this = self;
2605         unsafe { (::windows::runtime::Interface::vtable(this).17)(::std::mem::transmute_copy(this), value).ok() }
2606     }
2607 }
2608 unsafe impl ::windows::runtime::RuntimeType for FocusSettings {
2609     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.FocusSettings;{79958f6b-3263-4275-85d6-aeae891c96ee})");
2610 }
2611 unsafe impl ::windows::runtime::Interface for FocusSettings {
2612     type Vtable = IFocusSettings_abi;
2613     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2039844715, 12899, 17013, [133, 214, 174, 174, 137, 28, 150, 238]);
2614 }
2615 impl ::windows::runtime::RuntimeName for FocusSettings {
2616     const NAME: &'static str = "Windows.Media.Devices.FocusSettings";
2617 }
2618 impl ::std::convert::From<FocusSettings> for ::windows::runtime::IUnknown {
from(value: FocusSettings) -> Self2619     fn from(value: FocusSettings) -> Self {
2620         unsafe { ::std::mem::transmute(value) }
2621     }
2622 }
2623 impl ::std::convert::From<&FocusSettings> for ::windows::runtime::IUnknown {
from(value: &FocusSettings) -> Self2624     fn from(value: &FocusSettings) -> Self {
2625         ::std::convert::From::from(::std::clone::Clone::clone(value))
2626     }
2627 }
2628 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for FocusSettings {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2629     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2630         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2631     }
2632 }
2633 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &FocusSettings {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2634     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2635         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2636     }
2637 }
2638 impl ::std::convert::From<FocusSettings> for ::windows::runtime::IInspectable {
from(value: FocusSettings) -> Self2639     fn from(value: FocusSettings) -> Self {
2640         value.0
2641     }
2642 }
2643 impl ::std::convert::From<&FocusSettings> for ::windows::runtime::IInspectable {
from(value: &FocusSettings) -> Self2644     fn from(value: &FocusSettings) -> Self {
2645         value.0.clone()
2646     }
2647 }
2648 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for FocusSettings {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2649     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2650         ::windows::runtime::Param::Owned(self.0)
2651     }
2652 }
2653 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a FocusSettings {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2654     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2655         ::windows::runtime::Param::Borrowed(&self.0)
2656     }
2657 }
2658 unsafe impl ::std::marker::Send for FocusSettings {}
2659 unsafe impl ::std::marker::Sync for FocusSettings {}
2660 #[repr(transparent)]
2661 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2662 pub struct HdrVideoControl(::windows::runtime::IInspectable);
2663 impl HdrVideoControl {
Supported(&self) -> ::windows::runtime::Result<bool>2664     pub fn Supported(&self) -> ::windows::runtime::Result<bool> {
2665         let this = self;
2666         unsafe {
2667             let mut result__: bool = ::std::mem::zeroed();
2668             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
2669         }
2670     }
2671     #[cfg(feature = "Foundation_Collections")]
SupportedModes(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<HdrVideoMode>>2672     pub fn SupportedModes(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<HdrVideoMode>> {
2673         let this = self;
2674         unsafe {
2675             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2676             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<HdrVideoMode>>(result__)
2677         }
2678     }
Mode(&self) -> ::windows::runtime::Result<HdrVideoMode>2679     pub fn Mode(&self) -> ::windows::runtime::Result<HdrVideoMode> {
2680         let this = self;
2681         unsafe {
2682             let mut result__: HdrVideoMode = ::std::mem::zeroed();
2683             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<HdrVideoMode>(result__)
2684         }
2685     }
SetMode(&self, value: HdrVideoMode) -> ::windows::runtime::Result<()>2686     pub fn SetMode(&self, value: HdrVideoMode) -> ::windows::runtime::Result<()> {
2687         let this = self;
2688         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), value).ok() }
2689     }
2690 }
2691 unsafe impl ::windows::runtime::RuntimeType for HdrVideoControl {
2692     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.HdrVideoControl;{55d8e2d0-30c0-43bf-9b9a-9799d70ced94})");
2693 }
2694 unsafe impl ::windows::runtime::Interface for HdrVideoControl {
2695     type Vtable = IHdrVideoControl_abi;
2696     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1440277200, 12480, 17343, [155, 154, 151, 153, 215, 12, 237, 148]);
2697 }
2698 impl ::windows::runtime::RuntimeName for HdrVideoControl {
2699     const NAME: &'static str = "Windows.Media.Devices.HdrVideoControl";
2700 }
2701 impl ::std::convert::From<HdrVideoControl> for ::windows::runtime::IUnknown {
from(value: HdrVideoControl) -> Self2702     fn from(value: HdrVideoControl) -> Self {
2703         unsafe { ::std::mem::transmute(value) }
2704     }
2705 }
2706 impl ::std::convert::From<&HdrVideoControl> for ::windows::runtime::IUnknown {
from(value: &HdrVideoControl) -> Self2707     fn from(value: &HdrVideoControl) -> Self {
2708         ::std::convert::From::from(::std::clone::Clone::clone(value))
2709     }
2710 }
2711 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for HdrVideoControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2712     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2713         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2714     }
2715 }
2716 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &HdrVideoControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2717     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2718         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2719     }
2720 }
2721 impl ::std::convert::From<HdrVideoControl> for ::windows::runtime::IInspectable {
from(value: HdrVideoControl) -> Self2722     fn from(value: HdrVideoControl) -> Self {
2723         value.0
2724     }
2725 }
2726 impl ::std::convert::From<&HdrVideoControl> for ::windows::runtime::IInspectable {
from(value: &HdrVideoControl) -> Self2727     fn from(value: &HdrVideoControl) -> Self {
2728         value.0.clone()
2729     }
2730 }
2731 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for HdrVideoControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2732     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2733         ::windows::runtime::Param::Owned(self.0)
2734     }
2735 }
2736 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a HdrVideoControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2737     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2738         ::windows::runtime::Param::Borrowed(&self.0)
2739     }
2740 }
2741 unsafe impl ::std::marker::Send for HdrVideoControl {}
2742 unsafe impl ::std::marker::Sync for HdrVideoControl {}
2743 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2744 #[repr(transparent)]
2745 pub struct HdrVideoMode(pub i32);
2746 impl HdrVideoMode {
2747     pub const Off: HdrVideoMode = HdrVideoMode(0i32);
2748     pub const On: HdrVideoMode = HdrVideoMode(1i32);
2749     pub const Auto: HdrVideoMode = HdrVideoMode(2i32);
2750 }
2751 impl ::std::convert::From<i32> for HdrVideoMode {
from(value: i32) -> Self2752     fn from(value: i32) -> Self {
2753         Self(value)
2754     }
2755 }
2756 unsafe impl ::windows::runtime::Abi for HdrVideoMode {
2757     type Abi = Self;
2758     type DefaultType = Self;
2759 }
2760 unsafe impl ::windows::runtime::RuntimeType for HdrVideoMode {
2761     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Devices.HdrVideoMode;i4)");
2762 }
2763 #[repr(transparent)]
2764 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2765 #[doc(hidden)]
2766 pub struct IAdvancedPhotoCaptureSettings(::windows::runtime::IInspectable);
2767 unsafe impl ::windows::runtime::Interface for IAdvancedPhotoCaptureSettings {
2768     type Vtable = IAdvancedPhotoCaptureSettings_abi;
2769     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(150177338, 24, 17499, [147, 210, 100, 109, 28, 94, 208, 92]);
2770 }
2771 #[repr(C)]
2772 #[doc(hidden)]
2773 pub struct IAdvancedPhotoCaptureSettings_abi(
2774     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2775     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2776     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2777     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2778     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2779     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2780     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut AdvancedPhotoMode) -> ::windows::runtime::HRESULT,
2781     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: AdvancedPhotoMode) -> ::windows::runtime::HRESULT,
2782 );
2783 #[repr(transparent)]
2784 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2785 #[doc(hidden)]
2786 pub struct IAdvancedPhotoControl(::windows::runtime::IInspectable);
2787 unsafe impl ::windows::runtime::Interface for IAdvancedPhotoControl {
2788     type Vtable = IAdvancedPhotoControl_abi;
2789     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3316733062, 36865, 18050, [147, 9, 104, 234, 224, 8, 14, 236]);
2790 }
2791 #[repr(C)]
2792 #[doc(hidden)]
2793 pub struct IAdvancedPhotoControl_abi(
2794     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2795     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2796     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2797     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2798     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2799     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2800     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
2801     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2802     #[cfg(not(feature = "Foundation_Collections"))] usize,
2803     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut AdvancedPhotoMode) -> ::windows::runtime::HRESULT,
2804     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, settings: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2805 );
2806 #[repr(transparent)]
2807 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2808 #[doc(hidden)]
2809 pub struct IAdvancedVideoCaptureDeviceController(::windows::runtime::IInspectable);
2810 unsafe impl ::windows::runtime::Interface for IAdvancedVideoCaptureDeviceController {
2811     type Vtable = IAdvancedVideoCaptureDeviceController_abi;
2812     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3731879123, 11158, 17795, [128, 171, 181, 176, 29, 198, 168, 215]);
2813 }
2814 #[repr(C)]
2815 #[doc(hidden)]
2816 pub struct IAdvancedVideoCaptureDeviceController_abi(
2817     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2818     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2819     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2820     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2821     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2822     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2823     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, propertyid: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, propertyvalue: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2824     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, propertyid: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2825 );
2826 #[repr(transparent)]
2827 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2828 #[doc(hidden)]
2829 pub struct IAdvancedVideoCaptureDeviceController10(::windows::runtime::IInspectable);
2830 unsafe impl ::windows::runtime::Interface for IAdvancedVideoCaptureDeviceController10 {
2831     type Vtable = IAdvancedVideoCaptureDeviceController10_abi;
2832     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3324098605, 55024, 23579, [163, 136, 166, 233, 56, 64, 113, 70]);
2833 }
2834 #[repr(C)]
2835 #[doc(hidden)]
2836 pub struct IAdvancedVideoCaptureDeviceController10_abi(
2837     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2838     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2839     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2840     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2841     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2842     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2843     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2844 );
2845 #[repr(transparent)]
2846 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2847 #[doc(hidden)]
2848 pub struct IAdvancedVideoCaptureDeviceController2(::windows::runtime::IInspectable);
2849 unsafe impl ::windows::runtime::Interface for IAdvancedVideoCaptureDeviceController2 {
2850     type Vtable = IAdvancedVideoCaptureDeviceController2_abi;
2851     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2344177551, 61722, 17371, [180, 2, 17, 147, 11, 128, 174, 86]);
2852 }
2853 #[repr(C)]
2854 #[doc(hidden)]
2855 pub struct IAdvancedVideoCaptureDeviceController2_abi(
2856     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2857     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2858     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2859     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2860     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2861     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2862     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2863     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2864     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2865     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2866     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2867     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2868     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2869     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2870     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2871     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2872     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2873     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut CaptureUse) -> ::windows::runtime::HRESULT,
2874     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: CaptureUse) -> ::windows::runtime::HRESULT,
2875 );
2876 #[repr(transparent)]
2877 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2878 #[doc(hidden)]
2879 pub struct IAdvancedVideoCaptureDeviceController3(::windows::runtime::IInspectable);
2880 unsafe impl ::windows::runtime::Interface for IAdvancedVideoCaptureDeviceController3 {
2881     type Vtable = IAdvancedVideoCaptureDeviceController3_abi;
2882     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2844495668, 60941, 18188, [185, 240, 66, 41, 196, 187, 208, 137]);
2883 }
2884 #[repr(C)]
2885 #[doc(hidden)]
2886 pub struct IAdvancedVideoCaptureDeviceController3_abi(
2887     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2888     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2889     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2890     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2891     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2892     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2893     #[cfg(feature = "Media_Devices_Core")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2894     #[cfg(not(feature = "Media_Devices_Core"))] usize,
2895     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2896     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2897 );
2898 #[repr(transparent)]
2899 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2900 #[doc(hidden)]
2901 pub struct IAdvancedVideoCaptureDeviceController4(::windows::runtime::IInspectable);
2902 unsafe impl ::windows::runtime::Interface for IAdvancedVideoCaptureDeviceController4 {
2903     type Vtable = IAdvancedVideoCaptureDeviceController4_abi;
2904     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3936337839, 54129, 16835, [154, 23, 130, 74, 135, 235, 223, 210]);
2905 }
2906 #[repr(C)]
2907 #[doc(hidden)]
2908 pub struct IAdvancedVideoCaptureDeviceController4_abi(
2909     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2910     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2911     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2912     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2913     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2914     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2915     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2916     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut MediaCaptureOptimization) -> ::windows::runtime::HRESULT,
2917     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: MediaCaptureOptimization) -> ::windows::runtime::HRESULT,
2918     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2919     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2920     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2921 );
2922 #[repr(transparent)]
2923 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2924 #[doc(hidden)]
2925 pub struct IAdvancedVideoCaptureDeviceController5(::windows::runtime::IInspectable);
2926 unsafe impl ::windows::runtime::Interface for IAdvancedVideoCaptureDeviceController5 {
2927     type Vtable = IAdvancedVideoCaptureDeviceController5_abi;
2928     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(860957463, 47563, 18979, [184, 117, 249, 234, 171, 83, 84, 146]);
2929 }
2930 #[repr(C)]
2931 #[doc(hidden)]
2932 pub struct IAdvancedVideoCaptureDeviceController5_abi(
2933     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2934     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2935     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2936     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2937     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2938     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2939     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
2940     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, propertyid: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, maxpropertyvaluesize: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2941     #[cfg(not(feature = "Foundation"))] usize,
2942     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, propertyid: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, propertyvalue: ::windows::runtime::RawPtr, result__: *mut VideoDeviceControllerSetDevicePropertyStatus) -> ::windows::runtime::HRESULT,
2943     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, extendedPropertyId_array_size: u32, extendedpropertyid: *const u8, maxpropertyvaluesize: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2944     #[cfg(not(feature = "Foundation"))] usize,
2945     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, extendedPropertyId_array_size: u32, extendedpropertyid: *const u8, propertyValue_array_size: u32, propertyvalue: *const u8, result__: *mut VideoDeviceControllerSetDevicePropertyStatus) -> ::windows::runtime::HRESULT,
2946 );
2947 #[repr(transparent)]
2948 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2949 #[doc(hidden)]
2950 pub struct IAdvancedVideoCaptureDeviceController6(::windows::runtime::IInspectable);
2951 unsafe impl ::windows::runtime::Interface for IAdvancedVideoCaptureDeviceController6 {
2952     type Vtable = IAdvancedVideoCaptureDeviceController6_abi;
2953     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3059104339, 26785, 17591, [159, 137, 181, 250, 151, 172, 12, 190]);
2954 }
2955 #[repr(C)]
2956 #[doc(hidden)]
2957 pub struct IAdvancedVideoCaptureDeviceController6_abi(
2958     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2959     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2960     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2961     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2962     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2963     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2964     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2965 );
2966 #[repr(transparent)]
2967 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2968 #[doc(hidden)]
2969 pub struct IAdvancedVideoCaptureDeviceController7(::windows::runtime::IInspectable);
2970 unsafe impl ::windows::runtime::Interface for IAdvancedVideoCaptureDeviceController7 {
2971     type Vtable = IAdvancedVideoCaptureDeviceController7_abi;
2972     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2368284656, 41044, 20711, [183, 223, 124, 4, 35, 77, 16, 240]);
2973 }
2974 #[repr(C)]
2975 #[doc(hidden)]
2976 pub struct IAdvancedVideoCaptureDeviceController7_abi(
2977     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2978     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2979     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2980     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2981     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2982     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2983     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2984 );
2985 #[repr(transparent)]
2986 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2987 #[doc(hidden)]
2988 pub struct IAdvancedVideoCaptureDeviceController8(::windows::runtime::IInspectable);
2989 unsafe impl ::windows::runtime::Interface for IAdvancedVideoCaptureDeviceController8 {
2990     type Vtable = IAdvancedVideoCaptureDeviceController8_abi;
2991     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3628331024, 59387, 22875, [154, 120, 14, 84, 196, 83, 43, 67]);
2992 }
2993 #[repr(C)]
2994 #[doc(hidden)]
2995 pub struct IAdvancedVideoCaptureDeviceController8_abi(
2996     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2997     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2998     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2999     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3000     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3001     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3002     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3003 );
3004 #[repr(transparent)]
3005 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3006 #[doc(hidden)]
3007 pub struct IAdvancedVideoCaptureDeviceController9(::windows::runtime::IInspectable);
3008 unsafe impl ::windows::runtime::Interface for IAdvancedVideoCaptureDeviceController9 {
3009     type Vtable = IAdvancedVideoCaptureDeviceController9_abi;
3010     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2346494301, 597, 20924, [161, 13, 90, 22, 158, 193, 98, 90]);
3011 }
3012 #[repr(C)]
3013 #[doc(hidden)]
3014 pub struct IAdvancedVideoCaptureDeviceController9_abi(
3015     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3016     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3017     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3018     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3019     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3020     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3021     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3022 );
3023 #[repr(transparent)]
3024 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3025 #[doc(hidden)]
3026 pub struct IAudioDeviceController(::windows::runtime::IInspectable);
3027 unsafe impl ::windows::runtime::Interface for IAudioDeviceController {
3028     type Vtable = IAudioDeviceController_abi;
3029     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3990135688, 31175, 20348, [144, 232, 239, 147, 75, 33, 88, 10]);
3030 }
3031 #[repr(C)]
3032 #[doc(hidden)]
3033 pub struct IAudioDeviceController_abi(
3034     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3035     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3036     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3037     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3038     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3039     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3040     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: bool) -> ::windows::runtime::HRESULT,
3041     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
3042     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f32) -> ::windows::runtime::HRESULT,
3043     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f32) -> ::windows::runtime::HRESULT,
3044 );
3045 #[repr(transparent)]
3046 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3047 #[doc(hidden)]
3048 pub struct IAudioDeviceModule(::windows::runtime::IInspectable);
3049 unsafe impl ::windows::runtime::Interface for IAudioDeviceModule {
3050     type Vtable = IAudioDeviceModule_abi;
3051     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2261756982, 18369, 19251, [152, 82, 135, 115, 236, 75, 225, 35]);
3052 }
3053 #[repr(C)]
3054 #[doc(hidden)]
3055 pub struct IAudioDeviceModule_abi(
3056     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3057     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3058     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3059     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3060     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3061     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3062     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
3063     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
3064     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
3065     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
3066     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
3067     #[cfg(all(feature = "Foundation", feature = "Storage_Streams"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, command: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3068     #[cfg(not(all(feature = "Foundation", feature = "Storage_Streams")))] usize,
3069 );
3070 #[repr(transparent)]
3071 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3072 #[doc(hidden)]
3073 pub struct IAudioDeviceModuleNotificationEventArgs(::windows::runtime::IInspectable);
3074 unsafe impl ::windows::runtime::Interface for IAudioDeviceModuleNotificationEventArgs {
3075     type Vtable = IAudioDeviceModuleNotificationEventArgs_abi;
3076     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3823357103, 8780, 18622, [149, 107, 154, 19, 19, 78, 150, 232]);
3077 }
3078 #[repr(C)]
3079 #[doc(hidden)]
3080 pub struct IAudioDeviceModuleNotificationEventArgs_abi(
3081     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3082     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3083     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3084     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3085     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3086     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3087     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3088     #[cfg(feature = "Storage_Streams")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3089     #[cfg(not(feature = "Storage_Streams"))] usize,
3090 );
3091 #[repr(transparent)]
3092 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3093 #[doc(hidden)]
3094 pub struct IAudioDeviceModulesManager(::windows::runtime::IInspectable);
3095 unsafe impl ::windows::runtime::Interface for IAudioDeviceModulesManager {
3096     type Vtable = IAudioDeviceModulesManager_abi;
3097     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1789135949, 38410, 19740, [179, 24, 0, 34, 96, 69, 71, 237]);
3098 }
3099 #[repr(C)]
3100 #[doc(hidden)]
3101 pub struct IAudioDeviceModulesManager_abi(
3102     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3103     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3104     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3105     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3106     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3107     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3108     #[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,
3109     #[cfg(not(feature = "Foundation"))] usize,
3110     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, token: super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
3111     #[cfg(not(feature = "Foundation"))] usize,
3112     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, moduleid: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3113     #[cfg(not(feature = "Foundation_Collections"))] usize,
3114     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3115     #[cfg(not(feature = "Foundation_Collections"))] usize,
3116 );
3117 #[repr(transparent)]
3118 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3119 #[doc(hidden)]
3120 pub struct IAudioDeviceModulesManagerFactory(::windows::runtime::IInspectable);
3121 unsafe impl ::windows::runtime::Interface for IAudioDeviceModulesManagerFactory {
3122     type Vtable = IAudioDeviceModulesManagerFactory_abi;
3123     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2377135728, 58957, 18291, [150, 192, 188, 126, 191, 14, 6, 63]);
3124 }
3125 #[repr(C)]
3126 #[doc(hidden)]
3127 pub struct IAudioDeviceModulesManagerFactory_abi(
3128     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3129     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3130     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3131     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3132     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3133     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3134     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, deviceid: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3135 );
3136 #[repr(transparent)]
3137 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3138 #[doc(hidden)]
3139 pub struct ICallControl(::windows::runtime::IInspectable);
3140 unsafe impl ::windows::runtime::Interface for ICallControl {
3141     type Vtable = ICallControl_abi;
3142     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2770391254, 44685, 17883, [128, 17, 202, 73, 211, 179, 229, 120]);
3143 }
3144 #[repr(C)]
3145 #[doc(hidden)]
3146 pub struct ICallControl_abi(
3147     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3148     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3149     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3150     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3151     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3152     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3153     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enableringer: bool, callerid: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, result__: *mut u64) -> ::windows::runtime::HRESULT,
3154     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u64) -> ::windows::runtime::HRESULT,
3155     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, calltoken: u64) -> ::windows::runtime::HRESULT,
3156     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, calltoken: u64) -> ::windows::runtime::HRESULT,
3157     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
3158     #[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,
3159     #[cfg(not(feature = "Foundation"))] usize,
3160     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, token: super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
3161     #[cfg(not(feature = "Foundation"))] usize,
3162     #[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,
3163     #[cfg(not(feature = "Foundation"))] usize,
3164     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, token: super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
3165     #[cfg(not(feature = "Foundation"))] usize,
3166     #[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,
3167     #[cfg(not(feature = "Foundation"))] usize,
3168     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, token: super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
3169     #[cfg(not(feature = "Foundation"))] usize,
3170     #[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,
3171     #[cfg(not(feature = "Foundation"))] usize,
3172     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, token: super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
3173     #[cfg(not(feature = "Foundation"))] usize,
3174     #[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,
3175     #[cfg(not(feature = "Foundation"))] usize,
3176     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, token: super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
3177     #[cfg(not(feature = "Foundation"))] usize,
3178     #[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,
3179     #[cfg(not(feature = "Foundation"))] usize,
3180     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, token: super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
3181     #[cfg(not(feature = "Foundation"))] usize,
3182 );
3183 #[repr(transparent)]
3184 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3185 #[doc(hidden)]
3186 pub struct ICallControlStatics(::windows::runtime::IInspectable);
3187 unsafe impl ::windows::runtime::Interface for ICallControlStatics {
3188     type Vtable = ICallControlStatics_abi;
3189     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(60054229, 34219, 16609, [175, 25, 86, 201, 67, 3, 176, 25]);
3190 }
3191 #[repr(C)]
3192 #[doc(hidden)]
3193 pub struct ICallControlStatics_abi(
3194     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3195     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3196     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3197     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3198     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3199     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3200     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3201     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, deviceid: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3202 );
3203 #[repr(transparent)]
3204 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3205 #[doc(hidden)]
3206 pub struct ICameraOcclusionInfo(::windows::runtime::IInspectable);
3207 unsafe impl ::windows::runtime::Interface for ICameraOcclusionInfo {
3208     type Vtable = ICameraOcclusionInfo_abi;
3209     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2943109840, 43085, 23990, [190, 88, 165, 218, 33, 207, 224, 17]);
3210 }
3211 #[repr(C)]
3212 #[doc(hidden)]
3213 pub struct ICameraOcclusionInfo_abi(
3214     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3215     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3216     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3217     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3218     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3219     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3220     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3221     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, occlusionkind: CameraOcclusionKind, result__: *mut bool) -> ::windows::runtime::HRESULT,
3222     #[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,
3223     #[cfg(not(feature = "Foundation"))] usize,
3224     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, token: super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
3225     #[cfg(not(feature = "Foundation"))] usize,
3226 );
3227 #[repr(transparent)]
3228 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3229 #[doc(hidden)]
3230 pub struct ICameraOcclusionState(::windows::runtime::IInspectable);
3231 unsafe impl ::windows::runtime::Interface for ICameraOcclusionState {
3232     type Vtable = ICameraOcclusionState_abi;
3233     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1124785848, 26690, 24149, [155, 222, 4, 180, 239, 58, 138, 87]);
3234 }
3235 #[repr(C)]
3236 #[doc(hidden)]
3237 pub struct ICameraOcclusionState_abi(
3238     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3239     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3240     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3241     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3242     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3243     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3244     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
3245     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, occlusionkind: CameraOcclusionKind, result__: *mut bool) -> ::windows::runtime::HRESULT,
3246 );
3247 #[repr(transparent)]
3248 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3249 #[doc(hidden)]
3250 pub struct ICameraOcclusionStateChangedEventArgs(::windows::runtime::IInspectable);
3251 unsafe impl ::windows::runtime::Interface for ICameraOcclusionStateChangedEventArgs {
3252     type Vtable = ICameraOcclusionStateChangedEventArgs_abi;
3253     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2232604744, 49374, 22474, [161, 202, 251, 44, 61, 35, 223, 85]);
3254 }
3255 #[repr(C)]
3256 #[doc(hidden)]
3257 pub struct ICameraOcclusionStateChangedEventArgs_abi(
3258     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3259     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3260     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3261     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3262     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3263     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3264     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3265 );
3266 #[repr(transparent)]
3267 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3268 pub struct IDefaultAudioDeviceChangedEventArgs(::windows::runtime::IInspectable);
3269 unsafe impl ::windows::runtime::Interface for IDefaultAudioDeviceChangedEventArgs {
3270     type Vtable = IDefaultAudioDeviceChangedEventArgs_abi;
3271     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(286230575, 7173, 18007, [161, 142, 71, 201, 182, 159, 7, 171]);
3272 }
3273 impl IDefaultAudioDeviceChangedEventArgs {
Id(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>3274     pub fn Id(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
3275         let this = self;
3276         unsafe {
3277             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
3278             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
3279         }
3280     }
Role(&self) -> ::windows::runtime::Result<AudioDeviceRole>3281     pub fn Role(&self) -> ::windows::runtime::Result<AudioDeviceRole> {
3282         let this = self;
3283         unsafe {
3284             let mut result__: AudioDeviceRole = ::std::mem::zeroed();
3285             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AudioDeviceRole>(result__)
3286         }
3287     }
3288 }
3289 unsafe impl ::windows::runtime::RuntimeType for IDefaultAudioDeviceChangedEventArgs {
3290     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"{110f882f-1c05-4657-a18e-47c9b69f07ab}");
3291 }
3292 impl ::std::convert::From<IDefaultAudioDeviceChangedEventArgs> for ::windows::runtime::IUnknown {
from(value: IDefaultAudioDeviceChangedEventArgs) -> Self3293     fn from(value: IDefaultAudioDeviceChangedEventArgs) -> Self {
3294         unsafe { ::std::mem::transmute(value) }
3295     }
3296 }
3297 impl ::std::convert::From<&IDefaultAudioDeviceChangedEventArgs> for ::windows::runtime::IUnknown {
from(value: &IDefaultAudioDeviceChangedEventArgs) -> Self3298     fn from(value: &IDefaultAudioDeviceChangedEventArgs) -> Self {
3299         ::std::convert::From::from(::std::clone::Clone::clone(value))
3300     }
3301 }
3302 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDefaultAudioDeviceChangedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3303     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3304         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3305     }
3306 }
3307 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDefaultAudioDeviceChangedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3308     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3309         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3310     }
3311 }
3312 impl ::std::convert::From<IDefaultAudioDeviceChangedEventArgs> for ::windows::runtime::IInspectable {
from(value: IDefaultAudioDeviceChangedEventArgs) -> Self3313     fn from(value: IDefaultAudioDeviceChangedEventArgs) -> Self {
3314         value.0
3315     }
3316 }
3317 impl ::std::convert::From<&IDefaultAudioDeviceChangedEventArgs> for ::windows::runtime::IInspectable {
from(value: &IDefaultAudioDeviceChangedEventArgs) -> Self3318     fn from(value: &IDefaultAudioDeviceChangedEventArgs) -> Self {
3319         value.0.clone()
3320     }
3321 }
3322 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for IDefaultAudioDeviceChangedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3323     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3324         ::windows::runtime::Param::Owned(self.0)
3325     }
3326 }
3327 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a IDefaultAudioDeviceChangedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3328     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3329         ::windows::runtime::Param::Borrowed(&self.0)
3330     }
3331 }
3332 #[repr(C)]
3333 #[doc(hidden)]
3334 pub struct IDefaultAudioDeviceChangedEventArgs_abi(
3335     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3336     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3337     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3338     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3339     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3340     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3341     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
3342     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut AudioDeviceRole) -> ::windows::runtime::HRESULT,
3343 );
3344 #[repr(transparent)]
3345 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3346 #[doc(hidden)]
3347 pub struct IDialRequestedEventArgs(::windows::runtime::IInspectable);
3348 unsafe impl ::windows::runtime::Interface for IDialRequestedEventArgs {
3349     type Vtable = IDialRequestedEventArgs_abi;
3350     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(58430110, 38204, 17030, [136, 102, 79, 15, 55, 108, 133, 90]);
3351 }
3352 #[repr(C)]
3353 #[doc(hidden)]
3354 pub struct IDialRequestedEventArgs_abi(
3355     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3356     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3357     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3358     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3359     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3360     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3361     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3362     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3363 );
3364 #[repr(transparent)]
3365 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3366 #[doc(hidden)]
3367 pub struct IDigitalWindowBounds(::windows::runtime::IInspectable);
3368 unsafe impl ::windows::runtime::Interface for IDigitalWindowBounds {
3369     type Vtable = IDigitalWindowBounds_abi;
3370     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3712950749, 53619, 23659, [140, 37, 189, 210, 109, 81, 34, 177]);
3371 }
3372 #[repr(C)]
3373 #[doc(hidden)]
3374 pub struct IDigitalWindowBounds_abi(
3375     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3376     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3377     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3378     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3379     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3380     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3381     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
3382     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f64) -> ::windows::runtime::HRESULT,
3383     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
3384     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f64) -> ::windows::runtime::HRESULT,
3385     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
3386     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f64) -> ::windows::runtime::HRESULT,
3387 );
3388 #[repr(transparent)]
3389 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3390 #[doc(hidden)]
3391 pub struct IDigitalWindowCapability(::windows::runtime::IInspectable);
3392 unsafe impl ::windows::runtime::Interface for IDigitalWindowCapability {
3393     type Vtable = IDigitalWindowCapability_abi;
3394     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3616255276, 63265, 21060, [161, 150, 181, 108, 203, 236, 96, 108]);
3395 }
3396 #[repr(C)]
3397 #[doc(hidden)]
3398 pub struct IDigitalWindowCapability_abi(
3399     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3400     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3401     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3402     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3403     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3404     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3405     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut i32) -> ::windows::runtime::HRESULT,
3406     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut i32) -> ::windows::runtime::HRESULT,
3407     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
3408     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
3409     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
3410     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::Rect) -> ::windows::runtime::HRESULT,
3411     #[cfg(not(feature = "Foundation"))] usize,
3412 );
3413 #[repr(transparent)]
3414 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3415 #[doc(hidden)]
3416 pub struct IDigitalWindowControl(::windows::runtime::IInspectable);
3417 unsafe impl ::windows::runtime::Interface for IDigitalWindowControl {
3418     type Vtable = IDigitalWindowControl_abi;
3419     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(599170815, 26066, 21482, [135, 128, 222, 88, 43, 72, 181, 68]);
3420 }
3421 #[repr(C)]
3422 #[doc(hidden)]
3423 pub struct IDigitalWindowControl_abi(
3424     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3425     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3426     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3427     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3428     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3429     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3430     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
3431     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result_size__: *mut u32, result__: *mut *mut DigitalWindowMode) -> ::windows::runtime::HRESULT,
3432     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut DigitalWindowMode) -> ::windows::runtime::HRESULT,
3433     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3434     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, digitalwindowmode: DigitalWindowMode) -> ::windows::runtime::HRESULT,
3435     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, digitalwindowmode: DigitalWindowMode, digitalwindowbounds: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3436     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3437     #[cfg(not(feature = "Foundation_Collections"))] usize,
3438     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, width: i32, height: i32, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3439 );
3440 #[repr(transparent)]
3441 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3442 #[doc(hidden)]
3443 pub struct IExposureCompensationControl(::windows::runtime::IInspectable);
3444 unsafe impl ::windows::runtime::Interface for IExposureCompensationControl {
3445     type Vtable = IExposureCompensationControl_abi;
3446     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2177427508, 56556, 16401, [166, 16, 31, 56, 71, 230, 74, 202]);
3447 }
3448 #[repr(C)]
3449 #[doc(hidden)]
3450 pub struct IExposureCompensationControl_abi(
3451     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3452     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3453     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3454     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3455     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3456     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3457     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
3458     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f32) -> ::windows::runtime::HRESULT,
3459     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f32) -> ::windows::runtime::HRESULT,
3460     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f32) -> ::windows::runtime::HRESULT,
3461     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f32) -> ::windows::runtime::HRESULT,
3462     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f32, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3463     #[cfg(not(feature = "Foundation"))] usize,
3464 );
3465 #[repr(transparent)]
3466 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3467 #[doc(hidden)]
3468 pub struct IExposureControl(::windows::runtime::IInspectable);
3469 unsafe impl ::windows::runtime::Interface for IExposureControl {
3470     type Vtable = IExposureControl_abi;
3471     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(166251490, 44438, 20264, [160, 224, 150, 237, 126, 27, 95, 210]);
3472 }
3473 #[repr(C)]
3474 #[doc(hidden)]
3475 pub struct IExposureControl_abi(
3476     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3477     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3478     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3479     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3480     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3481     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3482     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
3483     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
3484     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: bool, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3485     #[cfg(not(feature = "Foundation"))] usize,
3486     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::TimeSpan) -> ::windows::runtime::HRESULT,
3487     #[cfg(not(feature = "Foundation"))] usize,
3488     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::TimeSpan) -> ::windows::runtime::HRESULT,
3489     #[cfg(not(feature = "Foundation"))] usize,
3490     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::TimeSpan) -> ::windows::runtime::HRESULT,
3491     #[cfg(not(feature = "Foundation"))] usize,
3492     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::TimeSpan) -> ::windows::runtime::HRESULT,
3493     #[cfg(not(feature = "Foundation"))] usize,
3494     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, shutterduration: super::super::Foundation::TimeSpan, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3495     #[cfg(not(feature = "Foundation"))] usize,
3496 );
3497 #[repr(transparent)]
3498 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3499 #[doc(hidden)]
3500 pub struct IExposurePriorityVideoControl(::windows::runtime::IInspectable);
3501 unsafe impl ::windows::runtime::Interface for IExposurePriorityVideoControl {
3502     type Vtable = IExposurePriorityVideoControl_abi;
3503     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(749879459, 20840, 17009, [158, 165, 71, 98, 26, 152, 163, 82]);
3504 }
3505 #[repr(C)]
3506 #[doc(hidden)]
3507 pub struct IExposurePriorityVideoControl_abi(
3508     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3509     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3510     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3511     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3512     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3513     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3514     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
3515     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
3516     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: bool) -> ::windows::runtime::HRESULT,
3517 );
3518 #[repr(transparent)]
3519 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3520 #[doc(hidden)]
3521 pub struct IFlashControl(::windows::runtime::IInspectable);
3522 unsafe impl ::windows::runtime::Interface for IFlashControl {
3523     type Vtable = IFlashControl_abi;
3524     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3740540350, 32104, 17891, [140, 15, 190, 123, 179, 40, 55, 208]);
3525 }
3526 #[repr(C)]
3527 #[doc(hidden)]
3528 pub struct IFlashControl_abi(
3529     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3530     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3531     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3532     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3533     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3534     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3535     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
3536     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
3537     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
3538     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
3539     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: bool) -> ::windows::runtime::HRESULT,
3540     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
3541     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: bool) -> ::windows::runtime::HRESULT,
3542     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
3543     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: bool) -> ::windows::runtime::HRESULT,
3544     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f32) -> ::windows::runtime::HRESULT,
3545     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f32) -> ::windows::runtime::HRESULT,
3546 );
3547 #[repr(transparent)]
3548 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3549 #[doc(hidden)]
3550 pub struct IFlashControl2(::windows::runtime::IInspectable);
3551 unsafe impl ::windows::runtime::Interface for IFlashControl2 {
3552     type Vtable = IFlashControl2_abi;
3553     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2099891358, 30177, 19191, [189, 125, 78, 56, 225, 192, 108, 214]);
3554 }
3555 #[repr(C)]
3556 #[doc(hidden)]
3557 pub struct IFlashControl2_abi(
3558     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3559     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3560     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3561     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3562     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3563     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3564     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
3565     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
3566     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: bool) -> ::windows::runtime::HRESULT,
3567 );
3568 #[repr(transparent)]
3569 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3570 #[doc(hidden)]
3571 pub struct IFocusControl(::windows::runtime::IInspectable);
3572 unsafe impl ::windows::runtime::Interface for IFocusControl {
3573     type Vtable = IFocusControl_abi;
3574     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3235416566, 21032, 17491, [177, 83, 133, 96, 101, 146, 178, 56]);
3575 }
3576 #[repr(C)]
3577 #[doc(hidden)]
3578 pub struct IFocusControl_abi(
3579     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3580     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3581     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3582     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3583     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3584     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3585     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
3586     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3587     #[cfg(not(feature = "Foundation_Collections"))] usize,
3588     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut FocusPreset) -> ::windows::runtime::HRESULT,
3589     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, preset: FocusPreset, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3590     #[cfg(not(feature = "Foundation"))] usize,
3591     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, preset: FocusPreset, completebeforefocus: bool, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3592     #[cfg(not(feature = "Foundation"))] usize,
3593     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
3594     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
3595     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
3596     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
3597     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, focus: u32, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3598     #[cfg(not(feature = "Foundation"))] usize,
3599     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3600     #[cfg(not(feature = "Foundation"))] usize,
3601 );
3602 #[repr(transparent)]
3603 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3604 #[doc(hidden)]
3605 pub struct IFocusControl2(::windows::runtime::IInspectable);
3606 unsafe impl ::windows::runtime::Interface for IFocusControl2 {
3607     type Vtable = IFocusControl2_abi;
3608     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1065156424, 50484, 20126, [148, 195, 82, 239, 42, 253, 93, 7]);
3609 }
3610 #[repr(C)]
3611 #[doc(hidden)]
3612 pub struct IFocusControl2_abi(
3613     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3614     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3615     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3616     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3617     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3618     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3619     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
3620     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
3621     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3622     #[cfg(not(feature = "Foundation_Collections"))] usize,
3623     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3624     #[cfg(not(feature = "Foundation_Collections"))] usize,
3625     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3626     #[cfg(not(feature = "Foundation_Collections"))] usize,
3627     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut FocusMode) -> ::windows::runtime::HRESULT,
3628     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut MediaCaptureFocusState) -> ::windows::runtime::HRESULT,
3629     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3630     #[cfg(not(feature = "Foundation"))] usize,
3631     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3632     #[cfg(not(feature = "Foundation"))] usize,
3633     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, settings: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3634 );
3635 #[repr(transparent)]
3636 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3637 #[doc(hidden)]
3638 pub struct IFocusSettings(::windows::runtime::IInspectable);
3639 unsafe impl ::windows::runtime::Interface for IFocusSettings {
3640     type Vtable = IFocusSettings_abi;
3641     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2039844715, 12899, 17013, [133, 214, 174, 174, 137, 28, 150, 238]);
3642 }
3643 #[repr(C)]
3644 #[doc(hidden)]
3645 pub struct IFocusSettings_abi(
3646     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3647     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3648     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3649     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3650     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3651     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3652     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut FocusMode) -> ::windows::runtime::HRESULT,
3653     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: FocusMode) -> ::windows::runtime::HRESULT,
3654     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut AutoFocusRange) -> ::windows::runtime::HRESULT,
3655     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: AutoFocusRange) -> ::windows::runtime::HRESULT,
3656     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3657     #[cfg(not(feature = "Foundation"))] usize,
3658     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3659     #[cfg(not(feature = "Foundation"))] usize,
3660     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3661     #[cfg(not(feature = "Foundation"))] usize,
3662     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3663     #[cfg(not(feature = "Foundation"))] usize,
3664     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
3665     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: bool) -> ::windows::runtime::HRESULT,
3666     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
3667     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: bool) -> ::windows::runtime::HRESULT,
3668 );
3669 #[repr(transparent)]
3670 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3671 #[doc(hidden)]
3672 pub struct IHdrVideoControl(::windows::runtime::IInspectable);
3673 unsafe impl ::windows::runtime::Interface for IHdrVideoControl {
3674     type Vtable = IHdrVideoControl_abi;
3675     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1440277200, 12480, 17343, [155, 154, 151, 153, 215, 12, 237, 148]);
3676 }
3677 #[repr(C)]
3678 #[doc(hidden)]
3679 pub struct IHdrVideoControl_abi(
3680     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3681     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3682     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3683     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3684     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3685     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3686     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
3687     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3688     #[cfg(not(feature = "Foundation_Collections"))] usize,
3689     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut HdrVideoMode) -> ::windows::runtime::HRESULT,
3690     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: HdrVideoMode) -> ::windows::runtime::HRESULT,
3691 );
3692 #[repr(transparent)]
3693 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3694 #[doc(hidden)]
3695 pub struct IInfraredTorchControl(::windows::runtime::IInspectable);
3696 unsafe impl ::windows::runtime::Interface for IInfraredTorchControl {
3697     type Vtable = IInfraredTorchControl_abi;
3698     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(481963139, 27830, 23044, [166, 252, 59, 231, 179, 63, 240, 86]);
3699 }
3700 #[repr(C)]
3701 #[doc(hidden)]
3702 pub struct IInfraredTorchControl_abi(
3703     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3704     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3705     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3706     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3707     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3708     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3709     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
3710     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3711     #[cfg(not(feature = "Foundation_Collections"))] usize,
3712     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut InfraredTorchMode) -> ::windows::runtime::HRESULT,
3713     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: InfraredTorchMode) -> ::windows::runtime::HRESULT,
3714     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut i32) -> ::windows::runtime::HRESULT,
3715     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut i32) -> ::windows::runtime::HRESULT,
3716     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut i32) -> ::windows::runtime::HRESULT,
3717     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut i32) -> ::windows::runtime::HRESULT,
3718     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: i32) -> ::windows::runtime::HRESULT,
3719 );
3720 #[repr(transparent)]
3721 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3722 #[doc(hidden)]
3723 pub struct IIsoSpeedControl(::windows::runtime::IInspectable);
3724 unsafe impl ::windows::runtime::Interface for IIsoSpeedControl {
3725     type Vtable = IIsoSpeedControl_abi;
3726     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(666288930, 9645, 20251, [170, 171, 82, 74, 179, 118, 202, 51]);
3727 }
3728 #[repr(C)]
3729 #[doc(hidden)]
3730 pub struct IIsoSpeedControl_abi(
3731     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3732     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3733     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3734     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3735     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3736     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3737     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
3738     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3739     #[cfg(not(feature = "Foundation_Collections"))] usize,
3740     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut IsoSpeedPreset) -> ::windows::runtime::HRESULT,
3741     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, preset: IsoSpeedPreset, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3742     #[cfg(not(feature = "Foundation"))] usize,
3743 );
3744 #[repr(transparent)]
3745 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3746 #[doc(hidden)]
3747 pub struct IIsoSpeedControl2(::windows::runtime::IInspectable);
3748 unsafe impl ::windows::runtime::Interface for IIsoSpeedControl2 {
3749     type Vtable = IIsoSpeedControl2_abi;
3750     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1863678194, 28023, 20362, [140, 47, 97, 48, 182, 57, 80, 83]);
3751 }
3752 #[repr(C)]
3753 #[doc(hidden)]
3754 pub struct IIsoSpeedControl2_abi(
3755     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3756     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3757     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3758     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3759     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3760     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3761     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
3762     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
3763     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
3764     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
3765     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, isospeed: u32, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3766     #[cfg(not(feature = "Foundation"))] usize,
3767     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
3768     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3769     #[cfg(not(feature = "Foundation"))] usize,
3770 );
3771 #[repr(transparent)]
3772 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3773 #[doc(hidden)]
3774 pub struct IKeypadPressedEventArgs(::windows::runtime::IInspectable);
3775 unsafe impl ::windows::runtime::Interface for IKeypadPressedEventArgs {
3776     type Vtable = IKeypadPressedEventArgs_abi;
3777     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3550755072, 46330, 18893, [148, 66, 137, 175, 101, 104, 246, 1]);
3778 }
3779 #[repr(C)]
3780 #[doc(hidden)]
3781 pub struct IKeypadPressedEventArgs_abi(
3782     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3783     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3784     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3785     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3786     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3787     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3788     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut TelephonyKey) -> ::windows::runtime::HRESULT,
3789 );
3790 #[repr(transparent)]
3791 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3792 #[doc(hidden)]
3793 pub struct ILowLagPhotoControl(::windows::runtime::IInspectable);
3794 unsafe impl ::windows::runtime::Interface for ILowLagPhotoControl {
3795     type Vtable = ILowLagPhotoControl_abi;
3796     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1834765776, 64223, 16733, [174, 230, 59, 170, 82, 147, 0, 201]);
3797 }
3798 #[repr(C)]
3799 #[doc(hidden)]
3800 pub struct ILowLagPhotoControl_abi(
3801     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3802     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3803     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3804     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3805     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3806     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3807     #[cfg(feature = "Media_MediaProperties")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, captureproperties: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3808     #[cfg(not(feature = "Media_MediaProperties"))] usize,
3809     #[cfg(feature = "Media_MediaProperties")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3810     #[cfg(not(feature = "Media_MediaProperties"))] usize,
3811     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
3812     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: bool) -> ::windows::runtime::HRESULT,
3813     #[cfg(feature = "Media_MediaProperties")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::MediaProperties::MediaThumbnailFormat) -> ::windows::runtime::HRESULT,
3814     #[cfg(not(feature = "Media_MediaProperties"))] usize,
3815     #[cfg(feature = "Media_MediaProperties")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: super::MediaProperties::MediaThumbnailFormat) -> ::windows::runtime::HRESULT,
3816     #[cfg(not(feature = "Media_MediaProperties"))] usize,
3817     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
3818     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u32) -> ::windows::runtime::HRESULT,
3819     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
3820 );
3821 #[repr(transparent)]
3822 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3823 #[doc(hidden)]
3824 pub struct ILowLagPhotoSequenceControl(::windows::runtime::IInspectable);
3825 unsafe impl ::windows::runtime::Interface for ILowLagPhotoSequenceControl {
3826     type Vtable = ILowLagPhotoSequenceControl_abi;
3827     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1037013149, 27926, 16540, [186, 254, 185, 165, 148, 198, 253, 230]);
3828 }
3829 #[repr(C)]
3830 #[doc(hidden)]
3831 pub struct ILowLagPhotoSequenceControl_abi(
3832     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3833     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3834     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3835     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3836     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3837     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3838     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
3839     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
3840     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f32) -> ::windows::runtime::HRESULT,
3841     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
3842     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u32) -> ::windows::runtime::HRESULT,
3843     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f32) -> ::windows::runtime::HRESULT,
3844     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f32) -> ::windows::runtime::HRESULT,
3845     #[cfg(feature = "Media_MediaProperties")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, captureproperties: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3846     #[cfg(not(feature = "Media_MediaProperties"))] usize,
3847     #[cfg(feature = "Media_MediaProperties")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3848     #[cfg(not(feature = "Media_MediaProperties"))] usize,
3849     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
3850     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: bool) -> ::windows::runtime::HRESULT,
3851     #[cfg(feature = "Media_MediaProperties")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::MediaProperties::MediaThumbnailFormat) -> ::windows::runtime::HRESULT,
3852     #[cfg(not(feature = "Media_MediaProperties"))] usize,
3853     #[cfg(feature = "Media_MediaProperties")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: super::MediaProperties::MediaThumbnailFormat) -> ::windows::runtime::HRESULT,
3854     #[cfg(not(feature = "Media_MediaProperties"))] usize,
3855     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
3856     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u32) -> ::windows::runtime::HRESULT,
3857     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
3858 );
3859 #[repr(transparent)]
3860 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3861 #[doc(hidden)]
3862 pub struct IMediaDeviceControl(::windows::runtime::IInspectable);
3863 unsafe impl ::windows::runtime::Interface for IMediaDeviceControl {
3864     type Vtable = IMediaDeviceControl_abi;
3865     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4020821929, 28533, 18531, [186, 11, 88, 63, 48, 54, 180, 222]);
3866 }
3867 #[repr(C)]
3868 #[doc(hidden)]
3869 pub struct IMediaDeviceControl_abi(
3870     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3871     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3872     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3873     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3874     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3875     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3876     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3877     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut f64, result__: *mut bool) -> ::windows::runtime::HRESULT,
3878     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f64, result__: *mut bool) -> ::windows::runtime::HRESULT,
3879     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut bool, result__: *mut bool) -> ::windows::runtime::HRESULT,
3880     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: bool, result__: *mut bool) -> ::windows::runtime::HRESULT,
3881 );
3882 #[repr(transparent)]
3883 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3884 #[doc(hidden)]
3885 pub struct IMediaDeviceControlCapabilities(::windows::runtime::IInspectable);
3886 unsafe impl ::windows::runtime::Interface for IMediaDeviceControlCapabilities {
3887     type Vtable = IMediaDeviceControlCapabilities_abi;
3888     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(587225110, 60293, 17378, [185, 43, 130, 64, 213, 238, 112, 236]);
3889 }
3890 #[repr(C)]
3891 #[doc(hidden)]
3892 pub struct IMediaDeviceControlCapabilities_abi(
3893     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3894     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3895     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3896     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3897     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3898     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3899     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
3900     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
3901     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
3902     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
3903     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
3904     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
3905 );
3906 #[repr(transparent)]
3907 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3908 pub struct IMediaDeviceController(::windows::runtime::IInspectable);
3909 unsafe impl ::windows::runtime::Interface for IMediaDeviceController {
3910     type Vtable = IMediaDeviceController_abi;
3911     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4143510990, 8346, 18683, [134, 252, 212, 69, 120, 243, 23, 230]);
3912 }
3913 impl IMediaDeviceController {
3914     #[cfg(all(feature = "Foundation_Collections", feature = "Media_Capture", feature = "Media_MediaProperties"))]
GetAvailableMediaStreamProperties(&self, mediastreamtype: super::Capture::MediaStreamType) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<super::MediaProperties::IMediaEncodingProperties>>3915     pub fn GetAvailableMediaStreamProperties(&self, mediastreamtype: super::Capture::MediaStreamType) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<super::MediaProperties::IMediaEncodingProperties>> {
3916         let this = self;
3917         unsafe {
3918             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
3919             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), mediastreamtype, &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<super::MediaProperties::IMediaEncodingProperties>>(result__)
3920         }
3921     }
3922     #[cfg(all(feature = "Media_Capture", feature = "Media_MediaProperties"))]
GetMediaStreamProperties(&self, mediastreamtype: super::Capture::MediaStreamType) -> ::windows::runtime::Result<super::MediaProperties::IMediaEncodingProperties>3923     pub fn GetMediaStreamProperties(&self, mediastreamtype: super::Capture::MediaStreamType) -> ::windows::runtime::Result<super::MediaProperties::IMediaEncodingProperties> {
3924         let this = self;
3925         unsafe {
3926             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
3927             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), mediastreamtype, &mut result__).from_abi::<super::MediaProperties::IMediaEncodingProperties>(result__)
3928         }
3929     }
3930     #[cfg(all(feature = "Foundation", feature = "Media_Capture", feature = "Media_MediaProperties"))]
SetMediaStreamPropertiesAsync<'a, Param1: ::windows::runtime::IntoParam<'a, super::MediaProperties::IMediaEncodingProperties>>(&self, mediastreamtype: super::Capture::MediaStreamType, mediaencodingproperties: Param1) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>3931     pub fn SetMediaStreamPropertiesAsync<'a, Param1: ::windows::runtime::IntoParam<'a, super::MediaProperties::IMediaEncodingProperties>>(&self, mediastreamtype: super::Capture::MediaStreamType, mediaencodingproperties: Param1) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
3932         let this = self;
3933         unsafe {
3934             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
3935             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), mediastreamtype, mediaencodingproperties.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
3936         }
3937     }
3938 }
3939 unsafe impl ::windows::runtime::RuntimeType for IMediaDeviceController {
3940     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"{f6f8f5ce-209a-48fb-86fc-d44578f317e6}");
3941 }
3942 impl ::std::convert::From<IMediaDeviceController> for ::windows::runtime::IUnknown {
from(value: IMediaDeviceController) -> Self3943     fn from(value: IMediaDeviceController) -> Self {
3944         unsafe { ::std::mem::transmute(value) }
3945     }
3946 }
3947 impl ::std::convert::From<&IMediaDeviceController> for ::windows::runtime::IUnknown {
from(value: &IMediaDeviceController) -> Self3948     fn from(value: &IMediaDeviceController) -> Self {
3949         ::std::convert::From::from(::std::clone::Clone::clone(value))
3950     }
3951 }
3952 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IMediaDeviceController {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3953     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3954         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3955     }
3956 }
3957 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IMediaDeviceController {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3958     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3959         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3960     }
3961 }
3962 impl ::std::convert::From<IMediaDeviceController> for ::windows::runtime::IInspectable {
from(value: IMediaDeviceController) -> Self3963     fn from(value: IMediaDeviceController) -> Self {
3964         value.0
3965     }
3966 }
3967 impl ::std::convert::From<&IMediaDeviceController> for ::windows::runtime::IInspectable {
from(value: &IMediaDeviceController) -> Self3968     fn from(value: &IMediaDeviceController) -> Self {
3969         value.0.clone()
3970     }
3971 }
3972 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for IMediaDeviceController {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3973     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3974         ::windows::runtime::Param::Owned(self.0)
3975     }
3976 }
3977 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a IMediaDeviceController {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3978     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3979         ::windows::runtime::Param::Borrowed(&self.0)
3980     }
3981 }
3982 #[repr(C)]
3983 #[doc(hidden)]
3984 pub struct IMediaDeviceController_abi(
3985     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3986     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3987     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3988     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
3989     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3990     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
3991     #[cfg(all(feature = "Foundation_Collections", feature = "Media_Capture", feature = "Media_MediaProperties"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, mediastreamtype: super::Capture::MediaStreamType, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3992     #[cfg(not(all(feature = "Foundation_Collections", feature = "Media_Capture", feature = "Media_MediaProperties")))] usize,
3993     #[cfg(all(feature = "Media_Capture", feature = "Media_MediaProperties"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, mediastreamtype: super::Capture::MediaStreamType, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3994     #[cfg(not(all(feature = "Media_Capture", feature = "Media_MediaProperties")))] usize,
3995     #[cfg(all(feature = "Foundation", feature = "Media_Capture", feature = "Media_MediaProperties"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, mediastreamtype: super::Capture::MediaStreamType, mediaencodingproperties: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3996     #[cfg(not(all(feature = "Foundation", feature = "Media_Capture", feature = "Media_MediaProperties")))] usize,
3997 );
3998 #[repr(transparent)]
3999 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4000 #[doc(hidden)]
4001 pub struct IMediaDeviceStatics(::windows::runtime::IInspectable);
4002 unsafe impl ::windows::runtime::Interface for IMediaDeviceStatics {
4003     type Vtable = IMediaDeviceStatics_abi;
4004     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2855115328, 37023, 19386, [191, 139, 12, 13, 41, 111, 20, 240]);
4005 }
4006 #[repr(C)]
4007 #[doc(hidden)]
4008 pub struct IMediaDeviceStatics_abi(
4009     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4010     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4011     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4012     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
4013     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4014     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
4015     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
4016     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
4017     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
4018     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, role: AudioDeviceRole, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
4019     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, role: AudioDeviceRole, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
4020     #[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,
4021     #[cfg(not(feature = "Foundation"))] usize,
4022     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, cookie: super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
4023     #[cfg(not(feature = "Foundation"))] usize,
4024     #[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,
4025     #[cfg(not(feature = "Foundation"))] usize,
4026     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, cookie: super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
4027     #[cfg(not(feature = "Foundation"))] usize,
4028 );
4029 #[repr(transparent)]
4030 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4031 #[doc(hidden)]
4032 pub struct IModuleCommandResult(::windows::runtime::IInspectable);
4033 unsafe impl ::windows::runtime::Interface for IModuleCommandResult {
4034     type Vtable = IModuleCommandResult_abi;
4035     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1376591540, 4980, 19581, [177, 228, 57, 220, 223, 62, 174, 78]);
4036 }
4037 #[repr(C)]
4038 #[doc(hidden)]
4039 pub struct IModuleCommandResult_abi(
4040     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4041     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4042     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4043     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
4044     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4045     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
4046     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut SendCommandStatus) -> ::windows::runtime::HRESULT,
4047     #[cfg(feature = "Storage_Streams")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4048     #[cfg(not(feature = "Storage_Streams"))] usize,
4049 );
4050 #[repr(transparent)]
4051 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4052 #[doc(hidden)]
4053 pub struct IOpticalImageStabilizationControl(::windows::runtime::IInspectable);
4054 unsafe impl ::windows::runtime::Interface for IOpticalImageStabilizationControl {
4055     type Vtable = IOpticalImageStabilizationControl_abi;
4056     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3215825949, 188, 16955, [142, 178, 160, 23, 140, 169, 66, 71]);
4057 }
4058 #[repr(C)]
4059 #[doc(hidden)]
4060 pub struct IOpticalImageStabilizationControl_abi(
4061     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4062     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4063     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4064     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
4065     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4066     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
4067     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
4068     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4069     #[cfg(not(feature = "Foundation_Collections"))] usize,
4070     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut OpticalImageStabilizationMode) -> ::windows::runtime::HRESULT,
4071     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: OpticalImageStabilizationMode) -> ::windows::runtime::HRESULT,
4072 );
4073 #[repr(transparent)]
4074 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4075 #[doc(hidden)]
4076 pub struct IPanelBasedOptimizationControl(::windows::runtime::IInspectable);
4077 unsafe impl ::windows::runtime::Interface for IPanelBasedOptimizationControl {
4078     type Vtable = IPanelBasedOptimizationControl_abi;
4079     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(858927651, 25159, 21529, [165, 164, 61, 128, 134, 69, 217, 23]);
4080 }
4081 #[repr(C)]
4082 #[doc(hidden)]
4083 pub struct IPanelBasedOptimizationControl_abi(
4084     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4085     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4086     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4087     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
4088     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4089     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
4090     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
4091     #[cfg(feature = "Devices_Enumeration")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Devices::Enumeration::Panel) -> ::windows::runtime::HRESULT,
4092     #[cfg(not(feature = "Devices_Enumeration"))] usize,
4093     #[cfg(feature = "Devices_Enumeration")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: super::super::Devices::Enumeration::Panel) -> ::windows::runtime::HRESULT,
4094     #[cfg(not(feature = "Devices_Enumeration"))] usize,
4095 );
4096 #[repr(transparent)]
4097 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4098 #[doc(hidden)]
4099 pub struct IPhotoConfirmationControl(::windows::runtime::IInspectable);
4100 unsafe impl ::windows::runtime::Interface for IPhotoConfirmationControl {
4101     type Vtable = IPhotoConfirmationControl_abi;
4102     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3371430755, 65374, 17794, [169, 168, 5, 80, 248, 90, 74, 118]);
4103 }
4104 #[repr(C)]
4105 #[doc(hidden)]
4106 pub struct IPhotoConfirmationControl_abi(
4107     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4108     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4109     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4110     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
4111     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4112     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
4113     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
4114     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
4115     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: bool) -> ::windows::runtime::HRESULT,
4116     #[cfg(feature = "Media_MediaProperties")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::MediaProperties::MediaPixelFormat) -> ::windows::runtime::HRESULT,
4117     #[cfg(not(feature = "Media_MediaProperties"))] usize,
4118     #[cfg(feature = "Media_MediaProperties")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, format: super::MediaProperties::MediaPixelFormat) -> ::windows::runtime::HRESULT,
4119     #[cfg(not(feature = "Media_MediaProperties"))] usize,
4120 );
4121 #[repr(transparent)]
4122 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4123 #[doc(hidden)]
4124 pub struct IRedialRequestedEventArgs(::windows::runtime::IInspectable);
4125 unsafe impl ::windows::runtime::Interface for IRedialRequestedEventArgs {
4126     type Vtable = IRedialRequestedEventArgs_abi;
4127     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2125812233, 30379, 19505, [180, 14, 75, 88, 55, 157, 88, 12]);
4128 }
4129 #[repr(C)]
4130 #[doc(hidden)]
4131 pub struct IRedialRequestedEventArgs_abi(
4132     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4133     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4134     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4135     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
4136     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4137     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
4138     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4139 );
4140 #[repr(transparent)]
4141 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4142 #[doc(hidden)]
4143 pub struct IRegionOfInterest(::windows::runtime::IInspectable);
4144 unsafe impl ::windows::runtime::Interface for IRegionOfInterest {
4145     type Vtable = IRegionOfInterest_abi;
4146     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3857500212, 52838, 19973, [167, 143, 207, 57, 26, 94, 194, 209]);
4147 }
4148 #[repr(C)]
4149 #[doc(hidden)]
4150 pub struct IRegionOfInterest_abi(
4151     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4152     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4153     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4154     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
4155     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4156     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
4157     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
4158     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: bool) -> ::windows::runtime::HRESULT,
4159     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
4160     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: bool) -> ::windows::runtime::HRESULT,
4161     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
4162     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: bool) -> ::windows::runtime::HRESULT,
4163     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::Rect) -> ::windows::runtime::HRESULT,
4164     #[cfg(not(feature = "Foundation"))] usize,
4165     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: super::super::Foundation::Rect) -> ::windows::runtime::HRESULT,
4166     #[cfg(not(feature = "Foundation"))] usize,
4167 );
4168 #[repr(transparent)]
4169 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4170 #[doc(hidden)]
4171 pub struct IRegionOfInterest2(::windows::runtime::IInspectable);
4172 unsafe impl ::windows::runtime::Interface for IRegionOfInterest2 {
4173     type Vtable = IRegionOfInterest2_abi;
4174     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(436087441, 29610, 19793, [138, 157, 86, 204, 247, 219, 127, 84]);
4175 }
4176 #[repr(C)]
4177 #[doc(hidden)]
4178 pub struct IRegionOfInterest2_abi(
4179     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4180     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4181     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4182     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
4183     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4184     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
4185     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut RegionOfInterestType) -> ::windows::runtime::HRESULT,
4186     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: RegionOfInterestType) -> ::windows::runtime::HRESULT,
4187     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
4188     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: bool) -> ::windows::runtime::HRESULT,
4189     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
4190     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u32) -> ::windows::runtime::HRESULT,
4191 );
4192 #[repr(transparent)]
4193 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4194 #[doc(hidden)]
4195 pub struct IRegionsOfInterestControl(::windows::runtime::IInspectable);
4196 unsafe impl ::windows::runtime::Interface for IRegionsOfInterestControl {
4197     type Vtable = IRegionsOfInterestControl_abi;
4198     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3273913639, 43787, 17752, [139, 91, 223, 86, 147, 219, 3, 120]);
4199 }
4200 #[repr(C)]
4201 #[doc(hidden)]
4202 pub struct IRegionsOfInterestControl_abi(
4203     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4204     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4205     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4206     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
4207     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4208     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
4209     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
4210     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, regions: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4211     #[cfg(not(all(feature = "Foundation", feature = "Foundation_Collections")))] usize,
4212     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, regions: ::windows::runtime::RawPtr, lockvalues: bool, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4213     #[cfg(not(all(feature = "Foundation", feature = "Foundation_Collections")))] usize,
4214     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4215     #[cfg(not(feature = "Foundation"))] usize,
4216     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
4217     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
4218     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
4219 );
4220 #[repr(transparent)]
4221 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4222 #[doc(hidden)]
4223 pub struct ISceneModeControl(::windows::runtime::IInspectable);
4224 unsafe impl ::windows::runtime::Interface for ISceneModeControl {
4225     type Vtable = ISceneModeControl_abi;
4226     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3566099191, 36185, 18516, [140, 98, 18, 199, 11, 168, 155, 124]);
4227 }
4228 #[repr(C)]
4229 #[doc(hidden)]
4230 pub struct ISceneModeControl_abi(
4231     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4232     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4233     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4234     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
4235     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4236     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
4237     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4238     #[cfg(not(feature = "Foundation_Collections"))] usize,
4239     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut CaptureSceneMode) -> ::windows::runtime::HRESULT,
4240     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, scenemode: CaptureSceneMode, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4241     #[cfg(not(feature = "Foundation"))] usize,
4242 );
4243 #[repr(transparent)]
4244 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4245 #[doc(hidden)]
4246 pub struct ITorchControl(::windows::runtime::IInspectable);
4247 unsafe impl ::windows::runtime::Interface for ITorchControl {
4248     type Vtable = ITorchControl_abi;
4249     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2785359461, 33360, 16748, [145, 154, 114, 66, 150, 175, 163, 6]);
4250 }
4251 #[repr(C)]
4252 #[doc(hidden)]
4253 pub struct ITorchControl_abi(
4254     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4255     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4256     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4257     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
4258     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4259     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
4260     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
4261     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
4262     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
4263     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: bool) -> ::windows::runtime::HRESULT,
4264     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f32) -> ::windows::runtime::HRESULT,
4265     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f32) -> ::windows::runtime::HRESULT,
4266 );
4267 #[repr(transparent)]
4268 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4269 #[doc(hidden)]
4270 pub struct IVideoDeviceController(::windows::runtime::IInspectable);
4271 unsafe impl ::windows::runtime::Interface for IVideoDeviceController {
4272     type Vtable = IVideoDeviceController_abi;
4273     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2572506485, 11822, 16568, [182, 199, 248, 45, 16, 1, 50, 16]);
4274 }
4275 #[repr(C)]
4276 #[doc(hidden)]
4277 pub struct IVideoDeviceController_abi(
4278     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4279     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4280     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4281     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
4282     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4283     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
4284     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4285     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4286     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4287     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4288     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4289     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4290     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4291     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4292     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4293     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4294     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4295     #[cfg(feature = "Media_Capture")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: super::Capture::PowerlineFrequency, result__: *mut bool) -> ::windows::runtime::HRESULT,
4296     #[cfg(not(feature = "Media_Capture"))] usize,
4297     #[cfg(feature = "Media_Capture")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut super::Capture::PowerlineFrequency, result__: *mut bool) -> ::windows::runtime::HRESULT,
4298     #[cfg(not(feature = "Media_Capture"))] usize,
4299 );
4300 #[repr(transparent)]
4301 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4302 #[doc(hidden)]
4303 pub struct IVideoDeviceControllerGetDevicePropertyResult(::windows::runtime::IInspectable);
4304 unsafe impl ::windows::runtime::Interface for IVideoDeviceControllerGetDevicePropertyResult {
4305     type Vtable = IVideoDeviceControllerGetDevicePropertyResult_abi;
4306     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3319301013, 28373, 18320, [139, 93, 14, 241, 57, 53, 208, 248]);
4307 }
4308 #[repr(C)]
4309 #[doc(hidden)]
4310 pub struct IVideoDeviceControllerGetDevicePropertyResult_abi(
4311     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4312     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4313     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4314     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
4315     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4316     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
4317     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut VideoDeviceControllerGetDevicePropertyStatus) -> ::windows::runtime::HRESULT,
4318     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4319 );
4320 #[repr(transparent)]
4321 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4322 #[doc(hidden)]
4323 pub struct IVideoTemporalDenoisingControl(::windows::runtime::IInspectable);
4324 unsafe impl ::windows::runtime::Interface for IVideoTemporalDenoisingControl {
4325     type Vtable = IVideoTemporalDenoisingControl_abi;
4326     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2058569525, 15914, 18994, [186, 255, 67, 88, 196, 251, 221, 87]);
4327 }
4328 #[repr(C)]
4329 #[doc(hidden)]
4330 pub struct IVideoTemporalDenoisingControl_abi(
4331     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4332     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4333     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4334     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
4335     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4336     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
4337     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
4338     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4339     #[cfg(not(feature = "Foundation_Collections"))] usize,
4340     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut VideoTemporalDenoisingMode) -> ::windows::runtime::HRESULT,
4341     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: VideoTemporalDenoisingMode) -> ::windows::runtime::HRESULT,
4342 );
4343 #[repr(transparent)]
4344 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4345 #[doc(hidden)]
4346 pub struct IWhiteBalanceControl(::windows::runtime::IInspectable);
4347 unsafe impl ::windows::runtime::Interface for IWhiteBalanceControl {
4348     type Vtable = IWhiteBalanceControl_abi;
4349     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2015298686, 29026, 18888, [168, 249, 148, 129, 197, 101, 54, 62]);
4350 }
4351 #[repr(C)]
4352 #[doc(hidden)]
4353 pub struct IWhiteBalanceControl_abi(
4354     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4355     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4356     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4357     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
4358     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4359     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
4360     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
4361     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ColorTemperaturePreset) -> ::windows::runtime::HRESULT,
4362     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, preset: ColorTemperaturePreset, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4363     #[cfg(not(feature = "Foundation"))] usize,
4364     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
4365     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
4366     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
4367     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
4368     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, temperature: u32, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4369     #[cfg(not(feature = "Foundation"))] usize,
4370 );
4371 #[repr(transparent)]
4372 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4373 #[doc(hidden)]
4374 pub struct IZoomControl(::windows::runtime::IInspectable);
4375 unsafe impl ::windows::runtime::Interface for IZoomControl {
4376     type Vtable = IZoomControl_abi;
4377     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(975047442, 13018, 19479, [191, 215, 141, 12, 115, 200, 245, 165]);
4378 }
4379 #[repr(C)]
4380 #[doc(hidden)]
4381 pub struct IZoomControl_abi(
4382     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4383     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4384     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4385     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
4386     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4387     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
4388     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
4389     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f32) -> ::windows::runtime::HRESULT,
4390     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f32) -> ::windows::runtime::HRESULT,
4391     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f32) -> ::windows::runtime::HRESULT,
4392     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f32) -> ::windows::runtime::HRESULT,
4393     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f32) -> ::windows::runtime::HRESULT,
4394 );
4395 #[repr(transparent)]
4396 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4397 #[doc(hidden)]
4398 pub struct IZoomControl2(::windows::runtime::IInspectable);
4399 unsafe impl ::windows::runtime::Interface for IZoomControl2 {
4400     type Vtable = IZoomControl2_abi;
4401     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1770274224, 11929, 17985, [133, 41, 24, 79, 49, 157, 22, 113]);
4402 }
4403 #[repr(C)]
4404 #[doc(hidden)]
4405 pub struct IZoomControl2_abi(
4406     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4407     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4408     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4409     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
4410     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4411     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
4412     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4413     #[cfg(not(feature = "Foundation_Collections"))] usize,
4414     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ZoomTransitionMode) -> ::windows::runtime::HRESULT,
4415     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, settings: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4416 );
4417 #[repr(transparent)]
4418 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4419 #[doc(hidden)]
4420 pub struct IZoomSettings(::windows::runtime::IInspectable);
4421 unsafe impl ::windows::runtime::Interface for IZoomSettings {
4422     type Vtable = IZoomSettings_abi;
4423     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1792437028, 5300, 19453, [177, 143, 136, 254, 36, 70, 59, 82]);
4424 }
4425 #[repr(C)]
4426 #[doc(hidden)]
4427 pub struct IZoomSettings_abi(
4428     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4429     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4430     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4431     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
4432     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4433     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
4434     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ZoomTransitionMode) -> ::windows::runtime::HRESULT,
4435     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ZoomTransitionMode) -> ::windows::runtime::HRESULT,
4436     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f32) -> ::windows::runtime::HRESULT,
4437     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f32) -> ::windows::runtime::HRESULT,
4438 );
4439 #[repr(transparent)]
4440 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4441 pub struct InfraredTorchControl(::windows::runtime::IInspectable);
4442 impl InfraredTorchControl {
IsSupported(&self) -> ::windows::runtime::Result<bool>4443     pub fn IsSupported(&self) -> ::windows::runtime::Result<bool> {
4444         let this = self;
4445         unsafe {
4446             let mut result__: bool = ::std::mem::zeroed();
4447             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
4448         }
4449     }
4450     #[cfg(feature = "Foundation_Collections")]
SupportedModes(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<InfraredTorchMode>>4451     pub fn SupportedModes(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<InfraredTorchMode>> {
4452         let this = self;
4453         unsafe {
4454             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
4455             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<InfraredTorchMode>>(result__)
4456         }
4457     }
CurrentMode(&self) -> ::windows::runtime::Result<InfraredTorchMode>4458     pub fn CurrentMode(&self) -> ::windows::runtime::Result<InfraredTorchMode> {
4459         let this = self;
4460         unsafe {
4461             let mut result__: InfraredTorchMode = ::std::mem::zeroed();
4462             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<InfraredTorchMode>(result__)
4463         }
4464     }
SetCurrentMode(&self, value: InfraredTorchMode) -> ::windows::runtime::Result<()>4465     pub fn SetCurrentMode(&self, value: InfraredTorchMode) -> ::windows::runtime::Result<()> {
4466         let this = self;
4467         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), value).ok() }
4468     }
MinPower(&self) -> ::windows::runtime::Result<i32>4469     pub fn MinPower(&self) -> ::windows::runtime::Result<i32> {
4470         let this = self;
4471         unsafe {
4472             let mut result__: i32 = ::std::mem::zeroed();
4473             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
4474         }
4475     }
MaxPower(&self) -> ::windows::runtime::Result<i32>4476     pub fn MaxPower(&self) -> ::windows::runtime::Result<i32> {
4477         let this = self;
4478         unsafe {
4479             let mut result__: i32 = ::std::mem::zeroed();
4480             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
4481         }
4482     }
PowerStep(&self) -> ::windows::runtime::Result<i32>4483     pub fn PowerStep(&self) -> ::windows::runtime::Result<i32> {
4484         let this = self;
4485         unsafe {
4486             let mut result__: i32 = ::std::mem::zeroed();
4487             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
4488         }
4489     }
Power(&self) -> ::windows::runtime::Result<i32>4490     pub fn Power(&self) -> ::windows::runtime::Result<i32> {
4491         let this = self;
4492         unsafe {
4493             let mut result__: i32 = ::std::mem::zeroed();
4494             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
4495         }
4496     }
SetPower(&self, value: i32) -> ::windows::runtime::Result<()>4497     pub fn SetPower(&self, value: i32) -> ::windows::runtime::Result<()> {
4498         let this = self;
4499         unsafe { (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), value).ok() }
4500     }
4501 }
4502 unsafe impl ::windows::runtime::RuntimeType for InfraredTorchControl {
4503     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.InfraredTorchControl;{1cba2c83-6cb6-5a04-a6fc-3be7b33ff056})");
4504 }
4505 unsafe impl ::windows::runtime::Interface for InfraredTorchControl {
4506     type Vtable = IInfraredTorchControl_abi;
4507     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(481963139, 27830, 23044, [166, 252, 59, 231, 179, 63, 240, 86]);
4508 }
4509 impl ::windows::runtime::RuntimeName for InfraredTorchControl {
4510     const NAME: &'static str = "Windows.Media.Devices.InfraredTorchControl";
4511 }
4512 impl ::std::convert::From<InfraredTorchControl> for ::windows::runtime::IUnknown {
from(value: InfraredTorchControl) -> Self4513     fn from(value: InfraredTorchControl) -> Self {
4514         unsafe { ::std::mem::transmute(value) }
4515     }
4516 }
4517 impl ::std::convert::From<&InfraredTorchControl> for ::windows::runtime::IUnknown {
from(value: &InfraredTorchControl) -> Self4518     fn from(value: &InfraredTorchControl) -> Self {
4519         ::std::convert::From::from(::std::clone::Clone::clone(value))
4520     }
4521 }
4522 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for InfraredTorchControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4523     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4524         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4525     }
4526 }
4527 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &InfraredTorchControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4528     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4529         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4530     }
4531 }
4532 impl ::std::convert::From<InfraredTorchControl> for ::windows::runtime::IInspectable {
from(value: InfraredTorchControl) -> Self4533     fn from(value: InfraredTorchControl) -> Self {
4534         value.0
4535     }
4536 }
4537 impl ::std::convert::From<&InfraredTorchControl> for ::windows::runtime::IInspectable {
from(value: &InfraredTorchControl) -> Self4538     fn from(value: &InfraredTorchControl) -> Self {
4539         value.0.clone()
4540     }
4541 }
4542 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for InfraredTorchControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>4543     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
4544         ::windows::runtime::Param::Owned(self.0)
4545     }
4546 }
4547 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a InfraredTorchControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>4548     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
4549         ::windows::runtime::Param::Borrowed(&self.0)
4550     }
4551 }
4552 unsafe impl ::std::marker::Send for InfraredTorchControl {}
4553 unsafe impl ::std::marker::Sync for InfraredTorchControl {}
4554 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
4555 #[repr(transparent)]
4556 pub struct InfraredTorchMode(pub i32);
4557 impl InfraredTorchMode {
4558     pub const Off: InfraredTorchMode = InfraredTorchMode(0i32);
4559     pub const On: InfraredTorchMode = InfraredTorchMode(1i32);
4560     pub const AlternatingFrameIllumination: InfraredTorchMode = InfraredTorchMode(2i32);
4561 }
4562 impl ::std::convert::From<i32> for InfraredTorchMode {
from(value: i32) -> Self4563     fn from(value: i32) -> Self {
4564         Self(value)
4565     }
4566 }
4567 unsafe impl ::windows::runtime::Abi for InfraredTorchMode {
4568     type Abi = Self;
4569     type DefaultType = Self;
4570 }
4571 unsafe impl ::windows::runtime::RuntimeType for InfraredTorchMode {
4572     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Devices.InfraredTorchMode;i4)");
4573 }
4574 #[repr(transparent)]
4575 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4576 pub struct IsoSpeedControl(::windows::runtime::IInspectable);
4577 impl IsoSpeedControl {
Supported(&self) -> ::windows::runtime::Result<bool>4578     pub fn Supported(&self) -> ::windows::runtime::Result<bool> {
4579         let this = self;
4580         unsafe {
4581             let mut result__: bool = ::std::mem::zeroed();
4582             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
4583         }
4584     }
4585     #[cfg(feature = "deprecated")]
4586     #[cfg(feature = "Foundation_Collections")]
SupportedPresets(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<IsoSpeedPreset>>4587     pub fn SupportedPresets(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<IsoSpeedPreset>> {
4588         let this = self;
4589         unsafe {
4590             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
4591             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<IsoSpeedPreset>>(result__)
4592         }
4593     }
4594     #[cfg(feature = "deprecated")]
Preset(&self) -> ::windows::runtime::Result<IsoSpeedPreset>4595     pub fn Preset(&self) -> ::windows::runtime::Result<IsoSpeedPreset> {
4596         let this = self;
4597         unsafe {
4598             let mut result__: IsoSpeedPreset = ::std::mem::zeroed();
4599             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<IsoSpeedPreset>(result__)
4600         }
4601     }
4602     #[cfg(feature = "deprecated")]
4603     #[cfg(feature = "Foundation")]
SetPresetAsync(&self, preset: IsoSpeedPreset) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>4604     pub fn SetPresetAsync(&self, preset: IsoSpeedPreset) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
4605         let this = self;
4606         unsafe {
4607             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
4608             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), preset, &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
4609         }
4610     }
Min(&self) -> ::windows::runtime::Result<u32>4611     pub fn Min(&self) -> ::windows::runtime::Result<u32> {
4612         let this = &::windows::runtime::Interface::cast::<IIsoSpeedControl2>(self)?;
4613         unsafe {
4614             let mut result__: u32 = ::std::mem::zeroed();
4615             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
4616         }
4617     }
Max(&self) -> ::windows::runtime::Result<u32>4618     pub fn Max(&self) -> ::windows::runtime::Result<u32> {
4619         let this = &::windows::runtime::Interface::cast::<IIsoSpeedControl2>(self)?;
4620         unsafe {
4621             let mut result__: u32 = ::std::mem::zeroed();
4622             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
4623         }
4624     }
Step(&self) -> ::windows::runtime::Result<u32>4625     pub fn Step(&self) -> ::windows::runtime::Result<u32> {
4626         let this = &::windows::runtime::Interface::cast::<IIsoSpeedControl2>(self)?;
4627         unsafe {
4628             let mut result__: u32 = ::std::mem::zeroed();
4629             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
4630         }
4631     }
Value(&self) -> ::windows::runtime::Result<u32>4632     pub fn Value(&self) -> ::windows::runtime::Result<u32> {
4633         let this = &::windows::runtime::Interface::cast::<IIsoSpeedControl2>(self)?;
4634         unsafe {
4635             let mut result__: u32 = ::std::mem::zeroed();
4636             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
4637         }
4638     }
4639     #[cfg(feature = "Foundation")]
SetValueAsync(&self, isospeed: u32) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>4640     pub fn SetValueAsync(&self, isospeed: u32) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
4641         let this = &::windows::runtime::Interface::cast::<IIsoSpeedControl2>(self)?;
4642         unsafe {
4643             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
4644             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), isospeed, &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
4645         }
4646     }
Auto(&self) -> ::windows::runtime::Result<bool>4647     pub fn Auto(&self) -> ::windows::runtime::Result<bool> {
4648         let this = &::windows::runtime::Interface::cast::<IIsoSpeedControl2>(self)?;
4649         unsafe {
4650             let mut result__: bool = ::std::mem::zeroed();
4651             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
4652         }
4653     }
4654     #[cfg(feature = "Foundation")]
SetAutoAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>4655     pub fn SetAutoAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
4656         let this = &::windows::runtime::Interface::cast::<IIsoSpeedControl2>(self)?;
4657         unsafe {
4658             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
4659             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
4660         }
4661     }
4662 }
4663 unsafe impl ::windows::runtime::RuntimeType for IsoSpeedControl {
4664     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.IsoSpeedControl;{27b6c322-25ad-4f1b-aaab-524ab376ca33})");
4665 }
4666 unsafe impl ::windows::runtime::Interface for IsoSpeedControl {
4667     type Vtable = IIsoSpeedControl_abi;
4668     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(666288930, 9645, 20251, [170, 171, 82, 74, 179, 118, 202, 51]);
4669 }
4670 impl ::windows::runtime::RuntimeName for IsoSpeedControl {
4671     const NAME: &'static str = "Windows.Media.Devices.IsoSpeedControl";
4672 }
4673 impl ::std::convert::From<IsoSpeedControl> for ::windows::runtime::IUnknown {
from(value: IsoSpeedControl) -> Self4674     fn from(value: IsoSpeedControl) -> Self {
4675         unsafe { ::std::mem::transmute(value) }
4676     }
4677 }
4678 impl ::std::convert::From<&IsoSpeedControl> for ::windows::runtime::IUnknown {
from(value: &IsoSpeedControl) -> Self4679     fn from(value: &IsoSpeedControl) -> Self {
4680         ::std::convert::From::from(::std::clone::Clone::clone(value))
4681     }
4682 }
4683 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IsoSpeedControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4684     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4685         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4686     }
4687 }
4688 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IsoSpeedControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4689     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4690         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4691     }
4692 }
4693 impl ::std::convert::From<IsoSpeedControl> for ::windows::runtime::IInspectable {
from(value: IsoSpeedControl) -> Self4694     fn from(value: IsoSpeedControl) -> Self {
4695         value.0
4696     }
4697 }
4698 impl ::std::convert::From<&IsoSpeedControl> for ::windows::runtime::IInspectable {
from(value: &IsoSpeedControl) -> Self4699     fn from(value: &IsoSpeedControl) -> Self {
4700         value.0.clone()
4701     }
4702 }
4703 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for IsoSpeedControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>4704     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
4705         ::windows::runtime::Param::Owned(self.0)
4706     }
4707 }
4708 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a IsoSpeedControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>4709     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
4710         ::windows::runtime::Param::Borrowed(&self.0)
4711     }
4712 }
4713 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
4714 #[repr(transparent)]
4715 pub struct IsoSpeedPreset(pub i32);
4716 impl IsoSpeedPreset {
4717     pub const Auto: IsoSpeedPreset = IsoSpeedPreset(0i32);
4718     pub const Iso50: IsoSpeedPreset = IsoSpeedPreset(1i32);
4719     pub const Iso80: IsoSpeedPreset = IsoSpeedPreset(2i32);
4720     pub const Iso100: IsoSpeedPreset = IsoSpeedPreset(3i32);
4721     pub const Iso200: IsoSpeedPreset = IsoSpeedPreset(4i32);
4722     pub const Iso400: IsoSpeedPreset = IsoSpeedPreset(5i32);
4723     pub const Iso800: IsoSpeedPreset = IsoSpeedPreset(6i32);
4724     pub const Iso1600: IsoSpeedPreset = IsoSpeedPreset(7i32);
4725     pub const Iso3200: IsoSpeedPreset = IsoSpeedPreset(8i32);
4726     pub const Iso6400: IsoSpeedPreset = IsoSpeedPreset(9i32);
4727     pub const Iso12800: IsoSpeedPreset = IsoSpeedPreset(10i32);
4728     pub const Iso25600: IsoSpeedPreset = IsoSpeedPreset(11i32);
4729 }
4730 impl ::std::convert::From<i32> for IsoSpeedPreset {
from(value: i32) -> Self4731     fn from(value: i32) -> Self {
4732         Self(value)
4733     }
4734 }
4735 unsafe impl ::windows::runtime::Abi for IsoSpeedPreset {
4736     type Abi = Self;
4737     type DefaultType = Self;
4738 }
4739 unsafe impl ::windows::runtime::RuntimeType for IsoSpeedPreset {
4740     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Devices.IsoSpeedPreset;i4)");
4741 }
4742 #[repr(transparent)]
4743 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4744 pub struct KeypadPressedEventArgs(::windows::runtime::IInspectable);
4745 impl KeypadPressedEventArgs {
TelephonyKey(&self) -> ::windows::runtime::Result<TelephonyKey>4746     pub fn TelephonyKey(&self) -> ::windows::runtime::Result<TelephonyKey> {
4747         let this = self;
4748         unsafe {
4749             let mut result__: TelephonyKey = ::std::mem::zeroed();
4750             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<TelephonyKey>(result__)
4751         }
4752     }
4753 }
4754 unsafe impl ::windows::runtime::RuntimeType for KeypadPressedEventArgs {
4755     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.KeypadPressedEventArgs;{d3a43900-b4fa-49cd-9442-89af6568f601})");
4756 }
4757 unsafe impl ::windows::runtime::Interface for KeypadPressedEventArgs {
4758     type Vtable = IKeypadPressedEventArgs_abi;
4759     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3550755072, 46330, 18893, [148, 66, 137, 175, 101, 104, 246, 1]);
4760 }
4761 impl ::windows::runtime::RuntimeName for KeypadPressedEventArgs {
4762     const NAME: &'static str = "Windows.Media.Devices.KeypadPressedEventArgs";
4763 }
4764 impl ::std::convert::From<KeypadPressedEventArgs> for ::windows::runtime::IUnknown {
from(value: KeypadPressedEventArgs) -> Self4765     fn from(value: KeypadPressedEventArgs) -> Self {
4766         unsafe { ::std::mem::transmute(value) }
4767     }
4768 }
4769 impl ::std::convert::From<&KeypadPressedEventArgs> for ::windows::runtime::IUnknown {
from(value: &KeypadPressedEventArgs) -> Self4770     fn from(value: &KeypadPressedEventArgs) -> Self {
4771         ::std::convert::From::from(::std::clone::Clone::clone(value))
4772     }
4773 }
4774 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for KeypadPressedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4775     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4776         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4777     }
4778 }
4779 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &KeypadPressedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4780     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4781         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4782     }
4783 }
4784 impl ::std::convert::From<KeypadPressedEventArgs> for ::windows::runtime::IInspectable {
from(value: KeypadPressedEventArgs) -> Self4785     fn from(value: KeypadPressedEventArgs) -> Self {
4786         value.0
4787     }
4788 }
4789 impl ::std::convert::From<&KeypadPressedEventArgs> for ::windows::runtime::IInspectable {
from(value: &KeypadPressedEventArgs) -> Self4790     fn from(value: &KeypadPressedEventArgs) -> Self {
4791         value.0.clone()
4792     }
4793 }
4794 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for KeypadPressedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>4795     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
4796         ::windows::runtime::Param::Owned(self.0)
4797     }
4798 }
4799 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a KeypadPressedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>4800     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
4801         ::windows::runtime::Param::Borrowed(&self.0)
4802     }
4803 }
4804 unsafe impl ::std::marker::Send for KeypadPressedEventArgs {}
4805 unsafe impl ::std::marker::Sync for KeypadPressedEventArgs {}
4806 #[repr(transparent)]
4807 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4808 pub struct KeypadPressedEventHandler(::windows::runtime::IUnknown);
4809 impl KeypadPressedEventHandler {
new<F: FnMut(&::std::option::Option<CallControl>, &::std::option::Option<KeypadPressedEventArgs>) -> ::windows::runtime::Result<()> + 'static>(invoke: F) -> Self4810     pub fn new<F: FnMut(&::std::option::Option<CallControl>, &::std::option::Option<KeypadPressedEventArgs>) -> ::windows::runtime::Result<()> + 'static>(invoke: F) -> Self {
4811         let com = KeypadPressedEventHandler_box::<F> {
4812             vtable: &KeypadPressedEventHandler_box::<F>::VTABLE,
4813             count: ::windows::runtime::RefCount::new(1),
4814             invoke,
4815         };
4816         unsafe { std::mem::transmute(::std::boxed::Box::new(com)) }
4817     }
Invoke<'a, Param0: ::windows::runtime::IntoParam<'a, CallControl>, Param1: ::windows::runtime::IntoParam<'a, KeypadPressedEventArgs>>(&self, sender: Param0, e: Param1) -> ::windows::runtime::Result<()>4818     pub fn Invoke<'a, Param0: ::windows::runtime::IntoParam<'a, CallControl>, Param1: ::windows::runtime::IntoParam<'a, KeypadPressedEventArgs>>(&self, sender: Param0, e: Param1) -> ::windows::runtime::Result<()> {
4819         let this = self;
4820         unsafe { (::windows::runtime::Interface::vtable(this).3)(::std::mem::transmute_copy(this), sender.into_param().abi(), e.into_param().abi()).ok() }
4821     }
4822 }
4823 unsafe impl ::windows::runtime::RuntimeType for KeypadPressedEventHandler {
4824     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"delegate({e637a454-c527-422c-8926-c9af83b559a0})");
4825 }
4826 unsafe impl ::windows::runtime::Interface for KeypadPressedEventHandler {
4827     type Vtable = KeypadPressedEventHandler_abi;
4828     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3862406228, 50471, 16940, [137, 38, 201, 175, 131, 181, 89, 160]);
4829 }
4830 #[repr(C)]
4831 #[doc(hidden)]
4832 pub struct KeypadPressedEventHandler_abi(
4833     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4834     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4835     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4836     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, sender: ::windows::runtime::RawPtr, e: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4837 );
4838 #[repr(C)]
4839 struct KeypadPressedEventHandler_box<F: FnMut(&::std::option::Option<CallControl>, &::std::option::Option<KeypadPressedEventArgs>) -> ::windows::runtime::Result<()> + 'static> {
4840     vtable: *const KeypadPressedEventHandler_abi,
4841     invoke: F,
4842     count: ::windows::runtime::RefCount,
4843 }
4844 impl<F: FnMut(&::std::option::Option<CallControl>, &::std::option::Option<KeypadPressedEventArgs>) -> ::windows::runtime::Result<()> + 'static> KeypadPressedEventHandler_box<F> {
4845     const VTABLE: KeypadPressedEventHandler_abi = KeypadPressedEventHandler_abi(Self::QueryInterface, Self::AddRef, Self::Release, Self::Invoke);
QueryInterface(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT4846     unsafe extern "system" fn QueryInterface(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT {
4847         let this = this as *mut ::windows::runtime::RawPtr as *mut Self;
4848         *interface = if iid == &<KeypadPressedEventHandler as ::windows::runtime::Interface>::IID || iid == &<::windows::runtime::IUnknown as ::windows::runtime::Interface>::IID || iid == &<::windows::runtime::IAgileObject as ::windows::runtime::Interface>::IID {
4849             &mut (*this).vtable as *mut _ as _
4850         } else {
4851             ::std::ptr::null_mut()
4852         };
4853         if (*interface).is_null() {
4854             ::windows::runtime::HRESULT(0x8000_4002)
4855         } else {
4856             (*this).count.add_ref();
4857             ::windows::runtime::HRESULT(0)
4858         }
4859     }
AddRef(this: ::windows::runtime::RawPtr) -> u324860     unsafe extern "system" fn AddRef(this: ::windows::runtime::RawPtr) -> u32 {
4861         let this = this as *mut ::windows::runtime::RawPtr as *mut Self;
4862         (*this).count.add_ref()
4863     }
Release(this: ::windows::runtime::RawPtr) -> u324864     unsafe extern "system" fn Release(this: ::windows::runtime::RawPtr) -> u32 {
4865         let this = this as *mut ::windows::runtime::RawPtr as *mut Self;
4866         let remaining = (*this).count.release();
4867         if remaining == 0 {
4868             Box::from_raw(this);
4869         }
4870         remaining
4871     }
Invoke(this: ::windows::runtime::RawPtr, sender: ::windows::runtime::RawPtr, e: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT4872     unsafe extern "system" fn Invoke(this: ::windows::runtime::RawPtr, sender: ::windows::runtime::RawPtr, e: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT {
4873         let this = this as *mut ::windows::runtime::RawPtr as *mut Self;
4874         ((*this).invoke)(&*(&sender as *const <CallControl as ::windows::runtime::Abi>::Abi as *const <CallControl as ::windows::runtime::Abi>::DefaultType), &*(&e as *const <KeypadPressedEventArgs as ::windows::runtime::Abi>::Abi as *const <KeypadPressedEventArgs as ::windows::runtime::Abi>::DefaultType)).into()
4875     }
4876 }
4877 #[repr(transparent)]
4878 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4879 pub struct LowLagPhotoControl(::windows::runtime::IInspectable);
4880 impl LowLagPhotoControl {
4881     #[cfg(feature = "Media_MediaProperties")]
GetHighestConcurrentFrameRate<'a, Param0: ::windows::runtime::IntoParam<'a, super::MediaProperties::IMediaEncodingProperties>>(&self, captureproperties: Param0) -> ::windows::runtime::Result<super::MediaProperties::MediaRatio>4882     pub fn GetHighestConcurrentFrameRate<'a, Param0: ::windows::runtime::IntoParam<'a, super::MediaProperties::IMediaEncodingProperties>>(&self, captureproperties: Param0) -> ::windows::runtime::Result<super::MediaProperties::MediaRatio> {
4883         let this = self;
4884         unsafe {
4885             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
4886             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), captureproperties.into_param().abi(), &mut result__).from_abi::<super::MediaProperties::MediaRatio>(result__)
4887         }
4888     }
4889     #[cfg(feature = "Media_MediaProperties")]
GetCurrentFrameRate(&self) -> ::windows::runtime::Result<super::MediaProperties::MediaRatio>4890     pub fn GetCurrentFrameRate(&self) -> ::windows::runtime::Result<super::MediaProperties::MediaRatio> {
4891         let this = self;
4892         unsafe {
4893             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
4894             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::MediaProperties::MediaRatio>(result__)
4895         }
4896     }
ThumbnailEnabled(&self) -> ::windows::runtime::Result<bool>4897     pub fn ThumbnailEnabled(&self) -> ::windows::runtime::Result<bool> {
4898         let this = self;
4899         unsafe {
4900             let mut result__: bool = ::std::mem::zeroed();
4901             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
4902         }
4903     }
SetThumbnailEnabled(&self, value: bool) -> ::windows::runtime::Result<()>4904     pub fn SetThumbnailEnabled(&self, value: bool) -> ::windows::runtime::Result<()> {
4905         let this = self;
4906         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), value).ok() }
4907     }
4908     #[cfg(feature = "Media_MediaProperties")]
ThumbnailFormat(&self) -> ::windows::runtime::Result<super::MediaProperties::MediaThumbnailFormat>4909     pub fn ThumbnailFormat(&self) -> ::windows::runtime::Result<super::MediaProperties::MediaThumbnailFormat> {
4910         let this = self;
4911         unsafe {
4912             let mut result__: super::MediaProperties::MediaThumbnailFormat = ::std::mem::zeroed();
4913             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::MediaProperties::MediaThumbnailFormat>(result__)
4914         }
4915     }
4916     #[cfg(feature = "Media_MediaProperties")]
SetThumbnailFormat(&self, value: super::MediaProperties::MediaThumbnailFormat) -> ::windows::runtime::Result<()>4917     pub fn SetThumbnailFormat(&self, value: super::MediaProperties::MediaThumbnailFormat) -> ::windows::runtime::Result<()> {
4918         let this = self;
4919         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value).ok() }
4920     }
DesiredThumbnailSize(&self) -> ::windows::runtime::Result<u32>4921     pub fn DesiredThumbnailSize(&self) -> ::windows::runtime::Result<u32> {
4922         let this = self;
4923         unsafe {
4924             let mut result__: u32 = ::std::mem::zeroed();
4925             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
4926         }
4927     }
SetDesiredThumbnailSize(&self, value: u32) -> ::windows::runtime::Result<()>4928     pub fn SetDesiredThumbnailSize(&self, value: u32) -> ::windows::runtime::Result<()> {
4929         let this = self;
4930         unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), value).ok() }
4931     }
HardwareAcceleratedThumbnailSupported(&self) -> ::windows::runtime::Result<u32>4932     pub fn HardwareAcceleratedThumbnailSupported(&self) -> ::windows::runtime::Result<u32> {
4933         let this = self;
4934         unsafe {
4935             let mut result__: u32 = ::std::mem::zeroed();
4936             (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
4937         }
4938     }
4939 }
4940 unsafe impl ::windows::runtime::RuntimeType for LowLagPhotoControl {
4941     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.LowLagPhotoControl;{6d5c4dd0-fadf-415d-aee6-3baa529300c9})");
4942 }
4943 unsafe impl ::windows::runtime::Interface for LowLagPhotoControl {
4944     type Vtable = ILowLagPhotoControl_abi;
4945     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1834765776, 64223, 16733, [174, 230, 59, 170, 82, 147, 0, 201]);
4946 }
4947 impl ::windows::runtime::RuntimeName for LowLagPhotoControl {
4948     const NAME: &'static str = "Windows.Media.Devices.LowLagPhotoControl";
4949 }
4950 impl ::std::convert::From<LowLagPhotoControl> for ::windows::runtime::IUnknown {
from(value: LowLagPhotoControl) -> Self4951     fn from(value: LowLagPhotoControl) -> Self {
4952         unsafe { ::std::mem::transmute(value) }
4953     }
4954 }
4955 impl ::std::convert::From<&LowLagPhotoControl> for ::windows::runtime::IUnknown {
from(value: &LowLagPhotoControl) -> Self4956     fn from(value: &LowLagPhotoControl) -> Self {
4957         ::std::convert::From::from(::std::clone::Clone::clone(value))
4958     }
4959 }
4960 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for LowLagPhotoControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4961     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4962         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4963     }
4964 }
4965 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &LowLagPhotoControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4966     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4967         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4968     }
4969 }
4970 impl ::std::convert::From<LowLagPhotoControl> for ::windows::runtime::IInspectable {
from(value: LowLagPhotoControl) -> Self4971     fn from(value: LowLagPhotoControl) -> Self {
4972         value.0
4973     }
4974 }
4975 impl ::std::convert::From<&LowLagPhotoControl> for ::windows::runtime::IInspectable {
from(value: &LowLagPhotoControl) -> Self4976     fn from(value: &LowLagPhotoControl) -> Self {
4977         value.0.clone()
4978     }
4979 }
4980 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for LowLagPhotoControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>4981     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
4982         ::windows::runtime::Param::Owned(self.0)
4983     }
4984 }
4985 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a LowLagPhotoControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>4986     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
4987         ::windows::runtime::Param::Borrowed(&self.0)
4988     }
4989 }
4990 #[repr(transparent)]
4991 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4992 pub struct LowLagPhotoSequenceControl(::windows::runtime::IInspectable);
4993 impl LowLagPhotoSequenceControl {
Supported(&self) -> ::windows::runtime::Result<bool>4994     pub fn Supported(&self) -> ::windows::runtime::Result<bool> {
4995         let this = self;
4996         unsafe {
4997             let mut result__: bool = ::std::mem::zeroed();
4998             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
4999         }
5000     }
MaxPastPhotos(&self) -> ::windows::runtime::Result<u32>5001     pub fn MaxPastPhotos(&self) -> ::windows::runtime::Result<u32> {
5002         let this = self;
5003         unsafe {
5004             let mut result__: u32 = ::std::mem::zeroed();
5005             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
5006         }
5007     }
MaxPhotosPerSecond(&self) -> ::windows::runtime::Result<f32>5008     pub fn MaxPhotosPerSecond(&self) -> ::windows::runtime::Result<f32> {
5009         let this = self;
5010         unsafe {
5011             let mut result__: f32 = ::std::mem::zeroed();
5012             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f32>(result__)
5013         }
5014     }
PastPhotoLimit(&self) -> ::windows::runtime::Result<u32>5015     pub fn PastPhotoLimit(&self) -> ::windows::runtime::Result<u32> {
5016         let this = self;
5017         unsafe {
5018             let mut result__: u32 = ::std::mem::zeroed();
5019             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
5020         }
5021     }
SetPastPhotoLimit(&self, value: u32) -> ::windows::runtime::Result<()>5022     pub fn SetPastPhotoLimit(&self, value: u32) -> ::windows::runtime::Result<()> {
5023         let this = self;
5024         unsafe { (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), value).ok() }
5025     }
PhotosPerSecondLimit(&self) -> ::windows::runtime::Result<f32>5026     pub fn PhotosPerSecondLimit(&self) -> ::windows::runtime::Result<f32> {
5027         let this = self;
5028         unsafe {
5029             let mut result__: f32 = ::std::mem::zeroed();
5030             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f32>(result__)
5031         }
5032     }
SetPhotosPerSecondLimit(&self, value: f32) -> ::windows::runtime::Result<()>5033     pub fn SetPhotosPerSecondLimit(&self, value: f32) -> ::windows::runtime::Result<()> {
5034         let this = self;
5035         unsafe { (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), value).ok() }
5036     }
5037     #[cfg(feature = "Media_MediaProperties")]
GetHighestConcurrentFrameRate<'a, Param0: ::windows::runtime::IntoParam<'a, super::MediaProperties::IMediaEncodingProperties>>(&self, captureproperties: Param0) -> ::windows::runtime::Result<super::MediaProperties::MediaRatio>5038     pub fn GetHighestConcurrentFrameRate<'a, Param0: ::windows::runtime::IntoParam<'a, super::MediaProperties::IMediaEncodingProperties>>(&self, captureproperties: Param0) -> ::windows::runtime::Result<super::MediaProperties::MediaRatio> {
5039         let this = self;
5040         unsafe {
5041             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
5042             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), captureproperties.into_param().abi(), &mut result__).from_abi::<super::MediaProperties::MediaRatio>(result__)
5043         }
5044     }
5045     #[cfg(feature = "Media_MediaProperties")]
GetCurrentFrameRate(&self) -> ::windows::runtime::Result<super::MediaProperties::MediaRatio>5046     pub fn GetCurrentFrameRate(&self) -> ::windows::runtime::Result<super::MediaProperties::MediaRatio> {
5047         let this = self;
5048         unsafe {
5049             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
5050             (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::MediaProperties::MediaRatio>(result__)
5051         }
5052     }
ThumbnailEnabled(&self) -> ::windows::runtime::Result<bool>5053     pub fn ThumbnailEnabled(&self) -> ::windows::runtime::Result<bool> {
5054         let this = self;
5055         unsafe {
5056             let mut result__: bool = ::std::mem::zeroed();
5057             (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
5058         }
5059     }
SetThumbnailEnabled(&self, value: bool) -> ::windows::runtime::Result<()>5060     pub fn SetThumbnailEnabled(&self, value: bool) -> ::windows::runtime::Result<()> {
5061         let this = self;
5062         unsafe { (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), value).ok() }
5063     }
5064     #[cfg(feature = "Media_MediaProperties")]
ThumbnailFormat(&self) -> ::windows::runtime::Result<super::MediaProperties::MediaThumbnailFormat>5065     pub fn ThumbnailFormat(&self) -> ::windows::runtime::Result<super::MediaProperties::MediaThumbnailFormat> {
5066         let this = self;
5067         unsafe {
5068             let mut result__: super::MediaProperties::MediaThumbnailFormat = ::std::mem::zeroed();
5069             (::windows::runtime::Interface::vtable(this).17)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::MediaProperties::MediaThumbnailFormat>(result__)
5070         }
5071     }
5072     #[cfg(feature = "Media_MediaProperties")]
SetThumbnailFormat(&self, value: super::MediaProperties::MediaThumbnailFormat) -> ::windows::runtime::Result<()>5073     pub fn SetThumbnailFormat(&self, value: super::MediaProperties::MediaThumbnailFormat) -> ::windows::runtime::Result<()> {
5074         let this = self;
5075         unsafe { (::windows::runtime::Interface::vtable(this).18)(::std::mem::transmute_copy(this), value).ok() }
5076     }
DesiredThumbnailSize(&self) -> ::windows::runtime::Result<u32>5077     pub fn DesiredThumbnailSize(&self) -> ::windows::runtime::Result<u32> {
5078         let this = self;
5079         unsafe {
5080             let mut result__: u32 = ::std::mem::zeroed();
5081             (::windows::runtime::Interface::vtable(this).19)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
5082         }
5083     }
SetDesiredThumbnailSize(&self, value: u32) -> ::windows::runtime::Result<()>5084     pub fn SetDesiredThumbnailSize(&self, value: u32) -> ::windows::runtime::Result<()> {
5085         let this = self;
5086         unsafe { (::windows::runtime::Interface::vtable(this).20)(::std::mem::transmute_copy(this), value).ok() }
5087     }
HardwareAcceleratedThumbnailSupported(&self) -> ::windows::runtime::Result<u32>5088     pub fn HardwareAcceleratedThumbnailSupported(&self) -> ::windows::runtime::Result<u32> {
5089         let this = self;
5090         unsafe {
5091             let mut result__: u32 = ::std::mem::zeroed();
5092             (::windows::runtime::Interface::vtable(this).21)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
5093         }
5094     }
5095 }
5096 unsafe impl ::windows::runtime::RuntimeType for LowLagPhotoSequenceControl {
5097     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.LowLagPhotoSequenceControl;{3dcf909d-6d16-409c-bafe-b9a594c6fde6})");
5098 }
5099 unsafe impl ::windows::runtime::Interface for LowLagPhotoSequenceControl {
5100     type Vtable = ILowLagPhotoSequenceControl_abi;
5101     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1037013149, 27926, 16540, [186, 254, 185, 165, 148, 198, 253, 230]);
5102 }
5103 impl ::windows::runtime::RuntimeName for LowLagPhotoSequenceControl {
5104     const NAME: &'static str = "Windows.Media.Devices.LowLagPhotoSequenceControl";
5105 }
5106 impl ::std::convert::From<LowLagPhotoSequenceControl> for ::windows::runtime::IUnknown {
from(value: LowLagPhotoSequenceControl) -> Self5107     fn from(value: LowLagPhotoSequenceControl) -> Self {
5108         unsafe { ::std::mem::transmute(value) }
5109     }
5110 }
5111 impl ::std::convert::From<&LowLagPhotoSequenceControl> for ::windows::runtime::IUnknown {
from(value: &LowLagPhotoSequenceControl) -> Self5112     fn from(value: &LowLagPhotoSequenceControl) -> Self {
5113         ::std::convert::From::from(::std::clone::Clone::clone(value))
5114     }
5115 }
5116 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for LowLagPhotoSequenceControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5117     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5118         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
5119     }
5120 }
5121 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &LowLagPhotoSequenceControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5122     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5123         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
5124     }
5125 }
5126 impl ::std::convert::From<LowLagPhotoSequenceControl> for ::windows::runtime::IInspectable {
from(value: LowLagPhotoSequenceControl) -> Self5127     fn from(value: LowLagPhotoSequenceControl) -> Self {
5128         value.0
5129     }
5130 }
5131 impl ::std::convert::From<&LowLagPhotoSequenceControl> for ::windows::runtime::IInspectable {
from(value: &LowLagPhotoSequenceControl) -> Self5132     fn from(value: &LowLagPhotoSequenceControl) -> Self {
5133         value.0.clone()
5134     }
5135 }
5136 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for LowLagPhotoSequenceControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>5137     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
5138         ::windows::runtime::Param::Owned(self.0)
5139     }
5140 }
5141 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a LowLagPhotoSequenceControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>5142     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
5143         ::windows::runtime::Param::Borrowed(&self.0)
5144     }
5145 }
5146 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
5147 #[repr(transparent)]
5148 pub struct ManualFocusDistance(pub i32);
5149 impl ManualFocusDistance {
5150     pub const Infinity: ManualFocusDistance = ManualFocusDistance(0i32);
5151     pub const Hyperfocal: ManualFocusDistance = ManualFocusDistance(1i32);
5152     pub const Nearest: ManualFocusDistance = ManualFocusDistance(2i32);
5153 }
5154 impl ::std::convert::From<i32> for ManualFocusDistance {
from(value: i32) -> Self5155     fn from(value: i32) -> Self {
5156         Self(value)
5157     }
5158 }
5159 unsafe impl ::windows::runtime::Abi for ManualFocusDistance {
5160     type Abi = Self;
5161     type DefaultType = Self;
5162 }
5163 unsafe impl ::windows::runtime::RuntimeType for ManualFocusDistance {
5164     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Devices.ManualFocusDistance;i4)");
5165 }
5166 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
5167 #[repr(transparent)]
5168 pub struct MediaCaptureFocusState(pub i32);
5169 impl MediaCaptureFocusState {
5170     pub const Uninitialized: MediaCaptureFocusState = MediaCaptureFocusState(0i32);
5171     pub const Lost: MediaCaptureFocusState = MediaCaptureFocusState(1i32);
5172     pub const Searching: MediaCaptureFocusState = MediaCaptureFocusState(2i32);
5173     pub const Focused: MediaCaptureFocusState = MediaCaptureFocusState(3i32);
5174     pub const Failed: MediaCaptureFocusState = MediaCaptureFocusState(4i32);
5175 }
5176 impl ::std::convert::From<i32> for MediaCaptureFocusState {
from(value: i32) -> Self5177     fn from(value: i32) -> Self {
5178         Self(value)
5179     }
5180 }
5181 unsafe impl ::windows::runtime::Abi for MediaCaptureFocusState {
5182     type Abi = Self;
5183     type DefaultType = Self;
5184 }
5185 unsafe impl ::windows::runtime::RuntimeType for MediaCaptureFocusState {
5186     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Devices.MediaCaptureFocusState;i4)");
5187 }
5188 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
5189 #[repr(transparent)]
5190 pub struct MediaCaptureOptimization(pub i32);
5191 impl MediaCaptureOptimization {
5192     pub const Default: MediaCaptureOptimization = MediaCaptureOptimization(0i32);
5193     pub const Quality: MediaCaptureOptimization = MediaCaptureOptimization(1i32);
5194     pub const Latency: MediaCaptureOptimization = MediaCaptureOptimization(2i32);
5195     pub const Power: MediaCaptureOptimization = MediaCaptureOptimization(3i32);
5196     pub const LatencyThenQuality: MediaCaptureOptimization = MediaCaptureOptimization(4i32);
5197     pub const LatencyThenPower: MediaCaptureOptimization = MediaCaptureOptimization(5i32);
5198     pub const PowerAndQuality: MediaCaptureOptimization = MediaCaptureOptimization(6i32);
5199 }
5200 impl ::std::convert::From<i32> for MediaCaptureOptimization {
from(value: i32) -> Self5201     fn from(value: i32) -> Self {
5202         Self(value)
5203     }
5204 }
5205 unsafe impl ::windows::runtime::Abi for MediaCaptureOptimization {
5206     type Abi = Self;
5207     type DefaultType = Self;
5208 }
5209 unsafe impl ::windows::runtime::RuntimeType for MediaCaptureOptimization {
5210     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Devices.MediaCaptureOptimization;i4)");
5211 }
5212 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
5213 #[repr(transparent)]
5214 pub struct MediaCapturePauseBehavior(pub i32);
5215 impl MediaCapturePauseBehavior {
5216     pub const RetainHardwareResources: MediaCapturePauseBehavior = MediaCapturePauseBehavior(0i32);
5217     pub const ReleaseHardwareResources: MediaCapturePauseBehavior = MediaCapturePauseBehavior(1i32);
5218 }
5219 impl ::std::convert::From<i32> for MediaCapturePauseBehavior {
from(value: i32) -> Self5220     fn from(value: i32) -> Self {
5221         Self(value)
5222     }
5223 }
5224 unsafe impl ::windows::runtime::Abi for MediaCapturePauseBehavior {
5225     type Abi = Self;
5226     type DefaultType = Self;
5227 }
5228 unsafe impl ::windows::runtime::RuntimeType for MediaCapturePauseBehavior {
5229     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Devices.MediaCapturePauseBehavior;i4)");
5230 }
5231 pub struct MediaDevice {}
5232 impl MediaDevice {
GetAudioCaptureSelector() -> ::windows::runtime::Result<::windows::runtime::HSTRING>5233     pub fn GetAudioCaptureSelector() -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
5234         Self::IMediaDeviceStatics(|this| unsafe {
5235             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
5236             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
5237         })
5238     }
GetAudioRenderSelector() -> ::windows::runtime::Result<::windows::runtime::HSTRING>5239     pub fn GetAudioRenderSelector() -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
5240         Self::IMediaDeviceStatics(|this| unsafe {
5241             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
5242             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
5243         })
5244     }
GetVideoCaptureSelector() -> ::windows::runtime::Result<::windows::runtime::HSTRING>5245     pub fn GetVideoCaptureSelector() -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
5246         Self::IMediaDeviceStatics(|this| unsafe {
5247             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
5248             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
5249         })
5250     }
GetDefaultAudioCaptureId(role: AudioDeviceRole) -> ::windows::runtime::Result<::windows::runtime::HSTRING>5251     pub fn GetDefaultAudioCaptureId(role: AudioDeviceRole) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
5252         Self::IMediaDeviceStatics(|this| unsafe {
5253             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
5254             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), role, &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
5255         })
5256     }
GetDefaultAudioRenderId(role: AudioDeviceRole) -> ::windows::runtime::Result<::windows::runtime::HSTRING>5257     pub fn GetDefaultAudioRenderId(role: AudioDeviceRole) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
5258         Self::IMediaDeviceStatics(|this| unsafe {
5259             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
5260             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), role, &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
5261         })
5262     }
5263     #[cfg(feature = "Foundation")]
DefaultAudioCaptureDeviceChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<::windows::runtime::IInspectable, DefaultAudioCaptureDeviceChangedEventArgs>>>(handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken>5264     pub fn DefaultAudioCaptureDeviceChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<::windows::runtime::IInspectable, DefaultAudioCaptureDeviceChangedEventArgs>>>(handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken> {
5265         Self::IMediaDeviceStatics(|this| unsafe {
5266             let mut result__: super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
5267             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::EventRegistrationToken>(result__)
5268         })
5269     }
5270     #[cfg(feature = "Foundation")]
RemoveDefaultAudioCaptureDeviceChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(cookie: Param0) -> ::windows::runtime::Result<()>5271     pub fn RemoveDefaultAudioCaptureDeviceChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(cookie: Param0) -> ::windows::runtime::Result<()> {
5272         Self::IMediaDeviceStatics(|this| unsafe { (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), cookie.into_param().abi()).ok() })
5273     }
5274     #[cfg(feature = "Foundation")]
DefaultAudioRenderDeviceChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<::windows::runtime::IInspectable, DefaultAudioRenderDeviceChangedEventArgs>>>(handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken>5275     pub fn DefaultAudioRenderDeviceChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<::windows::runtime::IInspectable, DefaultAudioRenderDeviceChangedEventArgs>>>(handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken> {
5276         Self::IMediaDeviceStatics(|this| unsafe {
5277             let mut result__: super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
5278             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::EventRegistrationToken>(result__)
5279         })
5280     }
5281     #[cfg(feature = "Foundation")]
RemoveDefaultAudioRenderDeviceChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(cookie: Param0) -> ::windows::runtime::Result<()>5282     pub fn RemoveDefaultAudioRenderDeviceChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(cookie: Param0) -> ::windows::runtime::Result<()> {
5283         Self::IMediaDeviceStatics(|this| unsafe { (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), cookie.into_param().abi()).ok() })
5284     }
IMediaDeviceStatics<R, F: FnOnce(&IMediaDeviceStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>5285     pub fn IMediaDeviceStatics<R, F: FnOnce(&IMediaDeviceStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
5286         static mut SHARED: ::windows::runtime::FactoryCache<MediaDevice, IMediaDeviceStatics> = ::windows::runtime::FactoryCache::new();
5287         unsafe { SHARED.call(callback) }
5288     }
5289 }
5290 impl ::windows::runtime::RuntimeName for MediaDevice {
5291     const NAME: &'static str = "Windows.Media.Devices.MediaDevice";
5292 }
5293 #[repr(transparent)]
5294 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
5295 pub struct MediaDeviceControl(::windows::runtime::IInspectable);
5296 impl MediaDeviceControl {
Capabilities(&self) -> ::windows::runtime::Result<MediaDeviceControlCapabilities>5297     pub fn Capabilities(&self) -> ::windows::runtime::Result<MediaDeviceControlCapabilities> {
5298         let this = self;
5299         unsafe {
5300             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
5301             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<MediaDeviceControlCapabilities>(result__)
5302         }
5303     }
TryGetValue(&self, value: &mut f64) -> ::windows::runtime::Result<bool>5304     pub fn TryGetValue(&self, value: &mut f64) -> ::windows::runtime::Result<bool> {
5305         let this = self;
5306         unsafe {
5307             let mut result__: bool = ::std::mem::zeroed();
5308             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value, &mut result__).from_abi::<bool>(result__)
5309         }
5310     }
TrySetValue(&self, value: f64) -> ::windows::runtime::Result<bool>5311     pub fn TrySetValue(&self, value: f64) -> ::windows::runtime::Result<bool> {
5312         let this = self;
5313         unsafe {
5314             let mut result__: bool = ::std::mem::zeroed();
5315             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), value, &mut result__).from_abi::<bool>(result__)
5316         }
5317     }
TryGetAuto(&self, value: &mut bool) -> ::windows::runtime::Result<bool>5318     pub fn TryGetAuto(&self, value: &mut bool) -> ::windows::runtime::Result<bool> {
5319         let this = self;
5320         unsafe {
5321             let mut result__: bool = ::std::mem::zeroed();
5322             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), value, &mut result__).from_abi::<bool>(result__)
5323         }
5324     }
TrySetAuto(&self, value: bool) -> ::windows::runtime::Result<bool>5325     pub fn TrySetAuto(&self, value: bool) -> ::windows::runtime::Result<bool> {
5326         let this = self;
5327         unsafe {
5328             let mut result__: bool = ::std::mem::zeroed();
5329             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), value, &mut result__).from_abi::<bool>(result__)
5330         }
5331     }
5332 }
5333 unsafe impl ::windows::runtime::RuntimeType for MediaDeviceControl {
5334     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.MediaDeviceControl;{efa8dfa9-6f75-4863-ba0b-583f3036b4de})");
5335 }
5336 unsafe impl ::windows::runtime::Interface for MediaDeviceControl {
5337     type Vtable = IMediaDeviceControl_abi;
5338     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4020821929, 28533, 18531, [186, 11, 88, 63, 48, 54, 180, 222]);
5339 }
5340 impl ::windows::runtime::RuntimeName for MediaDeviceControl {
5341     const NAME: &'static str = "Windows.Media.Devices.MediaDeviceControl";
5342 }
5343 impl ::std::convert::From<MediaDeviceControl> for ::windows::runtime::IUnknown {
from(value: MediaDeviceControl) -> Self5344     fn from(value: MediaDeviceControl) -> Self {
5345         unsafe { ::std::mem::transmute(value) }
5346     }
5347 }
5348 impl ::std::convert::From<&MediaDeviceControl> for ::windows::runtime::IUnknown {
from(value: &MediaDeviceControl) -> Self5349     fn from(value: &MediaDeviceControl) -> Self {
5350         ::std::convert::From::from(::std::clone::Clone::clone(value))
5351     }
5352 }
5353 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for MediaDeviceControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5354     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5355         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
5356     }
5357 }
5358 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &MediaDeviceControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5359     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5360         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
5361     }
5362 }
5363 impl ::std::convert::From<MediaDeviceControl> for ::windows::runtime::IInspectable {
from(value: MediaDeviceControl) -> Self5364     fn from(value: MediaDeviceControl) -> Self {
5365         value.0
5366     }
5367 }
5368 impl ::std::convert::From<&MediaDeviceControl> for ::windows::runtime::IInspectable {
from(value: &MediaDeviceControl) -> Self5369     fn from(value: &MediaDeviceControl) -> Self {
5370         value.0.clone()
5371     }
5372 }
5373 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for MediaDeviceControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>5374     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
5375         ::windows::runtime::Param::Owned(self.0)
5376     }
5377 }
5378 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a MediaDeviceControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>5379     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
5380         ::windows::runtime::Param::Borrowed(&self.0)
5381     }
5382 }
5383 #[repr(transparent)]
5384 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
5385 pub struct MediaDeviceControlCapabilities(::windows::runtime::IInspectable);
5386 impl MediaDeviceControlCapabilities {
Supported(&self) -> ::windows::runtime::Result<bool>5387     pub fn Supported(&self) -> ::windows::runtime::Result<bool> {
5388         let this = self;
5389         unsafe {
5390             let mut result__: bool = ::std::mem::zeroed();
5391             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
5392         }
5393     }
Min(&self) -> ::windows::runtime::Result<f64>5394     pub fn Min(&self) -> ::windows::runtime::Result<f64> {
5395         let this = self;
5396         unsafe {
5397             let mut result__: f64 = ::std::mem::zeroed();
5398             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
5399         }
5400     }
Max(&self) -> ::windows::runtime::Result<f64>5401     pub fn Max(&self) -> ::windows::runtime::Result<f64> {
5402         let this = self;
5403         unsafe {
5404             let mut result__: f64 = ::std::mem::zeroed();
5405             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
5406         }
5407     }
Step(&self) -> ::windows::runtime::Result<f64>5408     pub fn Step(&self) -> ::windows::runtime::Result<f64> {
5409         let this = self;
5410         unsafe {
5411             let mut result__: f64 = ::std::mem::zeroed();
5412             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
5413         }
5414     }
Default(&self) -> ::windows::runtime::Result<f64>5415     pub fn Default(&self) -> ::windows::runtime::Result<f64> {
5416         let this = self;
5417         unsafe {
5418             let mut result__: f64 = ::std::mem::zeroed();
5419             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
5420         }
5421     }
AutoModeSupported(&self) -> ::windows::runtime::Result<bool>5422     pub fn AutoModeSupported(&self) -> ::windows::runtime::Result<bool> {
5423         let this = self;
5424         unsafe {
5425             let mut result__: bool = ::std::mem::zeroed();
5426             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
5427         }
5428     }
5429 }
5430 unsafe impl ::windows::runtime::RuntimeType for MediaDeviceControlCapabilities {
5431     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.MediaDeviceControlCapabilities;{23005816-eb85-43e2-b92b-8240d5ee70ec})");
5432 }
5433 unsafe impl ::windows::runtime::Interface for MediaDeviceControlCapabilities {
5434     type Vtable = IMediaDeviceControlCapabilities_abi;
5435     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(587225110, 60293, 17378, [185, 43, 130, 64, 213, 238, 112, 236]);
5436 }
5437 impl ::windows::runtime::RuntimeName for MediaDeviceControlCapabilities {
5438     const NAME: &'static str = "Windows.Media.Devices.MediaDeviceControlCapabilities";
5439 }
5440 impl ::std::convert::From<MediaDeviceControlCapabilities> for ::windows::runtime::IUnknown {
from(value: MediaDeviceControlCapabilities) -> Self5441     fn from(value: MediaDeviceControlCapabilities) -> Self {
5442         unsafe { ::std::mem::transmute(value) }
5443     }
5444 }
5445 impl ::std::convert::From<&MediaDeviceControlCapabilities> for ::windows::runtime::IUnknown {
from(value: &MediaDeviceControlCapabilities) -> Self5446     fn from(value: &MediaDeviceControlCapabilities) -> Self {
5447         ::std::convert::From::from(::std::clone::Clone::clone(value))
5448     }
5449 }
5450 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for MediaDeviceControlCapabilities {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5451     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5452         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
5453     }
5454 }
5455 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &MediaDeviceControlCapabilities {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5456     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5457         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
5458     }
5459 }
5460 impl ::std::convert::From<MediaDeviceControlCapabilities> for ::windows::runtime::IInspectable {
from(value: MediaDeviceControlCapabilities) -> Self5461     fn from(value: MediaDeviceControlCapabilities) -> Self {
5462         value.0
5463     }
5464 }
5465 impl ::std::convert::From<&MediaDeviceControlCapabilities> for ::windows::runtime::IInspectable {
from(value: &MediaDeviceControlCapabilities) -> Self5466     fn from(value: &MediaDeviceControlCapabilities) -> Self {
5467         value.0.clone()
5468     }
5469 }
5470 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for MediaDeviceControlCapabilities {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>5471     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
5472         ::windows::runtime::Param::Owned(self.0)
5473     }
5474 }
5475 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a MediaDeviceControlCapabilities {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>5476     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
5477         ::windows::runtime::Param::Borrowed(&self.0)
5478     }
5479 }
5480 #[repr(transparent)]
5481 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
5482 pub struct ModuleCommandResult(::windows::runtime::IInspectable);
5483 impl ModuleCommandResult {
Status(&self) -> ::windows::runtime::Result<SendCommandStatus>5484     pub fn Status(&self) -> ::windows::runtime::Result<SendCommandStatus> {
5485         let this = self;
5486         unsafe {
5487             let mut result__: SendCommandStatus = ::std::mem::zeroed();
5488             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<SendCommandStatus>(result__)
5489         }
5490     }
5491     #[cfg(feature = "Storage_Streams")]
Result(&self) -> ::windows::runtime::Result<super::super::Storage::Streams::IBuffer>5492     pub fn Result(&self) -> ::windows::runtime::Result<super::super::Storage::Streams::IBuffer> {
5493         let this = self;
5494         unsafe {
5495             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
5496             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Storage::Streams::IBuffer>(result__)
5497         }
5498     }
5499 }
5500 unsafe impl ::windows::runtime::RuntimeType for ModuleCommandResult {
5501     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.ModuleCommandResult;{520d1eb4-1374-4c7d-b1e4-39dcdf3eae4e})");
5502 }
5503 unsafe impl ::windows::runtime::Interface for ModuleCommandResult {
5504     type Vtable = IModuleCommandResult_abi;
5505     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1376591540, 4980, 19581, [177, 228, 57, 220, 223, 62, 174, 78]);
5506 }
5507 impl ::windows::runtime::RuntimeName for ModuleCommandResult {
5508     const NAME: &'static str = "Windows.Media.Devices.ModuleCommandResult";
5509 }
5510 impl ::std::convert::From<ModuleCommandResult> for ::windows::runtime::IUnknown {
from(value: ModuleCommandResult) -> Self5511     fn from(value: ModuleCommandResult) -> Self {
5512         unsafe { ::std::mem::transmute(value) }
5513     }
5514 }
5515 impl ::std::convert::From<&ModuleCommandResult> for ::windows::runtime::IUnknown {
from(value: &ModuleCommandResult) -> Self5516     fn from(value: &ModuleCommandResult) -> Self {
5517         ::std::convert::From::from(::std::clone::Clone::clone(value))
5518     }
5519 }
5520 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for ModuleCommandResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5521     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5522         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
5523     }
5524 }
5525 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &ModuleCommandResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5526     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5527         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
5528     }
5529 }
5530 impl ::std::convert::From<ModuleCommandResult> for ::windows::runtime::IInspectable {
from(value: ModuleCommandResult) -> Self5531     fn from(value: ModuleCommandResult) -> Self {
5532         value.0
5533     }
5534 }
5535 impl ::std::convert::From<&ModuleCommandResult> for ::windows::runtime::IInspectable {
from(value: &ModuleCommandResult) -> Self5536     fn from(value: &ModuleCommandResult) -> Self {
5537         value.0.clone()
5538     }
5539 }
5540 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for ModuleCommandResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>5541     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
5542         ::windows::runtime::Param::Owned(self.0)
5543     }
5544 }
5545 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a ModuleCommandResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>5546     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
5547         ::windows::runtime::Param::Borrowed(&self.0)
5548     }
5549 }
5550 #[repr(transparent)]
5551 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
5552 pub struct OpticalImageStabilizationControl(::windows::runtime::IInspectable);
5553 impl OpticalImageStabilizationControl {
Supported(&self) -> ::windows::runtime::Result<bool>5554     pub fn Supported(&self) -> ::windows::runtime::Result<bool> {
5555         let this = self;
5556         unsafe {
5557             let mut result__: bool = ::std::mem::zeroed();
5558             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
5559         }
5560     }
5561     #[cfg(feature = "Foundation_Collections")]
SupportedModes(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<OpticalImageStabilizationMode>>5562     pub fn SupportedModes(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<OpticalImageStabilizationMode>> {
5563         let this = self;
5564         unsafe {
5565             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
5566             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<OpticalImageStabilizationMode>>(result__)
5567         }
5568     }
Mode(&self) -> ::windows::runtime::Result<OpticalImageStabilizationMode>5569     pub fn Mode(&self) -> ::windows::runtime::Result<OpticalImageStabilizationMode> {
5570         let this = self;
5571         unsafe {
5572             let mut result__: OpticalImageStabilizationMode = ::std::mem::zeroed();
5573             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<OpticalImageStabilizationMode>(result__)
5574         }
5575     }
SetMode(&self, value: OpticalImageStabilizationMode) -> ::windows::runtime::Result<()>5576     pub fn SetMode(&self, value: OpticalImageStabilizationMode) -> ::windows::runtime::Result<()> {
5577         let this = self;
5578         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), value).ok() }
5579     }
5580 }
5581 unsafe impl ::windows::runtime::RuntimeType for OpticalImageStabilizationControl {
5582     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.OpticalImageStabilizationControl;{bfad9c1d-00bc-423b-8eb2-a0178ca94247})");
5583 }
5584 unsafe impl ::windows::runtime::Interface for OpticalImageStabilizationControl {
5585     type Vtable = IOpticalImageStabilizationControl_abi;
5586     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3215825949, 188, 16955, [142, 178, 160, 23, 140, 169, 66, 71]);
5587 }
5588 impl ::windows::runtime::RuntimeName for OpticalImageStabilizationControl {
5589     const NAME: &'static str = "Windows.Media.Devices.OpticalImageStabilizationControl";
5590 }
5591 impl ::std::convert::From<OpticalImageStabilizationControl> for ::windows::runtime::IUnknown {
from(value: OpticalImageStabilizationControl) -> Self5592     fn from(value: OpticalImageStabilizationControl) -> Self {
5593         unsafe { ::std::mem::transmute(value) }
5594     }
5595 }
5596 impl ::std::convert::From<&OpticalImageStabilizationControl> for ::windows::runtime::IUnknown {
from(value: &OpticalImageStabilizationControl) -> Self5597     fn from(value: &OpticalImageStabilizationControl) -> Self {
5598         ::std::convert::From::from(::std::clone::Clone::clone(value))
5599     }
5600 }
5601 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for OpticalImageStabilizationControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5602     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5603         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
5604     }
5605 }
5606 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &OpticalImageStabilizationControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5607     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5608         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
5609     }
5610 }
5611 impl ::std::convert::From<OpticalImageStabilizationControl> for ::windows::runtime::IInspectable {
from(value: OpticalImageStabilizationControl) -> Self5612     fn from(value: OpticalImageStabilizationControl) -> Self {
5613         value.0
5614     }
5615 }
5616 impl ::std::convert::From<&OpticalImageStabilizationControl> for ::windows::runtime::IInspectable {
from(value: &OpticalImageStabilizationControl) -> Self5617     fn from(value: &OpticalImageStabilizationControl) -> Self {
5618         value.0.clone()
5619     }
5620 }
5621 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for OpticalImageStabilizationControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>5622     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
5623         ::windows::runtime::Param::Owned(self.0)
5624     }
5625 }
5626 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a OpticalImageStabilizationControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>5627     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
5628         ::windows::runtime::Param::Borrowed(&self.0)
5629     }
5630 }
5631 unsafe impl ::std::marker::Send for OpticalImageStabilizationControl {}
5632 unsafe impl ::std::marker::Sync for OpticalImageStabilizationControl {}
5633 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
5634 #[repr(transparent)]
5635 pub struct OpticalImageStabilizationMode(pub i32);
5636 impl OpticalImageStabilizationMode {
5637     pub const Off: OpticalImageStabilizationMode = OpticalImageStabilizationMode(0i32);
5638     pub const On: OpticalImageStabilizationMode = OpticalImageStabilizationMode(1i32);
5639     pub const Auto: OpticalImageStabilizationMode = OpticalImageStabilizationMode(2i32);
5640 }
5641 impl ::std::convert::From<i32> for OpticalImageStabilizationMode {
from(value: i32) -> Self5642     fn from(value: i32) -> Self {
5643         Self(value)
5644     }
5645 }
5646 unsafe impl ::windows::runtime::Abi for OpticalImageStabilizationMode {
5647     type Abi = Self;
5648     type DefaultType = Self;
5649 }
5650 unsafe impl ::windows::runtime::RuntimeType for OpticalImageStabilizationMode {
5651     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Devices.OpticalImageStabilizationMode;i4)");
5652 }
5653 #[repr(transparent)]
5654 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
5655 pub struct PanelBasedOptimizationControl(::windows::runtime::IInspectable);
5656 impl PanelBasedOptimizationControl {
IsSupported(&self) -> ::windows::runtime::Result<bool>5657     pub fn IsSupported(&self) -> ::windows::runtime::Result<bool> {
5658         let this = self;
5659         unsafe {
5660             let mut result__: bool = ::std::mem::zeroed();
5661             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
5662         }
5663     }
5664     #[cfg(feature = "Devices_Enumeration")]
Panel(&self) -> ::windows::runtime::Result<super::super::Devices::Enumeration::Panel>5665     pub fn Panel(&self) -> ::windows::runtime::Result<super::super::Devices::Enumeration::Panel> {
5666         let this = self;
5667         unsafe {
5668             let mut result__: super::super::Devices::Enumeration::Panel = ::std::mem::zeroed();
5669             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Devices::Enumeration::Panel>(result__)
5670         }
5671     }
5672     #[cfg(feature = "Devices_Enumeration")]
SetPanel(&self, value: super::super::Devices::Enumeration::Panel) -> ::windows::runtime::Result<()>5673     pub fn SetPanel(&self, value: super::super::Devices::Enumeration::Panel) -> ::windows::runtime::Result<()> {
5674         let this = self;
5675         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), value).ok() }
5676     }
5677 }
5678 unsafe impl ::windows::runtime::RuntimeType for PanelBasedOptimizationControl {
5679     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.PanelBasedOptimizationControl;{33323223-6247-5419-a5a4-3d808645d917})");
5680 }
5681 unsafe impl ::windows::runtime::Interface for PanelBasedOptimizationControl {
5682     type Vtable = IPanelBasedOptimizationControl_abi;
5683     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(858927651, 25159, 21529, [165, 164, 61, 128, 134, 69, 217, 23]);
5684 }
5685 impl ::windows::runtime::RuntimeName for PanelBasedOptimizationControl {
5686     const NAME: &'static str = "Windows.Media.Devices.PanelBasedOptimizationControl";
5687 }
5688 impl ::std::convert::From<PanelBasedOptimizationControl> for ::windows::runtime::IUnknown {
from(value: PanelBasedOptimizationControl) -> Self5689     fn from(value: PanelBasedOptimizationControl) -> Self {
5690         unsafe { ::std::mem::transmute(value) }
5691     }
5692 }
5693 impl ::std::convert::From<&PanelBasedOptimizationControl> for ::windows::runtime::IUnknown {
from(value: &PanelBasedOptimizationControl) -> Self5694     fn from(value: &PanelBasedOptimizationControl) -> Self {
5695         ::std::convert::From::from(::std::clone::Clone::clone(value))
5696     }
5697 }
5698 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for PanelBasedOptimizationControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5699     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5700         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
5701     }
5702 }
5703 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &PanelBasedOptimizationControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5704     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5705         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
5706     }
5707 }
5708 impl ::std::convert::From<PanelBasedOptimizationControl> for ::windows::runtime::IInspectable {
from(value: PanelBasedOptimizationControl) -> Self5709     fn from(value: PanelBasedOptimizationControl) -> Self {
5710         value.0
5711     }
5712 }
5713 impl ::std::convert::From<&PanelBasedOptimizationControl> for ::windows::runtime::IInspectable {
from(value: &PanelBasedOptimizationControl) -> Self5714     fn from(value: &PanelBasedOptimizationControl) -> Self {
5715         value.0.clone()
5716     }
5717 }
5718 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for PanelBasedOptimizationControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>5719     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
5720         ::windows::runtime::Param::Owned(self.0)
5721     }
5722 }
5723 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a PanelBasedOptimizationControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>5724     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
5725         ::windows::runtime::Param::Borrowed(&self.0)
5726     }
5727 }
5728 unsafe impl ::std::marker::Send for PanelBasedOptimizationControl {}
5729 unsafe impl ::std::marker::Sync for PanelBasedOptimizationControl {}
5730 #[repr(transparent)]
5731 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
5732 pub struct PhotoConfirmationControl(::windows::runtime::IInspectable);
5733 impl PhotoConfirmationControl {
Supported(&self) -> ::windows::runtime::Result<bool>5734     pub fn Supported(&self) -> ::windows::runtime::Result<bool> {
5735         let this = self;
5736         unsafe {
5737             let mut result__: bool = ::std::mem::zeroed();
5738             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
5739         }
5740     }
Enabled(&self) -> ::windows::runtime::Result<bool>5741     pub fn Enabled(&self) -> ::windows::runtime::Result<bool> {
5742         let this = self;
5743         unsafe {
5744             let mut result__: bool = ::std::mem::zeroed();
5745             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
5746         }
5747     }
SetEnabled(&self, value: bool) -> ::windows::runtime::Result<()>5748     pub fn SetEnabled(&self, value: bool) -> ::windows::runtime::Result<()> {
5749         let this = self;
5750         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), value).ok() }
5751     }
5752     #[cfg(feature = "Media_MediaProperties")]
PixelFormat(&self) -> ::windows::runtime::Result<super::MediaProperties::MediaPixelFormat>5753     pub fn PixelFormat(&self) -> ::windows::runtime::Result<super::MediaProperties::MediaPixelFormat> {
5754         let this = self;
5755         unsafe {
5756             let mut result__: super::MediaProperties::MediaPixelFormat = ::std::mem::zeroed();
5757             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::MediaProperties::MediaPixelFormat>(result__)
5758         }
5759     }
5760     #[cfg(feature = "Media_MediaProperties")]
SetPixelFormat(&self, format: super::MediaProperties::MediaPixelFormat) -> ::windows::runtime::Result<()>5761     pub fn SetPixelFormat(&self, format: super::MediaProperties::MediaPixelFormat) -> ::windows::runtime::Result<()> {
5762         let this = self;
5763         unsafe { (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), format).ok() }
5764     }
5765 }
5766 unsafe impl ::windows::runtime::RuntimeType for PhotoConfirmationControl {
5767     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.PhotoConfirmationControl;{c8f3f363-ff5e-4582-a9a8-0550f85a4a76})");
5768 }
5769 unsafe impl ::windows::runtime::Interface for PhotoConfirmationControl {
5770     type Vtable = IPhotoConfirmationControl_abi;
5771     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3371430755, 65374, 17794, [169, 168, 5, 80, 248, 90, 74, 118]);
5772 }
5773 impl ::windows::runtime::RuntimeName for PhotoConfirmationControl {
5774     const NAME: &'static str = "Windows.Media.Devices.PhotoConfirmationControl";
5775 }
5776 impl ::std::convert::From<PhotoConfirmationControl> for ::windows::runtime::IUnknown {
from(value: PhotoConfirmationControl) -> Self5777     fn from(value: PhotoConfirmationControl) -> Self {
5778         unsafe { ::std::mem::transmute(value) }
5779     }
5780 }
5781 impl ::std::convert::From<&PhotoConfirmationControl> for ::windows::runtime::IUnknown {
from(value: &PhotoConfirmationControl) -> Self5782     fn from(value: &PhotoConfirmationControl) -> Self {
5783         ::std::convert::From::from(::std::clone::Clone::clone(value))
5784     }
5785 }
5786 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for PhotoConfirmationControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5787     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5788         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
5789     }
5790 }
5791 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &PhotoConfirmationControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5792     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5793         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
5794     }
5795 }
5796 impl ::std::convert::From<PhotoConfirmationControl> for ::windows::runtime::IInspectable {
from(value: PhotoConfirmationControl) -> Self5797     fn from(value: PhotoConfirmationControl) -> Self {
5798         value.0
5799     }
5800 }
5801 impl ::std::convert::From<&PhotoConfirmationControl> for ::windows::runtime::IInspectable {
from(value: &PhotoConfirmationControl) -> Self5802     fn from(value: &PhotoConfirmationControl) -> Self {
5803         value.0.clone()
5804     }
5805 }
5806 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for PhotoConfirmationControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>5807     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
5808         ::windows::runtime::Param::Owned(self.0)
5809     }
5810 }
5811 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a PhotoConfirmationControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>5812     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
5813         ::windows::runtime::Param::Borrowed(&self.0)
5814     }
5815 }
5816 #[repr(transparent)]
5817 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
5818 pub struct RedialRequestedEventArgs(::windows::runtime::IInspectable);
5819 impl RedialRequestedEventArgs {
Handled(&self) -> ::windows::runtime::Result<()>5820     pub fn Handled(&self) -> ::windows::runtime::Result<()> {
5821         let this = self;
5822         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() }
5823     }
5824 }
5825 unsafe impl ::windows::runtime::RuntimeType for RedialRequestedEventArgs {
5826     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.RedialRequestedEventArgs;{7eb55209-76ab-4c31-b40e-4b58379d580c})");
5827 }
5828 unsafe impl ::windows::runtime::Interface for RedialRequestedEventArgs {
5829     type Vtable = IRedialRequestedEventArgs_abi;
5830     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2125812233, 30379, 19505, [180, 14, 75, 88, 55, 157, 88, 12]);
5831 }
5832 impl ::windows::runtime::RuntimeName for RedialRequestedEventArgs {
5833     const NAME: &'static str = "Windows.Media.Devices.RedialRequestedEventArgs";
5834 }
5835 impl ::std::convert::From<RedialRequestedEventArgs> for ::windows::runtime::IUnknown {
from(value: RedialRequestedEventArgs) -> Self5836     fn from(value: RedialRequestedEventArgs) -> Self {
5837         unsafe { ::std::mem::transmute(value) }
5838     }
5839 }
5840 impl ::std::convert::From<&RedialRequestedEventArgs> for ::windows::runtime::IUnknown {
from(value: &RedialRequestedEventArgs) -> Self5841     fn from(value: &RedialRequestedEventArgs) -> Self {
5842         ::std::convert::From::from(::std::clone::Clone::clone(value))
5843     }
5844 }
5845 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for RedialRequestedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5846     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5847         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
5848     }
5849 }
5850 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &RedialRequestedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5851     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5852         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
5853     }
5854 }
5855 impl ::std::convert::From<RedialRequestedEventArgs> for ::windows::runtime::IInspectable {
from(value: RedialRequestedEventArgs) -> Self5856     fn from(value: RedialRequestedEventArgs) -> Self {
5857         value.0
5858     }
5859 }
5860 impl ::std::convert::From<&RedialRequestedEventArgs> for ::windows::runtime::IInspectable {
from(value: &RedialRequestedEventArgs) -> Self5861     fn from(value: &RedialRequestedEventArgs) -> Self {
5862         value.0.clone()
5863     }
5864 }
5865 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for RedialRequestedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>5866     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
5867         ::windows::runtime::Param::Owned(self.0)
5868     }
5869 }
5870 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a RedialRequestedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>5871     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
5872         ::windows::runtime::Param::Borrowed(&self.0)
5873     }
5874 }
5875 unsafe impl ::std::marker::Send for RedialRequestedEventArgs {}
5876 unsafe impl ::std::marker::Sync for RedialRequestedEventArgs {}
5877 #[repr(transparent)]
5878 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
5879 pub struct RedialRequestedEventHandler(::windows::runtime::IUnknown);
5880 impl RedialRequestedEventHandler {
new<F: FnMut(&::std::option::Option<CallControl>, &::std::option::Option<RedialRequestedEventArgs>) -> ::windows::runtime::Result<()> + 'static>(invoke: F) -> Self5881     pub fn new<F: FnMut(&::std::option::Option<CallControl>, &::std::option::Option<RedialRequestedEventArgs>) -> ::windows::runtime::Result<()> + 'static>(invoke: F) -> Self {
5882         let com = RedialRequestedEventHandler_box::<F> {
5883             vtable: &RedialRequestedEventHandler_box::<F>::VTABLE,
5884             count: ::windows::runtime::RefCount::new(1),
5885             invoke,
5886         };
5887         unsafe { std::mem::transmute(::std::boxed::Box::new(com)) }
5888     }
Invoke<'a, Param0: ::windows::runtime::IntoParam<'a, CallControl>, Param1: ::windows::runtime::IntoParam<'a, RedialRequestedEventArgs>>(&self, sender: Param0, e: Param1) -> ::windows::runtime::Result<()>5889     pub fn Invoke<'a, Param0: ::windows::runtime::IntoParam<'a, CallControl>, Param1: ::windows::runtime::IntoParam<'a, RedialRequestedEventArgs>>(&self, sender: Param0, e: Param1) -> ::windows::runtime::Result<()> {
5890         let this = self;
5891         unsafe { (::windows::runtime::Interface::vtable(this).3)(::std::mem::transmute_copy(this), sender.into_param().abi(), e.into_param().abi()).ok() }
5892     }
5893 }
5894 unsafe impl ::windows::runtime::RuntimeType for RedialRequestedEventHandler {
5895     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"delegate({baf257d1-4ebd-4b84-9f47-6ec43d75d8b1})");
5896 }
5897 unsafe impl ::windows::runtime::Interface for RedialRequestedEventHandler {
5898     type Vtable = RedialRequestedEventHandler_abi;
5899     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3136444369, 20157, 19332, [159, 71, 110, 196, 61, 117, 216, 177]);
5900 }
5901 #[repr(C)]
5902 #[doc(hidden)]
5903 pub struct RedialRequestedEventHandler_abi(
5904     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5905     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5906     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5907     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, sender: ::windows::runtime::RawPtr, e: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5908 );
5909 #[repr(C)]
5910 struct RedialRequestedEventHandler_box<F: FnMut(&::std::option::Option<CallControl>, &::std::option::Option<RedialRequestedEventArgs>) -> ::windows::runtime::Result<()> + 'static> {
5911     vtable: *const RedialRequestedEventHandler_abi,
5912     invoke: F,
5913     count: ::windows::runtime::RefCount,
5914 }
5915 impl<F: FnMut(&::std::option::Option<CallControl>, &::std::option::Option<RedialRequestedEventArgs>) -> ::windows::runtime::Result<()> + 'static> RedialRequestedEventHandler_box<F> {
5916     const VTABLE: RedialRequestedEventHandler_abi = RedialRequestedEventHandler_abi(Self::QueryInterface, Self::AddRef, Self::Release, Self::Invoke);
QueryInterface(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT5917     unsafe extern "system" fn QueryInterface(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT {
5918         let this = this as *mut ::windows::runtime::RawPtr as *mut Self;
5919         *interface = if iid == &<RedialRequestedEventHandler as ::windows::runtime::Interface>::IID || iid == &<::windows::runtime::IUnknown as ::windows::runtime::Interface>::IID || iid == &<::windows::runtime::IAgileObject as ::windows::runtime::Interface>::IID {
5920             &mut (*this).vtable as *mut _ as _
5921         } else {
5922             ::std::ptr::null_mut()
5923         };
5924         if (*interface).is_null() {
5925             ::windows::runtime::HRESULT(0x8000_4002)
5926         } else {
5927             (*this).count.add_ref();
5928             ::windows::runtime::HRESULT(0)
5929         }
5930     }
AddRef(this: ::windows::runtime::RawPtr) -> u325931     unsafe extern "system" fn AddRef(this: ::windows::runtime::RawPtr) -> u32 {
5932         let this = this as *mut ::windows::runtime::RawPtr as *mut Self;
5933         (*this).count.add_ref()
5934     }
Release(this: ::windows::runtime::RawPtr) -> u325935     unsafe extern "system" fn Release(this: ::windows::runtime::RawPtr) -> u32 {
5936         let this = this as *mut ::windows::runtime::RawPtr as *mut Self;
5937         let remaining = (*this).count.release();
5938         if remaining == 0 {
5939             Box::from_raw(this);
5940         }
5941         remaining
5942     }
Invoke(this: ::windows::runtime::RawPtr, sender: ::windows::runtime::RawPtr, e: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT5943     unsafe extern "system" fn Invoke(this: ::windows::runtime::RawPtr, sender: ::windows::runtime::RawPtr, e: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT {
5944         let this = this as *mut ::windows::runtime::RawPtr as *mut Self;
5945         ((*this).invoke)(&*(&sender as *const <CallControl as ::windows::runtime::Abi>::Abi as *const <CallControl as ::windows::runtime::Abi>::DefaultType), &*(&e as *const <RedialRequestedEventArgs as ::windows::runtime::Abi>::Abi as *const <RedialRequestedEventArgs as ::windows::runtime::Abi>::DefaultType)).into()
5946     }
5947 }
5948 #[repr(transparent)]
5949 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
5950 pub struct RegionOfInterest(::windows::runtime::IInspectable);
5951 impl RegionOfInterest {
new() -> ::windows::runtime::Result<Self>5952     pub fn new() -> ::windows::runtime::Result<Self> {
5953         Self::IActivationFactory(|f| f.activate_instance::<Self>())
5954     }
IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>5955     fn IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
5956         static mut SHARED: ::windows::runtime::FactoryCache<RegionOfInterest, ::windows::runtime::IActivationFactory> = ::windows::runtime::FactoryCache::new();
5957         unsafe { SHARED.call(callback) }
5958     }
AutoFocusEnabled(&self) -> ::windows::runtime::Result<bool>5959     pub fn AutoFocusEnabled(&self) -> ::windows::runtime::Result<bool> {
5960         let this = self;
5961         unsafe {
5962             let mut result__: bool = ::std::mem::zeroed();
5963             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
5964         }
5965     }
SetAutoFocusEnabled(&self, value: bool) -> ::windows::runtime::Result<()>5966     pub fn SetAutoFocusEnabled(&self, value: bool) -> ::windows::runtime::Result<()> {
5967         let this = self;
5968         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() }
5969     }
AutoWhiteBalanceEnabled(&self) -> ::windows::runtime::Result<bool>5970     pub fn AutoWhiteBalanceEnabled(&self) -> ::windows::runtime::Result<bool> {
5971         let this = self;
5972         unsafe {
5973             let mut result__: bool = ::std::mem::zeroed();
5974             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
5975         }
5976     }
SetAutoWhiteBalanceEnabled(&self, value: bool) -> ::windows::runtime::Result<()>5977     pub fn SetAutoWhiteBalanceEnabled(&self, value: bool) -> ::windows::runtime::Result<()> {
5978         let this = self;
5979         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), value).ok() }
5980     }
AutoExposureEnabled(&self) -> ::windows::runtime::Result<bool>5981     pub fn AutoExposureEnabled(&self) -> ::windows::runtime::Result<bool> {
5982         let this = self;
5983         unsafe {
5984             let mut result__: bool = ::std::mem::zeroed();
5985             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
5986         }
5987     }
SetAutoExposureEnabled(&self, value: bool) -> ::windows::runtime::Result<()>5988     pub fn SetAutoExposureEnabled(&self, value: bool) -> ::windows::runtime::Result<()> {
5989         let this = self;
5990         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value).ok() }
5991     }
5992     #[cfg(feature = "Foundation")]
Bounds(&self) -> ::windows::runtime::Result<super::super::Foundation::Rect>5993     pub fn Bounds(&self) -> ::windows::runtime::Result<super::super::Foundation::Rect> {
5994         let this = self;
5995         unsafe {
5996             let mut result__: super::super::Foundation::Rect = ::std::mem::zeroed();
5997             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Rect>(result__)
5998         }
5999     }
6000     #[cfg(feature = "Foundation")]
SetBounds<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Rect>>(&self, value: Param0) -> ::windows::runtime::Result<()>6001     pub fn SetBounds<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Rect>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
6002         let this = self;
6003         unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
6004     }
Type(&self) -> ::windows::runtime::Result<RegionOfInterestType>6005     pub fn Type(&self) -> ::windows::runtime::Result<RegionOfInterestType> {
6006         let this = &::windows::runtime::Interface::cast::<IRegionOfInterest2>(self)?;
6007         unsafe {
6008             let mut result__: RegionOfInterestType = ::std::mem::zeroed();
6009             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<RegionOfInterestType>(result__)
6010         }
6011     }
SetType(&self, value: RegionOfInterestType) -> ::windows::runtime::Result<()>6012     pub fn SetType(&self, value: RegionOfInterestType) -> ::windows::runtime::Result<()> {
6013         let this = &::windows::runtime::Interface::cast::<IRegionOfInterest2>(self)?;
6014         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() }
6015     }
BoundsNormalized(&self) -> ::windows::runtime::Result<bool>6016     pub fn BoundsNormalized(&self) -> ::windows::runtime::Result<bool> {
6017         let this = &::windows::runtime::Interface::cast::<IRegionOfInterest2>(self)?;
6018         unsafe {
6019             let mut result__: bool = ::std::mem::zeroed();
6020             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
6021         }
6022     }
SetBoundsNormalized(&self, value: bool) -> ::windows::runtime::Result<()>6023     pub fn SetBoundsNormalized(&self, value: bool) -> ::windows::runtime::Result<()> {
6024         let this = &::windows::runtime::Interface::cast::<IRegionOfInterest2>(self)?;
6025         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), value).ok() }
6026     }
Weight(&self) -> ::windows::runtime::Result<u32>6027     pub fn Weight(&self) -> ::windows::runtime::Result<u32> {
6028         let this = &::windows::runtime::Interface::cast::<IRegionOfInterest2>(self)?;
6029         unsafe {
6030             let mut result__: u32 = ::std::mem::zeroed();
6031             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
6032         }
6033     }
SetWeight(&self, value: u32) -> ::windows::runtime::Result<()>6034     pub fn SetWeight(&self, value: u32) -> ::windows::runtime::Result<()> {
6035         let this = &::windows::runtime::Interface::cast::<IRegionOfInterest2>(self)?;
6036         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value).ok() }
6037     }
6038 }
6039 unsafe impl ::windows::runtime::RuntimeType for RegionOfInterest {
6040     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.RegionOfInterest;{e5ecc834-ce66-4e05-a78f-cf391a5ec2d1})");
6041 }
6042 unsafe impl ::windows::runtime::Interface for RegionOfInterest {
6043     type Vtable = IRegionOfInterest_abi;
6044     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3857500212, 52838, 19973, [167, 143, 207, 57, 26, 94, 194, 209]);
6045 }
6046 impl ::windows::runtime::RuntimeName for RegionOfInterest {
6047     const NAME: &'static str = "Windows.Media.Devices.RegionOfInterest";
6048 }
6049 impl ::std::convert::From<RegionOfInterest> for ::windows::runtime::IUnknown {
from(value: RegionOfInterest) -> Self6050     fn from(value: RegionOfInterest) -> Self {
6051         unsafe { ::std::mem::transmute(value) }
6052     }
6053 }
6054 impl ::std::convert::From<&RegionOfInterest> for ::windows::runtime::IUnknown {
from(value: &RegionOfInterest) -> Self6055     fn from(value: &RegionOfInterest) -> Self {
6056         ::std::convert::From::from(::std::clone::Clone::clone(value))
6057     }
6058 }
6059 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for RegionOfInterest {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>6060     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
6061         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
6062     }
6063 }
6064 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &RegionOfInterest {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>6065     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
6066         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
6067     }
6068 }
6069 impl ::std::convert::From<RegionOfInterest> for ::windows::runtime::IInspectable {
from(value: RegionOfInterest) -> Self6070     fn from(value: RegionOfInterest) -> Self {
6071         value.0
6072     }
6073 }
6074 impl ::std::convert::From<&RegionOfInterest> for ::windows::runtime::IInspectable {
from(value: &RegionOfInterest) -> Self6075     fn from(value: &RegionOfInterest) -> Self {
6076         value.0.clone()
6077     }
6078 }
6079 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for RegionOfInterest {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>6080     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
6081         ::windows::runtime::Param::Owned(self.0)
6082     }
6083 }
6084 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a RegionOfInterest {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>6085     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
6086         ::windows::runtime::Param::Borrowed(&self.0)
6087     }
6088 }
6089 unsafe impl ::std::marker::Send for RegionOfInterest {}
6090 unsafe impl ::std::marker::Sync for RegionOfInterest {}
6091 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
6092 #[repr(transparent)]
6093 pub struct RegionOfInterestType(pub i32);
6094 impl RegionOfInterestType {
6095     pub const Unknown: RegionOfInterestType = RegionOfInterestType(0i32);
6096     pub const Face: RegionOfInterestType = RegionOfInterestType(1i32);
6097 }
6098 impl ::std::convert::From<i32> for RegionOfInterestType {
from(value: i32) -> Self6099     fn from(value: i32) -> Self {
6100         Self(value)
6101     }
6102 }
6103 unsafe impl ::windows::runtime::Abi for RegionOfInterestType {
6104     type Abi = Self;
6105     type DefaultType = Self;
6106 }
6107 unsafe impl ::windows::runtime::RuntimeType for RegionOfInterestType {
6108     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Devices.RegionOfInterestType;i4)");
6109 }
6110 #[repr(transparent)]
6111 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6112 pub struct RegionsOfInterestControl(::windows::runtime::IInspectable);
6113 impl RegionsOfInterestControl {
MaxRegions(&self) -> ::windows::runtime::Result<u32>6114     pub fn MaxRegions(&self) -> ::windows::runtime::Result<u32> {
6115         let this = self;
6116         unsafe {
6117             let mut result__: u32 = ::std::mem::zeroed();
6118             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
6119         }
6120     }
6121     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
SetRegionsAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<RegionOfInterest>>>(&self, regions: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>6122     pub fn SetRegionsAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<RegionOfInterest>>>(&self, regions: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
6123         let this = self;
6124         unsafe {
6125             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6126             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), regions.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
6127         }
6128     }
6129     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
SetRegionsWithLockAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<RegionOfInterest>>>(&self, regions: Param0, lockvalues: bool) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>6130     pub fn SetRegionsWithLockAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<RegionOfInterest>>>(&self, regions: Param0, lockvalues: bool) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
6131         let this = self;
6132         unsafe {
6133             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6134             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), regions.into_param().abi(), lockvalues, &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
6135         }
6136     }
6137     #[cfg(feature = "Foundation")]
ClearRegionsAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>6138     pub fn ClearRegionsAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
6139         let this = self;
6140         unsafe {
6141             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6142             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
6143         }
6144     }
AutoFocusSupported(&self) -> ::windows::runtime::Result<bool>6145     pub fn AutoFocusSupported(&self) -> ::windows::runtime::Result<bool> {
6146         let this = self;
6147         unsafe {
6148             let mut result__: bool = ::std::mem::zeroed();
6149             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
6150         }
6151     }
AutoWhiteBalanceSupported(&self) -> ::windows::runtime::Result<bool>6152     pub fn AutoWhiteBalanceSupported(&self) -> ::windows::runtime::Result<bool> {
6153         let this = self;
6154         unsafe {
6155             let mut result__: bool = ::std::mem::zeroed();
6156             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
6157         }
6158     }
AutoExposureSupported(&self) -> ::windows::runtime::Result<bool>6159     pub fn AutoExposureSupported(&self) -> ::windows::runtime::Result<bool> {
6160         let this = self;
6161         unsafe {
6162             let mut result__: bool = ::std::mem::zeroed();
6163             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
6164         }
6165     }
6166 }
6167 unsafe impl ::windows::runtime::RuntimeType for RegionsOfInterestControl {
6168     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.RegionsOfInterestControl;{c323f527-ab0b-4558-8b5b-df5693db0378})");
6169 }
6170 unsafe impl ::windows::runtime::Interface for RegionsOfInterestControl {
6171     type Vtable = IRegionsOfInterestControl_abi;
6172     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3273913639, 43787, 17752, [139, 91, 223, 86, 147, 219, 3, 120]);
6173 }
6174 impl ::windows::runtime::RuntimeName for RegionsOfInterestControl {
6175     const NAME: &'static str = "Windows.Media.Devices.RegionsOfInterestControl";
6176 }
6177 impl ::std::convert::From<RegionsOfInterestControl> for ::windows::runtime::IUnknown {
from(value: RegionsOfInterestControl) -> Self6178     fn from(value: RegionsOfInterestControl) -> Self {
6179         unsafe { ::std::mem::transmute(value) }
6180     }
6181 }
6182 impl ::std::convert::From<&RegionsOfInterestControl> for ::windows::runtime::IUnknown {
from(value: &RegionsOfInterestControl) -> Self6183     fn from(value: &RegionsOfInterestControl) -> Self {
6184         ::std::convert::From::from(::std::clone::Clone::clone(value))
6185     }
6186 }
6187 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for RegionsOfInterestControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>6188     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
6189         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
6190     }
6191 }
6192 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &RegionsOfInterestControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>6193     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
6194         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
6195     }
6196 }
6197 impl ::std::convert::From<RegionsOfInterestControl> for ::windows::runtime::IInspectable {
from(value: RegionsOfInterestControl) -> Self6198     fn from(value: RegionsOfInterestControl) -> Self {
6199         value.0
6200     }
6201 }
6202 impl ::std::convert::From<&RegionsOfInterestControl> for ::windows::runtime::IInspectable {
from(value: &RegionsOfInterestControl) -> Self6203     fn from(value: &RegionsOfInterestControl) -> Self {
6204         value.0.clone()
6205     }
6206 }
6207 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for RegionsOfInterestControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>6208     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
6209         ::windows::runtime::Param::Owned(self.0)
6210     }
6211 }
6212 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a RegionsOfInterestControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>6213     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
6214         ::windows::runtime::Param::Borrowed(&self.0)
6215     }
6216 }
6217 #[repr(transparent)]
6218 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6219 pub struct SceneModeControl(::windows::runtime::IInspectable);
6220 impl SceneModeControl {
6221     #[cfg(feature = "Foundation_Collections")]
SupportedModes(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<CaptureSceneMode>>6222     pub fn SupportedModes(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<CaptureSceneMode>> {
6223         let this = self;
6224         unsafe {
6225             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6226             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<CaptureSceneMode>>(result__)
6227         }
6228     }
Value(&self) -> ::windows::runtime::Result<CaptureSceneMode>6229     pub fn Value(&self) -> ::windows::runtime::Result<CaptureSceneMode> {
6230         let this = self;
6231         unsafe {
6232             let mut result__: CaptureSceneMode = ::std::mem::zeroed();
6233             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<CaptureSceneMode>(result__)
6234         }
6235     }
6236     #[cfg(feature = "Foundation")]
SetValueAsync(&self, scenemode: CaptureSceneMode) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>6237     pub fn SetValueAsync(&self, scenemode: CaptureSceneMode) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
6238         let this = self;
6239         unsafe {
6240             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6241             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), scenemode, &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
6242         }
6243     }
6244 }
6245 unsafe impl ::windows::runtime::RuntimeType for SceneModeControl {
6246     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.SceneModeControl;{d48e5af7-8d59-4854-8c62-12c70ba89b7c})");
6247 }
6248 unsafe impl ::windows::runtime::Interface for SceneModeControl {
6249     type Vtable = ISceneModeControl_abi;
6250     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3566099191, 36185, 18516, [140, 98, 18, 199, 11, 168, 155, 124]);
6251 }
6252 impl ::windows::runtime::RuntimeName for SceneModeControl {
6253     const NAME: &'static str = "Windows.Media.Devices.SceneModeControl";
6254 }
6255 impl ::std::convert::From<SceneModeControl> for ::windows::runtime::IUnknown {
from(value: SceneModeControl) -> Self6256     fn from(value: SceneModeControl) -> Self {
6257         unsafe { ::std::mem::transmute(value) }
6258     }
6259 }
6260 impl ::std::convert::From<&SceneModeControl> for ::windows::runtime::IUnknown {
from(value: &SceneModeControl) -> Self6261     fn from(value: &SceneModeControl) -> Self {
6262         ::std::convert::From::from(::std::clone::Clone::clone(value))
6263     }
6264 }
6265 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for SceneModeControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>6266     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
6267         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
6268     }
6269 }
6270 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &SceneModeControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>6271     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
6272         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
6273     }
6274 }
6275 impl ::std::convert::From<SceneModeControl> for ::windows::runtime::IInspectable {
from(value: SceneModeControl) -> Self6276     fn from(value: SceneModeControl) -> Self {
6277         value.0
6278     }
6279 }
6280 impl ::std::convert::From<&SceneModeControl> for ::windows::runtime::IInspectable {
from(value: &SceneModeControl) -> Self6281     fn from(value: &SceneModeControl) -> Self {
6282         value.0.clone()
6283     }
6284 }
6285 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for SceneModeControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>6286     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
6287         ::windows::runtime::Param::Owned(self.0)
6288     }
6289 }
6290 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a SceneModeControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>6291     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
6292         ::windows::runtime::Param::Borrowed(&self.0)
6293     }
6294 }
6295 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
6296 #[repr(transparent)]
6297 pub struct SendCommandStatus(pub i32);
6298 impl SendCommandStatus {
6299     pub const Success: SendCommandStatus = SendCommandStatus(0i32);
6300     pub const DeviceNotAvailable: SendCommandStatus = SendCommandStatus(1i32);
6301 }
6302 impl ::std::convert::From<i32> for SendCommandStatus {
from(value: i32) -> Self6303     fn from(value: i32) -> Self {
6304         Self(value)
6305     }
6306 }
6307 unsafe impl ::windows::runtime::Abi for SendCommandStatus {
6308     type Abi = Self;
6309     type DefaultType = Self;
6310 }
6311 unsafe impl ::windows::runtime::RuntimeType for SendCommandStatus {
6312     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Devices.SendCommandStatus;i4)");
6313 }
6314 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
6315 #[repr(transparent)]
6316 pub struct TelephonyKey(pub i32);
6317 impl TelephonyKey {
6318     pub const D0: TelephonyKey = TelephonyKey(0i32);
6319     pub const D1: TelephonyKey = TelephonyKey(1i32);
6320     pub const D2: TelephonyKey = TelephonyKey(2i32);
6321     pub const D3: TelephonyKey = TelephonyKey(3i32);
6322     pub const D4: TelephonyKey = TelephonyKey(4i32);
6323     pub const D5: TelephonyKey = TelephonyKey(5i32);
6324     pub const D6: TelephonyKey = TelephonyKey(6i32);
6325     pub const D7: TelephonyKey = TelephonyKey(7i32);
6326     pub const D8: TelephonyKey = TelephonyKey(8i32);
6327     pub const D9: TelephonyKey = TelephonyKey(9i32);
6328     pub const Star: TelephonyKey = TelephonyKey(10i32);
6329     pub const Pound: TelephonyKey = TelephonyKey(11i32);
6330     pub const A: TelephonyKey = TelephonyKey(12i32);
6331     pub const B: TelephonyKey = TelephonyKey(13i32);
6332     pub const C: TelephonyKey = TelephonyKey(14i32);
6333     pub const D: TelephonyKey = TelephonyKey(15i32);
6334 }
6335 impl ::std::convert::From<i32> for TelephonyKey {
from(value: i32) -> Self6336     fn from(value: i32) -> Self {
6337         Self(value)
6338     }
6339 }
6340 unsafe impl ::windows::runtime::Abi for TelephonyKey {
6341     type Abi = Self;
6342     type DefaultType = Self;
6343 }
6344 unsafe impl ::windows::runtime::RuntimeType for TelephonyKey {
6345     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Devices.TelephonyKey;i4)");
6346 }
6347 #[repr(transparent)]
6348 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6349 pub struct TorchControl(::windows::runtime::IInspectable);
6350 impl TorchControl {
Supported(&self) -> ::windows::runtime::Result<bool>6351     pub fn Supported(&self) -> ::windows::runtime::Result<bool> {
6352         let this = self;
6353         unsafe {
6354             let mut result__: bool = ::std::mem::zeroed();
6355             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
6356         }
6357     }
PowerSupported(&self) -> ::windows::runtime::Result<bool>6358     pub fn PowerSupported(&self) -> ::windows::runtime::Result<bool> {
6359         let this = self;
6360         unsafe {
6361             let mut result__: bool = ::std::mem::zeroed();
6362             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
6363         }
6364     }
Enabled(&self) -> ::windows::runtime::Result<bool>6365     pub fn Enabled(&self) -> ::windows::runtime::Result<bool> {
6366         let this = self;
6367         unsafe {
6368             let mut result__: bool = ::std::mem::zeroed();
6369             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
6370         }
6371     }
SetEnabled(&self, value: bool) -> ::windows::runtime::Result<()>6372     pub fn SetEnabled(&self, value: bool) -> ::windows::runtime::Result<()> {
6373         let this = self;
6374         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), value).ok() }
6375     }
PowerPercent(&self) -> ::windows::runtime::Result<f32>6376     pub fn PowerPercent(&self) -> ::windows::runtime::Result<f32> {
6377         let this = self;
6378         unsafe {
6379             let mut result__: f32 = ::std::mem::zeroed();
6380             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f32>(result__)
6381         }
6382     }
SetPowerPercent(&self, value: f32) -> ::windows::runtime::Result<()>6383     pub fn SetPowerPercent(&self, value: f32) -> ::windows::runtime::Result<()> {
6384         let this = self;
6385         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value).ok() }
6386     }
6387 }
6388 unsafe impl ::windows::runtime::RuntimeType for TorchControl {
6389     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.TorchControl;{a6053665-8250-416c-919a-724296afa306})");
6390 }
6391 unsafe impl ::windows::runtime::Interface for TorchControl {
6392     type Vtable = ITorchControl_abi;
6393     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2785359461, 33360, 16748, [145, 154, 114, 66, 150, 175, 163, 6]);
6394 }
6395 impl ::windows::runtime::RuntimeName for TorchControl {
6396     const NAME: &'static str = "Windows.Media.Devices.TorchControl";
6397 }
6398 impl ::std::convert::From<TorchControl> for ::windows::runtime::IUnknown {
from(value: TorchControl) -> Self6399     fn from(value: TorchControl) -> Self {
6400         unsafe { ::std::mem::transmute(value) }
6401     }
6402 }
6403 impl ::std::convert::From<&TorchControl> for ::windows::runtime::IUnknown {
from(value: &TorchControl) -> Self6404     fn from(value: &TorchControl) -> Self {
6405         ::std::convert::From::from(::std::clone::Clone::clone(value))
6406     }
6407 }
6408 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for TorchControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>6409     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
6410         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
6411     }
6412 }
6413 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &TorchControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>6414     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
6415         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
6416     }
6417 }
6418 impl ::std::convert::From<TorchControl> for ::windows::runtime::IInspectable {
from(value: TorchControl) -> Self6419     fn from(value: TorchControl) -> Self {
6420         value.0
6421     }
6422 }
6423 impl ::std::convert::From<&TorchControl> for ::windows::runtime::IInspectable {
from(value: &TorchControl) -> Self6424     fn from(value: &TorchControl) -> Self {
6425         value.0.clone()
6426     }
6427 }
6428 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for TorchControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>6429     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
6430         ::windows::runtime::Param::Owned(self.0)
6431     }
6432 }
6433 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a TorchControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>6434     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
6435         ::windows::runtime::Param::Borrowed(&self.0)
6436     }
6437 }
6438 #[repr(transparent)]
6439 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6440 pub struct VideoDeviceController(::windows::runtime::IInspectable);
6441 impl VideoDeviceController {
Brightness(&self) -> ::windows::runtime::Result<MediaDeviceControl>6442     pub fn Brightness(&self) -> ::windows::runtime::Result<MediaDeviceControl> {
6443         let this = self;
6444         unsafe {
6445             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6446             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<MediaDeviceControl>(result__)
6447         }
6448     }
Contrast(&self) -> ::windows::runtime::Result<MediaDeviceControl>6449     pub fn Contrast(&self) -> ::windows::runtime::Result<MediaDeviceControl> {
6450         let this = self;
6451         unsafe {
6452             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6453             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<MediaDeviceControl>(result__)
6454         }
6455     }
Hue(&self) -> ::windows::runtime::Result<MediaDeviceControl>6456     pub fn Hue(&self) -> ::windows::runtime::Result<MediaDeviceControl> {
6457         let this = self;
6458         unsafe {
6459             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6460             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<MediaDeviceControl>(result__)
6461         }
6462     }
WhiteBalance(&self) -> ::windows::runtime::Result<MediaDeviceControl>6463     pub fn WhiteBalance(&self) -> ::windows::runtime::Result<MediaDeviceControl> {
6464         let this = self;
6465         unsafe {
6466             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6467             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<MediaDeviceControl>(result__)
6468         }
6469     }
BacklightCompensation(&self) -> ::windows::runtime::Result<MediaDeviceControl>6470     pub fn BacklightCompensation(&self) -> ::windows::runtime::Result<MediaDeviceControl> {
6471         let this = self;
6472         unsafe {
6473             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6474             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<MediaDeviceControl>(result__)
6475         }
6476     }
Pan(&self) -> ::windows::runtime::Result<MediaDeviceControl>6477     pub fn Pan(&self) -> ::windows::runtime::Result<MediaDeviceControl> {
6478         let this = self;
6479         unsafe {
6480             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6481             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<MediaDeviceControl>(result__)
6482         }
6483     }
Tilt(&self) -> ::windows::runtime::Result<MediaDeviceControl>6484     pub fn Tilt(&self) -> ::windows::runtime::Result<MediaDeviceControl> {
6485         let this = self;
6486         unsafe {
6487             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6488             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<MediaDeviceControl>(result__)
6489         }
6490     }
Zoom(&self) -> ::windows::runtime::Result<MediaDeviceControl>6491     pub fn Zoom(&self) -> ::windows::runtime::Result<MediaDeviceControl> {
6492         let this = self;
6493         unsafe {
6494             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6495             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<MediaDeviceControl>(result__)
6496         }
6497     }
Roll(&self) -> ::windows::runtime::Result<MediaDeviceControl>6498     pub fn Roll(&self) -> ::windows::runtime::Result<MediaDeviceControl> {
6499         let this = self;
6500         unsafe {
6501             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6502             (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), &mut result__).from_abi::<MediaDeviceControl>(result__)
6503         }
6504     }
Exposure(&self) -> ::windows::runtime::Result<MediaDeviceControl>6505     pub fn Exposure(&self) -> ::windows::runtime::Result<MediaDeviceControl> {
6506         let this = self;
6507         unsafe {
6508             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6509             (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), &mut result__).from_abi::<MediaDeviceControl>(result__)
6510         }
6511     }
Focus(&self) -> ::windows::runtime::Result<MediaDeviceControl>6512     pub fn Focus(&self) -> ::windows::runtime::Result<MediaDeviceControl> {
6513         let this = self;
6514         unsafe {
6515             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6516             (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), &mut result__).from_abi::<MediaDeviceControl>(result__)
6517         }
6518     }
6519     #[cfg(feature = "Media_Capture")]
TrySetPowerlineFrequency(&self, value: super::Capture::PowerlineFrequency) -> ::windows::runtime::Result<bool>6520     pub fn TrySetPowerlineFrequency(&self, value: super::Capture::PowerlineFrequency) -> ::windows::runtime::Result<bool> {
6521         let this = self;
6522         unsafe {
6523             let mut result__: bool = ::std::mem::zeroed();
6524             (::windows::runtime::Interface::vtable(this).17)(::std::mem::transmute_copy(this), value, &mut result__).from_abi::<bool>(result__)
6525         }
6526     }
6527     #[cfg(feature = "Media_Capture")]
TryGetPowerlineFrequency(&self, value: &mut super::Capture::PowerlineFrequency) -> ::windows::runtime::Result<bool>6528     pub fn TryGetPowerlineFrequency(&self, value: &mut super::Capture::PowerlineFrequency) -> ::windows::runtime::Result<bool> {
6529         let this = self;
6530         unsafe {
6531             let mut result__: bool = ::std::mem::zeroed();
6532             (::windows::runtime::Interface::vtable(this).18)(::std::mem::transmute_copy(this), value, &mut result__).from_abi::<bool>(result__)
6533         }
6534     }
SetDeviceProperty<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable>>(&self, propertyid: Param0, propertyvalue: Param1) -> ::windows::runtime::Result<()>6535     pub fn SetDeviceProperty<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable>>(&self, propertyid: Param0, propertyvalue: Param1) -> ::windows::runtime::Result<()> {
6536         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController>(self)?;
6537         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), propertyid.into_param().abi(), propertyvalue.into_param().abi()).ok() }
6538     }
GetDeviceProperty<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, propertyid: Param0) -> ::windows::runtime::Result<::windows::runtime::IInspectable>6539     pub fn GetDeviceProperty<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, propertyid: Param0) -> ::windows::runtime::Result<::windows::runtime::IInspectable> {
6540         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController>(self)?;
6541         unsafe {
6542             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6543             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), propertyid.into_param().abi(), &mut result__).from_abi::<::windows::runtime::IInspectable>(result__)
6544         }
6545     }
LowLagPhotoSequence(&self) -> ::windows::runtime::Result<LowLagPhotoSequenceControl>6546     pub fn LowLagPhotoSequence(&self) -> ::windows::runtime::Result<LowLagPhotoSequenceControl> {
6547         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController2>(self)?;
6548         unsafe {
6549             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6550             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<LowLagPhotoSequenceControl>(result__)
6551         }
6552     }
LowLagPhoto(&self) -> ::windows::runtime::Result<LowLagPhotoControl>6553     pub fn LowLagPhoto(&self) -> ::windows::runtime::Result<LowLagPhotoControl> {
6554         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController2>(self)?;
6555         unsafe {
6556             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6557             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<LowLagPhotoControl>(result__)
6558         }
6559     }
SceneModeControl(&self) -> ::windows::runtime::Result<SceneModeControl>6560     pub fn SceneModeControl(&self) -> ::windows::runtime::Result<SceneModeControl> {
6561         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController2>(self)?;
6562         unsafe {
6563             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6564             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<SceneModeControl>(result__)
6565         }
6566     }
TorchControl(&self) -> ::windows::runtime::Result<TorchControl>6567     pub fn TorchControl(&self) -> ::windows::runtime::Result<TorchControl> {
6568         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController2>(self)?;
6569         unsafe {
6570             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6571             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<TorchControl>(result__)
6572         }
6573     }
FlashControl(&self) -> ::windows::runtime::Result<FlashControl>6574     pub fn FlashControl(&self) -> ::windows::runtime::Result<FlashControl> {
6575         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController2>(self)?;
6576         unsafe {
6577             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6578             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<FlashControl>(result__)
6579         }
6580     }
WhiteBalanceControl(&self) -> ::windows::runtime::Result<WhiteBalanceControl>6581     pub fn WhiteBalanceControl(&self) -> ::windows::runtime::Result<WhiteBalanceControl> {
6582         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController2>(self)?;
6583         unsafe {
6584             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6585             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<WhiteBalanceControl>(result__)
6586         }
6587     }
ExposureControl(&self) -> ::windows::runtime::Result<ExposureControl>6588     pub fn ExposureControl(&self) -> ::windows::runtime::Result<ExposureControl> {
6589         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController2>(self)?;
6590         unsafe {
6591             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6592             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<ExposureControl>(result__)
6593         }
6594     }
FocusControl(&self) -> ::windows::runtime::Result<FocusControl>6595     pub fn FocusControl(&self) -> ::windows::runtime::Result<FocusControl> {
6596         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController2>(self)?;
6597         unsafe {
6598             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6599             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<FocusControl>(result__)
6600         }
6601     }
ExposureCompensationControl(&self) -> ::windows::runtime::Result<ExposureCompensationControl>6602     pub fn ExposureCompensationControl(&self) -> ::windows::runtime::Result<ExposureCompensationControl> {
6603         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController2>(self)?;
6604         unsafe {
6605             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6606             (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), &mut result__).from_abi::<ExposureCompensationControl>(result__)
6607         }
6608     }
IsoSpeedControl(&self) -> ::windows::runtime::Result<IsoSpeedControl>6609     pub fn IsoSpeedControl(&self) -> ::windows::runtime::Result<IsoSpeedControl> {
6610         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController2>(self)?;
6611         unsafe {
6612             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6613             (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), &mut result__).from_abi::<IsoSpeedControl>(result__)
6614         }
6615     }
RegionsOfInterestControl(&self) -> ::windows::runtime::Result<RegionsOfInterestControl>6616     pub fn RegionsOfInterestControl(&self) -> ::windows::runtime::Result<RegionsOfInterestControl> {
6617         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController2>(self)?;
6618         unsafe {
6619             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6620             (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), &mut result__).from_abi::<RegionsOfInterestControl>(result__)
6621         }
6622     }
PrimaryUse(&self) -> ::windows::runtime::Result<CaptureUse>6623     pub fn PrimaryUse(&self) -> ::windows::runtime::Result<CaptureUse> {
6624         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController2>(self)?;
6625         unsafe {
6626             let mut result__: CaptureUse = ::std::mem::zeroed();
6627             (::windows::runtime::Interface::vtable(this).17)(::std::mem::transmute_copy(this), &mut result__).from_abi::<CaptureUse>(result__)
6628         }
6629     }
SetPrimaryUse(&self, value: CaptureUse) -> ::windows::runtime::Result<()>6630     pub fn SetPrimaryUse(&self, value: CaptureUse) -> ::windows::runtime::Result<()> {
6631         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController2>(self)?;
6632         unsafe { (::windows::runtime::Interface::vtable(this).18)(::std::mem::transmute_copy(this), value).ok() }
6633     }
6634     #[cfg(feature = "Media_Devices_Core")]
VariablePhotoSequenceController(&self) -> ::windows::runtime::Result<Core::VariablePhotoSequenceController>6635     pub fn VariablePhotoSequenceController(&self) -> ::windows::runtime::Result<Core::VariablePhotoSequenceController> {
6636         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController3>(self)?;
6637         unsafe {
6638             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6639             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<Core::VariablePhotoSequenceController>(result__)
6640         }
6641     }
PhotoConfirmationControl(&self) -> ::windows::runtime::Result<PhotoConfirmationControl>6642     pub fn PhotoConfirmationControl(&self) -> ::windows::runtime::Result<PhotoConfirmationControl> {
6643         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController3>(self)?;
6644         unsafe {
6645             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6646             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<PhotoConfirmationControl>(result__)
6647         }
6648     }
ZoomControl(&self) -> ::windows::runtime::Result<ZoomControl>6649     pub fn ZoomControl(&self) -> ::windows::runtime::Result<ZoomControl> {
6650         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController3>(self)?;
6651         unsafe {
6652             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6653             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<ZoomControl>(result__)
6654         }
6655     }
ExposurePriorityVideoControl(&self) -> ::windows::runtime::Result<ExposurePriorityVideoControl>6656     pub fn ExposurePriorityVideoControl(&self) -> ::windows::runtime::Result<ExposurePriorityVideoControl> {
6657         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController4>(self)?;
6658         unsafe {
6659             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6660             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<ExposurePriorityVideoControl>(result__)
6661         }
6662     }
DesiredOptimization(&self) -> ::windows::runtime::Result<MediaCaptureOptimization>6663     pub fn DesiredOptimization(&self) -> ::windows::runtime::Result<MediaCaptureOptimization> {
6664         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController4>(self)?;
6665         unsafe {
6666             let mut result__: MediaCaptureOptimization = ::std::mem::zeroed();
6667             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<MediaCaptureOptimization>(result__)
6668         }
6669     }
SetDesiredOptimization(&self, value: MediaCaptureOptimization) -> ::windows::runtime::Result<()>6670     pub fn SetDesiredOptimization(&self, value: MediaCaptureOptimization) -> ::windows::runtime::Result<()> {
6671         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController4>(self)?;
6672         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), value).ok() }
6673     }
HdrVideoControl(&self) -> ::windows::runtime::Result<HdrVideoControl>6674     pub fn HdrVideoControl(&self) -> ::windows::runtime::Result<HdrVideoControl> {
6675         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController4>(self)?;
6676         unsafe {
6677             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6678             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<HdrVideoControl>(result__)
6679         }
6680     }
OpticalImageStabilizationControl(&self) -> ::windows::runtime::Result<OpticalImageStabilizationControl>6681     pub fn OpticalImageStabilizationControl(&self) -> ::windows::runtime::Result<OpticalImageStabilizationControl> {
6682         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController4>(self)?;
6683         unsafe {
6684             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6685             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<OpticalImageStabilizationControl>(result__)
6686         }
6687     }
AdvancedPhotoControl(&self) -> ::windows::runtime::Result<AdvancedPhotoControl>6688     pub fn AdvancedPhotoControl(&self) -> ::windows::runtime::Result<AdvancedPhotoControl> {
6689         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController4>(self)?;
6690         unsafe {
6691             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6692             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AdvancedPhotoControl>(result__)
6693         }
6694     }
6695     #[cfg(all(feature = "Foundation_Collections", feature = "Media_Capture", feature = "Media_MediaProperties"))]
GetAvailableMediaStreamProperties(&self, mediastreamtype: super::Capture::MediaStreamType) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<super::MediaProperties::IMediaEncodingProperties>>6696     pub fn GetAvailableMediaStreamProperties(&self, mediastreamtype: super::Capture::MediaStreamType) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<super::MediaProperties::IMediaEncodingProperties>> {
6697         let this = &::windows::runtime::Interface::cast::<IMediaDeviceController>(self)?;
6698         unsafe {
6699             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6700             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), mediastreamtype, &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<super::MediaProperties::IMediaEncodingProperties>>(result__)
6701         }
6702     }
6703     #[cfg(all(feature = "Media_Capture", feature = "Media_MediaProperties"))]
GetMediaStreamProperties(&self, mediastreamtype: super::Capture::MediaStreamType) -> ::windows::runtime::Result<super::MediaProperties::IMediaEncodingProperties>6704     pub fn GetMediaStreamProperties(&self, mediastreamtype: super::Capture::MediaStreamType) -> ::windows::runtime::Result<super::MediaProperties::IMediaEncodingProperties> {
6705         let this = &::windows::runtime::Interface::cast::<IMediaDeviceController>(self)?;
6706         unsafe {
6707             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6708             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), mediastreamtype, &mut result__).from_abi::<super::MediaProperties::IMediaEncodingProperties>(result__)
6709         }
6710     }
6711     #[cfg(all(feature = "Foundation", feature = "Media_Capture", feature = "Media_MediaProperties"))]
SetMediaStreamPropertiesAsync<'a, Param1: ::windows::runtime::IntoParam<'a, super::MediaProperties::IMediaEncodingProperties>>(&self, mediastreamtype: super::Capture::MediaStreamType, mediaencodingproperties: Param1) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>6712     pub fn SetMediaStreamPropertiesAsync<'a, Param1: ::windows::runtime::IntoParam<'a, super::MediaProperties::IMediaEncodingProperties>>(&self, mediastreamtype: super::Capture::MediaStreamType, mediaencodingproperties: Param1) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
6713         let this = &::windows::runtime::Interface::cast::<IMediaDeviceController>(self)?;
6714         unsafe {
6715             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6716             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), mediastreamtype, mediaencodingproperties.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
6717         }
6718     }
Id(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>6719     pub fn Id(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
6720         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController5>(self)?;
6721         unsafe {
6722             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
6723             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
6724         }
6725     }
6726     #[cfg(feature = "Foundation")]
GetDevicePropertyById<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<u32>>>(&self, propertyid: Param0, maxpropertyvaluesize: Param1) -> ::windows::runtime::Result<VideoDeviceControllerGetDevicePropertyResult>6727     pub fn GetDevicePropertyById<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<u32>>>(&self, propertyid: Param0, maxpropertyvaluesize: Param1) -> ::windows::runtime::Result<VideoDeviceControllerGetDevicePropertyResult> {
6728         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController5>(self)?;
6729         unsafe {
6730             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6731             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), propertyid.into_param().abi(), maxpropertyvaluesize.into_param().abi(), &mut result__).from_abi::<VideoDeviceControllerGetDevicePropertyResult>(result__)
6732         }
6733     }
SetDevicePropertyById<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable>>(&self, propertyid: Param0, propertyvalue: Param1) -> ::windows::runtime::Result<VideoDeviceControllerSetDevicePropertyStatus>6734     pub fn SetDevicePropertyById<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable>>(&self, propertyid: Param0, propertyvalue: Param1) -> ::windows::runtime::Result<VideoDeviceControllerSetDevicePropertyStatus> {
6735         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController5>(self)?;
6736         unsafe {
6737             let mut result__: VideoDeviceControllerSetDevicePropertyStatus = ::std::mem::zeroed();
6738             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), propertyid.into_param().abi(), propertyvalue.into_param().abi(), &mut result__).from_abi::<VideoDeviceControllerSetDevicePropertyStatus>(result__)
6739         }
6740     }
6741     #[cfg(feature = "Foundation")]
GetDevicePropertyByExtendedId<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<u32>>>(&self, extendedpropertyid: &[<u8 as ::windows::runtime::Abi>::DefaultType], maxpropertyvaluesize: Param1) -> ::windows::runtime::Result<VideoDeviceControllerGetDevicePropertyResult>6742     pub fn GetDevicePropertyByExtendedId<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<u32>>>(&self, extendedpropertyid: &[<u8 as ::windows::runtime::Abi>::DefaultType], maxpropertyvaluesize: Param1) -> ::windows::runtime::Result<VideoDeviceControllerGetDevicePropertyResult> {
6743         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController5>(self)?;
6744         unsafe {
6745             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6746             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), extendedpropertyid.len() as u32, ::std::mem::transmute(extendedpropertyid.as_ptr()), maxpropertyvaluesize.into_param().abi(), &mut result__).from_abi::<VideoDeviceControllerGetDevicePropertyResult>(result__)
6747         }
6748     }
SetDevicePropertyByExtendedId(&self, extendedpropertyid: &[<u8 as ::windows::runtime::Abi>::DefaultType], propertyvalue: &[<u8 as ::windows::runtime::Abi>::DefaultType]) -> ::windows::runtime::Result<VideoDeviceControllerSetDevicePropertyStatus>6749     pub fn SetDevicePropertyByExtendedId(&self, extendedpropertyid: &[<u8 as ::windows::runtime::Abi>::DefaultType], propertyvalue: &[<u8 as ::windows::runtime::Abi>::DefaultType]) -> ::windows::runtime::Result<VideoDeviceControllerSetDevicePropertyStatus> {
6750         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController5>(self)?;
6751         unsafe {
6752             let mut result__: VideoDeviceControllerSetDevicePropertyStatus = ::std::mem::zeroed();
6753             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), extendedpropertyid.len() as u32, ::std::mem::transmute(extendedpropertyid.as_ptr()), propertyvalue.len() as u32, ::std::mem::transmute(propertyvalue.as_ptr()), &mut result__).from_abi::<VideoDeviceControllerSetDevicePropertyStatus>(result__)
6754         }
6755     }
VideoTemporalDenoisingControl(&self) -> ::windows::runtime::Result<VideoTemporalDenoisingControl>6756     pub fn VideoTemporalDenoisingControl(&self) -> ::windows::runtime::Result<VideoTemporalDenoisingControl> {
6757         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController6>(self)?;
6758         unsafe {
6759             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6760             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<VideoTemporalDenoisingControl>(result__)
6761         }
6762     }
InfraredTorchControl(&self) -> ::windows::runtime::Result<InfraredTorchControl>6763     pub fn InfraredTorchControl(&self) -> ::windows::runtime::Result<InfraredTorchControl> {
6764         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController7>(self)?;
6765         unsafe {
6766             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6767             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<InfraredTorchControl>(result__)
6768         }
6769     }
PanelBasedOptimizationControl(&self) -> ::windows::runtime::Result<PanelBasedOptimizationControl>6770     pub fn PanelBasedOptimizationControl(&self) -> ::windows::runtime::Result<PanelBasedOptimizationControl> {
6771         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController8>(self)?;
6772         unsafe {
6773             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6774             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<PanelBasedOptimizationControl>(result__)
6775         }
6776     }
DigitalWindowControl(&self) -> ::windows::runtime::Result<DigitalWindowControl>6777     pub fn DigitalWindowControl(&self) -> ::windows::runtime::Result<DigitalWindowControl> {
6778         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController9>(self)?;
6779         unsafe {
6780             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6781             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<DigitalWindowControl>(result__)
6782         }
6783     }
CameraOcclusionInfo(&self) -> ::windows::runtime::Result<CameraOcclusionInfo>6784     pub fn CameraOcclusionInfo(&self) -> ::windows::runtime::Result<CameraOcclusionInfo> {
6785         let this = &::windows::runtime::Interface::cast::<IAdvancedVideoCaptureDeviceController10>(self)?;
6786         unsafe {
6787             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6788             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<CameraOcclusionInfo>(result__)
6789         }
6790     }
6791 }
6792 unsafe impl ::windows::runtime::RuntimeType for VideoDeviceController {
6793     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.VideoDeviceController;{99555575-2e2e-40b8-b6c7-f82d10013210})");
6794 }
6795 unsafe impl ::windows::runtime::Interface for VideoDeviceController {
6796     type Vtable = IVideoDeviceController_abi;
6797     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2572506485, 11822, 16568, [182, 199, 248, 45, 16, 1, 50, 16]);
6798 }
6799 impl ::windows::runtime::RuntimeName for VideoDeviceController {
6800     const NAME: &'static str = "Windows.Media.Devices.VideoDeviceController";
6801 }
6802 impl ::std::convert::From<VideoDeviceController> for ::windows::runtime::IUnknown {
from(value: VideoDeviceController) -> Self6803     fn from(value: VideoDeviceController) -> Self {
6804         unsafe { ::std::mem::transmute(value) }
6805     }
6806 }
6807 impl ::std::convert::From<&VideoDeviceController> for ::windows::runtime::IUnknown {
from(value: &VideoDeviceController) -> Self6808     fn from(value: &VideoDeviceController) -> Self {
6809         ::std::convert::From::from(::std::clone::Clone::clone(value))
6810     }
6811 }
6812 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for VideoDeviceController {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>6813     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
6814         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
6815     }
6816 }
6817 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &VideoDeviceController {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>6818     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
6819         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
6820     }
6821 }
6822 impl ::std::convert::From<VideoDeviceController> for ::windows::runtime::IInspectable {
from(value: VideoDeviceController) -> Self6823     fn from(value: VideoDeviceController) -> Self {
6824         value.0
6825     }
6826 }
6827 impl ::std::convert::From<&VideoDeviceController> for ::windows::runtime::IInspectable {
from(value: &VideoDeviceController) -> Self6828     fn from(value: &VideoDeviceController) -> Self {
6829         value.0.clone()
6830     }
6831 }
6832 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for VideoDeviceController {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>6833     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
6834         ::windows::runtime::Param::Owned(self.0)
6835     }
6836 }
6837 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a VideoDeviceController {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>6838     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
6839         ::windows::runtime::Param::Borrowed(&self.0)
6840     }
6841 }
6842 impl ::std::convert::TryFrom<VideoDeviceController> for IMediaDeviceController {
6843     type Error = ::windows::runtime::Error;
try_from(value: VideoDeviceController) -> ::windows::runtime::Result<Self>6844     fn try_from(value: VideoDeviceController) -> ::windows::runtime::Result<Self> {
6845         ::std::convert::TryFrom::try_from(&value)
6846     }
6847 }
6848 impl ::std::convert::TryFrom<&VideoDeviceController> for IMediaDeviceController {
6849     type Error = ::windows::runtime::Error;
try_from(value: &VideoDeviceController) -> ::windows::runtime::Result<Self>6850     fn try_from(value: &VideoDeviceController) -> ::windows::runtime::Result<Self> {
6851         ::windows::runtime::Interface::cast(value)
6852     }
6853 }
6854 impl<'a> ::windows::runtime::IntoParam<'a, IMediaDeviceController> for VideoDeviceController {
into_param(self) -> ::windows::runtime::Param<'a, IMediaDeviceController>6855     fn into_param(self) -> ::windows::runtime::Param<'a, IMediaDeviceController> {
6856         ::windows::runtime::IntoParam::into_param(&self)
6857     }
6858 }
6859 impl<'a> ::windows::runtime::IntoParam<'a, IMediaDeviceController> for &VideoDeviceController {
into_param(self) -> ::windows::runtime::Param<'a, IMediaDeviceController>6860     fn into_param(self) -> ::windows::runtime::Param<'a, IMediaDeviceController> {
6861         ::std::convert::TryInto::<IMediaDeviceController>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
6862     }
6863 }
6864 #[repr(transparent)]
6865 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6866 pub struct VideoDeviceControllerGetDevicePropertyResult(::windows::runtime::IInspectable);
6867 impl VideoDeviceControllerGetDevicePropertyResult {
Status(&self) -> ::windows::runtime::Result<VideoDeviceControllerGetDevicePropertyStatus>6868     pub fn Status(&self) -> ::windows::runtime::Result<VideoDeviceControllerGetDevicePropertyStatus> {
6869         let this = self;
6870         unsafe {
6871             let mut result__: VideoDeviceControllerGetDevicePropertyStatus = ::std::mem::zeroed();
6872             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<VideoDeviceControllerGetDevicePropertyStatus>(result__)
6873         }
6874     }
Value(&self) -> ::windows::runtime::Result<::windows::runtime::IInspectable>6875     pub fn Value(&self) -> ::windows::runtime::Result<::windows::runtime::IInspectable> {
6876         let this = self;
6877         unsafe {
6878             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6879             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::IInspectable>(result__)
6880         }
6881     }
6882 }
6883 unsafe impl ::windows::runtime::RuntimeType for VideoDeviceControllerGetDevicePropertyResult {
6884     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.VideoDeviceControllerGetDevicePropertyResult;{c5d88395-6ed5-4790-8b5d-0ef13935d0f8})");
6885 }
6886 unsafe impl ::windows::runtime::Interface for VideoDeviceControllerGetDevicePropertyResult {
6887     type Vtable = IVideoDeviceControllerGetDevicePropertyResult_abi;
6888     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3319301013, 28373, 18320, [139, 93, 14, 241, 57, 53, 208, 248]);
6889 }
6890 impl ::windows::runtime::RuntimeName for VideoDeviceControllerGetDevicePropertyResult {
6891     const NAME: &'static str = "Windows.Media.Devices.VideoDeviceControllerGetDevicePropertyResult";
6892 }
6893 impl ::std::convert::From<VideoDeviceControllerGetDevicePropertyResult> for ::windows::runtime::IUnknown {
from(value: VideoDeviceControllerGetDevicePropertyResult) -> Self6894     fn from(value: VideoDeviceControllerGetDevicePropertyResult) -> Self {
6895         unsafe { ::std::mem::transmute(value) }
6896     }
6897 }
6898 impl ::std::convert::From<&VideoDeviceControllerGetDevicePropertyResult> for ::windows::runtime::IUnknown {
from(value: &VideoDeviceControllerGetDevicePropertyResult) -> Self6899     fn from(value: &VideoDeviceControllerGetDevicePropertyResult) -> Self {
6900         ::std::convert::From::from(::std::clone::Clone::clone(value))
6901     }
6902 }
6903 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for VideoDeviceControllerGetDevicePropertyResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>6904     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
6905         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
6906     }
6907 }
6908 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &VideoDeviceControllerGetDevicePropertyResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>6909     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
6910         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
6911     }
6912 }
6913 impl ::std::convert::From<VideoDeviceControllerGetDevicePropertyResult> for ::windows::runtime::IInspectable {
from(value: VideoDeviceControllerGetDevicePropertyResult) -> Self6914     fn from(value: VideoDeviceControllerGetDevicePropertyResult) -> Self {
6915         value.0
6916     }
6917 }
6918 impl ::std::convert::From<&VideoDeviceControllerGetDevicePropertyResult> for ::windows::runtime::IInspectable {
from(value: &VideoDeviceControllerGetDevicePropertyResult) -> Self6919     fn from(value: &VideoDeviceControllerGetDevicePropertyResult) -> Self {
6920         value.0.clone()
6921     }
6922 }
6923 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for VideoDeviceControllerGetDevicePropertyResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>6924     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
6925         ::windows::runtime::Param::Owned(self.0)
6926     }
6927 }
6928 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a VideoDeviceControllerGetDevicePropertyResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>6929     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
6930         ::windows::runtime::Param::Borrowed(&self.0)
6931     }
6932 }
6933 unsafe impl ::std::marker::Send for VideoDeviceControllerGetDevicePropertyResult {}
6934 unsafe impl ::std::marker::Sync for VideoDeviceControllerGetDevicePropertyResult {}
6935 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
6936 #[repr(transparent)]
6937 pub struct VideoDeviceControllerGetDevicePropertyStatus(pub i32);
6938 impl VideoDeviceControllerGetDevicePropertyStatus {
6939     pub const Success: VideoDeviceControllerGetDevicePropertyStatus = VideoDeviceControllerGetDevicePropertyStatus(0i32);
6940     pub const UnknownFailure: VideoDeviceControllerGetDevicePropertyStatus = VideoDeviceControllerGetDevicePropertyStatus(1i32);
6941     pub const BufferTooSmall: VideoDeviceControllerGetDevicePropertyStatus = VideoDeviceControllerGetDevicePropertyStatus(2i32);
6942     pub const NotSupported: VideoDeviceControllerGetDevicePropertyStatus = VideoDeviceControllerGetDevicePropertyStatus(3i32);
6943     pub const DeviceNotAvailable: VideoDeviceControllerGetDevicePropertyStatus = VideoDeviceControllerGetDevicePropertyStatus(4i32);
6944     pub const MaxPropertyValueSizeTooSmall: VideoDeviceControllerGetDevicePropertyStatus = VideoDeviceControllerGetDevicePropertyStatus(5i32);
6945     pub const MaxPropertyValueSizeRequired: VideoDeviceControllerGetDevicePropertyStatus = VideoDeviceControllerGetDevicePropertyStatus(6i32);
6946 }
6947 impl ::std::convert::From<i32> for VideoDeviceControllerGetDevicePropertyStatus {
from(value: i32) -> Self6948     fn from(value: i32) -> Self {
6949         Self(value)
6950     }
6951 }
6952 unsafe impl ::windows::runtime::Abi for VideoDeviceControllerGetDevicePropertyStatus {
6953     type Abi = Self;
6954     type DefaultType = Self;
6955 }
6956 unsafe impl ::windows::runtime::RuntimeType for VideoDeviceControllerGetDevicePropertyStatus {
6957     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Devices.VideoDeviceControllerGetDevicePropertyStatus;i4)");
6958 }
6959 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
6960 #[repr(transparent)]
6961 pub struct VideoDeviceControllerSetDevicePropertyStatus(pub i32);
6962 impl VideoDeviceControllerSetDevicePropertyStatus {
6963     pub const Success: VideoDeviceControllerSetDevicePropertyStatus = VideoDeviceControllerSetDevicePropertyStatus(0i32);
6964     pub const UnknownFailure: VideoDeviceControllerSetDevicePropertyStatus = VideoDeviceControllerSetDevicePropertyStatus(1i32);
6965     pub const NotSupported: VideoDeviceControllerSetDevicePropertyStatus = VideoDeviceControllerSetDevicePropertyStatus(2i32);
6966     pub const InvalidValue: VideoDeviceControllerSetDevicePropertyStatus = VideoDeviceControllerSetDevicePropertyStatus(3i32);
6967     pub const DeviceNotAvailable: VideoDeviceControllerSetDevicePropertyStatus = VideoDeviceControllerSetDevicePropertyStatus(4i32);
6968     pub const NotInControl: VideoDeviceControllerSetDevicePropertyStatus = VideoDeviceControllerSetDevicePropertyStatus(5i32);
6969 }
6970 impl ::std::convert::From<i32> for VideoDeviceControllerSetDevicePropertyStatus {
from(value: i32) -> Self6971     fn from(value: i32) -> Self {
6972         Self(value)
6973     }
6974 }
6975 unsafe impl ::windows::runtime::Abi for VideoDeviceControllerSetDevicePropertyStatus {
6976     type Abi = Self;
6977     type DefaultType = Self;
6978 }
6979 unsafe impl ::windows::runtime::RuntimeType for VideoDeviceControllerSetDevicePropertyStatus {
6980     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Devices.VideoDeviceControllerSetDevicePropertyStatus;i4)");
6981 }
6982 #[repr(transparent)]
6983 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6984 pub struct VideoTemporalDenoisingControl(::windows::runtime::IInspectable);
6985 impl VideoTemporalDenoisingControl {
Supported(&self) -> ::windows::runtime::Result<bool>6986     pub fn Supported(&self) -> ::windows::runtime::Result<bool> {
6987         let this = self;
6988         unsafe {
6989             let mut result__: bool = ::std::mem::zeroed();
6990             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
6991         }
6992     }
6993     #[cfg(feature = "Foundation_Collections")]
SupportedModes(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<VideoTemporalDenoisingMode>>6994     pub fn SupportedModes(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<VideoTemporalDenoisingMode>> {
6995         let this = self;
6996         unsafe {
6997             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
6998             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<VideoTemporalDenoisingMode>>(result__)
6999         }
7000     }
Mode(&self) -> ::windows::runtime::Result<VideoTemporalDenoisingMode>7001     pub fn Mode(&self) -> ::windows::runtime::Result<VideoTemporalDenoisingMode> {
7002         let this = self;
7003         unsafe {
7004             let mut result__: VideoTemporalDenoisingMode = ::std::mem::zeroed();
7005             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<VideoTemporalDenoisingMode>(result__)
7006         }
7007     }
SetMode(&self, value: VideoTemporalDenoisingMode) -> ::windows::runtime::Result<()>7008     pub fn SetMode(&self, value: VideoTemporalDenoisingMode) -> ::windows::runtime::Result<()> {
7009         let this = self;
7010         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), value).ok() }
7011     }
7012 }
7013 unsafe impl ::windows::runtime::RuntimeType for VideoTemporalDenoisingControl {
7014     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.VideoTemporalDenoisingControl;{7ab34735-3e2a-4a32-baff-4358c4fbdd57})");
7015 }
7016 unsafe impl ::windows::runtime::Interface for VideoTemporalDenoisingControl {
7017     type Vtable = IVideoTemporalDenoisingControl_abi;
7018     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2058569525, 15914, 18994, [186, 255, 67, 88, 196, 251, 221, 87]);
7019 }
7020 impl ::windows::runtime::RuntimeName for VideoTemporalDenoisingControl {
7021     const NAME: &'static str = "Windows.Media.Devices.VideoTemporalDenoisingControl";
7022 }
7023 impl ::std::convert::From<VideoTemporalDenoisingControl> for ::windows::runtime::IUnknown {
from(value: VideoTemporalDenoisingControl) -> Self7024     fn from(value: VideoTemporalDenoisingControl) -> Self {
7025         unsafe { ::std::mem::transmute(value) }
7026     }
7027 }
7028 impl ::std::convert::From<&VideoTemporalDenoisingControl> for ::windows::runtime::IUnknown {
from(value: &VideoTemporalDenoisingControl) -> Self7029     fn from(value: &VideoTemporalDenoisingControl) -> Self {
7030         ::std::convert::From::from(::std::clone::Clone::clone(value))
7031     }
7032 }
7033 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for VideoTemporalDenoisingControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7034     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7035         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
7036     }
7037 }
7038 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &VideoTemporalDenoisingControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7039     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7040         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
7041     }
7042 }
7043 impl ::std::convert::From<VideoTemporalDenoisingControl> for ::windows::runtime::IInspectable {
from(value: VideoTemporalDenoisingControl) -> Self7044     fn from(value: VideoTemporalDenoisingControl) -> Self {
7045         value.0
7046     }
7047 }
7048 impl ::std::convert::From<&VideoTemporalDenoisingControl> for ::windows::runtime::IInspectable {
from(value: &VideoTemporalDenoisingControl) -> Self7049     fn from(value: &VideoTemporalDenoisingControl) -> Self {
7050         value.0.clone()
7051     }
7052 }
7053 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for VideoTemporalDenoisingControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>7054     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
7055         ::windows::runtime::Param::Owned(self.0)
7056     }
7057 }
7058 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a VideoTemporalDenoisingControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>7059     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
7060         ::windows::runtime::Param::Borrowed(&self.0)
7061     }
7062 }
7063 unsafe impl ::std::marker::Send for VideoTemporalDenoisingControl {}
7064 unsafe impl ::std::marker::Sync for VideoTemporalDenoisingControl {}
7065 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
7066 #[repr(transparent)]
7067 pub struct VideoTemporalDenoisingMode(pub i32);
7068 impl VideoTemporalDenoisingMode {
7069     pub const Off: VideoTemporalDenoisingMode = VideoTemporalDenoisingMode(0i32);
7070     pub const On: VideoTemporalDenoisingMode = VideoTemporalDenoisingMode(1i32);
7071     pub const Auto: VideoTemporalDenoisingMode = VideoTemporalDenoisingMode(2i32);
7072 }
7073 impl ::std::convert::From<i32> for VideoTemporalDenoisingMode {
from(value: i32) -> Self7074     fn from(value: i32) -> Self {
7075         Self(value)
7076     }
7077 }
7078 unsafe impl ::windows::runtime::Abi for VideoTemporalDenoisingMode {
7079     type Abi = Self;
7080     type DefaultType = Self;
7081 }
7082 unsafe impl ::windows::runtime::RuntimeType for VideoTemporalDenoisingMode {
7083     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Devices.VideoTemporalDenoisingMode;i4)");
7084 }
7085 #[repr(transparent)]
7086 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
7087 pub struct WhiteBalanceControl(::windows::runtime::IInspectable);
7088 impl WhiteBalanceControl {
Supported(&self) -> ::windows::runtime::Result<bool>7089     pub fn Supported(&self) -> ::windows::runtime::Result<bool> {
7090         let this = self;
7091         unsafe {
7092             let mut result__: bool = ::std::mem::zeroed();
7093             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
7094         }
7095     }
Preset(&self) -> ::windows::runtime::Result<ColorTemperaturePreset>7096     pub fn Preset(&self) -> ::windows::runtime::Result<ColorTemperaturePreset> {
7097         let this = self;
7098         unsafe {
7099             let mut result__: ColorTemperaturePreset = ::std::mem::zeroed();
7100             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<ColorTemperaturePreset>(result__)
7101         }
7102     }
7103     #[cfg(feature = "Foundation")]
SetPresetAsync(&self, preset: ColorTemperaturePreset) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>7104     pub fn SetPresetAsync(&self, preset: ColorTemperaturePreset) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
7105         let this = self;
7106         unsafe {
7107             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
7108             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), preset, &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
7109         }
7110     }
Min(&self) -> ::windows::runtime::Result<u32>7111     pub fn Min(&self) -> ::windows::runtime::Result<u32> {
7112         let this = self;
7113         unsafe {
7114             let mut result__: u32 = ::std::mem::zeroed();
7115             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
7116         }
7117     }
Max(&self) -> ::windows::runtime::Result<u32>7118     pub fn Max(&self) -> ::windows::runtime::Result<u32> {
7119         let this = self;
7120         unsafe {
7121             let mut result__: u32 = ::std::mem::zeroed();
7122             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
7123         }
7124     }
Step(&self) -> ::windows::runtime::Result<u32>7125     pub fn Step(&self) -> ::windows::runtime::Result<u32> {
7126         let this = self;
7127         unsafe {
7128             let mut result__: u32 = ::std::mem::zeroed();
7129             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
7130         }
7131     }
Value(&self) -> ::windows::runtime::Result<u32>7132     pub fn Value(&self) -> ::windows::runtime::Result<u32> {
7133         let this = self;
7134         unsafe {
7135             let mut result__: u32 = ::std::mem::zeroed();
7136             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
7137         }
7138     }
7139     #[cfg(feature = "Foundation")]
SetValueAsync(&self, temperature: u32) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>7140     pub fn SetValueAsync(&self, temperature: u32) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
7141         let this = self;
7142         unsafe {
7143             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
7144             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), temperature, &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
7145         }
7146     }
7147 }
7148 unsafe impl ::windows::runtime::RuntimeType for WhiteBalanceControl {
7149     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.WhiteBalanceControl;{781f047e-7162-49c8-a8f9-9481c565363e})");
7150 }
7151 unsafe impl ::windows::runtime::Interface for WhiteBalanceControl {
7152     type Vtable = IWhiteBalanceControl_abi;
7153     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2015298686, 29026, 18888, [168, 249, 148, 129, 197, 101, 54, 62]);
7154 }
7155 impl ::windows::runtime::RuntimeName for WhiteBalanceControl {
7156     const NAME: &'static str = "Windows.Media.Devices.WhiteBalanceControl";
7157 }
7158 impl ::std::convert::From<WhiteBalanceControl> for ::windows::runtime::IUnknown {
from(value: WhiteBalanceControl) -> Self7159     fn from(value: WhiteBalanceControl) -> Self {
7160         unsafe { ::std::mem::transmute(value) }
7161     }
7162 }
7163 impl ::std::convert::From<&WhiteBalanceControl> for ::windows::runtime::IUnknown {
from(value: &WhiteBalanceControl) -> Self7164     fn from(value: &WhiteBalanceControl) -> Self {
7165         ::std::convert::From::from(::std::clone::Clone::clone(value))
7166     }
7167 }
7168 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for WhiteBalanceControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7169     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7170         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
7171     }
7172 }
7173 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &WhiteBalanceControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7174     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7175         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
7176     }
7177 }
7178 impl ::std::convert::From<WhiteBalanceControl> for ::windows::runtime::IInspectable {
from(value: WhiteBalanceControl) -> Self7179     fn from(value: WhiteBalanceControl) -> Self {
7180         value.0
7181     }
7182 }
7183 impl ::std::convert::From<&WhiteBalanceControl> for ::windows::runtime::IInspectable {
from(value: &WhiteBalanceControl) -> Self7184     fn from(value: &WhiteBalanceControl) -> Self {
7185         value.0.clone()
7186     }
7187 }
7188 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for WhiteBalanceControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>7189     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
7190         ::windows::runtime::Param::Owned(self.0)
7191     }
7192 }
7193 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a WhiteBalanceControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>7194     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
7195         ::windows::runtime::Param::Borrowed(&self.0)
7196     }
7197 }
7198 #[repr(transparent)]
7199 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
7200 pub struct ZoomControl(::windows::runtime::IInspectable);
7201 impl ZoomControl {
Supported(&self) -> ::windows::runtime::Result<bool>7202     pub fn Supported(&self) -> ::windows::runtime::Result<bool> {
7203         let this = self;
7204         unsafe {
7205             let mut result__: bool = ::std::mem::zeroed();
7206             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
7207         }
7208     }
Min(&self) -> ::windows::runtime::Result<f32>7209     pub fn Min(&self) -> ::windows::runtime::Result<f32> {
7210         let this = self;
7211         unsafe {
7212             let mut result__: f32 = ::std::mem::zeroed();
7213             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f32>(result__)
7214         }
7215     }
Max(&self) -> ::windows::runtime::Result<f32>7216     pub fn Max(&self) -> ::windows::runtime::Result<f32> {
7217         let this = self;
7218         unsafe {
7219             let mut result__: f32 = ::std::mem::zeroed();
7220             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f32>(result__)
7221         }
7222     }
Step(&self) -> ::windows::runtime::Result<f32>7223     pub fn Step(&self) -> ::windows::runtime::Result<f32> {
7224         let this = self;
7225         unsafe {
7226             let mut result__: f32 = ::std::mem::zeroed();
7227             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f32>(result__)
7228         }
7229     }
Value(&self) -> ::windows::runtime::Result<f32>7230     pub fn Value(&self) -> ::windows::runtime::Result<f32> {
7231         let this = self;
7232         unsafe {
7233             let mut result__: f32 = ::std::mem::zeroed();
7234             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f32>(result__)
7235         }
7236     }
SetValue(&self, value: f32) -> ::windows::runtime::Result<()>7237     pub fn SetValue(&self, value: f32) -> ::windows::runtime::Result<()> {
7238         let this = self;
7239         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value).ok() }
7240     }
7241     #[cfg(feature = "Foundation_Collections")]
SupportedModes(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<ZoomTransitionMode>>7242     pub fn SupportedModes(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<ZoomTransitionMode>> {
7243         let this = &::windows::runtime::Interface::cast::<IZoomControl2>(self)?;
7244         unsafe {
7245             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
7246             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<ZoomTransitionMode>>(result__)
7247         }
7248     }
Mode(&self) -> ::windows::runtime::Result<ZoomTransitionMode>7249     pub fn Mode(&self) -> ::windows::runtime::Result<ZoomTransitionMode> {
7250         let this = &::windows::runtime::Interface::cast::<IZoomControl2>(self)?;
7251         unsafe {
7252             let mut result__: ZoomTransitionMode = ::std::mem::zeroed();
7253             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<ZoomTransitionMode>(result__)
7254         }
7255     }
Configure<'a, Param0: ::windows::runtime::IntoParam<'a, ZoomSettings>>(&self, settings: Param0) -> ::windows::runtime::Result<()>7256     pub fn Configure<'a, Param0: ::windows::runtime::IntoParam<'a, ZoomSettings>>(&self, settings: Param0) -> ::windows::runtime::Result<()> {
7257         let this = &::windows::runtime::Interface::cast::<IZoomControl2>(self)?;
7258         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), settings.into_param().abi()).ok() }
7259     }
7260 }
7261 unsafe impl ::windows::runtime::RuntimeType for ZoomControl {
7262     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.ZoomControl;{3a1e0b12-32da-4c17-bfd7-8d0c73c8f5a5})");
7263 }
7264 unsafe impl ::windows::runtime::Interface for ZoomControl {
7265     type Vtable = IZoomControl_abi;
7266     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(975047442, 13018, 19479, [191, 215, 141, 12, 115, 200, 245, 165]);
7267 }
7268 impl ::windows::runtime::RuntimeName for ZoomControl {
7269     const NAME: &'static str = "Windows.Media.Devices.ZoomControl";
7270 }
7271 impl ::std::convert::From<ZoomControl> for ::windows::runtime::IUnknown {
from(value: ZoomControl) -> Self7272     fn from(value: ZoomControl) -> Self {
7273         unsafe { ::std::mem::transmute(value) }
7274     }
7275 }
7276 impl ::std::convert::From<&ZoomControl> for ::windows::runtime::IUnknown {
from(value: &ZoomControl) -> Self7277     fn from(value: &ZoomControl) -> Self {
7278         ::std::convert::From::from(::std::clone::Clone::clone(value))
7279     }
7280 }
7281 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for ZoomControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7282     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7283         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
7284     }
7285 }
7286 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &ZoomControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7287     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7288         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
7289     }
7290 }
7291 impl ::std::convert::From<ZoomControl> for ::windows::runtime::IInspectable {
from(value: ZoomControl) -> Self7292     fn from(value: ZoomControl) -> Self {
7293         value.0
7294     }
7295 }
7296 impl ::std::convert::From<&ZoomControl> for ::windows::runtime::IInspectable {
from(value: &ZoomControl) -> Self7297     fn from(value: &ZoomControl) -> Self {
7298         value.0.clone()
7299     }
7300 }
7301 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for ZoomControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>7302     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
7303         ::windows::runtime::Param::Owned(self.0)
7304     }
7305 }
7306 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a ZoomControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>7307     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
7308         ::windows::runtime::Param::Borrowed(&self.0)
7309     }
7310 }
7311 #[repr(transparent)]
7312 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
7313 pub struct ZoomSettings(::windows::runtime::IInspectable);
7314 impl ZoomSettings {
new() -> ::windows::runtime::Result<Self>7315     pub fn new() -> ::windows::runtime::Result<Self> {
7316         Self::IActivationFactory(|f| f.activate_instance::<Self>())
7317     }
IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>7318     fn IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
7319         static mut SHARED: ::windows::runtime::FactoryCache<ZoomSettings, ::windows::runtime::IActivationFactory> = ::windows::runtime::FactoryCache::new();
7320         unsafe { SHARED.call(callback) }
7321     }
Mode(&self) -> ::windows::runtime::Result<ZoomTransitionMode>7322     pub fn Mode(&self) -> ::windows::runtime::Result<ZoomTransitionMode> {
7323         let this = self;
7324         unsafe {
7325             let mut result__: ZoomTransitionMode = ::std::mem::zeroed();
7326             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<ZoomTransitionMode>(result__)
7327         }
7328     }
SetMode(&self, value: ZoomTransitionMode) -> ::windows::runtime::Result<()>7329     pub fn SetMode(&self, value: ZoomTransitionMode) -> ::windows::runtime::Result<()> {
7330         let this = self;
7331         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() }
7332     }
Value(&self) -> ::windows::runtime::Result<f32>7333     pub fn Value(&self) -> ::windows::runtime::Result<f32> {
7334         let this = self;
7335         unsafe {
7336             let mut result__: f32 = ::std::mem::zeroed();
7337             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f32>(result__)
7338         }
7339     }
SetValue(&self, value: f32) -> ::windows::runtime::Result<()>7340     pub fn SetValue(&self, value: f32) -> ::windows::runtime::Result<()> {
7341         let this = self;
7342         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), value).ok() }
7343     }
7344 }
7345 unsafe impl ::windows::runtime::RuntimeType for ZoomSettings {
7346     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Media.Devices.ZoomSettings;{6ad66b24-14b4-4bfd-b18f-88fe24463b52})");
7347 }
7348 unsafe impl ::windows::runtime::Interface for ZoomSettings {
7349     type Vtable = IZoomSettings_abi;
7350     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1792437028, 5300, 19453, [177, 143, 136, 254, 36, 70, 59, 82]);
7351 }
7352 impl ::windows::runtime::RuntimeName for ZoomSettings {
7353     const NAME: &'static str = "Windows.Media.Devices.ZoomSettings";
7354 }
7355 impl ::std::convert::From<ZoomSettings> for ::windows::runtime::IUnknown {
from(value: ZoomSettings) -> Self7356     fn from(value: ZoomSettings) -> Self {
7357         unsafe { ::std::mem::transmute(value) }
7358     }
7359 }
7360 impl ::std::convert::From<&ZoomSettings> for ::windows::runtime::IUnknown {
from(value: &ZoomSettings) -> Self7361     fn from(value: &ZoomSettings) -> Self {
7362         ::std::convert::From::from(::std::clone::Clone::clone(value))
7363     }
7364 }
7365 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for ZoomSettings {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7366     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7367         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
7368     }
7369 }
7370 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &ZoomSettings {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7371     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7372         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
7373     }
7374 }
7375 impl ::std::convert::From<ZoomSettings> for ::windows::runtime::IInspectable {
from(value: ZoomSettings) -> Self7376     fn from(value: ZoomSettings) -> Self {
7377         value.0
7378     }
7379 }
7380 impl ::std::convert::From<&ZoomSettings> for ::windows::runtime::IInspectable {
from(value: &ZoomSettings) -> Self7381     fn from(value: &ZoomSettings) -> Self {
7382         value.0.clone()
7383     }
7384 }
7385 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for ZoomSettings {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>7386     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
7387         ::windows::runtime::Param::Owned(self.0)
7388     }
7389 }
7390 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a ZoomSettings {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>7391     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
7392         ::windows::runtime::Param::Borrowed(&self.0)
7393     }
7394 }
7395 unsafe impl ::std::marker::Send for ZoomSettings {}
7396 unsafe impl ::std::marker::Sync for ZoomSettings {}
7397 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
7398 #[repr(transparent)]
7399 pub struct ZoomTransitionMode(pub i32);
7400 impl ZoomTransitionMode {
7401     pub const Auto: ZoomTransitionMode = ZoomTransitionMode(0i32);
7402     pub const Direct: ZoomTransitionMode = ZoomTransitionMode(1i32);
7403     pub const Smooth: ZoomTransitionMode = ZoomTransitionMode(2i32);
7404 }
7405 impl ::std::convert::From<i32> for ZoomTransitionMode {
from(value: i32) -> Self7406     fn from(value: i32) -> Self {
7407         Self(value)
7408     }
7409 }
7410 unsafe impl ::windows::runtime::Abi for ZoomTransitionMode {
7411     type Abi = Self;
7412     type DefaultType = Self;
7413 }
7414 unsafe impl ::windows::runtime::RuntimeType for ZoomTransitionMode {
7415     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Media.Devices.ZoomTransitionMode;i4)");
7416 }
7417