kinect_v2_sys/
bindings.rs

1#![allow(non_upper_case_globals)]
2#![allow(non_camel_case_types)]
3#![allow(non_snake_case)]
4#![allow(dead_code)]
5#![allow(trivial_casts)]
6#![allow(clippy::all)]
7#![allow(unsafe_op_in_unsafe_fn)]
8#![allow(unused_imports)]
9
10use std::ops::BitOr;
11
12use windows::Win32::System::Com::IStream;
13pub use windows::core::HRESULT;
14pub type HANDLE = windows::Win32::Foundation::HANDLE;
15pub type IID = windows::core::GUID;
16pub type BYTE = ::std::os::raw::c_uchar;
17pub type INT64 = ::std::os::raw::c_longlong;
18pub type ULONG = ::std::os::raw::c_ulong;
19pub type RPC_IF_HANDLE = *mut ::std::os::raw::c_void;
20pub type WCHAR = ::std::os::raw::c_ushort;
21pub type UINT = ::std::os::raw::c_uint;
22pub type BOOLEAN = ::std::os::raw::c_uchar;
23pub type WAITABLE_HANDLE = HANDLE;
24pub type TIMESPAN = INT64;
25pub type UINT64 = ::std::os::raw::c_ulonglong;
26pub type UINT16 = ::std::os::raw::c_ushort;
27pub type INT32 = ::std::os::raw::c_int;
28
29unsafe extern "C" {
30    pub static mut __MIDL_itf_Kinect2EINPC_0000_0000_v0_0_c_ifspec: RPC_IF_HANDLE;
31}
32unsafe extern "C" {
33    pub static mut __MIDL_itf_Kinect2EINPC_0000_0000_v0_0_s_ifspec: RPC_IF_HANDLE;
34}
35unsafe extern "C" {
36    pub static IID_INotifyPropertyChanged: IID;
37}
38#[repr(C)]
39#[derive(Debug, Default)]
40pub struct INotifyPropertyChangedVtbl {
41    pub QueryInterface: ::std::option::Option<
42        unsafe extern "C" fn(
43            This: *mut INotifyPropertyChanged,
44            riid: *const IID,
45            ppvObject: *mut *mut ::std::os::raw::c_void,
46        ) -> HRESULT,
47    >,
48    pub AddRef:
49        ::std::option::Option<unsafe extern "C" fn(This: *mut INotifyPropertyChanged) -> ULONG>,
50    pub Release:
51        ::std::option::Option<unsafe extern "C" fn(This: *mut INotifyPropertyChanged) -> ULONG>,
52    pub SubscribePropertyChanged: ::std::option::Option<
53        unsafe extern "C" fn(
54            This: *mut INotifyPropertyChanged,
55            waitableHandle: *mut WAITABLE_HANDLE,
56        ) -> HRESULT,
57    >,
58    pub UnsubscribePropertyChanged: ::std::option::Option<
59        unsafe extern "C" fn(
60            This: *mut INotifyPropertyChanged,
61            waitableHandle: WAITABLE_HANDLE,
62        ) -> HRESULT,
63    >,
64    pub GetPropertyChangedEventData: ::std::option::Option<
65        unsafe extern "C" fn(
66            This: *mut INotifyPropertyChanged,
67            waitableHandle: WAITABLE_HANDLE,
68            bufferSize: UINT,
69            propertyName: *mut WCHAR,
70        ) -> HRESULT,
71    >,
72}
73#[allow(clippy::unnecessary_operation, clippy::identity_op)]
74const _: () = {
75    ["Size of INotifyPropertyChangedVtbl"]
76        [::std::mem::size_of::<INotifyPropertyChangedVtbl>() - 48usize];
77    ["Alignment of INotifyPropertyChangedVtbl"]
78        [::std::mem::align_of::<INotifyPropertyChangedVtbl>() - 8usize];
79    ["Offset of field: INotifyPropertyChangedVtbl::QueryInterface"]
80        [::std::mem::offset_of!(INotifyPropertyChangedVtbl, QueryInterface) - 0usize];
81    ["Offset of field: INotifyPropertyChangedVtbl::AddRef"]
82        [::std::mem::offset_of!(INotifyPropertyChangedVtbl, AddRef) - 8usize];
83    ["Offset of field: INotifyPropertyChangedVtbl::Release"]
84        [::std::mem::offset_of!(INotifyPropertyChangedVtbl, Release) - 16usize];
85    ["Offset of field: INotifyPropertyChangedVtbl::SubscribePropertyChanged"]
86        [::std::mem::offset_of!(INotifyPropertyChangedVtbl, SubscribePropertyChanged) - 24usize];
87    ["Offset of field: INotifyPropertyChangedVtbl::UnsubscribePropertyChanged"]
88        [::std::mem::offset_of!(INotifyPropertyChangedVtbl, UnsubscribePropertyChanged) - 32usize];
89    ["Offset of field: INotifyPropertyChangedVtbl::GetPropertyChangedEventData"]
90        [::std::mem::offset_of!(INotifyPropertyChangedVtbl, GetPropertyChangedEventData) - 40usize];
91};
92#[repr(C)]
93pub struct INotifyPropertyChanged {
94    pub lpVtbl: *mut INotifyPropertyChangedVtbl,
95}
96#[allow(clippy::unnecessary_operation, clippy::identity_op)]
97const _: () = {
98    ["Size of INotifyPropertyChanged"][::std::mem::size_of::<INotifyPropertyChanged>() - 8usize];
99    ["Alignment of INotifyPropertyChanged"]
100        [::std::mem::align_of::<INotifyPropertyChanged>() - 8usize];
101    ["Offset of field: INotifyPropertyChanged::lpVtbl"]
102        [::std::mem::offset_of!(INotifyPropertyChanged, lpVtbl) - 0usize];
103};
104impl Default for INotifyPropertyChanged {
105    fn default() -> Self {
106        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
107        unsafe {
108            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
109            s.assume_init()
110        }
111    }
112}
113unsafe extern "C" {
114    pub static IID_IPropertyChangedEventArgs: IID;
115}
116#[repr(C)]
117#[derive(Debug, Default)]
118pub struct IPropertyChangedEventArgsVtbl {
119    pub QueryInterface: ::std::option::Option<
120        unsafe extern "C" fn(
121            This: *mut IPropertyChangedEventArgs,
122            riid: *const IID,
123            ppvObject: *mut *mut ::std::os::raw::c_void,
124        ) -> HRESULT,
125    >,
126    pub AddRef:
127        ::std::option::Option<unsafe extern "C" fn(This: *mut IPropertyChangedEventArgs) -> ULONG>,
128    pub Release:
129        ::std::option::Option<unsafe extern "C" fn(This: *mut IPropertyChangedEventArgs) -> ULONG>,
130    pub get_PropertyName: ::std::option::Option<
131        unsafe extern "C" fn(
132            This: *mut IPropertyChangedEventArgs,
133            bufferSize: UINT,
134            propertyName: *mut WCHAR,
135        ) -> HRESULT,
136    >,
137}
138#[allow(clippy::unnecessary_operation, clippy::identity_op)]
139const _: () = {
140    ["Size of IPropertyChangedEventArgsVtbl"]
141        [::std::mem::size_of::<IPropertyChangedEventArgsVtbl>() - 32usize];
142    ["Alignment of IPropertyChangedEventArgsVtbl"]
143        [::std::mem::align_of::<IPropertyChangedEventArgsVtbl>() - 8usize];
144    ["Offset of field: IPropertyChangedEventArgsVtbl::QueryInterface"]
145        [::std::mem::offset_of!(IPropertyChangedEventArgsVtbl, QueryInterface) - 0usize];
146    ["Offset of field: IPropertyChangedEventArgsVtbl::AddRef"]
147        [::std::mem::offset_of!(IPropertyChangedEventArgsVtbl, AddRef) - 8usize];
148    ["Offset of field: IPropertyChangedEventArgsVtbl::Release"]
149        [::std::mem::offset_of!(IPropertyChangedEventArgsVtbl, Release) - 16usize];
150    ["Offset of field: IPropertyChangedEventArgsVtbl::get_PropertyName"]
151        [::std::mem::offset_of!(IPropertyChangedEventArgsVtbl, get_PropertyName) - 24usize];
152};
153#[repr(C)]
154pub struct IPropertyChangedEventArgs {
155    pub lpVtbl: *mut IPropertyChangedEventArgsVtbl,
156}
157#[allow(clippy::unnecessary_operation, clippy::identity_op)]
158const _: () = {
159    ["Size of IPropertyChangedEventArgs"]
160        [::std::mem::size_of::<IPropertyChangedEventArgs>() - 8usize];
161    ["Alignment of IPropertyChangedEventArgs"]
162        [::std::mem::align_of::<IPropertyChangedEventArgs>() - 8usize];
163    ["Offset of field: IPropertyChangedEventArgs::lpVtbl"]
164        [::std::mem::offset_of!(IPropertyChangedEventArgs, lpVtbl) - 0usize];
165};
166impl Default for IPropertyChangedEventArgs {
167    fn default() -> Self {
168        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
169        unsafe {
170            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
171            s.assume_init()
172        }
173    }
174}
175#[repr(i32)]
176#[derive(Debug, Clone, Hash, PartialEq, Eq)]
177pub enum KinectCapabilities {
178    None = 0,
179    Vision = 1,
180    Audio = 2,
181    Face = 4,
182    Expressions = 8,
183    Gamechat = 16,
184}
185#[repr(i32)]
186#[derive(Debug, Clone, Hash, PartialEq, Eq)]
187pub enum FrameSourceTypes {
188    None = 0,
189    Color = 1,
190    Infrared = 2,
191    LongExposureInfrared = 4,
192    Depth = 8,
193    BodyIndex = 16,
194    Body = 32,
195    Audio = 64,
196}
197
198impl From<i32> for FrameSourceTypes {
199    fn from(value: i32) -> Self {
200        match value {
201            0 => FrameSourceTypes::None,
202            1 => FrameSourceTypes::Color,
203            2 => FrameSourceTypes::Infrared,
204            4 => FrameSourceTypes::LongExposureInfrared,
205            8 => FrameSourceTypes::Depth,
206            16 => FrameSourceTypes::BodyIndex,
207            32 => FrameSourceTypes::Body,
208            64 => FrameSourceTypes::Audio,
209            _ => FrameSourceTypes::None, // fallback for unknown bits
210        }
211    }
212}
213
214impl BitOr for FrameSourceTypes {
215    type Output = FrameSourceTypes;
216
217    fn bitor(self, rhs: Self) -> Self::Output {
218        FrameSourceTypes::from(self as i32 | rhs as i32)
219    }
220}
221
222#[repr(i32)]
223#[derive(Debug, Clone, Hash, PartialEq, Eq)]
224pub enum ColorImageFormat {
225    None = 0,
226    Rgba = 1,
227    Yuv = 2,
228    Bgra = 3,
229    Bayer = 4,
230    Yuy2 = 5,
231}
232#[repr(i32)]
233#[derive(Debug, Clone, Hash, PartialEq, Eq)]
234pub enum HandState {
235    Unknown = 0,
236    NotTracked = 1,
237    Open = 2,
238    Closed = 3,
239    Lasso = 4,
240}
241#[repr(i32)]
242#[derive(Debug, Clone, Hash, PartialEq, Eq)]
243pub enum Expression {
244    Neutral = 0,
245    Happy = 1,
246    Count = 2,
247}
248#[repr(i32)]
249#[derive(Debug, Clone, Hash, PartialEq, Eq)]
250pub enum DetectionResult {
251    Unknown = 0,
252    No = 1,
253    Maybe = 2,
254    Yes = 3,
255}
256#[repr(i32)]
257#[derive(Debug, Clone, Hash, PartialEq, Eq)]
258pub enum TrackingConfidence {
259    Low = 0,
260    High = 1,
261}
262#[repr(i32)]
263#[derive(Debug, Clone, Hash, PartialEq, Eq)]
264pub enum Activity {
265    EyeLeftClosed = 0,
266    EyeRightClosed = 1,
267    MouthOpen = 2,
268    MouthMoved = 3,
269    LookingAway = 4,
270    Count = 5,
271}
272#[repr(i32)]
273#[derive(Debug, Clone, Hash, PartialEq, Eq)]
274pub enum Appearance {
275    WearingGlasses = 0,
276    Count = 1,
277}
278#[repr(i32)]
279#[derive(Debug, Clone, Hash, PartialEq, Eq)]
280pub enum JointType {
281    SpineBase = 0,
282    SpineMid = 1,
283    Neck = 2,
284    Head = 3,
285    ShoulderLeft = 4,
286    ElbowLeft = 5,
287    WristLeft = 6,
288    HandLeft = 7,
289    ShoulderRight = 8,
290    ElbowRight = 9,
291    WristRight = 10,
292    HandRight = 11,
293    HipLeft = 12,
294    KneeLeft = 13,
295    AnkleLeft = 14,
296    FootLeft = 15,
297    HipRight = 16,
298    KneeRight = 17,
299    AnkleRight = 18,
300    FootRight = 19,
301    SpineShoulder = 20,
302    HandTipLeft = 21,
303    ThumbLeft = 22,
304    HandTipRight = 23,
305    ThumbRight = 24,
306    Count = 25,
307}
308#[repr(i32)]
309#[derive(Debug, Clone, Hash, PartialEq, Eq)]
310pub enum TrackingState {
311    NotTracked = 0,
312    Inferred = 1,
313    Tracked = 2,
314}
315#[repr(i32)]
316#[derive(Debug, Clone, Hash, PartialEq, Eq)]
317pub enum FrameEdges {
318    None = 0,
319    Right = 1,
320    Left = 2,
321    Top = 4,
322    Bottom = 8,
323}
324#[repr(i32)]
325#[derive(Debug, Clone, Hash, PartialEq, Eq)]
326pub enum FrameCapturedStatus {
327    Unknown = 0,
328    Queued = 1,
329    Dropped = 2,
330}
331#[repr(i32)]
332#[derive(Debug, Clone, Hash, PartialEq, Eq)]
333pub enum AudioBeamMode {
334    Automatic = 0,
335    Manual = 1,
336}
337#[repr(i32)]
338#[derive(Debug, Clone, Hash, PartialEq, Eq)]
339pub enum KinectAudioCalibrationState {
340    Unknown = 0,
341    CalibrationRequired = 1,
342    Calibrated = 2,
343}
344#[repr(C)]
345#[derive(Debug, Default, Clone)]
346pub struct Vector4 {
347    pub x: f32,
348    pub y: f32,
349    pub z: f32,
350    pub w: f32,
351}
352#[allow(clippy::unnecessary_operation, clippy::identity_op)]
353const _: () = {
354    ["Size of Vector4"][::std::mem::size_of::<Vector4>() - 16usize];
355    ["Alignment of Vector4"][::std::mem::align_of::<Vector4>() - 4usize];
356    ["Offset of field: Vector4::x"][::std::mem::offset_of!(Vector4, x) - 0usize];
357    ["Offset of field: Vector4::y"][::std::mem::offset_of!(Vector4, y) - 4usize];
358    ["Offset of field: Vector4::z"][::std::mem::offset_of!(Vector4, z) - 8usize];
359    ["Offset of field: Vector4::w"][::std::mem::offset_of!(Vector4, w) - 12usize];
360};
361#[repr(C)]
362#[derive(Debug, Default, Clone)]
363pub struct PointF {
364    pub X: f32,
365    pub Y: f32,
366}
367#[allow(clippy::unnecessary_operation, clippy::identity_op)]
368const _: () = {
369    ["Size of PointF"][::std::mem::size_of::<PointF>() - 8usize];
370    ["Alignment of PointF"][::std::mem::align_of::<PointF>() - 4usize];
371    ["Offset of field: PointF::X"][::std::mem::offset_of!(PointF, X) - 0usize];
372    ["Offset of field: PointF::Y"][::std::mem::offset_of!(PointF, Y) - 4usize];
373};
374#[repr(C)]
375#[derive(Debug, Default, Clone)]
376pub struct RectF {
377    pub X: f32,
378    pub Y: f32,
379    pub Width: f32,
380    pub Height: f32,
381}
382#[allow(clippy::unnecessary_operation, clippy::identity_op)]
383const _: () = {
384    ["Size of RectF"][::std::mem::size_of::<RectF>() - 16usize];
385    ["Alignment of RectF"][::std::mem::align_of::<RectF>() - 4usize];
386    ["Offset of field: RectF::X"][::std::mem::offset_of!(RectF, X) - 0usize];
387    ["Offset of field: RectF::Y"][::std::mem::offset_of!(RectF, Y) - 4usize];
388    ["Offset of field: RectF::Width"][::std::mem::offset_of!(RectF, Width) - 8usize];
389    ["Offset of field: RectF::Height"][::std::mem::offset_of!(RectF, Height) - 12usize];
390};
391#[repr(C)]
392#[derive(Debug, Default)]
393pub struct ColorSpacePoint {
394    pub X: f32,
395    pub Y: f32,
396}
397#[allow(clippy::unnecessary_operation, clippy::identity_op)]
398const _: () = {
399    ["Size of ColorSpacePoint"][::std::mem::size_of::<ColorSpacePoint>() - 8usize];
400    ["Alignment of ColorSpacePoint"][::std::mem::align_of::<ColorSpacePoint>() - 4usize];
401    ["Offset of field: ColorSpacePoint::X"][::std::mem::offset_of!(ColorSpacePoint, X) - 0usize];
402    ["Offset of field: ColorSpacePoint::Y"][::std::mem::offset_of!(ColorSpacePoint, Y) - 4usize];
403};
404#[repr(C)]
405#[derive(Debug, Default)]
406pub struct DepthSpacePoint {
407    pub X: f32,
408    pub Y: f32,
409}
410#[allow(clippy::unnecessary_operation, clippy::identity_op)]
411const _: () = {
412    ["Size of DepthSpacePoint"][::std::mem::size_of::<DepthSpacePoint>() - 8usize];
413    ["Alignment of DepthSpacePoint"][::std::mem::align_of::<DepthSpacePoint>() - 4usize];
414    ["Offset of field: DepthSpacePoint::X"][::std::mem::offset_of!(DepthSpacePoint, X) - 0usize];
415    ["Offset of field: DepthSpacePoint::Y"][::std::mem::offset_of!(DepthSpacePoint, Y) - 4usize];
416};
417#[repr(C)]
418#[derive(Debug, Default, Clone)]
419pub struct CameraSpacePoint {
420    pub X: f32,
421    pub Y: f32,
422    pub Z: f32,
423}
424#[allow(clippy::unnecessary_operation, clippy::identity_op)]
425const _: () = {
426    ["Size of CameraSpacePoint"][::std::mem::size_of::<CameraSpacePoint>() - 12usize];
427    ["Alignment of CameraSpacePoint"][::std::mem::align_of::<CameraSpacePoint>() - 4usize];
428    ["Offset of field: CameraSpacePoint::X"][::std::mem::offset_of!(CameraSpacePoint, X) - 0usize];
429    ["Offset of field: CameraSpacePoint::Y"][::std::mem::offset_of!(CameraSpacePoint, Y) - 4usize];
430    ["Offset of field: CameraSpacePoint::Z"][::std::mem::offset_of!(CameraSpacePoint, Z) - 8usize];
431};
432
433#[derive(Debug, Clone)]
434#[repr(C)]
435pub struct Joint {
436    pub JointType: JointType,
437    pub Position: CameraSpacePoint,
438    pub TrackingState: TrackingState,
439}
440#[allow(clippy::unnecessary_operation, clippy::identity_op)]
441const _: () = {
442    ["Size of Joint"][::std::mem::size_of::<Joint>() - 20usize];
443    ["Alignment of Joint"][::std::mem::align_of::<Joint>() - 4usize];
444    ["Offset of field: Joint::JointType"][::std::mem::offset_of!(Joint, JointType) - 0usize];
445    ["Offset of field: Joint::Position"][::std::mem::offset_of!(Joint, Position) - 4usize];
446    ["Offset of field: Joint::TrackingState"]
447        [::std::mem::offset_of!(Joint, TrackingState) - 16usize];
448};
449impl Default for Joint {
450    fn default() -> Self {
451        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
452        unsafe {
453            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
454            s.assume_init()
455        }
456    }
457}
458
459#[derive(Debug, Clone)]
460#[repr(C)]
461pub struct JointOrientation {
462    pub JointType: JointType,
463    pub Orientation: Vector4,
464}
465#[allow(clippy::unnecessary_operation, clippy::identity_op)]
466const _: () = {
467    ["Size of JointOrientation"][::std::mem::size_of::<JointOrientation>() - 20usize];
468    ["Alignment of JointOrientation"][::std::mem::align_of::<JointOrientation>() - 4usize];
469    ["Offset of field: JointOrientation::JointType"]
470        [::std::mem::offset_of!(JointOrientation, JointType) - 0usize];
471    ["Offset of field: JointOrientation::Orientation"]
472        [::std::mem::offset_of!(JointOrientation, Orientation) - 4usize];
473};
474impl Default for JointOrientation {
475    fn default() -> Self {
476        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
477        unsafe {
478            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
479            s.assume_init()
480        }
481    }
482}
483#[repr(C)]
484#[derive(Debug, Default)]
485pub struct CameraIntrinsics {
486    pub FocalLengthX: f32,
487    pub FocalLengthY: f32,
488    pub PrincipalPointX: f32,
489    pub PrincipalPointY: f32,
490    pub RadialDistortionSecondOrder: f32,
491    pub RadialDistortionFourthOrder: f32,
492    pub RadialDistortionSixthOrder: f32,
493}
494#[allow(clippy::unnecessary_operation, clippy::identity_op)]
495const _: () = {
496    ["Size of CameraIntrinsics"][::std::mem::size_of::<CameraIntrinsics>() - 28usize];
497    ["Alignment of CameraIntrinsics"][::std::mem::align_of::<CameraIntrinsics>() - 4usize];
498    ["Offset of field: CameraIntrinsics::FocalLengthX"]
499        [::std::mem::offset_of!(CameraIntrinsics, FocalLengthX) - 0usize];
500    ["Offset of field: CameraIntrinsics::FocalLengthY"]
501        [::std::mem::offset_of!(CameraIntrinsics, FocalLengthY) - 4usize];
502    ["Offset of field: CameraIntrinsics::PrincipalPointX"]
503        [::std::mem::offset_of!(CameraIntrinsics, PrincipalPointX) - 8usize];
504    ["Offset of field: CameraIntrinsics::PrincipalPointY"]
505        [::std::mem::offset_of!(CameraIntrinsics, PrincipalPointY) - 12usize];
506    ["Offset of field: CameraIntrinsics::RadialDistortionSecondOrder"]
507        [::std::mem::offset_of!(CameraIntrinsics, RadialDistortionSecondOrder) - 16usize];
508    ["Offset of field: CameraIntrinsics::RadialDistortionFourthOrder"]
509        [::std::mem::offset_of!(CameraIntrinsics, RadialDistortionFourthOrder) - 20usize];
510    ["Offset of field: CameraIntrinsics::RadialDistortionSixthOrder"]
511        [::std::mem::offset_of!(CameraIntrinsics, RadialDistortionSixthOrder) - 24usize];
512};
513unsafe extern "C" {
514    pub static mut __MIDL_itf_Kinect2ECOM_0000_0000_v0_0_c_ifspec: RPC_IF_HANDLE;
515}
516unsafe extern "C" {
517    pub static mut __MIDL_itf_Kinect2ECOM_0000_0000_v0_0_s_ifspec: RPC_IF_HANDLE;
518}
519unsafe extern "C" {
520    pub static IID_IKinectSensor: IID;
521}
522#[repr(C)]
523#[derive(Debug, Default)]
524pub struct IKinectSensorVtbl {
525    pub QueryInterface: ::std::option::Option<
526        unsafe extern "C" fn(
527            This: *mut IKinectSensor,
528            riid: *const IID,
529            ppvObject: *mut *mut ::std::os::raw::c_void,
530        ) -> HRESULT,
531    >,
532    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IKinectSensor) -> ULONG>,
533    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IKinectSensor) -> ULONG>,
534    pub SubscribeIsAvailableChanged: ::std::option::Option<
535        unsafe extern "C" fn(
536            This: *mut IKinectSensor,
537            waitableHandle: *mut WAITABLE_HANDLE,
538        ) -> HRESULT,
539    >,
540    pub UnsubscribeIsAvailableChanged: ::std::option::Option<
541        unsafe extern "C" fn(This: *mut IKinectSensor, waitableHandle: WAITABLE_HANDLE) -> HRESULT,
542    >,
543    pub GetIsAvailableChangedEventData: ::std::option::Option<
544        unsafe extern "C" fn(
545            This: *mut IKinectSensor,
546            waitableHandle: WAITABLE_HANDLE,
547            eventData: *mut *mut IIsAvailableChangedEventArgs,
548        ) -> HRESULT,
549    >,
550    pub Open: ::std::option::Option<unsafe extern "C" fn(This: *mut IKinectSensor) -> HRESULT>,
551    pub Close: ::std::option::Option<unsafe extern "C" fn(This: *mut IKinectSensor) -> HRESULT>,
552    pub get_IsOpen: ::std::option::Option<
553        unsafe extern "C" fn(This: *mut IKinectSensor, isOpen: *mut BOOLEAN) -> HRESULT,
554    >,
555    pub get_IsAvailable: ::std::option::Option<
556        unsafe extern "C" fn(This: *mut IKinectSensor, isAvailable: *mut BOOLEAN) -> HRESULT,
557    >,
558    pub get_ColorFrameSource: ::std::option::Option<
559        unsafe extern "C" fn(
560            This: *mut IKinectSensor,
561            colorFrameSource: *mut *mut IColorFrameSource,
562        ) -> HRESULT,
563    >,
564    pub get_DepthFrameSource: ::std::option::Option<
565        unsafe extern "C" fn(
566            This: *mut IKinectSensor,
567            depthFrameSource: *mut *mut IDepthFrameSource,
568        ) -> HRESULT,
569    >,
570    pub get_BodyFrameSource: ::std::option::Option<
571        unsafe extern "C" fn(
572            This: *mut IKinectSensor,
573            bodyFrameSource: *mut *mut IBodyFrameSource,
574        ) -> HRESULT,
575    >,
576    pub get_BodyIndexFrameSource: ::std::option::Option<
577        unsafe extern "C" fn(
578            This: *mut IKinectSensor,
579            bodyIndexFrameSource: *mut *mut IBodyIndexFrameSource,
580        ) -> HRESULT,
581    >,
582    pub get_InfraredFrameSource: ::std::option::Option<
583        unsafe extern "C" fn(
584            This: *mut IKinectSensor,
585            infraredFrameSource: *mut *mut IInfraredFrameSource,
586        ) -> HRESULT,
587    >,
588    pub get_LongExposureInfraredFrameSource: ::std::option::Option<
589        unsafe extern "C" fn(
590            This: *mut IKinectSensor,
591            longExposureInfraredFrameSource: *mut *mut ILongExposureInfraredFrameSource,
592        ) -> HRESULT,
593    >,
594    pub get_AudioSource: ::std::option::Option<
595        unsafe extern "C" fn(
596            This: *mut IKinectSensor,
597            audioSource: *mut *mut IAudioSource,
598        ) -> HRESULT,
599    >,
600    pub OpenMultiSourceFrameReader: ::std::option::Option<
601        unsafe extern "C" fn(
602            This: *mut IKinectSensor,
603            enabledFrameSourceTypes: FrameSourceTypes,
604            multiSourceFrameReader: *mut *mut IMultiSourceFrameReader,
605        ) -> HRESULT,
606    >,
607    pub get_CoordinateMapper: ::std::option::Option<
608        unsafe extern "C" fn(
609            This: *mut IKinectSensor,
610            coordinateMapper: *mut *mut ICoordinateMapper,
611        ) -> HRESULT,
612    >,
613    pub get_UniqueKinectId: ::std::option::Option<
614        unsafe extern "C" fn(
615            This: *mut IKinectSensor,
616            bufferSize: UINT,
617            uniqueKinectId: *mut WCHAR,
618        ) -> HRESULT,
619    >,
620    pub get_KinectCapabilities: ::std::option::Option<
621        unsafe extern "C" fn(This: *mut IKinectSensor, capabilities: *mut ULONG) -> HRESULT,
622    >,
623}
624#[allow(clippy::unnecessary_operation, clippy::identity_op)]
625const _: () = {
626    ["Size of IKinectSensorVtbl"][::std::mem::size_of::<IKinectSensorVtbl>() - 168usize];
627    ["Alignment of IKinectSensorVtbl"][::std::mem::align_of::<IKinectSensorVtbl>() - 8usize];
628    ["Offset of field: IKinectSensorVtbl::QueryInterface"]
629        [::std::mem::offset_of!(IKinectSensorVtbl, QueryInterface) - 0usize];
630    ["Offset of field: IKinectSensorVtbl::AddRef"]
631        [::std::mem::offset_of!(IKinectSensorVtbl, AddRef) - 8usize];
632    ["Offset of field: IKinectSensorVtbl::Release"]
633        [::std::mem::offset_of!(IKinectSensorVtbl, Release) - 16usize];
634    ["Offset of field: IKinectSensorVtbl::SubscribeIsAvailableChanged"]
635        [::std::mem::offset_of!(IKinectSensorVtbl, SubscribeIsAvailableChanged) - 24usize];
636    ["Offset of field: IKinectSensorVtbl::UnsubscribeIsAvailableChanged"]
637        [::std::mem::offset_of!(IKinectSensorVtbl, UnsubscribeIsAvailableChanged) - 32usize];
638    ["Offset of field: IKinectSensorVtbl::GetIsAvailableChangedEventData"]
639        [::std::mem::offset_of!(IKinectSensorVtbl, GetIsAvailableChangedEventData) - 40usize];
640    ["Offset of field: IKinectSensorVtbl::Open"]
641        [::std::mem::offset_of!(IKinectSensorVtbl, Open) - 48usize];
642    ["Offset of field: IKinectSensorVtbl::Close"]
643        [::std::mem::offset_of!(IKinectSensorVtbl, Close) - 56usize];
644    ["Offset of field: IKinectSensorVtbl::get_IsOpen"]
645        [::std::mem::offset_of!(IKinectSensorVtbl, get_IsOpen) - 64usize];
646    ["Offset of field: IKinectSensorVtbl::get_IsAvailable"]
647        [::std::mem::offset_of!(IKinectSensorVtbl, get_IsAvailable) - 72usize];
648    ["Offset of field: IKinectSensorVtbl::get_ColorFrameSource"]
649        [::std::mem::offset_of!(IKinectSensorVtbl, get_ColorFrameSource) - 80usize];
650    ["Offset of field: IKinectSensorVtbl::get_DepthFrameSource"]
651        [::std::mem::offset_of!(IKinectSensorVtbl, get_DepthFrameSource) - 88usize];
652    ["Offset of field: IKinectSensorVtbl::get_BodyFrameSource"]
653        [::std::mem::offset_of!(IKinectSensorVtbl, get_BodyFrameSource) - 96usize];
654    ["Offset of field: IKinectSensorVtbl::get_BodyIndexFrameSource"]
655        [::std::mem::offset_of!(IKinectSensorVtbl, get_BodyIndexFrameSource) - 104usize];
656    ["Offset of field: IKinectSensorVtbl::get_InfraredFrameSource"]
657        [::std::mem::offset_of!(IKinectSensorVtbl, get_InfraredFrameSource) - 112usize];
658    ["Offset of field: IKinectSensorVtbl::get_LongExposureInfraredFrameSource"]
659        [::std::mem::offset_of!(IKinectSensorVtbl, get_LongExposureInfraredFrameSource) - 120usize];
660    ["Offset of field: IKinectSensorVtbl::get_AudioSource"]
661        [::std::mem::offset_of!(IKinectSensorVtbl, get_AudioSource) - 128usize];
662    ["Offset of field: IKinectSensorVtbl::OpenMultiSourceFrameReader"]
663        [::std::mem::offset_of!(IKinectSensorVtbl, OpenMultiSourceFrameReader) - 136usize];
664    ["Offset of field: IKinectSensorVtbl::get_CoordinateMapper"]
665        [::std::mem::offset_of!(IKinectSensorVtbl, get_CoordinateMapper) - 144usize];
666    ["Offset of field: IKinectSensorVtbl::get_UniqueKinectId"]
667        [::std::mem::offset_of!(IKinectSensorVtbl, get_UniqueKinectId) - 152usize];
668    ["Offset of field: IKinectSensorVtbl::get_KinectCapabilities"]
669        [::std::mem::offset_of!(IKinectSensorVtbl, get_KinectCapabilities) - 160usize];
670};
671#[repr(C)]
672pub struct IKinectSensor {
673    pub lpVtbl: *mut IKinectSensorVtbl,
674}
675#[allow(clippy::unnecessary_operation, clippy::identity_op)]
676const _: () = {
677    ["Size of IKinectSensor"][::std::mem::size_of::<IKinectSensor>() - 8usize];
678    ["Alignment of IKinectSensor"][::std::mem::align_of::<IKinectSensor>() - 8usize];
679    ["Offset of field: IKinectSensor::lpVtbl"]
680        [::std::mem::offset_of!(IKinectSensor, lpVtbl) - 0usize];
681};
682impl Default for IKinectSensor {
683    fn default() -> Self {
684        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
685        unsafe {
686            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
687            s.assume_init()
688        }
689    }
690}
691unsafe extern "C" {
692    pub static IID_IIsAvailableChangedEventArgs: IID;
693}
694#[repr(C)]
695#[derive(Debug, Default)]
696pub struct IIsAvailableChangedEventArgsVtbl {
697    pub QueryInterface: ::std::option::Option<
698        unsafe extern "C" fn(
699            This: *mut IIsAvailableChangedEventArgs,
700            riid: *const IID,
701            ppvObject: *mut *mut ::std::os::raw::c_void,
702        ) -> HRESULT,
703    >,
704    pub AddRef: ::std::option::Option<
705        unsafe extern "C" fn(This: *mut IIsAvailableChangedEventArgs) -> ULONG,
706    >,
707    pub Release: ::std::option::Option<
708        unsafe extern "C" fn(This: *mut IIsAvailableChangedEventArgs) -> ULONG,
709    >,
710    pub get_IsAvailable: ::std::option::Option<
711        unsafe extern "C" fn(
712            This: *mut IIsAvailableChangedEventArgs,
713            isAvailable: *mut BOOLEAN,
714        ) -> HRESULT,
715    >,
716}
717#[allow(clippy::unnecessary_operation, clippy::identity_op)]
718const _: () = {
719    ["Size of IIsAvailableChangedEventArgsVtbl"]
720        [::std::mem::size_of::<IIsAvailableChangedEventArgsVtbl>() - 32usize];
721    ["Alignment of IIsAvailableChangedEventArgsVtbl"]
722        [::std::mem::align_of::<IIsAvailableChangedEventArgsVtbl>() - 8usize];
723    ["Offset of field: IIsAvailableChangedEventArgsVtbl::QueryInterface"]
724        [::std::mem::offset_of!(IIsAvailableChangedEventArgsVtbl, QueryInterface) - 0usize];
725    ["Offset of field: IIsAvailableChangedEventArgsVtbl::AddRef"]
726        [::std::mem::offset_of!(IIsAvailableChangedEventArgsVtbl, AddRef) - 8usize];
727    ["Offset of field: IIsAvailableChangedEventArgsVtbl::Release"]
728        [::std::mem::offset_of!(IIsAvailableChangedEventArgsVtbl, Release) - 16usize];
729    ["Offset of field: IIsAvailableChangedEventArgsVtbl::get_IsAvailable"]
730        [::std::mem::offset_of!(IIsAvailableChangedEventArgsVtbl, get_IsAvailable) - 24usize];
731};
732#[repr(C)]
733pub struct IIsAvailableChangedEventArgs {
734    pub lpVtbl: *mut IIsAvailableChangedEventArgsVtbl,
735}
736#[allow(clippy::unnecessary_operation, clippy::identity_op)]
737const _: () = {
738    ["Size of IIsAvailableChangedEventArgs"]
739        [::std::mem::size_of::<IIsAvailableChangedEventArgs>() - 8usize];
740    ["Alignment of IIsAvailableChangedEventArgs"]
741        [::std::mem::align_of::<IIsAvailableChangedEventArgs>() - 8usize];
742    ["Offset of field: IIsAvailableChangedEventArgs::lpVtbl"]
743        [::std::mem::offset_of!(IIsAvailableChangedEventArgs, lpVtbl) - 0usize];
744};
745impl Default for IIsAvailableChangedEventArgs {
746    fn default() -> Self {
747        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
748        unsafe {
749            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
750            s.assume_init()
751        }
752    }
753}
754unsafe extern "C" {
755    pub static IID_IFrameDescription: IID;
756}
757#[repr(C)]
758#[derive(Debug, Default)]
759pub struct IFrameDescriptionVtbl {
760    pub QueryInterface: ::std::option::Option<
761        unsafe extern "C" fn(
762            This: *mut IFrameDescription,
763            riid: *const IID,
764            ppvObject: *mut *mut ::std::os::raw::c_void,
765        ) -> HRESULT,
766    >,
767    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IFrameDescription) -> ULONG>,
768    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IFrameDescription) -> ULONG>,
769    pub get_Width: ::std::option::Option<
770        unsafe extern "C" fn(
771            This: *mut IFrameDescription,
772            width: *mut ::std::os::raw::c_int,
773        ) -> HRESULT,
774    >,
775    pub get_Height: ::std::option::Option<
776        unsafe extern "C" fn(
777            This: *mut IFrameDescription,
778            height: *mut ::std::os::raw::c_int,
779        ) -> HRESULT,
780    >,
781    pub get_HorizontalFieldOfView: ::std::option::Option<
782        unsafe extern "C" fn(
783            This: *mut IFrameDescription,
784            horizontalFieldOfView: *mut f32,
785        ) -> HRESULT,
786    >,
787    pub get_VerticalFieldOfView: ::std::option::Option<
788        unsafe extern "C" fn(
789            This: *mut IFrameDescription,
790            verticalFieldOfView: *mut f32,
791        ) -> HRESULT,
792    >,
793    pub get_DiagonalFieldOfView: ::std::option::Option<
794        unsafe extern "C" fn(
795            This: *mut IFrameDescription,
796            diagonalFieldOfView: *mut f32,
797        ) -> HRESULT,
798    >,
799    pub get_LengthInPixels: ::std::option::Option<
800        unsafe extern "C" fn(
801            This: *mut IFrameDescription,
802            lengthInPixels: *mut ::std::os::raw::c_uint,
803        ) -> HRESULT,
804    >,
805    pub get_BytesPerPixel: ::std::option::Option<
806        unsafe extern "C" fn(
807            This: *mut IFrameDescription,
808            bytesPerPixel: *mut ::std::os::raw::c_uint,
809        ) -> HRESULT,
810    >,
811}
812#[allow(clippy::unnecessary_operation, clippy::identity_op)]
813const _: () = {
814    ["Size of IFrameDescriptionVtbl"][::std::mem::size_of::<IFrameDescriptionVtbl>() - 80usize];
815    ["Alignment of IFrameDescriptionVtbl"]
816        [::std::mem::align_of::<IFrameDescriptionVtbl>() - 8usize];
817    ["Offset of field: IFrameDescriptionVtbl::QueryInterface"]
818        [::std::mem::offset_of!(IFrameDescriptionVtbl, QueryInterface) - 0usize];
819    ["Offset of field: IFrameDescriptionVtbl::AddRef"]
820        [::std::mem::offset_of!(IFrameDescriptionVtbl, AddRef) - 8usize];
821    ["Offset of field: IFrameDescriptionVtbl::Release"]
822        [::std::mem::offset_of!(IFrameDescriptionVtbl, Release) - 16usize];
823    ["Offset of field: IFrameDescriptionVtbl::get_Width"]
824        [::std::mem::offset_of!(IFrameDescriptionVtbl, get_Width) - 24usize];
825    ["Offset of field: IFrameDescriptionVtbl::get_Height"]
826        [::std::mem::offset_of!(IFrameDescriptionVtbl, get_Height) - 32usize];
827    ["Offset of field: IFrameDescriptionVtbl::get_HorizontalFieldOfView"]
828        [::std::mem::offset_of!(IFrameDescriptionVtbl, get_HorizontalFieldOfView) - 40usize];
829    ["Offset of field: IFrameDescriptionVtbl::get_VerticalFieldOfView"]
830        [::std::mem::offset_of!(IFrameDescriptionVtbl, get_VerticalFieldOfView) - 48usize];
831    ["Offset of field: IFrameDescriptionVtbl::get_DiagonalFieldOfView"]
832        [::std::mem::offset_of!(IFrameDescriptionVtbl, get_DiagonalFieldOfView) - 56usize];
833    ["Offset of field: IFrameDescriptionVtbl::get_LengthInPixels"]
834        [::std::mem::offset_of!(IFrameDescriptionVtbl, get_LengthInPixels) - 64usize];
835    ["Offset of field: IFrameDescriptionVtbl::get_BytesPerPixel"]
836        [::std::mem::offset_of!(IFrameDescriptionVtbl, get_BytesPerPixel) - 72usize];
837};
838#[repr(C)]
839pub struct IFrameDescription {
840    pub lpVtbl: *mut IFrameDescriptionVtbl,
841}
842#[allow(clippy::unnecessary_operation, clippy::identity_op)]
843const _: () = {
844    ["Size of IFrameDescription"][::std::mem::size_of::<IFrameDescription>() - 8usize];
845    ["Alignment of IFrameDescription"][::std::mem::align_of::<IFrameDescription>() - 8usize];
846    ["Offset of field: IFrameDescription::lpVtbl"]
847        [::std::mem::offset_of!(IFrameDescription, lpVtbl) - 0usize];
848};
849impl Default for IFrameDescription {
850    fn default() -> Self {
851        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
852        unsafe {
853            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
854            s.assume_init()
855        }
856    }
857}
858unsafe extern "C" {
859    pub static IID_IFrameCapturedEventArgs: IID;
860}
861#[repr(C)]
862#[derive(Debug, Default)]
863pub struct IFrameCapturedEventArgsVtbl {
864    pub QueryInterface: ::std::option::Option<
865        unsafe extern "C" fn(
866            This: *mut IFrameCapturedEventArgs,
867            riid: *const IID,
868            ppvObject: *mut *mut ::std::os::raw::c_void,
869        ) -> HRESULT,
870    >,
871    pub AddRef:
872        ::std::option::Option<unsafe extern "C" fn(This: *mut IFrameCapturedEventArgs) -> ULONG>,
873    pub Release:
874        ::std::option::Option<unsafe extern "C" fn(This: *mut IFrameCapturedEventArgs) -> ULONG>,
875    pub get_FrameType: ::std::option::Option<
876        unsafe extern "C" fn(
877            This: *mut IFrameCapturedEventArgs,
878            frameType: *mut FrameSourceTypes,
879        ) -> HRESULT,
880    >,
881    pub get_FrameStatus: ::std::option::Option<
882        unsafe extern "C" fn(
883            This: *mut IFrameCapturedEventArgs,
884            frameStatus: *mut FrameCapturedStatus,
885        ) -> HRESULT,
886    >,
887    pub get_RelativeTime: ::std::option::Option<
888        unsafe extern "C" fn(
889            This: *mut IFrameCapturedEventArgs,
890            relativeTime: *mut TIMESPAN,
891        ) -> HRESULT,
892    >,
893}
894#[allow(clippy::unnecessary_operation, clippy::identity_op)]
895const _: () = {
896    ["Size of IFrameCapturedEventArgsVtbl"]
897        [::std::mem::size_of::<IFrameCapturedEventArgsVtbl>() - 48usize];
898    ["Alignment of IFrameCapturedEventArgsVtbl"]
899        [::std::mem::align_of::<IFrameCapturedEventArgsVtbl>() - 8usize];
900    ["Offset of field: IFrameCapturedEventArgsVtbl::QueryInterface"]
901        [::std::mem::offset_of!(IFrameCapturedEventArgsVtbl, QueryInterface) - 0usize];
902    ["Offset of field: IFrameCapturedEventArgsVtbl::AddRef"]
903        [::std::mem::offset_of!(IFrameCapturedEventArgsVtbl, AddRef) - 8usize];
904    ["Offset of field: IFrameCapturedEventArgsVtbl::Release"]
905        [::std::mem::offset_of!(IFrameCapturedEventArgsVtbl, Release) - 16usize];
906    ["Offset of field: IFrameCapturedEventArgsVtbl::get_FrameType"]
907        [::std::mem::offset_of!(IFrameCapturedEventArgsVtbl, get_FrameType) - 24usize];
908    ["Offset of field: IFrameCapturedEventArgsVtbl::get_FrameStatus"]
909        [::std::mem::offset_of!(IFrameCapturedEventArgsVtbl, get_FrameStatus) - 32usize];
910    ["Offset of field: IFrameCapturedEventArgsVtbl::get_RelativeTime"]
911        [::std::mem::offset_of!(IFrameCapturedEventArgsVtbl, get_RelativeTime) - 40usize];
912};
913#[repr(C)]
914pub struct IFrameCapturedEventArgs {
915    pub lpVtbl: *mut IFrameCapturedEventArgsVtbl,
916}
917#[allow(clippy::unnecessary_operation, clippy::identity_op)]
918const _: () = {
919    ["Size of IFrameCapturedEventArgs"][::std::mem::size_of::<IFrameCapturedEventArgs>() - 8usize];
920    ["Alignment of IFrameCapturedEventArgs"]
921        [::std::mem::align_of::<IFrameCapturedEventArgs>() - 8usize];
922    ["Offset of field: IFrameCapturedEventArgs::lpVtbl"]
923        [::std::mem::offset_of!(IFrameCapturedEventArgs, lpVtbl) - 0usize];
924};
925impl Default for IFrameCapturedEventArgs {
926    fn default() -> Self {
927        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
928        unsafe {
929            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
930            s.assume_init()
931        }
932    }
933}
934unsafe extern "C" {
935    pub static IID_IMultiSourceFrameReader: IID;
936}
937#[repr(C)]
938#[derive(Debug, Default)]
939pub struct IMultiSourceFrameReaderVtbl {
940    pub QueryInterface: ::std::option::Option<
941        unsafe extern "C" fn(
942            This: *mut IMultiSourceFrameReader,
943            riid: *const IID,
944            ppvObject: *mut *mut ::std::os::raw::c_void,
945        ) -> HRESULT,
946    >,
947    pub AddRef:
948        ::std::option::Option<unsafe extern "C" fn(This: *mut IMultiSourceFrameReader) -> ULONG>,
949    pub Release:
950        ::std::option::Option<unsafe extern "C" fn(This: *mut IMultiSourceFrameReader) -> ULONG>,
951    pub SubscribeMultiSourceFrameArrived: ::std::option::Option<
952        unsafe extern "C" fn(
953            This: *mut IMultiSourceFrameReader,
954            waitableHandle: *mut WAITABLE_HANDLE,
955        ) -> HRESULT,
956    >,
957    pub UnsubscribeMultiSourceFrameArrived: ::std::option::Option<
958        unsafe extern "C" fn(
959            This: *mut IMultiSourceFrameReader,
960            waitableHandle: WAITABLE_HANDLE,
961        ) -> HRESULT,
962    >,
963    pub GetMultiSourceFrameArrivedEventData: ::std::option::Option<
964        unsafe extern "C" fn(
965            This: *mut IMultiSourceFrameReader,
966            waitableHandle: WAITABLE_HANDLE,
967            eventData: *mut *mut IMultiSourceFrameArrivedEventArgs,
968        ) -> HRESULT,
969    >,
970    pub AcquireLatestFrame: ::std::option::Option<
971        unsafe extern "C" fn(
972            This: *mut IMultiSourceFrameReader,
973            multiSourceFrame: *mut *mut IMultiSourceFrame,
974        ) -> HRESULT,
975    >,
976    pub get_FrameSourceTypes: ::std::option::Option<
977        unsafe extern "C" fn(
978            This: *mut IMultiSourceFrameReader,
979            enabledFrameSourceTypes: *mut ULONG,
980        ) -> HRESULT,
981    >,
982    pub get_IsPaused: ::std::option::Option<
983        unsafe extern "C" fn(This: *mut IMultiSourceFrameReader, isPaused: *mut BOOLEAN) -> HRESULT,
984    >,
985    pub put_IsPaused: ::std::option::Option<
986        unsafe extern "C" fn(This: *mut IMultiSourceFrameReader, isPaused: BOOLEAN) -> HRESULT,
987    >,
988    pub get_KinectSensor: ::std::option::Option<
989        unsafe extern "C" fn(
990            This: *mut IMultiSourceFrameReader,
991            sensor: *mut *mut IKinectSensor,
992        ) -> HRESULT,
993    >,
994}
995#[allow(clippy::unnecessary_operation, clippy::identity_op)]
996const _: () = {
997    ["Size of IMultiSourceFrameReaderVtbl"]
998        [::std::mem::size_of::<IMultiSourceFrameReaderVtbl>() - 88usize];
999    ["Alignment of IMultiSourceFrameReaderVtbl"]
1000        [::std::mem::align_of::<IMultiSourceFrameReaderVtbl>() - 8usize];
1001    ["Offset of field: IMultiSourceFrameReaderVtbl::QueryInterface"]
1002        [::std::mem::offset_of!(IMultiSourceFrameReaderVtbl, QueryInterface) - 0usize];
1003    ["Offset of field: IMultiSourceFrameReaderVtbl::AddRef"]
1004        [::std::mem::offset_of!(IMultiSourceFrameReaderVtbl, AddRef) - 8usize];
1005    ["Offset of field: IMultiSourceFrameReaderVtbl::Release"]
1006        [::std::mem::offset_of!(IMultiSourceFrameReaderVtbl, Release) - 16usize];
1007    ["Offset of field: IMultiSourceFrameReaderVtbl::SubscribeMultiSourceFrameArrived"][::std::mem::offset_of!(
1008        IMultiSourceFrameReaderVtbl,
1009        SubscribeMultiSourceFrameArrived
1010    ) - 24usize];
1011    ["Offset of field: IMultiSourceFrameReaderVtbl::UnsubscribeMultiSourceFrameArrived"][::std::mem::offset_of!(
1012        IMultiSourceFrameReaderVtbl,
1013        UnsubscribeMultiSourceFrameArrived
1014    )
1015        - 32usize];
1016    ["Offset of field: IMultiSourceFrameReaderVtbl::GetMultiSourceFrameArrivedEventData"][::std::mem::offset_of!(
1017        IMultiSourceFrameReaderVtbl,
1018        GetMultiSourceFrameArrivedEventData
1019    )
1020        - 40usize];
1021    ["Offset of field: IMultiSourceFrameReaderVtbl::AcquireLatestFrame"]
1022        [::std::mem::offset_of!(IMultiSourceFrameReaderVtbl, AcquireLatestFrame) - 48usize];
1023    ["Offset of field: IMultiSourceFrameReaderVtbl::get_FrameSourceTypes"]
1024        [::std::mem::offset_of!(IMultiSourceFrameReaderVtbl, get_FrameSourceTypes) - 56usize];
1025    ["Offset of field: IMultiSourceFrameReaderVtbl::get_IsPaused"]
1026        [::std::mem::offset_of!(IMultiSourceFrameReaderVtbl, get_IsPaused) - 64usize];
1027    ["Offset of field: IMultiSourceFrameReaderVtbl::put_IsPaused"]
1028        [::std::mem::offset_of!(IMultiSourceFrameReaderVtbl, put_IsPaused) - 72usize];
1029    ["Offset of field: IMultiSourceFrameReaderVtbl::get_KinectSensor"]
1030        [::std::mem::offset_of!(IMultiSourceFrameReaderVtbl, get_KinectSensor) - 80usize];
1031};
1032#[repr(C)]
1033pub struct IMultiSourceFrameReader {
1034    pub lpVtbl: *mut IMultiSourceFrameReaderVtbl,
1035}
1036#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1037const _: () = {
1038    ["Size of IMultiSourceFrameReader"][::std::mem::size_of::<IMultiSourceFrameReader>() - 8usize];
1039    ["Alignment of IMultiSourceFrameReader"]
1040        [::std::mem::align_of::<IMultiSourceFrameReader>() - 8usize];
1041    ["Offset of field: IMultiSourceFrameReader::lpVtbl"]
1042        [::std::mem::offset_of!(IMultiSourceFrameReader, lpVtbl) - 0usize];
1043};
1044impl Default for IMultiSourceFrameReader {
1045    fn default() -> Self {
1046        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1047        unsafe {
1048            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1049            s.assume_init()
1050        }
1051    }
1052}
1053unsafe extern "C" {
1054    pub static IID_IMultiSourceFrameArrivedEventArgs: IID;
1055}
1056#[repr(C)]
1057#[derive(Debug, Default)]
1058pub struct IMultiSourceFrameArrivedEventArgsVtbl {
1059    pub QueryInterface: ::std::option::Option<
1060        unsafe extern "C" fn(
1061            This: *mut IMultiSourceFrameArrivedEventArgs,
1062            riid: *const IID,
1063            ppvObject: *mut *mut ::std::os::raw::c_void,
1064        ) -> HRESULT,
1065    >,
1066    pub AddRef: ::std::option::Option<
1067        unsafe extern "C" fn(This: *mut IMultiSourceFrameArrivedEventArgs) -> ULONG,
1068    >,
1069    pub Release: ::std::option::Option<
1070        unsafe extern "C" fn(This: *mut IMultiSourceFrameArrivedEventArgs) -> ULONG,
1071    >,
1072    pub get_FrameReference: ::std::option::Option<
1073        unsafe extern "C" fn(
1074            This: *mut IMultiSourceFrameArrivedEventArgs,
1075            frames: *mut *mut IMultiSourceFrameReference,
1076        ) -> HRESULT,
1077    >,
1078}
1079#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1080const _: () = {
1081    ["Size of IMultiSourceFrameArrivedEventArgsVtbl"]
1082        [::std::mem::size_of::<IMultiSourceFrameArrivedEventArgsVtbl>() - 32usize];
1083    ["Alignment of IMultiSourceFrameArrivedEventArgsVtbl"]
1084        [::std::mem::align_of::<IMultiSourceFrameArrivedEventArgsVtbl>() - 8usize];
1085    ["Offset of field: IMultiSourceFrameArrivedEventArgsVtbl::QueryInterface"]
1086        [::std::mem::offset_of!(IMultiSourceFrameArrivedEventArgsVtbl, QueryInterface) - 0usize];
1087    ["Offset of field: IMultiSourceFrameArrivedEventArgsVtbl::AddRef"]
1088        [::std::mem::offset_of!(IMultiSourceFrameArrivedEventArgsVtbl, AddRef) - 8usize];
1089    ["Offset of field: IMultiSourceFrameArrivedEventArgsVtbl::Release"]
1090        [::std::mem::offset_of!(IMultiSourceFrameArrivedEventArgsVtbl, Release) - 16usize];
1091    ["Offset of field: IMultiSourceFrameArrivedEventArgsVtbl::get_FrameReference"][::std::mem::offset_of!(
1092        IMultiSourceFrameArrivedEventArgsVtbl,
1093        get_FrameReference
1094    ) - 24usize];
1095};
1096#[repr(C)]
1097pub struct IMultiSourceFrameArrivedEventArgs {
1098    pub lpVtbl: *mut IMultiSourceFrameArrivedEventArgsVtbl,
1099}
1100#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1101const _: () = {
1102    ["Size of IMultiSourceFrameArrivedEventArgs"]
1103        [::std::mem::size_of::<IMultiSourceFrameArrivedEventArgs>() - 8usize];
1104    ["Alignment of IMultiSourceFrameArrivedEventArgs"]
1105        [::std::mem::align_of::<IMultiSourceFrameArrivedEventArgs>() - 8usize];
1106    ["Offset of field: IMultiSourceFrameArrivedEventArgs::lpVtbl"]
1107        [::std::mem::offset_of!(IMultiSourceFrameArrivedEventArgs, lpVtbl) - 0usize];
1108};
1109impl Default for IMultiSourceFrameArrivedEventArgs {
1110    fn default() -> Self {
1111        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1112        unsafe {
1113            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1114            s.assume_init()
1115        }
1116    }
1117}
1118unsafe extern "C" {
1119    pub static IID_IMultiSourceFrameReference: IID;
1120}
1121#[repr(C)]
1122#[derive(Debug, Default)]
1123pub struct IMultiSourceFrameReferenceVtbl {
1124    pub QueryInterface: ::std::option::Option<
1125        unsafe extern "C" fn(
1126            This: *mut IMultiSourceFrameReference,
1127            riid: *const IID,
1128            ppvObject: *mut *mut ::std::os::raw::c_void,
1129        ) -> HRESULT,
1130    >,
1131    pub AddRef:
1132        ::std::option::Option<unsafe extern "C" fn(This: *mut IMultiSourceFrameReference) -> ULONG>,
1133    pub Release:
1134        ::std::option::Option<unsafe extern "C" fn(This: *mut IMultiSourceFrameReference) -> ULONG>,
1135    pub AcquireFrame: ::std::option::Option<
1136        unsafe extern "C" fn(
1137            This: *mut IMultiSourceFrameReference,
1138            frame: *mut *mut IMultiSourceFrame,
1139        ) -> HRESULT,
1140    >,
1141}
1142#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1143const _: () = {
1144    ["Size of IMultiSourceFrameReferenceVtbl"]
1145        [::std::mem::size_of::<IMultiSourceFrameReferenceVtbl>() - 32usize];
1146    ["Alignment of IMultiSourceFrameReferenceVtbl"]
1147        [::std::mem::align_of::<IMultiSourceFrameReferenceVtbl>() - 8usize];
1148    ["Offset of field: IMultiSourceFrameReferenceVtbl::QueryInterface"]
1149        [::std::mem::offset_of!(IMultiSourceFrameReferenceVtbl, QueryInterface) - 0usize];
1150    ["Offset of field: IMultiSourceFrameReferenceVtbl::AddRef"]
1151        [::std::mem::offset_of!(IMultiSourceFrameReferenceVtbl, AddRef) - 8usize];
1152    ["Offset of field: IMultiSourceFrameReferenceVtbl::Release"]
1153        [::std::mem::offset_of!(IMultiSourceFrameReferenceVtbl, Release) - 16usize];
1154    ["Offset of field: IMultiSourceFrameReferenceVtbl::AcquireFrame"]
1155        [::std::mem::offset_of!(IMultiSourceFrameReferenceVtbl, AcquireFrame) - 24usize];
1156};
1157#[repr(C)]
1158pub struct IMultiSourceFrameReference {
1159    pub lpVtbl: *mut IMultiSourceFrameReferenceVtbl,
1160}
1161#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1162const _: () = {
1163    ["Size of IMultiSourceFrameReference"]
1164        [::std::mem::size_of::<IMultiSourceFrameReference>() - 8usize];
1165    ["Alignment of IMultiSourceFrameReference"]
1166        [::std::mem::align_of::<IMultiSourceFrameReference>() - 8usize];
1167    ["Offset of field: IMultiSourceFrameReference::lpVtbl"]
1168        [::std::mem::offset_of!(IMultiSourceFrameReference, lpVtbl) - 0usize];
1169};
1170impl Default for IMultiSourceFrameReference {
1171    fn default() -> Self {
1172        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1173        unsafe {
1174            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1175            s.assume_init()
1176        }
1177    }
1178}
1179unsafe extern "C" {
1180    pub static IID_IMultiSourceFrame: IID;
1181}
1182#[repr(C)]
1183#[derive(Debug, Default)]
1184pub struct IMultiSourceFrameVtbl {
1185    pub QueryInterface: ::std::option::Option<
1186        unsafe extern "C" fn(
1187            This: *mut IMultiSourceFrame,
1188            riid: *const IID,
1189            ppvObject: *mut *mut ::std::os::raw::c_void,
1190        ) -> HRESULT,
1191    >,
1192    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IMultiSourceFrame) -> ULONG>,
1193    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IMultiSourceFrame) -> ULONG>,
1194    pub get_ColorFrameReference: ::std::option::Option<
1195        unsafe extern "C" fn(
1196            This: *mut IMultiSourceFrame,
1197            colorFrameReference: *mut *mut IColorFrameReference,
1198        ) -> HRESULT,
1199    >,
1200    pub get_DepthFrameReference: ::std::option::Option<
1201        unsafe extern "C" fn(
1202            This: *mut IMultiSourceFrame,
1203            depthFrameReference: *mut *mut IDepthFrameReference,
1204        ) -> HRESULT,
1205    >,
1206    pub get_BodyFrameReference: ::std::option::Option<
1207        unsafe extern "C" fn(
1208            This: *mut IMultiSourceFrame,
1209            bodyFrameReference: *mut *mut IBodyFrameReference,
1210        ) -> HRESULT,
1211    >,
1212    pub get_BodyIndexFrameReference: ::std::option::Option<
1213        unsafe extern "C" fn(
1214            This: *mut IMultiSourceFrame,
1215            bodyIndexFrameReference: *mut *mut IBodyIndexFrameReference,
1216        ) -> HRESULT,
1217    >,
1218    pub get_InfraredFrameReference: ::std::option::Option<
1219        unsafe extern "C" fn(
1220            This: *mut IMultiSourceFrame,
1221            infraredFrameReference: *mut *mut IInfraredFrameReference,
1222        ) -> HRESULT,
1223    >,
1224    pub get_LongExposureInfraredFrameReference: ::std::option::Option<
1225        unsafe extern "C" fn(
1226            This: *mut IMultiSourceFrame,
1227            longExposureInfraredFrameReference: *mut *mut ILongExposureInfraredFrameReference,
1228        ) -> HRESULT,
1229    >,
1230}
1231#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1232const _: () = {
1233    ["Size of IMultiSourceFrameVtbl"][::std::mem::size_of::<IMultiSourceFrameVtbl>() - 72usize];
1234    ["Alignment of IMultiSourceFrameVtbl"]
1235        [::std::mem::align_of::<IMultiSourceFrameVtbl>() - 8usize];
1236    ["Offset of field: IMultiSourceFrameVtbl::QueryInterface"]
1237        [::std::mem::offset_of!(IMultiSourceFrameVtbl, QueryInterface) - 0usize];
1238    ["Offset of field: IMultiSourceFrameVtbl::AddRef"]
1239        [::std::mem::offset_of!(IMultiSourceFrameVtbl, AddRef) - 8usize];
1240    ["Offset of field: IMultiSourceFrameVtbl::Release"]
1241        [::std::mem::offset_of!(IMultiSourceFrameVtbl, Release) - 16usize];
1242    ["Offset of field: IMultiSourceFrameVtbl::get_ColorFrameReference"]
1243        [::std::mem::offset_of!(IMultiSourceFrameVtbl, get_ColorFrameReference) - 24usize];
1244    ["Offset of field: IMultiSourceFrameVtbl::get_DepthFrameReference"]
1245        [::std::mem::offset_of!(IMultiSourceFrameVtbl, get_DepthFrameReference) - 32usize];
1246    ["Offset of field: IMultiSourceFrameVtbl::get_BodyFrameReference"]
1247        [::std::mem::offset_of!(IMultiSourceFrameVtbl, get_BodyFrameReference) - 40usize];
1248    ["Offset of field: IMultiSourceFrameVtbl::get_BodyIndexFrameReference"]
1249        [::std::mem::offset_of!(IMultiSourceFrameVtbl, get_BodyIndexFrameReference) - 48usize];
1250    ["Offset of field: IMultiSourceFrameVtbl::get_InfraredFrameReference"]
1251        [::std::mem::offset_of!(IMultiSourceFrameVtbl, get_InfraredFrameReference) - 56usize];
1252    ["Offset of field: IMultiSourceFrameVtbl::get_LongExposureInfraredFrameReference"][::std::mem::offset_of!(
1253        IMultiSourceFrameVtbl,
1254        get_LongExposureInfraredFrameReference
1255    ) - 64usize];
1256};
1257#[repr(C)]
1258pub struct IMultiSourceFrame {
1259    pub lpVtbl: *mut IMultiSourceFrameVtbl,
1260}
1261#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1262const _: () = {
1263    ["Size of IMultiSourceFrame"][::std::mem::size_of::<IMultiSourceFrame>() - 8usize];
1264    ["Alignment of IMultiSourceFrame"][::std::mem::align_of::<IMultiSourceFrame>() - 8usize];
1265    ["Offset of field: IMultiSourceFrame::lpVtbl"]
1266        [::std::mem::offset_of!(IMultiSourceFrame, lpVtbl) - 0usize];
1267};
1268impl Default for IMultiSourceFrame {
1269    fn default() -> Self {
1270        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1271        unsafe {
1272            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1273            s.assume_init()
1274        }
1275    }
1276}
1277unsafe extern "C" {
1278    pub static IID_IColorFrameReference: IID;
1279}
1280#[repr(C)]
1281#[derive(Debug, Default)]
1282pub struct IColorFrameReferenceVtbl {
1283    pub QueryInterface: ::std::option::Option<
1284        unsafe extern "C" fn(
1285            This: *mut IColorFrameReference,
1286            riid: *const IID,
1287            ppvObject: *mut *mut ::std::os::raw::c_void,
1288        ) -> HRESULT,
1289    >,
1290    pub AddRef:
1291        ::std::option::Option<unsafe extern "C" fn(This: *mut IColorFrameReference) -> ULONG>,
1292    pub Release:
1293        ::std::option::Option<unsafe extern "C" fn(This: *mut IColorFrameReference) -> ULONG>,
1294    pub AcquireFrame: ::std::option::Option<
1295        unsafe extern "C" fn(
1296            This: *mut IColorFrameReference,
1297            colorFrame: *mut *mut IColorFrame,
1298        ) -> HRESULT,
1299    >,
1300    pub get_RelativeTime: ::std::option::Option<
1301        unsafe extern "C" fn(
1302            This: *mut IColorFrameReference,
1303            relativeTime: *mut TIMESPAN,
1304        ) -> HRESULT,
1305    >,
1306}
1307#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1308const _: () = {
1309    ["Size of IColorFrameReferenceVtbl"]
1310        [::std::mem::size_of::<IColorFrameReferenceVtbl>() - 40usize];
1311    ["Alignment of IColorFrameReferenceVtbl"]
1312        [::std::mem::align_of::<IColorFrameReferenceVtbl>() - 8usize];
1313    ["Offset of field: IColorFrameReferenceVtbl::QueryInterface"]
1314        [::std::mem::offset_of!(IColorFrameReferenceVtbl, QueryInterface) - 0usize];
1315    ["Offset of field: IColorFrameReferenceVtbl::AddRef"]
1316        [::std::mem::offset_of!(IColorFrameReferenceVtbl, AddRef) - 8usize];
1317    ["Offset of field: IColorFrameReferenceVtbl::Release"]
1318        [::std::mem::offset_of!(IColorFrameReferenceVtbl, Release) - 16usize];
1319    ["Offset of field: IColorFrameReferenceVtbl::AcquireFrame"]
1320        [::std::mem::offset_of!(IColorFrameReferenceVtbl, AcquireFrame) - 24usize];
1321    ["Offset of field: IColorFrameReferenceVtbl::get_RelativeTime"]
1322        [::std::mem::offset_of!(IColorFrameReferenceVtbl, get_RelativeTime) - 32usize];
1323};
1324#[repr(C)]
1325pub struct IColorFrameReference {
1326    pub lpVtbl: *mut IColorFrameReferenceVtbl,
1327}
1328#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1329const _: () = {
1330    ["Size of IColorFrameReference"][::std::mem::size_of::<IColorFrameReference>() - 8usize];
1331    ["Alignment of IColorFrameReference"][::std::mem::align_of::<IColorFrameReference>() - 8usize];
1332    ["Offset of field: IColorFrameReference::lpVtbl"]
1333        [::std::mem::offset_of!(IColorFrameReference, lpVtbl) - 0usize];
1334};
1335impl Default for IColorFrameReference {
1336    fn default() -> Self {
1337        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1338        unsafe {
1339            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1340            s.assume_init()
1341        }
1342    }
1343}
1344unsafe extern "C" {
1345    pub static IID_IColorFrameArrivedEventArgs: IID;
1346}
1347#[repr(C)]
1348#[derive(Debug, Default)]
1349pub struct IColorFrameArrivedEventArgsVtbl {
1350    pub QueryInterface: ::std::option::Option<
1351        unsafe extern "C" fn(
1352            This: *mut IColorFrameArrivedEventArgs,
1353            riid: *const IID,
1354            ppvObject: *mut *mut ::std::os::raw::c_void,
1355        ) -> HRESULT,
1356    >,
1357    pub AddRef: ::std::option::Option<
1358        unsafe extern "C" fn(This: *mut IColorFrameArrivedEventArgs) -> ULONG,
1359    >,
1360    pub Release: ::std::option::Option<
1361        unsafe extern "C" fn(This: *mut IColorFrameArrivedEventArgs) -> ULONG,
1362    >,
1363    pub get_FrameReference: ::std::option::Option<
1364        unsafe extern "C" fn(
1365            This: *mut IColorFrameArrivedEventArgs,
1366            colorFrameReference: *mut *mut IColorFrameReference,
1367        ) -> HRESULT,
1368    >,
1369}
1370#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1371const _: () = {
1372    ["Size of IColorFrameArrivedEventArgsVtbl"]
1373        [::std::mem::size_of::<IColorFrameArrivedEventArgsVtbl>() - 32usize];
1374    ["Alignment of IColorFrameArrivedEventArgsVtbl"]
1375        [::std::mem::align_of::<IColorFrameArrivedEventArgsVtbl>() - 8usize];
1376    ["Offset of field: IColorFrameArrivedEventArgsVtbl::QueryInterface"]
1377        [::std::mem::offset_of!(IColorFrameArrivedEventArgsVtbl, QueryInterface) - 0usize];
1378    ["Offset of field: IColorFrameArrivedEventArgsVtbl::AddRef"]
1379        [::std::mem::offset_of!(IColorFrameArrivedEventArgsVtbl, AddRef) - 8usize];
1380    ["Offset of field: IColorFrameArrivedEventArgsVtbl::Release"]
1381        [::std::mem::offset_of!(IColorFrameArrivedEventArgsVtbl, Release) - 16usize];
1382    ["Offset of field: IColorFrameArrivedEventArgsVtbl::get_FrameReference"]
1383        [::std::mem::offset_of!(IColorFrameArrivedEventArgsVtbl, get_FrameReference) - 24usize];
1384};
1385#[repr(C)]
1386pub struct IColorFrameArrivedEventArgs {
1387    pub lpVtbl: *mut IColorFrameArrivedEventArgsVtbl,
1388}
1389#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1390const _: () = {
1391    ["Size of IColorFrameArrivedEventArgs"]
1392        [::std::mem::size_of::<IColorFrameArrivedEventArgs>() - 8usize];
1393    ["Alignment of IColorFrameArrivedEventArgs"]
1394        [::std::mem::align_of::<IColorFrameArrivedEventArgs>() - 8usize];
1395    ["Offset of field: IColorFrameArrivedEventArgs::lpVtbl"]
1396        [::std::mem::offset_of!(IColorFrameArrivedEventArgs, lpVtbl) - 0usize];
1397};
1398impl Default for IColorFrameArrivedEventArgs {
1399    fn default() -> Self {
1400        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1401        unsafe {
1402            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1403            s.assume_init()
1404        }
1405    }
1406}
1407unsafe extern "C" {
1408    pub static IID_IColorFrameSource: IID;
1409}
1410#[repr(C)]
1411#[derive(Debug, Default)]
1412pub struct IColorFrameSourceVtbl {
1413    pub QueryInterface: ::std::option::Option<
1414        unsafe extern "C" fn(
1415            This: *mut IColorFrameSource,
1416            riid: *const IID,
1417            ppvObject: *mut *mut ::std::os::raw::c_void,
1418        ) -> HRESULT,
1419    >,
1420    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IColorFrameSource) -> ULONG>,
1421    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IColorFrameSource) -> ULONG>,
1422    pub SubscribeFrameCaptured: ::std::option::Option<
1423        unsafe extern "C" fn(
1424            This: *mut IColorFrameSource,
1425            waitableHandle: *mut WAITABLE_HANDLE,
1426        ) -> HRESULT,
1427    >,
1428    pub UnsubscribeFrameCaptured: ::std::option::Option<
1429        unsafe extern "C" fn(
1430            This: *mut IColorFrameSource,
1431            waitableHandle: WAITABLE_HANDLE,
1432        ) -> HRESULT,
1433    >,
1434    pub GetFrameCapturedEventData: ::std::option::Option<
1435        unsafe extern "C" fn(
1436            This: *mut IColorFrameSource,
1437            waitableHandle: WAITABLE_HANDLE,
1438            eventData: *mut *mut IFrameCapturedEventArgs,
1439        ) -> HRESULT,
1440    >,
1441    pub get_IsActive: ::std::option::Option<
1442        unsafe extern "C" fn(This: *mut IColorFrameSource, isActive: *mut BOOLEAN) -> HRESULT,
1443    >,
1444    pub OpenReader: ::std::option::Option<
1445        unsafe extern "C" fn(
1446            This: *mut IColorFrameSource,
1447            reader: *mut *mut IColorFrameReader,
1448        ) -> HRESULT,
1449    >,
1450    pub CreateFrameDescription: ::std::option::Option<
1451        unsafe extern "C" fn(
1452            This: *mut IColorFrameSource,
1453            format: ColorImageFormat,
1454            frameDescription: *mut *mut IFrameDescription,
1455        ) -> HRESULT,
1456    >,
1457    pub get_FrameDescription: ::std::option::Option<
1458        unsafe extern "C" fn(
1459            This: *mut IColorFrameSource,
1460            rawFrameDescription: *mut *mut IFrameDescription,
1461        ) -> HRESULT,
1462    >,
1463    pub get_KinectSensor: ::std::option::Option<
1464        unsafe extern "C" fn(
1465            This: *mut IColorFrameSource,
1466            sensor: *mut *mut IKinectSensor,
1467        ) -> HRESULT,
1468    >,
1469}
1470#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1471const _: () = {
1472    ["Size of IColorFrameSourceVtbl"][::std::mem::size_of::<IColorFrameSourceVtbl>() - 88usize];
1473    ["Alignment of IColorFrameSourceVtbl"]
1474        [::std::mem::align_of::<IColorFrameSourceVtbl>() - 8usize];
1475    ["Offset of field: IColorFrameSourceVtbl::QueryInterface"]
1476        [::std::mem::offset_of!(IColorFrameSourceVtbl, QueryInterface) - 0usize];
1477    ["Offset of field: IColorFrameSourceVtbl::AddRef"]
1478        [::std::mem::offset_of!(IColorFrameSourceVtbl, AddRef) - 8usize];
1479    ["Offset of field: IColorFrameSourceVtbl::Release"]
1480        [::std::mem::offset_of!(IColorFrameSourceVtbl, Release) - 16usize];
1481    ["Offset of field: IColorFrameSourceVtbl::SubscribeFrameCaptured"]
1482        [::std::mem::offset_of!(IColorFrameSourceVtbl, SubscribeFrameCaptured) - 24usize];
1483    ["Offset of field: IColorFrameSourceVtbl::UnsubscribeFrameCaptured"]
1484        [::std::mem::offset_of!(IColorFrameSourceVtbl, UnsubscribeFrameCaptured) - 32usize];
1485    ["Offset of field: IColorFrameSourceVtbl::GetFrameCapturedEventData"]
1486        [::std::mem::offset_of!(IColorFrameSourceVtbl, GetFrameCapturedEventData) - 40usize];
1487    ["Offset of field: IColorFrameSourceVtbl::get_IsActive"]
1488        [::std::mem::offset_of!(IColorFrameSourceVtbl, get_IsActive) - 48usize];
1489    ["Offset of field: IColorFrameSourceVtbl::OpenReader"]
1490        [::std::mem::offset_of!(IColorFrameSourceVtbl, OpenReader) - 56usize];
1491    ["Offset of field: IColorFrameSourceVtbl::CreateFrameDescription"]
1492        [::std::mem::offset_of!(IColorFrameSourceVtbl, CreateFrameDescription) - 64usize];
1493    ["Offset of field: IColorFrameSourceVtbl::get_FrameDescription"]
1494        [::std::mem::offset_of!(IColorFrameSourceVtbl, get_FrameDescription) - 72usize];
1495    ["Offset of field: IColorFrameSourceVtbl::get_KinectSensor"]
1496        [::std::mem::offset_of!(IColorFrameSourceVtbl, get_KinectSensor) - 80usize];
1497};
1498#[repr(C)]
1499pub struct IColorFrameSource {
1500    pub lpVtbl: *mut IColorFrameSourceVtbl,
1501}
1502#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1503const _: () = {
1504    ["Size of IColorFrameSource"][::std::mem::size_of::<IColorFrameSource>() - 8usize];
1505    ["Alignment of IColorFrameSource"][::std::mem::align_of::<IColorFrameSource>() - 8usize];
1506    ["Offset of field: IColorFrameSource::lpVtbl"]
1507        [::std::mem::offset_of!(IColorFrameSource, lpVtbl) - 0usize];
1508};
1509impl Default for IColorFrameSource {
1510    fn default() -> Self {
1511        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1512        unsafe {
1513            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1514            s.assume_init()
1515        }
1516    }
1517}
1518unsafe extern "C" {
1519    pub static IID_IColorFrameReader: IID;
1520}
1521#[repr(C)]
1522#[derive(Debug, Default)]
1523pub struct IColorFrameReaderVtbl {
1524    pub QueryInterface: ::std::option::Option<
1525        unsafe extern "C" fn(
1526            This: *mut IColorFrameReader,
1527            riid: *const IID,
1528            ppvObject: *mut *mut ::std::os::raw::c_void,
1529        ) -> HRESULT,
1530    >,
1531    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IColorFrameReader) -> ULONG>,
1532    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IColorFrameReader) -> ULONG>,
1533    pub SubscribeFrameArrived: ::std::option::Option<
1534        unsafe extern "C" fn(
1535            This: *mut IColorFrameReader,
1536            waitableHandle: *mut WAITABLE_HANDLE,
1537        ) -> HRESULT,
1538    >,
1539    pub UnsubscribeFrameArrived: ::std::option::Option<
1540        unsafe extern "C" fn(
1541            This: *mut IColorFrameReader,
1542            waitableHandle: WAITABLE_HANDLE,
1543        ) -> HRESULT,
1544    >,
1545    pub GetFrameArrivedEventData: ::std::option::Option<
1546        unsafe extern "C" fn(
1547            This: *mut IColorFrameReader,
1548            waitableHandle: WAITABLE_HANDLE,
1549            eventData: *mut *mut IColorFrameArrivedEventArgs,
1550        ) -> HRESULT,
1551    >,
1552    pub AcquireLatestFrame: ::std::option::Option<
1553        unsafe extern "C" fn(
1554            This: *mut IColorFrameReader,
1555            colorFrame: *mut *mut IColorFrame,
1556        ) -> HRESULT,
1557    >,
1558    pub get_IsPaused: ::std::option::Option<
1559        unsafe extern "C" fn(This: *mut IColorFrameReader, isPaused: *mut BOOLEAN) -> HRESULT,
1560    >,
1561    pub put_IsPaused: ::std::option::Option<
1562        unsafe extern "C" fn(This: *mut IColorFrameReader, isPaused: BOOLEAN) -> HRESULT,
1563    >,
1564    pub get_ColorFrameSource: ::std::option::Option<
1565        unsafe extern "C" fn(
1566            This: *mut IColorFrameReader,
1567            colorFrameSource: *mut *mut IColorFrameSource,
1568        ) -> HRESULT,
1569    >,
1570}
1571#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1572const _: () = {
1573    ["Size of IColorFrameReaderVtbl"][::std::mem::size_of::<IColorFrameReaderVtbl>() - 80usize];
1574    ["Alignment of IColorFrameReaderVtbl"]
1575        [::std::mem::align_of::<IColorFrameReaderVtbl>() - 8usize];
1576    ["Offset of field: IColorFrameReaderVtbl::QueryInterface"]
1577        [::std::mem::offset_of!(IColorFrameReaderVtbl, QueryInterface) - 0usize];
1578    ["Offset of field: IColorFrameReaderVtbl::AddRef"]
1579        [::std::mem::offset_of!(IColorFrameReaderVtbl, AddRef) - 8usize];
1580    ["Offset of field: IColorFrameReaderVtbl::Release"]
1581        [::std::mem::offset_of!(IColorFrameReaderVtbl, Release) - 16usize];
1582    ["Offset of field: IColorFrameReaderVtbl::SubscribeFrameArrived"]
1583        [::std::mem::offset_of!(IColorFrameReaderVtbl, SubscribeFrameArrived) - 24usize];
1584    ["Offset of field: IColorFrameReaderVtbl::UnsubscribeFrameArrived"]
1585        [::std::mem::offset_of!(IColorFrameReaderVtbl, UnsubscribeFrameArrived) - 32usize];
1586    ["Offset of field: IColorFrameReaderVtbl::GetFrameArrivedEventData"]
1587        [::std::mem::offset_of!(IColorFrameReaderVtbl, GetFrameArrivedEventData) - 40usize];
1588    ["Offset of field: IColorFrameReaderVtbl::AcquireLatestFrame"]
1589        [::std::mem::offset_of!(IColorFrameReaderVtbl, AcquireLatestFrame) - 48usize];
1590    ["Offset of field: IColorFrameReaderVtbl::get_IsPaused"]
1591        [::std::mem::offset_of!(IColorFrameReaderVtbl, get_IsPaused) - 56usize];
1592    ["Offset of field: IColorFrameReaderVtbl::put_IsPaused"]
1593        [::std::mem::offset_of!(IColorFrameReaderVtbl, put_IsPaused) - 64usize];
1594    ["Offset of field: IColorFrameReaderVtbl::get_ColorFrameSource"]
1595        [::std::mem::offset_of!(IColorFrameReaderVtbl, get_ColorFrameSource) - 72usize];
1596};
1597#[repr(C)]
1598pub struct IColorFrameReader {
1599    pub lpVtbl: *mut IColorFrameReaderVtbl,
1600}
1601#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1602const _: () = {
1603    ["Size of IColorFrameReader"][::std::mem::size_of::<IColorFrameReader>() - 8usize];
1604    ["Alignment of IColorFrameReader"][::std::mem::align_of::<IColorFrameReader>() - 8usize];
1605    ["Offset of field: IColorFrameReader::lpVtbl"]
1606        [::std::mem::offset_of!(IColorFrameReader, lpVtbl) - 0usize];
1607};
1608impl Default for IColorFrameReader {
1609    fn default() -> Self {
1610        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1611        unsafe {
1612            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1613            s.assume_init()
1614        }
1615    }
1616}
1617unsafe extern "C" {
1618    pub static IID_IColorFrame: IID;
1619}
1620#[repr(C)]
1621#[derive(Debug, Default)]
1622pub struct IColorFrameVtbl {
1623    pub QueryInterface: ::std::option::Option<
1624        unsafe extern "C" fn(
1625            This: *mut IColorFrame,
1626            riid: *const IID,
1627            ppvObject: *mut *mut ::std::os::raw::c_void,
1628        ) -> HRESULT,
1629    >,
1630    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IColorFrame) -> ULONG>,
1631    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IColorFrame) -> ULONG>,
1632    pub get_RawColorImageFormat: ::std::option::Option<
1633        unsafe extern "C" fn(
1634            This: *mut IColorFrame,
1635            rawColorImageFormat: *mut ColorImageFormat,
1636        ) -> HRESULT,
1637    >,
1638    pub get_FrameDescription: ::std::option::Option<
1639        unsafe extern "C" fn(
1640            This: *mut IColorFrame,
1641            rawFrameDescription: *mut *mut IFrameDescription,
1642        ) -> HRESULT,
1643    >,
1644    pub CopyRawFrameDataToArray: ::std::option::Option<
1645        unsafe extern "C" fn(
1646            This: *mut IColorFrame,
1647            capacity: UINT,
1648            frameData: *mut BYTE,
1649        ) -> HRESULT,
1650    >,
1651    pub AccessRawUnderlyingBuffer: ::std::option::Option<
1652        unsafe extern "C" fn(
1653            This: *mut IColorFrame,
1654            capacity: *mut UINT,
1655            buffer: *mut *mut BYTE,
1656        ) -> HRESULT,
1657    >,
1658    pub CopyConvertedFrameDataToArray: ::std::option::Option<
1659        unsafe extern "C" fn(
1660            This: *mut IColorFrame,
1661            capacity: UINT,
1662            frameData: *mut BYTE,
1663            colorFormat: ColorImageFormat,
1664        ) -> HRESULT,
1665    >,
1666    pub CreateFrameDescription: ::std::option::Option<
1667        unsafe extern "C" fn(
1668            This: *mut IColorFrame,
1669            format: ColorImageFormat,
1670            frameDescription: *mut *mut IFrameDescription,
1671        ) -> HRESULT,
1672    >,
1673    pub get_ColorCameraSettings: ::std::option::Option<
1674        unsafe extern "C" fn(
1675            This: *mut IColorFrame,
1676            colorCameraSettings: *mut *mut IColorCameraSettings,
1677        ) -> HRESULT,
1678    >,
1679    pub get_RelativeTime: ::std::option::Option<
1680        unsafe extern "C" fn(This: *mut IColorFrame, relativeTime: *mut TIMESPAN) -> HRESULT,
1681    >,
1682    pub get_ColorFrameSource: ::std::option::Option<
1683        unsafe extern "C" fn(
1684            This: *mut IColorFrame,
1685            colorFrameSource: *mut *mut IColorFrameSource,
1686        ) -> HRESULT,
1687    >,
1688}
1689#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1690const _: () = {
1691    ["Size of IColorFrameVtbl"][::std::mem::size_of::<IColorFrameVtbl>() - 96usize];
1692    ["Alignment of IColorFrameVtbl"][::std::mem::align_of::<IColorFrameVtbl>() - 8usize];
1693    ["Offset of field: IColorFrameVtbl::QueryInterface"]
1694        [::std::mem::offset_of!(IColorFrameVtbl, QueryInterface) - 0usize];
1695    ["Offset of field: IColorFrameVtbl::AddRef"]
1696        [::std::mem::offset_of!(IColorFrameVtbl, AddRef) - 8usize];
1697    ["Offset of field: IColorFrameVtbl::Release"]
1698        [::std::mem::offset_of!(IColorFrameVtbl, Release) - 16usize];
1699    ["Offset of field: IColorFrameVtbl::get_RawColorImageFormat"]
1700        [::std::mem::offset_of!(IColorFrameVtbl, get_RawColorImageFormat) - 24usize];
1701    ["Offset of field: IColorFrameVtbl::get_FrameDescription"]
1702        [::std::mem::offset_of!(IColorFrameVtbl, get_FrameDescription) - 32usize];
1703    ["Offset of field: IColorFrameVtbl::CopyRawFrameDataToArray"]
1704        [::std::mem::offset_of!(IColorFrameVtbl, CopyRawFrameDataToArray) - 40usize];
1705    ["Offset of field: IColorFrameVtbl::AccessRawUnderlyingBuffer"]
1706        [::std::mem::offset_of!(IColorFrameVtbl, AccessRawUnderlyingBuffer) - 48usize];
1707    ["Offset of field: IColorFrameVtbl::CopyConvertedFrameDataToArray"]
1708        [::std::mem::offset_of!(IColorFrameVtbl, CopyConvertedFrameDataToArray) - 56usize];
1709    ["Offset of field: IColorFrameVtbl::CreateFrameDescription"]
1710        [::std::mem::offset_of!(IColorFrameVtbl, CreateFrameDescription) - 64usize];
1711    ["Offset of field: IColorFrameVtbl::get_ColorCameraSettings"]
1712        [::std::mem::offset_of!(IColorFrameVtbl, get_ColorCameraSettings) - 72usize];
1713    ["Offset of field: IColorFrameVtbl::get_RelativeTime"]
1714        [::std::mem::offset_of!(IColorFrameVtbl, get_RelativeTime) - 80usize];
1715    ["Offset of field: IColorFrameVtbl::get_ColorFrameSource"]
1716        [::std::mem::offset_of!(IColorFrameVtbl, get_ColorFrameSource) - 88usize];
1717};
1718#[repr(C)]
1719pub struct IColorFrame {
1720    pub lpVtbl: *mut IColorFrameVtbl,
1721}
1722#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1723const _: () = {
1724    ["Size of IColorFrame"][::std::mem::size_of::<IColorFrame>() - 8usize];
1725    ["Alignment of IColorFrame"][::std::mem::align_of::<IColorFrame>() - 8usize];
1726    ["Offset of field: IColorFrame::lpVtbl"][::std::mem::offset_of!(IColorFrame, lpVtbl) - 0usize];
1727};
1728impl Default for IColorFrame {
1729    fn default() -> Self {
1730        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1731        unsafe {
1732            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1733            s.assume_init()
1734        }
1735    }
1736}
1737unsafe extern "C" {
1738    pub static IID_IDepthFrameReference: IID;
1739}
1740#[repr(C)]
1741#[derive(Debug, Default)]
1742pub struct IDepthFrameReferenceVtbl {
1743    pub QueryInterface: ::std::option::Option<
1744        unsafe extern "C" fn(
1745            This: *mut IDepthFrameReference,
1746            riid: *const IID,
1747            ppvObject: *mut *mut ::std::os::raw::c_void,
1748        ) -> HRESULT,
1749    >,
1750    pub AddRef:
1751        ::std::option::Option<unsafe extern "C" fn(This: *mut IDepthFrameReference) -> ULONG>,
1752    pub Release:
1753        ::std::option::Option<unsafe extern "C" fn(This: *mut IDepthFrameReference) -> ULONG>,
1754    pub AcquireFrame: ::std::option::Option<
1755        unsafe extern "C" fn(
1756            This: *mut IDepthFrameReference,
1757            depthFrame: *mut *mut IDepthFrame,
1758        ) -> HRESULT,
1759    >,
1760    pub get_RelativeTime: ::std::option::Option<
1761        unsafe extern "C" fn(
1762            This: *mut IDepthFrameReference,
1763            relativeTime: *mut TIMESPAN,
1764        ) -> HRESULT,
1765    >,
1766}
1767#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1768const _: () = {
1769    ["Size of IDepthFrameReferenceVtbl"]
1770        [::std::mem::size_of::<IDepthFrameReferenceVtbl>() - 40usize];
1771    ["Alignment of IDepthFrameReferenceVtbl"]
1772        [::std::mem::align_of::<IDepthFrameReferenceVtbl>() - 8usize];
1773    ["Offset of field: IDepthFrameReferenceVtbl::QueryInterface"]
1774        [::std::mem::offset_of!(IDepthFrameReferenceVtbl, QueryInterface) - 0usize];
1775    ["Offset of field: IDepthFrameReferenceVtbl::AddRef"]
1776        [::std::mem::offset_of!(IDepthFrameReferenceVtbl, AddRef) - 8usize];
1777    ["Offset of field: IDepthFrameReferenceVtbl::Release"]
1778        [::std::mem::offset_of!(IDepthFrameReferenceVtbl, Release) - 16usize];
1779    ["Offset of field: IDepthFrameReferenceVtbl::AcquireFrame"]
1780        [::std::mem::offset_of!(IDepthFrameReferenceVtbl, AcquireFrame) - 24usize];
1781    ["Offset of field: IDepthFrameReferenceVtbl::get_RelativeTime"]
1782        [::std::mem::offset_of!(IDepthFrameReferenceVtbl, get_RelativeTime) - 32usize];
1783};
1784#[repr(C)]
1785pub struct IDepthFrameReference {
1786    pub lpVtbl: *mut IDepthFrameReferenceVtbl,
1787}
1788#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1789const _: () = {
1790    ["Size of IDepthFrameReference"][::std::mem::size_of::<IDepthFrameReference>() - 8usize];
1791    ["Alignment of IDepthFrameReference"][::std::mem::align_of::<IDepthFrameReference>() - 8usize];
1792    ["Offset of field: IDepthFrameReference::lpVtbl"]
1793        [::std::mem::offset_of!(IDepthFrameReference, lpVtbl) - 0usize];
1794};
1795impl Default for IDepthFrameReference {
1796    fn default() -> Self {
1797        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1798        unsafe {
1799            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1800            s.assume_init()
1801        }
1802    }
1803}
1804unsafe extern "C" {
1805    pub static IID_IDepthFrameArrivedEventArgs: IID;
1806}
1807#[repr(C)]
1808#[derive(Debug, Default)]
1809pub struct IDepthFrameArrivedEventArgsVtbl {
1810    pub QueryInterface: ::std::option::Option<
1811        unsafe extern "C" fn(
1812            This: *mut IDepthFrameArrivedEventArgs,
1813            riid: *const IID,
1814            ppvObject: *mut *mut ::std::os::raw::c_void,
1815        ) -> HRESULT,
1816    >,
1817    pub AddRef: ::std::option::Option<
1818        unsafe extern "C" fn(This: *mut IDepthFrameArrivedEventArgs) -> ULONG,
1819    >,
1820    pub Release: ::std::option::Option<
1821        unsafe extern "C" fn(This: *mut IDepthFrameArrivedEventArgs) -> ULONG,
1822    >,
1823    pub get_FrameReference: ::std::option::Option<
1824        unsafe extern "C" fn(
1825            This: *mut IDepthFrameArrivedEventArgs,
1826            depthFrameReference: *mut *mut IDepthFrameReference,
1827        ) -> HRESULT,
1828    >,
1829}
1830#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1831const _: () = {
1832    ["Size of IDepthFrameArrivedEventArgsVtbl"]
1833        [::std::mem::size_of::<IDepthFrameArrivedEventArgsVtbl>() - 32usize];
1834    ["Alignment of IDepthFrameArrivedEventArgsVtbl"]
1835        [::std::mem::align_of::<IDepthFrameArrivedEventArgsVtbl>() - 8usize];
1836    ["Offset of field: IDepthFrameArrivedEventArgsVtbl::QueryInterface"]
1837        [::std::mem::offset_of!(IDepthFrameArrivedEventArgsVtbl, QueryInterface) - 0usize];
1838    ["Offset of field: IDepthFrameArrivedEventArgsVtbl::AddRef"]
1839        [::std::mem::offset_of!(IDepthFrameArrivedEventArgsVtbl, AddRef) - 8usize];
1840    ["Offset of field: IDepthFrameArrivedEventArgsVtbl::Release"]
1841        [::std::mem::offset_of!(IDepthFrameArrivedEventArgsVtbl, Release) - 16usize];
1842    ["Offset of field: IDepthFrameArrivedEventArgsVtbl::get_FrameReference"]
1843        [::std::mem::offset_of!(IDepthFrameArrivedEventArgsVtbl, get_FrameReference) - 24usize];
1844};
1845#[repr(C)]
1846pub struct IDepthFrameArrivedEventArgs {
1847    pub lpVtbl: *mut IDepthFrameArrivedEventArgsVtbl,
1848}
1849#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1850const _: () = {
1851    ["Size of IDepthFrameArrivedEventArgs"]
1852        [::std::mem::size_of::<IDepthFrameArrivedEventArgs>() - 8usize];
1853    ["Alignment of IDepthFrameArrivedEventArgs"]
1854        [::std::mem::align_of::<IDepthFrameArrivedEventArgs>() - 8usize];
1855    ["Offset of field: IDepthFrameArrivedEventArgs::lpVtbl"]
1856        [::std::mem::offset_of!(IDepthFrameArrivedEventArgs, lpVtbl) - 0usize];
1857};
1858impl Default for IDepthFrameArrivedEventArgs {
1859    fn default() -> Self {
1860        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1861        unsafe {
1862            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1863            s.assume_init()
1864        }
1865    }
1866}
1867unsafe extern "C" {
1868    pub static IID_IDepthFrameSource: IID;
1869}
1870#[repr(C)]
1871#[derive(Debug, Default)]
1872pub struct IDepthFrameSourceVtbl {
1873    pub QueryInterface: ::std::option::Option<
1874        unsafe extern "C" fn(
1875            This: *mut IDepthFrameSource,
1876            riid: *const IID,
1877            ppvObject: *mut *mut ::std::os::raw::c_void,
1878        ) -> HRESULT,
1879    >,
1880    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IDepthFrameSource) -> ULONG>,
1881    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IDepthFrameSource) -> ULONG>,
1882    pub SubscribeFrameCaptured: ::std::option::Option<
1883        unsafe extern "C" fn(
1884            This: *mut IDepthFrameSource,
1885            waitableHandle: *mut WAITABLE_HANDLE,
1886        ) -> HRESULT,
1887    >,
1888    pub UnsubscribeFrameCaptured: ::std::option::Option<
1889        unsafe extern "C" fn(
1890            This: *mut IDepthFrameSource,
1891            waitableHandle: WAITABLE_HANDLE,
1892        ) -> HRESULT,
1893    >,
1894    pub GetFrameCapturedEventData: ::std::option::Option<
1895        unsafe extern "C" fn(
1896            This: *mut IDepthFrameSource,
1897            waitableHandle: WAITABLE_HANDLE,
1898            eventData: *mut *mut IFrameCapturedEventArgs,
1899        ) -> HRESULT,
1900    >,
1901    pub get_IsActive: ::std::option::Option<
1902        unsafe extern "C" fn(This: *mut IDepthFrameSource, isActive: *mut BOOLEAN) -> HRESULT,
1903    >,
1904    pub OpenReader: ::std::option::Option<
1905        unsafe extern "C" fn(
1906            This: *mut IDepthFrameSource,
1907            reader: *mut *mut IDepthFrameReader,
1908        ) -> HRESULT,
1909    >,
1910    pub get_DepthMinReliableDistance: ::std::option::Option<
1911        unsafe extern "C" fn(
1912            This: *mut IDepthFrameSource,
1913            depthMinReliableDistance: *mut UINT16,
1914        ) -> HRESULT,
1915    >,
1916    pub get_DepthMaxReliableDistance: ::std::option::Option<
1917        unsafe extern "C" fn(
1918            This: *mut IDepthFrameSource,
1919            depthMaxReliableDistance: *mut UINT16,
1920        ) -> HRESULT,
1921    >,
1922    pub get_FrameDescription: ::std::option::Option<
1923        unsafe extern "C" fn(
1924            This: *mut IDepthFrameSource,
1925            frameDescription: *mut *mut IFrameDescription,
1926        ) -> HRESULT,
1927    >,
1928    pub get_KinectSensor: ::std::option::Option<
1929        unsafe extern "C" fn(
1930            This: *mut IDepthFrameSource,
1931            sensor: *mut *mut IKinectSensor,
1932        ) -> HRESULT,
1933    >,
1934}
1935#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1936const _: () = {
1937    ["Size of IDepthFrameSourceVtbl"][::std::mem::size_of::<IDepthFrameSourceVtbl>() - 96usize];
1938    ["Alignment of IDepthFrameSourceVtbl"]
1939        [::std::mem::align_of::<IDepthFrameSourceVtbl>() - 8usize];
1940    ["Offset of field: IDepthFrameSourceVtbl::QueryInterface"]
1941        [::std::mem::offset_of!(IDepthFrameSourceVtbl, QueryInterface) - 0usize];
1942    ["Offset of field: IDepthFrameSourceVtbl::AddRef"]
1943        [::std::mem::offset_of!(IDepthFrameSourceVtbl, AddRef) - 8usize];
1944    ["Offset of field: IDepthFrameSourceVtbl::Release"]
1945        [::std::mem::offset_of!(IDepthFrameSourceVtbl, Release) - 16usize];
1946    ["Offset of field: IDepthFrameSourceVtbl::SubscribeFrameCaptured"]
1947        [::std::mem::offset_of!(IDepthFrameSourceVtbl, SubscribeFrameCaptured) - 24usize];
1948    ["Offset of field: IDepthFrameSourceVtbl::UnsubscribeFrameCaptured"]
1949        [::std::mem::offset_of!(IDepthFrameSourceVtbl, UnsubscribeFrameCaptured) - 32usize];
1950    ["Offset of field: IDepthFrameSourceVtbl::GetFrameCapturedEventData"]
1951        [::std::mem::offset_of!(IDepthFrameSourceVtbl, GetFrameCapturedEventData) - 40usize];
1952    ["Offset of field: IDepthFrameSourceVtbl::get_IsActive"]
1953        [::std::mem::offset_of!(IDepthFrameSourceVtbl, get_IsActive) - 48usize];
1954    ["Offset of field: IDepthFrameSourceVtbl::OpenReader"]
1955        [::std::mem::offset_of!(IDepthFrameSourceVtbl, OpenReader) - 56usize];
1956    ["Offset of field: IDepthFrameSourceVtbl::get_DepthMinReliableDistance"]
1957        [::std::mem::offset_of!(IDepthFrameSourceVtbl, get_DepthMinReliableDistance) - 64usize];
1958    ["Offset of field: IDepthFrameSourceVtbl::get_DepthMaxReliableDistance"]
1959        [::std::mem::offset_of!(IDepthFrameSourceVtbl, get_DepthMaxReliableDistance) - 72usize];
1960    ["Offset of field: IDepthFrameSourceVtbl::get_FrameDescription"]
1961        [::std::mem::offset_of!(IDepthFrameSourceVtbl, get_FrameDescription) - 80usize];
1962    ["Offset of field: IDepthFrameSourceVtbl::get_KinectSensor"]
1963        [::std::mem::offset_of!(IDepthFrameSourceVtbl, get_KinectSensor) - 88usize];
1964};
1965#[repr(C)]
1966pub struct IDepthFrameSource {
1967    pub lpVtbl: *mut IDepthFrameSourceVtbl,
1968}
1969#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1970const _: () = {
1971    ["Size of IDepthFrameSource"][::std::mem::size_of::<IDepthFrameSource>() - 8usize];
1972    ["Alignment of IDepthFrameSource"][::std::mem::align_of::<IDepthFrameSource>() - 8usize];
1973    ["Offset of field: IDepthFrameSource::lpVtbl"]
1974        [::std::mem::offset_of!(IDepthFrameSource, lpVtbl) - 0usize];
1975};
1976impl Default for IDepthFrameSource {
1977    fn default() -> Self {
1978        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1979        unsafe {
1980            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1981            s.assume_init()
1982        }
1983    }
1984}
1985unsafe extern "C" {
1986    pub static IID_IDepthFrameReader: IID;
1987}
1988#[repr(C)]
1989#[derive(Debug, Default)]
1990pub struct IDepthFrameReaderVtbl {
1991    pub QueryInterface: ::std::option::Option<
1992        unsafe extern "C" fn(
1993            This: *mut IDepthFrameReader,
1994            riid: *const IID,
1995            ppvObject: *mut *mut ::std::os::raw::c_void,
1996        ) -> HRESULT,
1997    >,
1998    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IDepthFrameReader) -> ULONG>,
1999    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IDepthFrameReader) -> ULONG>,
2000    pub SubscribeFrameArrived: ::std::option::Option<
2001        unsafe extern "C" fn(
2002            This: *mut IDepthFrameReader,
2003            waitableHandle: *mut WAITABLE_HANDLE,
2004        ) -> HRESULT,
2005    >,
2006    pub UnsubscribeFrameArrived: ::std::option::Option<
2007        unsafe extern "C" fn(
2008            This: *mut IDepthFrameReader,
2009            waitableHandle: WAITABLE_HANDLE,
2010        ) -> HRESULT,
2011    >,
2012    pub GetFrameArrivedEventData: ::std::option::Option<
2013        unsafe extern "C" fn(
2014            This: *mut IDepthFrameReader,
2015            waitableHandle: WAITABLE_HANDLE,
2016            eventData: *mut *mut IDepthFrameArrivedEventArgs,
2017        ) -> HRESULT,
2018    >,
2019    pub AcquireLatestFrame: ::std::option::Option<
2020        unsafe extern "C" fn(
2021            This: *mut IDepthFrameReader,
2022            depthFrame: *mut *mut IDepthFrame,
2023        ) -> HRESULT,
2024    >,
2025    pub get_IsPaused: ::std::option::Option<
2026        unsafe extern "C" fn(This: *mut IDepthFrameReader, isPaused: *mut BOOLEAN) -> HRESULT,
2027    >,
2028    pub put_IsPaused: ::std::option::Option<
2029        unsafe extern "C" fn(This: *mut IDepthFrameReader, isPaused: BOOLEAN) -> HRESULT,
2030    >,
2031    pub get_DepthFrameSource: ::std::option::Option<
2032        unsafe extern "C" fn(
2033            This: *mut IDepthFrameReader,
2034            depthFrameSource: *mut *mut IDepthFrameSource,
2035        ) -> HRESULT,
2036    >,
2037}
2038#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2039const _: () = {
2040    ["Size of IDepthFrameReaderVtbl"][::std::mem::size_of::<IDepthFrameReaderVtbl>() - 80usize];
2041    ["Alignment of IDepthFrameReaderVtbl"]
2042        [::std::mem::align_of::<IDepthFrameReaderVtbl>() - 8usize];
2043    ["Offset of field: IDepthFrameReaderVtbl::QueryInterface"]
2044        [::std::mem::offset_of!(IDepthFrameReaderVtbl, QueryInterface) - 0usize];
2045    ["Offset of field: IDepthFrameReaderVtbl::AddRef"]
2046        [::std::mem::offset_of!(IDepthFrameReaderVtbl, AddRef) - 8usize];
2047    ["Offset of field: IDepthFrameReaderVtbl::Release"]
2048        [::std::mem::offset_of!(IDepthFrameReaderVtbl, Release) - 16usize];
2049    ["Offset of field: IDepthFrameReaderVtbl::SubscribeFrameArrived"]
2050        [::std::mem::offset_of!(IDepthFrameReaderVtbl, SubscribeFrameArrived) - 24usize];
2051    ["Offset of field: IDepthFrameReaderVtbl::UnsubscribeFrameArrived"]
2052        [::std::mem::offset_of!(IDepthFrameReaderVtbl, UnsubscribeFrameArrived) - 32usize];
2053    ["Offset of field: IDepthFrameReaderVtbl::GetFrameArrivedEventData"]
2054        [::std::mem::offset_of!(IDepthFrameReaderVtbl, GetFrameArrivedEventData) - 40usize];
2055    ["Offset of field: IDepthFrameReaderVtbl::AcquireLatestFrame"]
2056        [::std::mem::offset_of!(IDepthFrameReaderVtbl, AcquireLatestFrame) - 48usize];
2057    ["Offset of field: IDepthFrameReaderVtbl::get_IsPaused"]
2058        [::std::mem::offset_of!(IDepthFrameReaderVtbl, get_IsPaused) - 56usize];
2059    ["Offset of field: IDepthFrameReaderVtbl::put_IsPaused"]
2060        [::std::mem::offset_of!(IDepthFrameReaderVtbl, put_IsPaused) - 64usize];
2061    ["Offset of field: IDepthFrameReaderVtbl::get_DepthFrameSource"]
2062        [::std::mem::offset_of!(IDepthFrameReaderVtbl, get_DepthFrameSource) - 72usize];
2063};
2064#[repr(C)]
2065pub struct IDepthFrameReader {
2066    pub lpVtbl: *mut IDepthFrameReaderVtbl,
2067}
2068#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2069const _: () = {
2070    ["Size of IDepthFrameReader"][::std::mem::size_of::<IDepthFrameReader>() - 8usize];
2071    ["Alignment of IDepthFrameReader"][::std::mem::align_of::<IDepthFrameReader>() - 8usize];
2072    ["Offset of field: IDepthFrameReader::lpVtbl"]
2073        [::std::mem::offset_of!(IDepthFrameReader, lpVtbl) - 0usize];
2074};
2075impl Default for IDepthFrameReader {
2076    fn default() -> Self {
2077        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2078        unsafe {
2079            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2080            s.assume_init()
2081        }
2082    }
2083}
2084unsafe extern "C" {
2085    pub static IID_IDepthFrame: IID;
2086}
2087#[repr(C)]
2088#[derive(Debug, Default)]
2089pub struct IDepthFrameVtbl {
2090    pub QueryInterface: ::std::option::Option<
2091        unsafe extern "C" fn(
2092            This: *mut IDepthFrame,
2093            riid: *const IID,
2094            ppvObject: *mut *mut ::std::os::raw::c_void,
2095        ) -> HRESULT,
2096    >,
2097    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IDepthFrame) -> ULONG>,
2098    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IDepthFrame) -> ULONG>,
2099    pub CopyFrameDataToArray: ::std::option::Option<
2100        unsafe extern "C" fn(
2101            This: *mut IDepthFrame,
2102            capacity: UINT,
2103            frameData: *mut UINT16,
2104        ) -> HRESULT,
2105    >,
2106    pub AccessUnderlyingBuffer: ::std::option::Option<
2107        unsafe extern "C" fn(
2108            This: *mut IDepthFrame,
2109            capacity: *mut UINT,
2110            buffer: *mut *mut UINT16,
2111        ) -> HRESULT,
2112    >,
2113    pub get_FrameDescription: ::std::option::Option<
2114        unsafe extern "C" fn(
2115            This: *mut IDepthFrame,
2116            frameDescription: *mut *mut IFrameDescription,
2117        ) -> HRESULT,
2118    >,
2119    pub get_RelativeTime: ::std::option::Option<
2120        unsafe extern "C" fn(This: *mut IDepthFrame, relativeTime: *mut TIMESPAN) -> HRESULT,
2121    >,
2122    pub get_DepthFrameSource: ::std::option::Option<
2123        unsafe extern "C" fn(
2124            This: *mut IDepthFrame,
2125            depthFrameSource: *mut *mut IDepthFrameSource,
2126        ) -> HRESULT,
2127    >,
2128    pub get_DepthMinReliableDistance: ::std::option::Option<
2129        unsafe extern "C" fn(
2130            This: *mut IDepthFrame,
2131            depthMinReliableDistance: *mut UINT16,
2132        ) -> HRESULT,
2133    >,
2134    pub get_DepthMaxReliableDistance: ::std::option::Option<
2135        unsafe extern "C" fn(
2136            This: *mut IDepthFrame,
2137            depthMaxReliableDistance: *mut UINT16,
2138        ) -> HRESULT,
2139    >,
2140}
2141#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2142const _: () = {
2143    ["Size of IDepthFrameVtbl"][::std::mem::size_of::<IDepthFrameVtbl>() - 80usize];
2144    ["Alignment of IDepthFrameVtbl"][::std::mem::align_of::<IDepthFrameVtbl>() - 8usize];
2145    ["Offset of field: IDepthFrameVtbl::QueryInterface"]
2146        [::std::mem::offset_of!(IDepthFrameVtbl, QueryInterface) - 0usize];
2147    ["Offset of field: IDepthFrameVtbl::AddRef"]
2148        [::std::mem::offset_of!(IDepthFrameVtbl, AddRef) - 8usize];
2149    ["Offset of field: IDepthFrameVtbl::Release"]
2150        [::std::mem::offset_of!(IDepthFrameVtbl, Release) - 16usize];
2151    ["Offset of field: IDepthFrameVtbl::CopyFrameDataToArray"]
2152        [::std::mem::offset_of!(IDepthFrameVtbl, CopyFrameDataToArray) - 24usize];
2153    ["Offset of field: IDepthFrameVtbl::AccessUnderlyingBuffer"]
2154        [::std::mem::offset_of!(IDepthFrameVtbl, AccessUnderlyingBuffer) - 32usize];
2155    ["Offset of field: IDepthFrameVtbl::get_FrameDescription"]
2156        [::std::mem::offset_of!(IDepthFrameVtbl, get_FrameDescription) - 40usize];
2157    ["Offset of field: IDepthFrameVtbl::get_RelativeTime"]
2158        [::std::mem::offset_of!(IDepthFrameVtbl, get_RelativeTime) - 48usize];
2159    ["Offset of field: IDepthFrameVtbl::get_DepthFrameSource"]
2160        [::std::mem::offset_of!(IDepthFrameVtbl, get_DepthFrameSource) - 56usize];
2161    ["Offset of field: IDepthFrameVtbl::get_DepthMinReliableDistance"]
2162        [::std::mem::offset_of!(IDepthFrameVtbl, get_DepthMinReliableDistance) - 64usize];
2163    ["Offset of field: IDepthFrameVtbl::get_DepthMaxReliableDistance"]
2164        [::std::mem::offset_of!(IDepthFrameVtbl, get_DepthMaxReliableDistance) - 72usize];
2165};
2166#[repr(C)]
2167pub struct IDepthFrame {
2168    pub lpVtbl: *mut IDepthFrameVtbl,
2169}
2170#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2171const _: () = {
2172    ["Size of IDepthFrame"][::std::mem::size_of::<IDepthFrame>() - 8usize];
2173    ["Alignment of IDepthFrame"][::std::mem::align_of::<IDepthFrame>() - 8usize];
2174    ["Offset of field: IDepthFrame::lpVtbl"][::std::mem::offset_of!(IDepthFrame, lpVtbl) - 0usize];
2175};
2176impl Default for IDepthFrame {
2177    fn default() -> Self {
2178        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2179        unsafe {
2180            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2181            s.assume_init()
2182        }
2183    }
2184}
2185unsafe extern "C" {
2186    pub static IID_IBodyFrameReference: IID;
2187}
2188#[repr(C)]
2189#[derive(Debug, Default)]
2190pub struct IBodyFrameReferenceVtbl {
2191    pub QueryInterface: ::std::option::Option<
2192        unsafe extern "C" fn(
2193            This: *mut IBodyFrameReference,
2194            riid: *const IID,
2195            ppvObject: *mut *mut ::std::os::raw::c_void,
2196        ) -> HRESULT,
2197    >,
2198    pub AddRef:
2199        ::std::option::Option<unsafe extern "C" fn(This: *mut IBodyFrameReference) -> ULONG>,
2200    pub Release:
2201        ::std::option::Option<unsafe extern "C" fn(This: *mut IBodyFrameReference) -> ULONG>,
2202    pub AcquireFrame: ::std::option::Option<
2203        unsafe extern "C" fn(
2204            This: *mut IBodyFrameReference,
2205            bodyFrame: *mut *mut IBodyFrame,
2206        ) -> HRESULT,
2207    >,
2208    pub get_RelativeTime: ::std::option::Option<
2209        unsafe extern "C" fn(
2210            This: *mut IBodyFrameReference,
2211            relativeTime: *mut TIMESPAN,
2212        ) -> HRESULT,
2213    >,
2214}
2215#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2216const _: () = {
2217    ["Size of IBodyFrameReferenceVtbl"][::std::mem::size_of::<IBodyFrameReferenceVtbl>() - 40usize];
2218    ["Alignment of IBodyFrameReferenceVtbl"]
2219        [::std::mem::align_of::<IBodyFrameReferenceVtbl>() - 8usize];
2220    ["Offset of field: IBodyFrameReferenceVtbl::QueryInterface"]
2221        [::std::mem::offset_of!(IBodyFrameReferenceVtbl, QueryInterface) - 0usize];
2222    ["Offset of field: IBodyFrameReferenceVtbl::AddRef"]
2223        [::std::mem::offset_of!(IBodyFrameReferenceVtbl, AddRef) - 8usize];
2224    ["Offset of field: IBodyFrameReferenceVtbl::Release"]
2225        [::std::mem::offset_of!(IBodyFrameReferenceVtbl, Release) - 16usize];
2226    ["Offset of field: IBodyFrameReferenceVtbl::AcquireFrame"]
2227        [::std::mem::offset_of!(IBodyFrameReferenceVtbl, AcquireFrame) - 24usize];
2228    ["Offset of field: IBodyFrameReferenceVtbl::get_RelativeTime"]
2229        [::std::mem::offset_of!(IBodyFrameReferenceVtbl, get_RelativeTime) - 32usize];
2230};
2231#[repr(C)]
2232pub struct IBodyFrameReference {
2233    pub lpVtbl: *mut IBodyFrameReferenceVtbl,
2234}
2235#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2236const _: () = {
2237    ["Size of IBodyFrameReference"][::std::mem::size_of::<IBodyFrameReference>() - 8usize];
2238    ["Alignment of IBodyFrameReference"][::std::mem::align_of::<IBodyFrameReference>() - 8usize];
2239    ["Offset of field: IBodyFrameReference::lpVtbl"]
2240        [::std::mem::offset_of!(IBodyFrameReference, lpVtbl) - 0usize];
2241};
2242impl Default for IBodyFrameReference {
2243    fn default() -> Self {
2244        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2245        unsafe {
2246            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2247            s.assume_init()
2248        }
2249    }
2250}
2251unsafe extern "C" {
2252    pub static IID_IBodyFrameArrivedEventArgs: IID;
2253}
2254#[repr(C)]
2255#[derive(Debug, Default)]
2256pub struct IBodyFrameArrivedEventArgsVtbl {
2257    pub QueryInterface: ::std::option::Option<
2258        unsafe extern "C" fn(
2259            This: *mut IBodyFrameArrivedEventArgs,
2260            riid: *const IID,
2261            ppvObject: *mut *mut ::std::os::raw::c_void,
2262        ) -> HRESULT,
2263    >,
2264    pub AddRef:
2265        ::std::option::Option<unsafe extern "C" fn(This: *mut IBodyFrameArrivedEventArgs) -> ULONG>,
2266    pub Release:
2267        ::std::option::Option<unsafe extern "C" fn(This: *mut IBodyFrameArrivedEventArgs) -> ULONG>,
2268    pub get_FrameReference: ::std::option::Option<
2269        unsafe extern "C" fn(
2270            This: *mut IBodyFrameArrivedEventArgs,
2271            bodyFrameReference: *mut *mut IBodyFrameReference,
2272        ) -> HRESULT,
2273    >,
2274}
2275#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2276const _: () = {
2277    ["Size of IBodyFrameArrivedEventArgsVtbl"]
2278        [::std::mem::size_of::<IBodyFrameArrivedEventArgsVtbl>() - 32usize];
2279    ["Alignment of IBodyFrameArrivedEventArgsVtbl"]
2280        [::std::mem::align_of::<IBodyFrameArrivedEventArgsVtbl>() - 8usize];
2281    ["Offset of field: IBodyFrameArrivedEventArgsVtbl::QueryInterface"]
2282        [::std::mem::offset_of!(IBodyFrameArrivedEventArgsVtbl, QueryInterface) - 0usize];
2283    ["Offset of field: IBodyFrameArrivedEventArgsVtbl::AddRef"]
2284        [::std::mem::offset_of!(IBodyFrameArrivedEventArgsVtbl, AddRef) - 8usize];
2285    ["Offset of field: IBodyFrameArrivedEventArgsVtbl::Release"]
2286        [::std::mem::offset_of!(IBodyFrameArrivedEventArgsVtbl, Release) - 16usize];
2287    ["Offset of field: IBodyFrameArrivedEventArgsVtbl::get_FrameReference"]
2288        [::std::mem::offset_of!(IBodyFrameArrivedEventArgsVtbl, get_FrameReference) - 24usize];
2289};
2290#[repr(C)]
2291pub struct IBodyFrameArrivedEventArgs {
2292    pub lpVtbl: *mut IBodyFrameArrivedEventArgsVtbl,
2293}
2294#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2295const _: () = {
2296    ["Size of IBodyFrameArrivedEventArgs"]
2297        [::std::mem::size_of::<IBodyFrameArrivedEventArgs>() - 8usize];
2298    ["Alignment of IBodyFrameArrivedEventArgs"]
2299        [::std::mem::align_of::<IBodyFrameArrivedEventArgs>() - 8usize];
2300    ["Offset of field: IBodyFrameArrivedEventArgs::lpVtbl"]
2301        [::std::mem::offset_of!(IBodyFrameArrivedEventArgs, lpVtbl) - 0usize];
2302};
2303impl Default for IBodyFrameArrivedEventArgs {
2304    fn default() -> Self {
2305        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2306        unsafe {
2307            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2308            s.assume_init()
2309        }
2310    }
2311}
2312unsafe extern "C" {
2313    pub static IID_IBodyFrameSource: IID;
2314}
2315#[repr(C)]
2316#[derive(Debug, Default)]
2317pub struct IBodyFrameSourceVtbl {
2318    pub QueryInterface: ::std::option::Option<
2319        unsafe extern "C" fn(
2320            This: *mut IBodyFrameSource,
2321            riid: *const IID,
2322            ppvObject: *mut *mut ::std::os::raw::c_void,
2323        ) -> HRESULT,
2324    >,
2325    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IBodyFrameSource) -> ULONG>,
2326    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IBodyFrameSource) -> ULONG>,
2327    pub SubscribeFrameCaptured: ::std::option::Option<
2328        unsafe extern "C" fn(
2329            This: *mut IBodyFrameSource,
2330            waitableHandle: *mut WAITABLE_HANDLE,
2331        ) -> HRESULT,
2332    >,
2333    pub UnsubscribeFrameCaptured: ::std::option::Option<
2334        unsafe extern "C" fn(
2335            This: *mut IBodyFrameSource,
2336            waitableHandle: WAITABLE_HANDLE,
2337        ) -> HRESULT,
2338    >,
2339    pub GetFrameCapturedEventData: ::std::option::Option<
2340        unsafe extern "C" fn(
2341            This: *mut IBodyFrameSource,
2342            waitableHandle: WAITABLE_HANDLE,
2343            eventData: *mut *mut IFrameCapturedEventArgs,
2344        ) -> HRESULT,
2345    >,
2346    pub get_IsActive: ::std::option::Option<
2347        unsafe extern "C" fn(This: *mut IBodyFrameSource, isActive: *mut BOOLEAN) -> HRESULT,
2348    >,
2349    pub get_BodyCount: ::std::option::Option<
2350        unsafe extern "C" fn(This: *mut IBodyFrameSource, bodyCount: *mut INT32) -> HRESULT,
2351    >,
2352    pub OpenReader: ::std::option::Option<
2353        unsafe extern "C" fn(
2354            This: *mut IBodyFrameSource,
2355            reader: *mut *mut IBodyFrameReader,
2356        ) -> HRESULT,
2357    >,
2358    pub get_KinectSensor: ::std::option::Option<
2359        unsafe extern "C" fn(
2360            This: *mut IBodyFrameSource,
2361            sensor: *mut *mut IKinectSensor,
2362        ) -> HRESULT,
2363    >,
2364    pub OverrideHandTracking: ::std::option::Option<
2365        unsafe extern "C" fn(This: *mut IBodyFrameSource, trackingId: UINT64) -> HRESULT,
2366    >,
2367    pub OverrideAndReplaceHandTracking: ::std::option::Option<
2368        unsafe extern "C" fn(
2369            This: *mut IBodyFrameSource,
2370            oldTrackingId: UINT64,
2371            newTrackingId: UINT64,
2372        ) -> HRESULT,
2373    >,
2374}
2375#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2376const _: () = {
2377    ["Size of IBodyFrameSourceVtbl"][::std::mem::size_of::<IBodyFrameSourceVtbl>() - 96usize];
2378    ["Alignment of IBodyFrameSourceVtbl"][::std::mem::align_of::<IBodyFrameSourceVtbl>() - 8usize];
2379    ["Offset of field: IBodyFrameSourceVtbl::QueryInterface"]
2380        [::std::mem::offset_of!(IBodyFrameSourceVtbl, QueryInterface) - 0usize];
2381    ["Offset of field: IBodyFrameSourceVtbl::AddRef"]
2382        [::std::mem::offset_of!(IBodyFrameSourceVtbl, AddRef) - 8usize];
2383    ["Offset of field: IBodyFrameSourceVtbl::Release"]
2384        [::std::mem::offset_of!(IBodyFrameSourceVtbl, Release) - 16usize];
2385    ["Offset of field: IBodyFrameSourceVtbl::SubscribeFrameCaptured"]
2386        [::std::mem::offset_of!(IBodyFrameSourceVtbl, SubscribeFrameCaptured) - 24usize];
2387    ["Offset of field: IBodyFrameSourceVtbl::UnsubscribeFrameCaptured"]
2388        [::std::mem::offset_of!(IBodyFrameSourceVtbl, UnsubscribeFrameCaptured) - 32usize];
2389    ["Offset of field: IBodyFrameSourceVtbl::GetFrameCapturedEventData"]
2390        [::std::mem::offset_of!(IBodyFrameSourceVtbl, GetFrameCapturedEventData) - 40usize];
2391    ["Offset of field: IBodyFrameSourceVtbl::get_IsActive"]
2392        [::std::mem::offset_of!(IBodyFrameSourceVtbl, get_IsActive) - 48usize];
2393    ["Offset of field: IBodyFrameSourceVtbl::get_BodyCount"]
2394        [::std::mem::offset_of!(IBodyFrameSourceVtbl, get_BodyCount) - 56usize];
2395    ["Offset of field: IBodyFrameSourceVtbl::OpenReader"]
2396        [::std::mem::offset_of!(IBodyFrameSourceVtbl, OpenReader) - 64usize];
2397    ["Offset of field: IBodyFrameSourceVtbl::get_KinectSensor"]
2398        [::std::mem::offset_of!(IBodyFrameSourceVtbl, get_KinectSensor) - 72usize];
2399    ["Offset of field: IBodyFrameSourceVtbl::OverrideHandTracking"]
2400        [::std::mem::offset_of!(IBodyFrameSourceVtbl, OverrideHandTracking) - 80usize];
2401    ["Offset of field: IBodyFrameSourceVtbl::OverrideAndReplaceHandTracking"]
2402        [::std::mem::offset_of!(IBodyFrameSourceVtbl, OverrideAndReplaceHandTracking) - 88usize];
2403};
2404#[repr(C)]
2405pub struct IBodyFrameSource {
2406    pub lpVtbl: *mut IBodyFrameSourceVtbl,
2407}
2408#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2409const _: () = {
2410    ["Size of IBodyFrameSource"][::std::mem::size_of::<IBodyFrameSource>() - 8usize];
2411    ["Alignment of IBodyFrameSource"][::std::mem::align_of::<IBodyFrameSource>() - 8usize];
2412    ["Offset of field: IBodyFrameSource::lpVtbl"]
2413        [::std::mem::offset_of!(IBodyFrameSource, lpVtbl) - 0usize];
2414};
2415impl Default for IBodyFrameSource {
2416    fn default() -> Self {
2417        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2418        unsafe {
2419            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2420            s.assume_init()
2421        }
2422    }
2423}
2424unsafe extern "C" {
2425    pub static IID_IBodyFrameReader: IID;
2426}
2427#[repr(C)]
2428#[derive(Debug, Default)]
2429pub struct IBodyFrameReaderVtbl {
2430    pub QueryInterface: ::std::option::Option<
2431        unsafe extern "C" fn(
2432            This: *mut IBodyFrameReader,
2433            riid: *const IID,
2434            ppvObject: *mut *mut ::std::os::raw::c_void,
2435        ) -> HRESULT,
2436    >,
2437    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IBodyFrameReader) -> ULONG>,
2438    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IBodyFrameReader) -> ULONG>,
2439    pub SubscribeFrameArrived: ::std::option::Option<
2440        unsafe extern "C" fn(
2441            This: *mut IBodyFrameReader,
2442            waitableHandle: *mut WAITABLE_HANDLE,
2443        ) -> HRESULT,
2444    >,
2445    pub UnsubscribeFrameArrived: ::std::option::Option<
2446        unsafe extern "C" fn(
2447            This: *mut IBodyFrameReader,
2448            waitableHandle: WAITABLE_HANDLE,
2449        ) -> HRESULT,
2450    >,
2451    pub GetFrameArrivedEventData: ::std::option::Option<
2452        unsafe extern "C" fn(
2453            This: *mut IBodyFrameReader,
2454            waitableHandle: WAITABLE_HANDLE,
2455            eventData: *mut *mut IBodyFrameArrivedEventArgs,
2456        ) -> HRESULT,
2457    >,
2458    pub AcquireLatestFrame: ::std::option::Option<
2459        unsafe extern "C" fn(
2460            This: *mut IBodyFrameReader,
2461            bodyFrame: *mut *mut IBodyFrame,
2462        ) -> HRESULT,
2463    >,
2464    pub get_IsPaused: ::std::option::Option<
2465        unsafe extern "C" fn(This: *mut IBodyFrameReader, isPaused: *mut BOOLEAN) -> HRESULT,
2466    >,
2467    pub put_IsPaused: ::std::option::Option<
2468        unsafe extern "C" fn(This: *mut IBodyFrameReader, isPaused: BOOLEAN) -> HRESULT,
2469    >,
2470    pub get_BodyFrameSource: ::std::option::Option<
2471        unsafe extern "C" fn(
2472            This: *mut IBodyFrameReader,
2473            bodyFrameSource: *mut *mut IBodyFrameSource,
2474        ) -> HRESULT,
2475    >,
2476}
2477#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2478const _: () = {
2479    ["Size of IBodyFrameReaderVtbl"][::std::mem::size_of::<IBodyFrameReaderVtbl>() - 80usize];
2480    ["Alignment of IBodyFrameReaderVtbl"][::std::mem::align_of::<IBodyFrameReaderVtbl>() - 8usize];
2481    ["Offset of field: IBodyFrameReaderVtbl::QueryInterface"]
2482        [::std::mem::offset_of!(IBodyFrameReaderVtbl, QueryInterface) - 0usize];
2483    ["Offset of field: IBodyFrameReaderVtbl::AddRef"]
2484        [::std::mem::offset_of!(IBodyFrameReaderVtbl, AddRef) - 8usize];
2485    ["Offset of field: IBodyFrameReaderVtbl::Release"]
2486        [::std::mem::offset_of!(IBodyFrameReaderVtbl, Release) - 16usize];
2487    ["Offset of field: IBodyFrameReaderVtbl::SubscribeFrameArrived"]
2488        [::std::mem::offset_of!(IBodyFrameReaderVtbl, SubscribeFrameArrived) - 24usize];
2489    ["Offset of field: IBodyFrameReaderVtbl::UnsubscribeFrameArrived"]
2490        [::std::mem::offset_of!(IBodyFrameReaderVtbl, UnsubscribeFrameArrived) - 32usize];
2491    ["Offset of field: IBodyFrameReaderVtbl::GetFrameArrivedEventData"]
2492        [::std::mem::offset_of!(IBodyFrameReaderVtbl, GetFrameArrivedEventData) - 40usize];
2493    ["Offset of field: IBodyFrameReaderVtbl::AcquireLatestFrame"]
2494        [::std::mem::offset_of!(IBodyFrameReaderVtbl, AcquireLatestFrame) - 48usize];
2495    ["Offset of field: IBodyFrameReaderVtbl::get_IsPaused"]
2496        [::std::mem::offset_of!(IBodyFrameReaderVtbl, get_IsPaused) - 56usize];
2497    ["Offset of field: IBodyFrameReaderVtbl::put_IsPaused"]
2498        [::std::mem::offset_of!(IBodyFrameReaderVtbl, put_IsPaused) - 64usize];
2499    ["Offset of field: IBodyFrameReaderVtbl::get_BodyFrameSource"]
2500        [::std::mem::offset_of!(IBodyFrameReaderVtbl, get_BodyFrameSource) - 72usize];
2501};
2502#[repr(C)]
2503pub struct IBodyFrameReader {
2504    pub lpVtbl: *mut IBodyFrameReaderVtbl,
2505}
2506#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2507const _: () = {
2508    ["Size of IBodyFrameReader"][::std::mem::size_of::<IBodyFrameReader>() - 8usize];
2509    ["Alignment of IBodyFrameReader"][::std::mem::align_of::<IBodyFrameReader>() - 8usize];
2510    ["Offset of field: IBodyFrameReader::lpVtbl"]
2511        [::std::mem::offset_of!(IBodyFrameReader, lpVtbl) - 0usize];
2512};
2513impl Default for IBodyFrameReader {
2514    fn default() -> Self {
2515        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2516        unsafe {
2517            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2518            s.assume_init()
2519        }
2520    }
2521}
2522unsafe extern "C" {
2523    pub static IID_IBodyFrame: IID;
2524}
2525#[repr(C)]
2526#[derive(Debug, Default)]
2527pub struct IBodyFrameVtbl {
2528    pub QueryInterface: ::std::option::Option<
2529        unsafe extern "C" fn(
2530            This: *mut IBodyFrame,
2531            riid: *const IID,
2532            ppvObject: *mut *mut ::std::os::raw::c_void,
2533        ) -> HRESULT,
2534    >,
2535    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IBodyFrame) -> ULONG>,
2536    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IBodyFrame) -> ULONG>,
2537    pub GetAndRefreshBodyData: ::std::option::Option<
2538        unsafe extern "C" fn(
2539            This: *mut IBodyFrame,
2540            capacity: UINT,
2541            bodies: *mut *mut IBody,
2542        ) -> HRESULT,
2543    >,
2544    pub get_FloorClipPlane: ::std::option::Option<
2545        unsafe extern "C" fn(This: *mut IBodyFrame, floorClipPlane: *mut Vector4) -> HRESULT,
2546    >,
2547    pub get_RelativeTime: ::std::option::Option<
2548        unsafe extern "C" fn(This: *mut IBodyFrame, relativeTime: *mut TIMESPAN) -> HRESULT,
2549    >,
2550    pub get_BodyFrameSource: ::std::option::Option<
2551        unsafe extern "C" fn(
2552            This: *mut IBodyFrame,
2553            bodyFrameSource: *mut *mut IBodyFrameSource,
2554        ) -> HRESULT,
2555    >,
2556}
2557#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2558const _: () = {
2559    ["Size of IBodyFrameVtbl"][::std::mem::size_of::<IBodyFrameVtbl>() - 56usize];
2560    ["Alignment of IBodyFrameVtbl"][::std::mem::align_of::<IBodyFrameVtbl>() - 8usize];
2561    ["Offset of field: IBodyFrameVtbl::QueryInterface"]
2562        [::std::mem::offset_of!(IBodyFrameVtbl, QueryInterface) - 0usize];
2563    ["Offset of field: IBodyFrameVtbl::AddRef"]
2564        [::std::mem::offset_of!(IBodyFrameVtbl, AddRef) - 8usize];
2565    ["Offset of field: IBodyFrameVtbl::Release"]
2566        [::std::mem::offset_of!(IBodyFrameVtbl, Release) - 16usize];
2567    ["Offset of field: IBodyFrameVtbl::GetAndRefreshBodyData"]
2568        [::std::mem::offset_of!(IBodyFrameVtbl, GetAndRefreshBodyData) - 24usize];
2569    ["Offset of field: IBodyFrameVtbl::get_FloorClipPlane"]
2570        [::std::mem::offset_of!(IBodyFrameVtbl, get_FloorClipPlane) - 32usize];
2571    ["Offset of field: IBodyFrameVtbl::get_RelativeTime"]
2572        [::std::mem::offset_of!(IBodyFrameVtbl, get_RelativeTime) - 40usize];
2573    ["Offset of field: IBodyFrameVtbl::get_BodyFrameSource"]
2574        [::std::mem::offset_of!(IBodyFrameVtbl, get_BodyFrameSource) - 48usize];
2575};
2576#[repr(C)]
2577pub struct IBodyFrame {
2578    pub lpVtbl: *mut IBodyFrameVtbl,
2579}
2580#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2581const _: () = {
2582    ["Size of IBodyFrame"][::std::mem::size_of::<IBodyFrame>() - 8usize];
2583    ["Alignment of IBodyFrame"][::std::mem::align_of::<IBodyFrame>() - 8usize];
2584    ["Offset of field: IBodyFrame::lpVtbl"][::std::mem::offset_of!(IBodyFrame, lpVtbl) - 0usize];
2585};
2586impl Default for IBodyFrame {
2587    fn default() -> Self {
2588        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2589        unsafe {
2590            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2591            s.assume_init()
2592        }
2593    }
2594}
2595unsafe extern "C" {
2596    pub static IID_IBody: IID;
2597}
2598#[repr(C)]
2599#[derive(Debug, Default)]
2600pub struct IBodyVtbl {
2601    pub QueryInterface: ::std::option::Option<
2602        unsafe extern "C" fn(
2603            This: *mut IBody,
2604            riid: *const IID,
2605            ppvObject: *mut *mut ::std::os::raw::c_void,
2606        ) -> HRESULT,
2607    >,
2608    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IBody) -> ULONG>,
2609    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IBody) -> ULONG>,
2610    pub GetJoints: ::std::option::Option<
2611        unsafe extern "C" fn(This: *mut IBody, capacity: UINT, joints: *mut Joint) -> HRESULT,
2612    >,
2613    pub GetJointOrientations: ::std::option::Option<
2614        unsafe extern "C" fn(
2615            This: *mut IBody,
2616            capacity: UINT,
2617            jointOrientations: *mut JointOrientation,
2618        ) -> HRESULT,
2619    >,
2620    pub get_Engaged: ::std::option::Option<
2621        unsafe extern "C" fn(This: *mut IBody, detectionResult: *mut DetectionResult) -> HRESULT,
2622    >,
2623    pub GetExpressionDetectionResults: ::std::option::Option<
2624        unsafe extern "C" fn(
2625            This: *mut IBody,
2626            capacity: UINT,
2627            detectionResults: *mut DetectionResult,
2628        ) -> HRESULT,
2629    >,
2630    pub GetActivityDetectionResults: ::std::option::Option<
2631        unsafe extern "C" fn(
2632            This: *mut IBody,
2633            capacity: UINT,
2634            detectionResults: *mut DetectionResult,
2635        ) -> HRESULT,
2636    >,
2637    pub GetAppearanceDetectionResults: ::std::option::Option<
2638        unsafe extern "C" fn(
2639            This: *mut IBody,
2640            capacity: UINT,
2641            detectionResults: *mut DetectionResult,
2642        ) -> HRESULT,
2643    >,
2644    pub get_HandLeftState: ::std::option::Option<
2645        unsafe extern "C" fn(This: *mut IBody, handState: *mut HandState) -> HRESULT,
2646    >,
2647    pub get_HandLeftConfidence: ::std::option::Option<
2648        unsafe extern "C" fn(This: *mut IBody, confidence: *mut TrackingConfidence) -> HRESULT,
2649    >,
2650    pub get_HandRightState: ::std::option::Option<
2651        unsafe extern "C" fn(This: *mut IBody, handState: *mut HandState) -> HRESULT,
2652    >,
2653    pub get_HandRightConfidence: ::std::option::Option<
2654        unsafe extern "C" fn(This: *mut IBody, confidence: *mut TrackingConfidence) -> HRESULT,
2655    >,
2656    pub get_ClippedEdges: ::std::option::Option<
2657        unsafe extern "C" fn(This: *mut IBody, clippedEdges: *mut FrameEdges) -> HRESULT,
2658    >,
2659    pub get_TrackingId: ::std::option::Option<
2660        unsafe extern "C" fn(This: *mut IBody, trackingId: *mut UINT64) -> HRESULT,
2661    >,
2662    pub get_IsTracked: ::std::option::Option<
2663        unsafe extern "C" fn(This: *mut IBody, tracked: *mut BOOLEAN) -> HRESULT,
2664    >,
2665    pub get_IsRestricted: ::std::option::Option<
2666        unsafe extern "C" fn(This: *mut IBody, isRestricted: *mut BOOLEAN) -> HRESULT,
2667    >,
2668    pub get_Lean: ::std::option::Option<
2669        unsafe extern "C" fn(This: *mut IBody, amount: *mut PointF) -> HRESULT,
2670    >,
2671    pub get_LeanTrackingState: ::std::option::Option<
2672        unsafe extern "C" fn(This: *mut IBody, trackingState: *mut TrackingState) -> HRESULT,
2673    >,
2674}
2675#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2676const _: () = {
2677    ["Size of IBodyVtbl"][::std::mem::size_of::<IBodyVtbl>() - 152usize];
2678    ["Alignment of IBodyVtbl"][::std::mem::align_of::<IBodyVtbl>() - 8usize];
2679    ["Offset of field: IBodyVtbl::QueryInterface"]
2680        [::std::mem::offset_of!(IBodyVtbl, QueryInterface) - 0usize];
2681    ["Offset of field: IBodyVtbl::AddRef"][::std::mem::offset_of!(IBodyVtbl, AddRef) - 8usize];
2682    ["Offset of field: IBodyVtbl::Release"][::std::mem::offset_of!(IBodyVtbl, Release) - 16usize];
2683    ["Offset of field: IBodyVtbl::GetJoints"]
2684        [::std::mem::offset_of!(IBodyVtbl, GetJoints) - 24usize];
2685    ["Offset of field: IBodyVtbl::GetJointOrientations"]
2686        [::std::mem::offset_of!(IBodyVtbl, GetJointOrientations) - 32usize];
2687    ["Offset of field: IBodyVtbl::get_Engaged"]
2688        [::std::mem::offset_of!(IBodyVtbl, get_Engaged) - 40usize];
2689    ["Offset of field: IBodyVtbl::GetExpressionDetectionResults"]
2690        [::std::mem::offset_of!(IBodyVtbl, GetExpressionDetectionResults) - 48usize];
2691    ["Offset of field: IBodyVtbl::GetActivityDetectionResults"]
2692        [::std::mem::offset_of!(IBodyVtbl, GetActivityDetectionResults) - 56usize];
2693    ["Offset of field: IBodyVtbl::GetAppearanceDetectionResults"]
2694        [::std::mem::offset_of!(IBodyVtbl, GetAppearanceDetectionResults) - 64usize];
2695    ["Offset of field: IBodyVtbl::get_HandLeftState"]
2696        [::std::mem::offset_of!(IBodyVtbl, get_HandLeftState) - 72usize];
2697    ["Offset of field: IBodyVtbl::get_HandLeftConfidence"]
2698        [::std::mem::offset_of!(IBodyVtbl, get_HandLeftConfidence) - 80usize];
2699    ["Offset of field: IBodyVtbl::get_HandRightState"]
2700        [::std::mem::offset_of!(IBodyVtbl, get_HandRightState) - 88usize];
2701    ["Offset of field: IBodyVtbl::get_HandRightConfidence"]
2702        [::std::mem::offset_of!(IBodyVtbl, get_HandRightConfidence) - 96usize];
2703    ["Offset of field: IBodyVtbl::get_ClippedEdges"]
2704        [::std::mem::offset_of!(IBodyVtbl, get_ClippedEdges) - 104usize];
2705    ["Offset of field: IBodyVtbl::get_TrackingId"]
2706        [::std::mem::offset_of!(IBodyVtbl, get_TrackingId) - 112usize];
2707    ["Offset of field: IBodyVtbl::get_IsTracked"]
2708        [::std::mem::offset_of!(IBodyVtbl, get_IsTracked) - 120usize];
2709    ["Offset of field: IBodyVtbl::get_IsRestricted"]
2710        [::std::mem::offset_of!(IBodyVtbl, get_IsRestricted) - 128usize];
2711    ["Offset of field: IBodyVtbl::get_Lean"]
2712        [::std::mem::offset_of!(IBodyVtbl, get_Lean) - 136usize];
2713    ["Offset of field: IBodyVtbl::get_LeanTrackingState"]
2714        [::std::mem::offset_of!(IBodyVtbl, get_LeanTrackingState) - 144usize];
2715};
2716#[repr(C)]
2717pub struct IBody {
2718    pub lpVtbl: *mut IBodyVtbl,
2719}
2720#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2721const _: () = {
2722    ["Size of IBody"][::std::mem::size_of::<IBody>() - 8usize];
2723    ["Alignment of IBody"][::std::mem::align_of::<IBody>() - 8usize];
2724    ["Offset of field: IBody::lpVtbl"][::std::mem::offset_of!(IBody, lpVtbl) - 0usize];
2725};
2726impl Default for IBody {
2727    fn default() -> Self {
2728        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2729        unsafe {
2730            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2731            s.assume_init()
2732        }
2733    }
2734}
2735unsafe extern "C" {
2736    pub static IID_IBodyIndexFrameReference: IID;
2737}
2738#[repr(C)]
2739#[derive(Debug, Default)]
2740pub struct IBodyIndexFrameReferenceVtbl {
2741    pub QueryInterface: ::std::option::Option<
2742        unsafe extern "C" fn(
2743            This: *mut IBodyIndexFrameReference,
2744            riid: *const IID,
2745            ppvObject: *mut *mut ::std::os::raw::c_void,
2746        ) -> HRESULT,
2747    >,
2748    pub AddRef:
2749        ::std::option::Option<unsafe extern "C" fn(This: *mut IBodyIndexFrameReference) -> ULONG>,
2750    pub Release:
2751        ::std::option::Option<unsafe extern "C" fn(This: *mut IBodyIndexFrameReference) -> ULONG>,
2752    pub AcquireFrame: ::std::option::Option<
2753        unsafe extern "C" fn(
2754            This: *mut IBodyIndexFrameReference,
2755            bodyIndexFrame: *mut *mut IBodyIndexFrame,
2756        ) -> HRESULT,
2757    >,
2758    pub get_RelativeTime: ::std::option::Option<
2759        unsafe extern "C" fn(
2760            This: *mut IBodyIndexFrameReference,
2761            relativeTime: *mut TIMESPAN,
2762        ) -> HRESULT,
2763    >,
2764}
2765#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2766const _: () = {
2767    ["Size of IBodyIndexFrameReferenceVtbl"]
2768        [::std::mem::size_of::<IBodyIndexFrameReferenceVtbl>() - 40usize];
2769    ["Alignment of IBodyIndexFrameReferenceVtbl"]
2770        [::std::mem::align_of::<IBodyIndexFrameReferenceVtbl>() - 8usize];
2771    ["Offset of field: IBodyIndexFrameReferenceVtbl::QueryInterface"]
2772        [::std::mem::offset_of!(IBodyIndexFrameReferenceVtbl, QueryInterface) - 0usize];
2773    ["Offset of field: IBodyIndexFrameReferenceVtbl::AddRef"]
2774        [::std::mem::offset_of!(IBodyIndexFrameReferenceVtbl, AddRef) - 8usize];
2775    ["Offset of field: IBodyIndexFrameReferenceVtbl::Release"]
2776        [::std::mem::offset_of!(IBodyIndexFrameReferenceVtbl, Release) - 16usize];
2777    ["Offset of field: IBodyIndexFrameReferenceVtbl::AcquireFrame"]
2778        [::std::mem::offset_of!(IBodyIndexFrameReferenceVtbl, AcquireFrame) - 24usize];
2779    ["Offset of field: IBodyIndexFrameReferenceVtbl::get_RelativeTime"]
2780        [::std::mem::offset_of!(IBodyIndexFrameReferenceVtbl, get_RelativeTime) - 32usize];
2781};
2782#[repr(C)]
2783pub struct IBodyIndexFrameReference {
2784    pub lpVtbl: *mut IBodyIndexFrameReferenceVtbl,
2785}
2786#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2787const _: () = {
2788    ["Size of IBodyIndexFrameReference"]
2789        [::std::mem::size_of::<IBodyIndexFrameReference>() - 8usize];
2790    ["Alignment of IBodyIndexFrameReference"]
2791        [::std::mem::align_of::<IBodyIndexFrameReference>() - 8usize];
2792    ["Offset of field: IBodyIndexFrameReference::lpVtbl"]
2793        [::std::mem::offset_of!(IBodyIndexFrameReference, lpVtbl) - 0usize];
2794};
2795impl Default for IBodyIndexFrameReference {
2796    fn default() -> Self {
2797        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2798        unsafe {
2799            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2800            s.assume_init()
2801        }
2802    }
2803}
2804unsafe extern "C" {
2805    pub static IID_IBodyIndexFrameArrivedEventArgs: IID;
2806}
2807#[repr(C)]
2808#[derive(Debug, Default)]
2809pub struct IBodyIndexFrameArrivedEventArgsVtbl {
2810    pub QueryInterface: ::std::option::Option<
2811        unsafe extern "C" fn(
2812            This: *mut IBodyIndexFrameArrivedEventArgs,
2813            riid: *const IID,
2814            ppvObject: *mut *mut ::std::os::raw::c_void,
2815        ) -> HRESULT,
2816    >,
2817    pub AddRef: ::std::option::Option<
2818        unsafe extern "C" fn(This: *mut IBodyIndexFrameArrivedEventArgs) -> ULONG,
2819    >,
2820    pub Release: ::std::option::Option<
2821        unsafe extern "C" fn(This: *mut IBodyIndexFrameArrivedEventArgs) -> ULONG,
2822    >,
2823    pub get_FrameReference: ::std::option::Option<
2824        unsafe extern "C" fn(
2825            This: *mut IBodyIndexFrameArrivedEventArgs,
2826            bodyIndexFrameReference: *mut *mut IBodyIndexFrameReference,
2827        ) -> HRESULT,
2828    >,
2829}
2830#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2831const _: () = {
2832    ["Size of IBodyIndexFrameArrivedEventArgsVtbl"]
2833        [::std::mem::size_of::<IBodyIndexFrameArrivedEventArgsVtbl>() - 32usize];
2834    ["Alignment of IBodyIndexFrameArrivedEventArgsVtbl"]
2835        [::std::mem::align_of::<IBodyIndexFrameArrivedEventArgsVtbl>() - 8usize];
2836    ["Offset of field: IBodyIndexFrameArrivedEventArgsVtbl::QueryInterface"]
2837        [::std::mem::offset_of!(IBodyIndexFrameArrivedEventArgsVtbl, QueryInterface) - 0usize];
2838    ["Offset of field: IBodyIndexFrameArrivedEventArgsVtbl::AddRef"]
2839        [::std::mem::offset_of!(IBodyIndexFrameArrivedEventArgsVtbl, AddRef) - 8usize];
2840    ["Offset of field: IBodyIndexFrameArrivedEventArgsVtbl::Release"]
2841        [::std::mem::offset_of!(IBodyIndexFrameArrivedEventArgsVtbl, Release) - 16usize];
2842    ["Offset of field: IBodyIndexFrameArrivedEventArgsVtbl::get_FrameReference"]
2843        [::std::mem::offset_of!(IBodyIndexFrameArrivedEventArgsVtbl, get_FrameReference) - 24usize];
2844};
2845#[repr(C)]
2846pub struct IBodyIndexFrameArrivedEventArgs {
2847    pub lpVtbl: *mut IBodyIndexFrameArrivedEventArgsVtbl,
2848}
2849#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2850const _: () = {
2851    ["Size of IBodyIndexFrameArrivedEventArgs"]
2852        [::std::mem::size_of::<IBodyIndexFrameArrivedEventArgs>() - 8usize];
2853    ["Alignment of IBodyIndexFrameArrivedEventArgs"]
2854        [::std::mem::align_of::<IBodyIndexFrameArrivedEventArgs>() - 8usize];
2855    ["Offset of field: IBodyIndexFrameArrivedEventArgs::lpVtbl"]
2856        [::std::mem::offset_of!(IBodyIndexFrameArrivedEventArgs, lpVtbl) - 0usize];
2857};
2858impl Default for IBodyIndexFrameArrivedEventArgs {
2859    fn default() -> Self {
2860        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2861        unsafe {
2862            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2863            s.assume_init()
2864        }
2865    }
2866}
2867unsafe extern "C" {
2868    pub static IID_IBodyIndexFrameSource: IID;
2869}
2870#[repr(C)]
2871#[derive(Debug, Default)]
2872pub struct IBodyIndexFrameSourceVtbl {
2873    pub QueryInterface: ::std::option::Option<
2874        unsafe extern "C" fn(
2875            This: *mut IBodyIndexFrameSource,
2876            riid: *const IID,
2877            ppvObject: *mut *mut ::std::os::raw::c_void,
2878        ) -> HRESULT,
2879    >,
2880    pub AddRef:
2881        ::std::option::Option<unsafe extern "C" fn(This: *mut IBodyIndexFrameSource) -> ULONG>,
2882    pub Release:
2883        ::std::option::Option<unsafe extern "C" fn(This: *mut IBodyIndexFrameSource) -> ULONG>,
2884    pub SubscribeFrameCaptured: ::std::option::Option<
2885        unsafe extern "C" fn(
2886            This: *mut IBodyIndexFrameSource,
2887            waitableHandle: *mut WAITABLE_HANDLE,
2888        ) -> HRESULT,
2889    >,
2890    pub UnsubscribeFrameCaptured: ::std::option::Option<
2891        unsafe extern "C" fn(
2892            This: *mut IBodyIndexFrameSource,
2893            waitableHandle: WAITABLE_HANDLE,
2894        ) -> HRESULT,
2895    >,
2896    pub GetFrameCapturedEventData: ::std::option::Option<
2897        unsafe extern "C" fn(
2898            This: *mut IBodyIndexFrameSource,
2899            waitableHandle: WAITABLE_HANDLE,
2900            eventData: *mut *mut IFrameCapturedEventArgs,
2901        ) -> HRESULT,
2902    >,
2903    pub get_IsActive: ::std::option::Option<
2904        unsafe extern "C" fn(This: *mut IBodyIndexFrameSource, isActive: *mut BOOLEAN) -> HRESULT,
2905    >,
2906    pub OpenReader: ::std::option::Option<
2907        unsafe extern "C" fn(
2908            This: *mut IBodyIndexFrameSource,
2909            reader: *mut *mut IBodyIndexFrameReader,
2910        ) -> HRESULT,
2911    >,
2912    pub get_FrameDescription: ::std::option::Option<
2913        unsafe extern "C" fn(
2914            This: *mut IBodyIndexFrameSource,
2915            frameDescription: *mut *mut IFrameDescription,
2916        ) -> HRESULT,
2917    >,
2918    pub get_KinectSensor: ::std::option::Option<
2919        unsafe extern "C" fn(
2920            This: *mut IBodyIndexFrameSource,
2921            sensor: *mut *mut IKinectSensor,
2922        ) -> HRESULT,
2923    >,
2924}
2925#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2926const _: () = {
2927    ["Size of IBodyIndexFrameSourceVtbl"]
2928        [::std::mem::size_of::<IBodyIndexFrameSourceVtbl>() - 80usize];
2929    ["Alignment of IBodyIndexFrameSourceVtbl"]
2930        [::std::mem::align_of::<IBodyIndexFrameSourceVtbl>() - 8usize];
2931    ["Offset of field: IBodyIndexFrameSourceVtbl::QueryInterface"]
2932        [::std::mem::offset_of!(IBodyIndexFrameSourceVtbl, QueryInterface) - 0usize];
2933    ["Offset of field: IBodyIndexFrameSourceVtbl::AddRef"]
2934        [::std::mem::offset_of!(IBodyIndexFrameSourceVtbl, AddRef) - 8usize];
2935    ["Offset of field: IBodyIndexFrameSourceVtbl::Release"]
2936        [::std::mem::offset_of!(IBodyIndexFrameSourceVtbl, Release) - 16usize];
2937    ["Offset of field: IBodyIndexFrameSourceVtbl::SubscribeFrameCaptured"]
2938        [::std::mem::offset_of!(IBodyIndexFrameSourceVtbl, SubscribeFrameCaptured) - 24usize];
2939    ["Offset of field: IBodyIndexFrameSourceVtbl::UnsubscribeFrameCaptured"]
2940        [::std::mem::offset_of!(IBodyIndexFrameSourceVtbl, UnsubscribeFrameCaptured) - 32usize];
2941    ["Offset of field: IBodyIndexFrameSourceVtbl::GetFrameCapturedEventData"]
2942        [::std::mem::offset_of!(IBodyIndexFrameSourceVtbl, GetFrameCapturedEventData) - 40usize];
2943    ["Offset of field: IBodyIndexFrameSourceVtbl::get_IsActive"]
2944        [::std::mem::offset_of!(IBodyIndexFrameSourceVtbl, get_IsActive) - 48usize];
2945    ["Offset of field: IBodyIndexFrameSourceVtbl::OpenReader"]
2946        [::std::mem::offset_of!(IBodyIndexFrameSourceVtbl, OpenReader) - 56usize];
2947    ["Offset of field: IBodyIndexFrameSourceVtbl::get_FrameDescription"]
2948        [::std::mem::offset_of!(IBodyIndexFrameSourceVtbl, get_FrameDescription) - 64usize];
2949    ["Offset of field: IBodyIndexFrameSourceVtbl::get_KinectSensor"]
2950        [::std::mem::offset_of!(IBodyIndexFrameSourceVtbl, get_KinectSensor) - 72usize];
2951};
2952#[repr(C)]
2953pub struct IBodyIndexFrameSource {
2954    pub lpVtbl: *mut IBodyIndexFrameSourceVtbl,
2955}
2956#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2957const _: () = {
2958    ["Size of IBodyIndexFrameSource"][::std::mem::size_of::<IBodyIndexFrameSource>() - 8usize];
2959    ["Alignment of IBodyIndexFrameSource"]
2960        [::std::mem::align_of::<IBodyIndexFrameSource>() - 8usize];
2961    ["Offset of field: IBodyIndexFrameSource::lpVtbl"]
2962        [::std::mem::offset_of!(IBodyIndexFrameSource, lpVtbl) - 0usize];
2963};
2964impl Default for IBodyIndexFrameSource {
2965    fn default() -> Self {
2966        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2967        unsafe {
2968            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2969            s.assume_init()
2970        }
2971    }
2972}
2973unsafe extern "C" {
2974    pub static IID_IBodyIndexFrameReader: IID;
2975}
2976#[repr(C)]
2977#[derive(Debug, Default)]
2978pub struct IBodyIndexFrameReaderVtbl {
2979    pub QueryInterface: ::std::option::Option<
2980        unsafe extern "C" fn(
2981            This: *mut IBodyIndexFrameReader,
2982            riid: *const IID,
2983            ppvObject: *mut *mut ::std::os::raw::c_void,
2984        ) -> HRESULT,
2985    >,
2986    pub AddRef:
2987        ::std::option::Option<unsafe extern "C" fn(This: *mut IBodyIndexFrameReader) -> ULONG>,
2988    pub Release:
2989        ::std::option::Option<unsafe extern "C" fn(This: *mut IBodyIndexFrameReader) -> ULONG>,
2990    pub SubscribeFrameArrived: ::std::option::Option<
2991        unsafe extern "C" fn(
2992            This: *mut IBodyIndexFrameReader,
2993            waitableHandle: *mut WAITABLE_HANDLE,
2994        ) -> HRESULT,
2995    >,
2996    pub UnsubscribeFrameArrived: ::std::option::Option<
2997        unsafe extern "C" fn(
2998            This: *mut IBodyIndexFrameReader,
2999            waitableHandle: WAITABLE_HANDLE,
3000        ) -> HRESULT,
3001    >,
3002    pub GetFrameArrivedEventData: ::std::option::Option<
3003        unsafe extern "C" fn(
3004            This: *mut IBodyIndexFrameReader,
3005            waitableHandle: WAITABLE_HANDLE,
3006            eventData: *mut *mut IBodyIndexFrameArrivedEventArgs,
3007        ) -> HRESULT,
3008    >,
3009    pub AcquireLatestFrame: ::std::option::Option<
3010        unsafe extern "C" fn(
3011            This: *mut IBodyIndexFrameReader,
3012            bodyIndexFrame: *mut *mut IBodyIndexFrame,
3013        ) -> HRESULT,
3014    >,
3015    pub get_IsPaused: ::std::option::Option<
3016        unsafe extern "C" fn(This: *mut IBodyIndexFrameReader, isPaused: *mut BOOLEAN) -> HRESULT,
3017    >,
3018    pub put_IsPaused: ::std::option::Option<
3019        unsafe extern "C" fn(This: *mut IBodyIndexFrameReader, isPaused: BOOLEAN) -> HRESULT,
3020    >,
3021    pub get_BodyIndexFrameSource: ::std::option::Option<
3022        unsafe extern "C" fn(
3023            This: *mut IBodyIndexFrameReader,
3024            bodyIndexFrameSource: *mut *mut IBodyIndexFrameSource,
3025        ) -> HRESULT,
3026    >,
3027}
3028#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3029const _: () = {
3030    ["Size of IBodyIndexFrameReaderVtbl"]
3031        [::std::mem::size_of::<IBodyIndexFrameReaderVtbl>() - 80usize];
3032    ["Alignment of IBodyIndexFrameReaderVtbl"]
3033        [::std::mem::align_of::<IBodyIndexFrameReaderVtbl>() - 8usize];
3034    ["Offset of field: IBodyIndexFrameReaderVtbl::QueryInterface"]
3035        [::std::mem::offset_of!(IBodyIndexFrameReaderVtbl, QueryInterface) - 0usize];
3036    ["Offset of field: IBodyIndexFrameReaderVtbl::AddRef"]
3037        [::std::mem::offset_of!(IBodyIndexFrameReaderVtbl, AddRef) - 8usize];
3038    ["Offset of field: IBodyIndexFrameReaderVtbl::Release"]
3039        [::std::mem::offset_of!(IBodyIndexFrameReaderVtbl, Release) - 16usize];
3040    ["Offset of field: IBodyIndexFrameReaderVtbl::SubscribeFrameArrived"]
3041        [::std::mem::offset_of!(IBodyIndexFrameReaderVtbl, SubscribeFrameArrived) - 24usize];
3042    ["Offset of field: IBodyIndexFrameReaderVtbl::UnsubscribeFrameArrived"]
3043        [::std::mem::offset_of!(IBodyIndexFrameReaderVtbl, UnsubscribeFrameArrived) - 32usize];
3044    ["Offset of field: IBodyIndexFrameReaderVtbl::GetFrameArrivedEventData"]
3045        [::std::mem::offset_of!(IBodyIndexFrameReaderVtbl, GetFrameArrivedEventData) - 40usize];
3046    ["Offset of field: IBodyIndexFrameReaderVtbl::AcquireLatestFrame"]
3047        [::std::mem::offset_of!(IBodyIndexFrameReaderVtbl, AcquireLatestFrame) - 48usize];
3048    ["Offset of field: IBodyIndexFrameReaderVtbl::get_IsPaused"]
3049        [::std::mem::offset_of!(IBodyIndexFrameReaderVtbl, get_IsPaused) - 56usize];
3050    ["Offset of field: IBodyIndexFrameReaderVtbl::put_IsPaused"]
3051        [::std::mem::offset_of!(IBodyIndexFrameReaderVtbl, put_IsPaused) - 64usize];
3052    ["Offset of field: IBodyIndexFrameReaderVtbl::get_BodyIndexFrameSource"]
3053        [::std::mem::offset_of!(IBodyIndexFrameReaderVtbl, get_BodyIndexFrameSource) - 72usize];
3054};
3055#[repr(C)]
3056pub struct IBodyIndexFrameReader {
3057    pub lpVtbl: *mut IBodyIndexFrameReaderVtbl,
3058}
3059#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3060const _: () = {
3061    ["Size of IBodyIndexFrameReader"][::std::mem::size_of::<IBodyIndexFrameReader>() - 8usize];
3062    ["Alignment of IBodyIndexFrameReader"]
3063        [::std::mem::align_of::<IBodyIndexFrameReader>() - 8usize];
3064    ["Offset of field: IBodyIndexFrameReader::lpVtbl"]
3065        [::std::mem::offset_of!(IBodyIndexFrameReader, lpVtbl) - 0usize];
3066};
3067impl Default for IBodyIndexFrameReader {
3068    fn default() -> Self {
3069        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3070        unsafe {
3071            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3072            s.assume_init()
3073        }
3074    }
3075}
3076unsafe extern "C" {
3077    pub static IID_IBodyIndexFrame: IID;
3078}
3079#[repr(C)]
3080#[derive(Debug, Default)]
3081pub struct IBodyIndexFrameVtbl {
3082    pub QueryInterface: ::std::option::Option<
3083        unsafe extern "C" fn(
3084            This: *mut IBodyIndexFrame,
3085            riid: *const IID,
3086            ppvObject: *mut *mut ::std::os::raw::c_void,
3087        ) -> HRESULT,
3088    >,
3089    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IBodyIndexFrame) -> ULONG>,
3090    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IBodyIndexFrame) -> ULONG>,
3091    pub CopyFrameDataToArray: ::std::option::Option<
3092        unsafe extern "C" fn(
3093            This: *mut IBodyIndexFrame,
3094            capacity: UINT,
3095            frameData: *mut BYTE,
3096        ) -> HRESULT,
3097    >,
3098    pub AccessUnderlyingBuffer: ::std::option::Option<
3099        unsafe extern "C" fn(
3100            This: *mut IBodyIndexFrame,
3101            capacity: *mut UINT,
3102            buffer: *mut *mut BYTE,
3103        ) -> HRESULT,
3104    >,
3105    pub get_FrameDescription: ::std::option::Option<
3106        unsafe extern "C" fn(
3107            This: *mut IBodyIndexFrame,
3108            frameDescription: *mut *mut IFrameDescription,
3109        ) -> HRESULT,
3110    >,
3111    pub get_RelativeTime: ::std::option::Option<
3112        unsafe extern "C" fn(This: *mut IBodyIndexFrame, relativeTime: *mut TIMESPAN) -> HRESULT,
3113    >,
3114    pub get_BodyIndexFrameSource: ::std::option::Option<
3115        unsafe extern "C" fn(
3116            This: *mut IBodyIndexFrame,
3117            bodyIndexFrameSource: *mut *mut IBodyIndexFrameSource,
3118        ) -> HRESULT,
3119    >,
3120}
3121#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3122const _: () = {
3123    ["Size of IBodyIndexFrameVtbl"][::std::mem::size_of::<IBodyIndexFrameVtbl>() - 64usize];
3124    ["Alignment of IBodyIndexFrameVtbl"][::std::mem::align_of::<IBodyIndexFrameVtbl>() - 8usize];
3125    ["Offset of field: IBodyIndexFrameVtbl::QueryInterface"]
3126        [::std::mem::offset_of!(IBodyIndexFrameVtbl, QueryInterface) - 0usize];
3127    ["Offset of field: IBodyIndexFrameVtbl::AddRef"]
3128        [::std::mem::offset_of!(IBodyIndexFrameVtbl, AddRef) - 8usize];
3129    ["Offset of field: IBodyIndexFrameVtbl::Release"]
3130        [::std::mem::offset_of!(IBodyIndexFrameVtbl, Release) - 16usize];
3131    ["Offset of field: IBodyIndexFrameVtbl::CopyFrameDataToArray"]
3132        [::std::mem::offset_of!(IBodyIndexFrameVtbl, CopyFrameDataToArray) - 24usize];
3133    ["Offset of field: IBodyIndexFrameVtbl::AccessUnderlyingBuffer"]
3134        [::std::mem::offset_of!(IBodyIndexFrameVtbl, AccessUnderlyingBuffer) - 32usize];
3135    ["Offset of field: IBodyIndexFrameVtbl::get_FrameDescription"]
3136        [::std::mem::offset_of!(IBodyIndexFrameVtbl, get_FrameDescription) - 40usize];
3137    ["Offset of field: IBodyIndexFrameVtbl::get_RelativeTime"]
3138        [::std::mem::offset_of!(IBodyIndexFrameVtbl, get_RelativeTime) - 48usize];
3139    ["Offset of field: IBodyIndexFrameVtbl::get_BodyIndexFrameSource"]
3140        [::std::mem::offset_of!(IBodyIndexFrameVtbl, get_BodyIndexFrameSource) - 56usize];
3141};
3142#[repr(C)]
3143pub struct IBodyIndexFrame {
3144    pub lpVtbl: *mut IBodyIndexFrameVtbl,
3145}
3146#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3147const _: () = {
3148    ["Size of IBodyIndexFrame"][::std::mem::size_of::<IBodyIndexFrame>() - 8usize];
3149    ["Alignment of IBodyIndexFrame"][::std::mem::align_of::<IBodyIndexFrame>() - 8usize];
3150    ["Offset of field: IBodyIndexFrame::lpVtbl"]
3151        [::std::mem::offset_of!(IBodyIndexFrame, lpVtbl) - 0usize];
3152};
3153impl Default for IBodyIndexFrame {
3154    fn default() -> Self {
3155        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3156        unsafe {
3157            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3158            s.assume_init()
3159        }
3160    }
3161}
3162unsafe extern "C" {
3163    pub static IID_IInfraredFrameReference: IID;
3164}
3165#[repr(C)]
3166#[derive(Debug, Default)]
3167pub struct IInfraredFrameReferenceVtbl {
3168    pub QueryInterface: ::std::option::Option<
3169        unsafe extern "C" fn(
3170            This: *mut IInfraredFrameReference,
3171            riid: *const IID,
3172            ppvObject: *mut *mut ::std::os::raw::c_void,
3173        ) -> HRESULT,
3174    >,
3175    pub AddRef:
3176        ::std::option::Option<unsafe extern "C" fn(This: *mut IInfraredFrameReference) -> ULONG>,
3177    pub Release:
3178        ::std::option::Option<unsafe extern "C" fn(This: *mut IInfraredFrameReference) -> ULONG>,
3179    pub AcquireFrame: ::std::option::Option<
3180        unsafe extern "C" fn(
3181            This: *mut IInfraredFrameReference,
3182            infraredFrame: *mut *mut IInfraredFrame,
3183        ) -> HRESULT,
3184    >,
3185    pub get_RelativeTime: ::std::option::Option<
3186        unsafe extern "C" fn(
3187            This: *mut IInfraredFrameReference,
3188            relativeTime: *mut TIMESPAN,
3189        ) -> HRESULT,
3190    >,
3191}
3192#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3193const _: () = {
3194    ["Size of IInfraredFrameReferenceVtbl"]
3195        [::std::mem::size_of::<IInfraredFrameReferenceVtbl>() - 40usize];
3196    ["Alignment of IInfraredFrameReferenceVtbl"]
3197        [::std::mem::align_of::<IInfraredFrameReferenceVtbl>() - 8usize];
3198    ["Offset of field: IInfraredFrameReferenceVtbl::QueryInterface"]
3199        [::std::mem::offset_of!(IInfraredFrameReferenceVtbl, QueryInterface) - 0usize];
3200    ["Offset of field: IInfraredFrameReferenceVtbl::AddRef"]
3201        [::std::mem::offset_of!(IInfraredFrameReferenceVtbl, AddRef) - 8usize];
3202    ["Offset of field: IInfraredFrameReferenceVtbl::Release"]
3203        [::std::mem::offset_of!(IInfraredFrameReferenceVtbl, Release) - 16usize];
3204    ["Offset of field: IInfraredFrameReferenceVtbl::AcquireFrame"]
3205        [::std::mem::offset_of!(IInfraredFrameReferenceVtbl, AcquireFrame) - 24usize];
3206    ["Offset of field: IInfraredFrameReferenceVtbl::get_RelativeTime"]
3207        [::std::mem::offset_of!(IInfraredFrameReferenceVtbl, get_RelativeTime) - 32usize];
3208};
3209#[repr(C)]
3210pub struct IInfraredFrameReference {
3211    pub lpVtbl: *mut IInfraredFrameReferenceVtbl,
3212}
3213#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3214const _: () = {
3215    ["Size of IInfraredFrameReference"][::std::mem::size_of::<IInfraredFrameReference>() - 8usize];
3216    ["Alignment of IInfraredFrameReference"]
3217        [::std::mem::align_of::<IInfraredFrameReference>() - 8usize];
3218    ["Offset of field: IInfraredFrameReference::lpVtbl"]
3219        [::std::mem::offset_of!(IInfraredFrameReference, lpVtbl) - 0usize];
3220};
3221impl Default for IInfraredFrameReference {
3222    fn default() -> Self {
3223        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3224        unsafe {
3225            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3226            s.assume_init()
3227        }
3228    }
3229}
3230unsafe extern "C" {
3231    pub static IID_IInfraredFrameArrivedEventArgs: IID;
3232}
3233#[repr(C)]
3234#[derive(Debug, Default)]
3235pub struct IInfraredFrameArrivedEventArgsVtbl {
3236    pub QueryInterface: ::std::option::Option<
3237        unsafe extern "C" fn(
3238            This: *mut IInfraredFrameArrivedEventArgs,
3239            riid: *const IID,
3240            ppvObject: *mut *mut ::std::os::raw::c_void,
3241        ) -> HRESULT,
3242    >,
3243    pub AddRef: ::std::option::Option<
3244        unsafe extern "C" fn(This: *mut IInfraredFrameArrivedEventArgs) -> ULONG,
3245    >,
3246    pub Release: ::std::option::Option<
3247        unsafe extern "C" fn(This: *mut IInfraredFrameArrivedEventArgs) -> ULONG,
3248    >,
3249    pub get_FrameReference: ::std::option::Option<
3250        unsafe extern "C" fn(
3251            This: *mut IInfraredFrameArrivedEventArgs,
3252            infraredFrameReference: *mut *mut IInfraredFrameReference,
3253        ) -> HRESULT,
3254    >,
3255}
3256#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3257const _: () = {
3258    ["Size of IInfraredFrameArrivedEventArgsVtbl"]
3259        [::std::mem::size_of::<IInfraredFrameArrivedEventArgsVtbl>() - 32usize];
3260    ["Alignment of IInfraredFrameArrivedEventArgsVtbl"]
3261        [::std::mem::align_of::<IInfraredFrameArrivedEventArgsVtbl>() - 8usize];
3262    ["Offset of field: IInfraredFrameArrivedEventArgsVtbl::QueryInterface"]
3263        [::std::mem::offset_of!(IInfraredFrameArrivedEventArgsVtbl, QueryInterface) - 0usize];
3264    ["Offset of field: IInfraredFrameArrivedEventArgsVtbl::AddRef"]
3265        [::std::mem::offset_of!(IInfraredFrameArrivedEventArgsVtbl, AddRef) - 8usize];
3266    ["Offset of field: IInfraredFrameArrivedEventArgsVtbl::Release"]
3267        [::std::mem::offset_of!(IInfraredFrameArrivedEventArgsVtbl, Release) - 16usize];
3268    ["Offset of field: IInfraredFrameArrivedEventArgsVtbl::get_FrameReference"]
3269        [::std::mem::offset_of!(IInfraredFrameArrivedEventArgsVtbl, get_FrameReference) - 24usize];
3270};
3271#[repr(C)]
3272pub struct IInfraredFrameArrivedEventArgs {
3273    pub lpVtbl: *mut IInfraredFrameArrivedEventArgsVtbl,
3274}
3275#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3276const _: () = {
3277    ["Size of IInfraredFrameArrivedEventArgs"]
3278        [::std::mem::size_of::<IInfraredFrameArrivedEventArgs>() - 8usize];
3279    ["Alignment of IInfraredFrameArrivedEventArgs"]
3280        [::std::mem::align_of::<IInfraredFrameArrivedEventArgs>() - 8usize];
3281    ["Offset of field: IInfraredFrameArrivedEventArgs::lpVtbl"]
3282        [::std::mem::offset_of!(IInfraredFrameArrivedEventArgs, lpVtbl) - 0usize];
3283};
3284impl Default for IInfraredFrameArrivedEventArgs {
3285    fn default() -> Self {
3286        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3287        unsafe {
3288            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3289            s.assume_init()
3290        }
3291    }
3292}
3293unsafe extern "C" {
3294    pub static IID_IInfraredFrameSource: IID;
3295}
3296#[repr(C)]
3297#[derive(Debug, Default)]
3298pub struct IInfraredFrameSourceVtbl {
3299    pub QueryInterface: ::std::option::Option<
3300        unsafe extern "C" fn(
3301            This: *mut IInfraredFrameSource,
3302            riid: *const IID,
3303            ppvObject: *mut *mut ::std::os::raw::c_void,
3304        ) -> HRESULT,
3305    >,
3306    pub AddRef:
3307        ::std::option::Option<unsafe extern "C" fn(This: *mut IInfraredFrameSource) -> ULONG>,
3308    pub Release:
3309        ::std::option::Option<unsafe extern "C" fn(This: *mut IInfraredFrameSource) -> ULONG>,
3310    pub SubscribeFrameCaptured: ::std::option::Option<
3311        unsafe extern "C" fn(
3312            This: *mut IInfraredFrameSource,
3313            waitableHandle: *mut WAITABLE_HANDLE,
3314        ) -> HRESULT,
3315    >,
3316    pub UnsubscribeFrameCaptured: ::std::option::Option<
3317        unsafe extern "C" fn(
3318            This: *mut IInfraredFrameSource,
3319            waitableHandle: WAITABLE_HANDLE,
3320        ) -> HRESULT,
3321    >,
3322    pub GetFrameCapturedEventData: ::std::option::Option<
3323        unsafe extern "C" fn(
3324            This: *mut IInfraredFrameSource,
3325            waitableHandle: WAITABLE_HANDLE,
3326            eventData: *mut *mut IFrameCapturedEventArgs,
3327        ) -> HRESULT,
3328    >,
3329    pub get_IsActive: ::std::option::Option<
3330        unsafe extern "C" fn(This: *mut IInfraredFrameSource, isActive: *mut BOOLEAN) -> HRESULT,
3331    >,
3332    pub OpenReader: ::std::option::Option<
3333        unsafe extern "C" fn(
3334            This: *mut IInfraredFrameSource,
3335            reader: *mut *mut IInfraredFrameReader,
3336        ) -> HRESULT,
3337    >,
3338    pub get_FrameDescription: ::std::option::Option<
3339        unsafe extern "C" fn(
3340            This: *mut IInfraredFrameSource,
3341            frameDescription: *mut *mut IFrameDescription,
3342        ) -> HRESULT,
3343    >,
3344    pub get_KinectSensor: ::std::option::Option<
3345        unsafe extern "C" fn(
3346            This: *mut IInfraredFrameSource,
3347            sensor: *mut *mut IKinectSensor,
3348        ) -> HRESULT,
3349    >,
3350}
3351#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3352const _: () = {
3353    ["Size of IInfraredFrameSourceVtbl"]
3354        [::std::mem::size_of::<IInfraredFrameSourceVtbl>() - 80usize];
3355    ["Alignment of IInfraredFrameSourceVtbl"]
3356        [::std::mem::align_of::<IInfraredFrameSourceVtbl>() - 8usize];
3357    ["Offset of field: IInfraredFrameSourceVtbl::QueryInterface"]
3358        [::std::mem::offset_of!(IInfraredFrameSourceVtbl, QueryInterface) - 0usize];
3359    ["Offset of field: IInfraredFrameSourceVtbl::AddRef"]
3360        [::std::mem::offset_of!(IInfraredFrameSourceVtbl, AddRef) - 8usize];
3361    ["Offset of field: IInfraredFrameSourceVtbl::Release"]
3362        [::std::mem::offset_of!(IInfraredFrameSourceVtbl, Release) - 16usize];
3363    ["Offset of field: IInfraredFrameSourceVtbl::SubscribeFrameCaptured"]
3364        [::std::mem::offset_of!(IInfraredFrameSourceVtbl, SubscribeFrameCaptured) - 24usize];
3365    ["Offset of field: IInfraredFrameSourceVtbl::UnsubscribeFrameCaptured"]
3366        [::std::mem::offset_of!(IInfraredFrameSourceVtbl, UnsubscribeFrameCaptured) - 32usize];
3367    ["Offset of field: IInfraredFrameSourceVtbl::GetFrameCapturedEventData"]
3368        [::std::mem::offset_of!(IInfraredFrameSourceVtbl, GetFrameCapturedEventData) - 40usize];
3369    ["Offset of field: IInfraredFrameSourceVtbl::get_IsActive"]
3370        [::std::mem::offset_of!(IInfraredFrameSourceVtbl, get_IsActive) - 48usize];
3371    ["Offset of field: IInfraredFrameSourceVtbl::OpenReader"]
3372        [::std::mem::offset_of!(IInfraredFrameSourceVtbl, OpenReader) - 56usize];
3373    ["Offset of field: IInfraredFrameSourceVtbl::get_FrameDescription"]
3374        [::std::mem::offset_of!(IInfraredFrameSourceVtbl, get_FrameDescription) - 64usize];
3375    ["Offset of field: IInfraredFrameSourceVtbl::get_KinectSensor"]
3376        [::std::mem::offset_of!(IInfraredFrameSourceVtbl, get_KinectSensor) - 72usize];
3377};
3378#[repr(C)]
3379pub struct IInfraredFrameSource {
3380    pub lpVtbl: *mut IInfraredFrameSourceVtbl,
3381}
3382#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3383const _: () = {
3384    ["Size of IInfraredFrameSource"][::std::mem::size_of::<IInfraredFrameSource>() - 8usize];
3385    ["Alignment of IInfraredFrameSource"][::std::mem::align_of::<IInfraredFrameSource>() - 8usize];
3386    ["Offset of field: IInfraredFrameSource::lpVtbl"]
3387        [::std::mem::offset_of!(IInfraredFrameSource, lpVtbl) - 0usize];
3388};
3389impl Default for IInfraredFrameSource {
3390    fn default() -> Self {
3391        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3392        unsafe {
3393            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3394            s.assume_init()
3395        }
3396    }
3397}
3398unsafe extern "C" {
3399    pub static IID_IInfraredFrameReader: IID;
3400}
3401#[repr(C)]
3402#[derive(Debug, Default)]
3403pub struct IInfraredFrameReaderVtbl {
3404    pub QueryInterface: ::std::option::Option<
3405        unsafe extern "C" fn(
3406            This: *mut IInfraredFrameReader,
3407            riid: *const IID,
3408            ppvObject: *mut *mut ::std::os::raw::c_void,
3409        ) -> HRESULT,
3410    >,
3411    pub AddRef:
3412        ::std::option::Option<unsafe extern "C" fn(This: *mut IInfraredFrameReader) -> ULONG>,
3413    pub Release:
3414        ::std::option::Option<unsafe extern "C" fn(This: *mut IInfraredFrameReader) -> ULONG>,
3415    pub SubscribeFrameArrived: ::std::option::Option<
3416        unsafe extern "C" fn(
3417            This: *mut IInfraredFrameReader,
3418            waitableHandle: *mut WAITABLE_HANDLE,
3419        ) -> HRESULT,
3420    >,
3421    pub UnsubscribeFrameArrived: ::std::option::Option<
3422        unsafe extern "C" fn(
3423            This: *mut IInfraredFrameReader,
3424            waitableHandle: WAITABLE_HANDLE,
3425        ) -> HRESULT,
3426    >,
3427    pub GetFrameArrivedEventData: ::std::option::Option<
3428        unsafe extern "C" fn(
3429            This: *mut IInfraredFrameReader,
3430            waitableHandle: WAITABLE_HANDLE,
3431            eventData: *mut *mut IInfraredFrameArrivedEventArgs,
3432        ) -> HRESULT,
3433    >,
3434    pub AcquireLatestFrame: ::std::option::Option<
3435        unsafe extern "C" fn(
3436            This: *mut IInfraredFrameReader,
3437            infraredFrame: *mut *mut IInfraredFrame,
3438        ) -> HRESULT,
3439    >,
3440    pub get_IsPaused: ::std::option::Option<
3441        unsafe extern "C" fn(This: *mut IInfraredFrameReader, isPaused: *mut BOOLEAN) -> HRESULT,
3442    >,
3443    pub put_IsPaused: ::std::option::Option<
3444        unsafe extern "C" fn(This: *mut IInfraredFrameReader, isPaused: BOOLEAN) -> HRESULT,
3445    >,
3446    pub get_InfraredFrameSource: ::std::option::Option<
3447        unsafe extern "C" fn(
3448            This: *mut IInfraredFrameReader,
3449            infraredFrameSource: *mut *mut IInfraredFrameSource,
3450        ) -> HRESULT,
3451    >,
3452}
3453#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3454const _: () = {
3455    ["Size of IInfraredFrameReaderVtbl"]
3456        [::std::mem::size_of::<IInfraredFrameReaderVtbl>() - 80usize];
3457    ["Alignment of IInfraredFrameReaderVtbl"]
3458        [::std::mem::align_of::<IInfraredFrameReaderVtbl>() - 8usize];
3459    ["Offset of field: IInfraredFrameReaderVtbl::QueryInterface"]
3460        [::std::mem::offset_of!(IInfraredFrameReaderVtbl, QueryInterface) - 0usize];
3461    ["Offset of field: IInfraredFrameReaderVtbl::AddRef"]
3462        [::std::mem::offset_of!(IInfraredFrameReaderVtbl, AddRef) - 8usize];
3463    ["Offset of field: IInfraredFrameReaderVtbl::Release"]
3464        [::std::mem::offset_of!(IInfraredFrameReaderVtbl, Release) - 16usize];
3465    ["Offset of field: IInfraredFrameReaderVtbl::SubscribeFrameArrived"]
3466        [::std::mem::offset_of!(IInfraredFrameReaderVtbl, SubscribeFrameArrived) - 24usize];
3467    ["Offset of field: IInfraredFrameReaderVtbl::UnsubscribeFrameArrived"]
3468        [::std::mem::offset_of!(IInfraredFrameReaderVtbl, UnsubscribeFrameArrived) - 32usize];
3469    ["Offset of field: IInfraredFrameReaderVtbl::GetFrameArrivedEventData"]
3470        [::std::mem::offset_of!(IInfraredFrameReaderVtbl, GetFrameArrivedEventData) - 40usize];
3471    ["Offset of field: IInfraredFrameReaderVtbl::AcquireLatestFrame"]
3472        [::std::mem::offset_of!(IInfraredFrameReaderVtbl, AcquireLatestFrame) - 48usize];
3473    ["Offset of field: IInfraredFrameReaderVtbl::get_IsPaused"]
3474        [::std::mem::offset_of!(IInfraredFrameReaderVtbl, get_IsPaused) - 56usize];
3475    ["Offset of field: IInfraredFrameReaderVtbl::put_IsPaused"]
3476        [::std::mem::offset_of!(IInfraredFrameReaderVtbl, put_IsPaused) - 64usize];
3477    ["Offset of field: IInfraredFrameReaderVtbl::get_InfraredFrameSource"]
3478        [::std::mem::offset_of!(IInfraredFrameReaderVtbl, get_InfraredFrameSource) - 72usize];
3479};
3480#[repr(C)]
3481pub struct IInfraredFrameReader {
3482    pub lpVtbl: *mut IInfraredFrameReaderVtbl,
3483}
3484#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3485const _: () = {
3486    ["Size of IInfraredFrameReader"][::std::mem::size_of::<IInfraredFrameReader>() - 8usize];
3487    ["Alignment of IInfraredFrameReader"][::std::mem::align_of::<IInfraredFrameReader>() - 8usize];
3488    ["Offset of field: IInfraredFrameReader::lpVtbl"]
3489        [::std::mem::offset_of!(IInfraredFrameReader, lpVtbl) - 0usize];
3490};
3491impl Default for IInfraredFrameReader {
3492    fn default() -> Self {
3493        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3494        unsafe {
3495            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3496            s.assume_init()
3497        }
3498    }
3499}
3500unsafe extern "C" {
3501    pub static IID_IInfraredFrame: IID;
3502}
3503#[repr(C)]
3504#[derive(Debug, Default)]
3505pub struct IInfraredFrameVtbl {
3506    pub QueryInterface: ::std::option::Option<
3507        unsafe extern "C" fn(
3508            This: *mut IInfraredFrame,
3509            riid: *const IID,
3510            ppvObject: *mut *mut ::std::os::raw::c_void,
3511        ) -> HRESULT,
3512    >,
3513    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IInfraredFrame) -> ULONG>,
3514    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IInfraredFrame) -> ULONG>,
3515    pub CopyFrameDataToArray: ::std::option::Option<
3516        unsafe extern "C" fn(
3517            This: *mut IInfraredFrame,
3518            capacity: UINT,
3519            frameData: *mut UINT16,
3520        ) -> HRESULT,
3521    >,
3522    pub AccessUnderlyingBuffer: ::std::option::Option<
3523        unsafe extern "C" fn(
3524            This: *mut IInfraredFrame,
3525            capacity: *mut UINT,
3526            buffer: *mut *mut UINT16,
3527        ) -> HRESULT,
3528    >,
3529    pub get_FrameDescription: ::std::option::Option<
3530        unsafe extern "C" fn(
3531            This: *mut IInfraredFrame,
3532            frameDescription: *mut *mut IFrameDescription,
3533        ) -> HRESULT,
3534    >,
3535    pub get_RelativeTime: ::std::option::Option<
3536        unsafe extern "C" fn(This: *mut IInfraredFrame, relativeTime: *mut TIMESPAN) -> HRESULT,
3537    >,
3538    pub get_InfraredFrameSource: ::std::option::Option<
3539        unsafe extern "C" fn(
3540            This: *mut IInfraredFrame,
3541            infraredFrameSource: *mut *mut IInfraredFrameSource,
3542        ) -> HRESULT,
3543    >,
3544}
3545#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3546const _: () = {
3547    ["Size of IInfraredFrameVtbl"][::std::mem::size_of::<IInfraredFrameVtbl>() - 64usize];
3548    ["Alignment of IInfraredFrameVtbl"][::std::mem::align_of::<IInfraredFrameVtbl>() - 8usize];
3549    ["Offset of field: IInfraredFrameVtbl::QueryInterface"]
3550        [::std::mem::offset_of!(IInfraredFrameVtbl, QueryInterface) - 0usize];
3551    ["Offset of field: IInfraredFrameVtbl::AddRef"]
3552        [::std::mem::offset_of!(IInfraredFrameVtbl, AddRef) - 8usize];
3553    ["Offset of field: IInfraredFrameVtbl::Release"]
3554        [::std::mem::offset_of!(IInfraredFrameVtbl, Release) - 16usize];
3555    ["Offset of field: IInfraredFrameVtbl::CopyFrameDataToArray"]
3556        [::std::mem::offset_of!(IInfraredFrameVtbl, CopyFrameDataToArray) - 24usize];
3557    ["Offset of field: IInfraredFrameVtbl::AccessUnderlyingBuffer"]
3558        [::std::mem::offset_of!(IInfraredFrameVtbl, AccessUnderlyingBuffer) - 32usize];
3559    ["Offset of field: IInfraredFrameVtbl::get_FrameDescription"]
3560        [::std::mem::offset_of!(IInfraredFrameVtbl, get_FrameDescription) - 40usize];
3561    ["Offset of field: IInfraredFrameVtbl::get_RelativeTime"]
3562        [::std::mem::offset_of!(IInfraredFrameVtbl, get_RelativeTime) - 48usize];
3563    ["Offset of field: IInfraredFrameVtbl::get_InfraredFrameSource"]
3564        [::std::mem::offset_of!(IInfraredFrameVtbl, get_InfraredFrameSource) - 56usize];
3565};
3566#[repr(C)]
3567pub struct IInfraredFrame {
3568    pub lpVtbl: *mut IInfraredFrameVtbl,
3569}
3570#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3571const _: () = {
3572    ["Size of IInfraredFrame"][::std::mem::size_of::<IInfraredFrame>() - 8usize];
3573    ["Alignment of IInfraredFrame"][::std::mem::align_of::<IInfraredFrame>() - 8usize];
3574    ["Offset of field: IInfraredFrame::lpVtbl"]
3575        [::std::mem::offset_of!(IInfraredFrame, lpVtbl) - 0usize];
3576};
3577impl Default for IInfraredFrame {
3578    fn default() -> Self {
3579        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3580        unsafe {
3581            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3582            s.assume_init()
3583        }
3584    }
3585}
3586unsafe extern "C" {
3587    pub static IID_ILongExposureInfraredFrameReference: IID;
3588}
3589#[repr(C)]
3590#[derive(Debug, Default)]
3591pub struct ILongExposureInfraredFrameReferenceVtbl {
3592    pub QueryInterface: ::std::option::Option<
3593        unsafe extern "C" fn(
3594            This: *mut ILongExposureInfraredFrameReference,
3595            riid: *const IID,
3596            ppvObject: *mut *mut ::std::os::raw::c_void,
3597        ) -> HRESULT,
3598    >,
3599    pub AddRef: ::std::option::Option<
3600        unsafe extern "C" fn(This: *mut ILongExposureInfraredFrameReference) -> ULONG,
3601    >,
3602    pub Release: ::std::option::Option<
3603        unsafe extern "C" fn(This: *mut ILongExposureInfraredFrameReference) -> ULONG,
3604    >,
3605    pub AcquireFrame: ::std::option::Option<
3606        unsafe extern "C" fn(
3607            This: *mut ILongExposureInfraredFrameReference,
3608            longExposureInfraredFrame: *mut *mut ILongExposureInfraredFrame,
3609        ) -> HRESULT,
3610    >,
3611    pub get_RelativeTime: ::std::option::Option<
3612        unsafe extern "C" fn(
3613            This: *mut ILongExposureInfraredFrameReference,
3614            relativeTime: *mut TIMESPAN,
3615        ) -> HRESULT,
3616    >,
3617}
3618#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3619const _: () = {
3620    ["Size of ILongExposureInfraredFrameReferenceVtbl"]
3621        [::std::mem::size_of::<ILongExposureInfraredFrameReferenceVtbl>() - 40usize];
3622    ["Alignment of ILongExposureInfraredFrameReferenceVtbl"]
3623        [::std::mem::align_of::<ILongExposureInfraredFrameReferenceVtbl>() - 8usize];
3624    ["Offset of field: ILongExposureInfraredFrameReferenceVtbl::QueryInterface"]
3625        [::std::mem::offset_of!(ILongExposureInfraredFrameReferenceVtbl, QueryInterface) - 0usize];
3626    ["Offset of field: ILongExposureInfraredFrameReferenceVtbl::AddRef"]
3627        [::std::mem::offset_of!(ILongExposureInfraredFrameReferenceVtbl, AddRef) - 8usize];
3628    ["Offset of field: ILongExposureInfraredFrameReferenceVtbl::Release"]
3629        [::std::mem::offset_of!(ILongExposureInfraredFrameReferenceVtbl, Release) - 16usize];
3630    ["Offset of field: ILongExposureInfraredFrameReferenceVtbl::AcquireFrame"]
3631        [::std::mem::offset_of!(ILongExposureInfraredFrameReferenceVtbl, AcquireFrame) - 24usize];
3632    ["Offset of field: ILongExposureInfraredFrameReferenceVtbl::get_RelativeTime"][::std::mem::offset_of!(
3633        ILongExposureInfraredFrameReferenceVtbl,
3634        get_RelativeTime
3635    ) - 32usize];
3636};
3637#[repr(C)]
3638pub struct ILongExposureInfraredFrameReference {
3639    pub lpVtbl: *mut ILongExposureInfraredFrameReferenceVtbl,
3640}
3641#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3642const _: () = {
3643    ["Size of ILongExposureInfraredFrameReference"]
3644        [::std::mem::size_of::<ILongExposureInfraredFrameReference>() - 8usize];
3645    ["Alignment of ILongExposureInfraredFrameReference"]
3646        [::std::mem::align_of::<ILongExposureInfraredFrameReference>() - 8usize];
3647    ["Offset of field: ILongExposureInfraredFrameReference::lpVtbl"]
3648        [::std::mem::offset_of!(ILongExposureInfraredFrameReference, lpVtbl) - 0usize];
3649};
3650impl Default for ILongExposureInfraredFrameReference {
3651    fn default() -> Self {
3652        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3653        unsafe {
3654            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3655            s.assume_init()
3656        }
3657    }
3658}
3659unsafe extern "C" {
3660    pub static IID_ILongExposureInfraredFrameArrivedEventArgs: IID;
3661}
3662#[repr(C)]
3663#[derive(Debug, Default)]
3664pub struct ILongExposureInfraredFrameArrivedEventArgsVtbl {
3665    pub QueryInterface: ::std::option::Option<
3666        unsafe extern "C" fn(
3667            This: *mut ILongExposureInfraredFrameArrivedEventArgs,
3668            riid: *const IID,
3669            ppvObject: *mut *mut ::std::os::raw::c_void,
3670        ) -> HRESULT,
3671    >,
3672    pub AddRef: ::std::option::Option<
3673        unsafe extern "C" fn(This: *mut ILongExposureInfraredFrameArrivedEventArgs) -> ULONG,
3674    >,
3675    pub Release: ::std::option::Option<
3676        unsafe extern "C" fn(This: *mut ILongExposureInfraredFrameArrivedEventArgs) -> ULONG,
3677    >,
3678    pub get_FrameReference: ::std::option::Option<
3679        unsafe extern "C" fn(
3680            This: *mut ILongExposureInfraredFrameArrivedEventArgs,
3681            longExposureInfraredFrameReference: *mut *mut ILongExposureInfraredFrameReference,
3682        ) -> HRESULT,
3683    >,
3684}
3685#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3686const _: () = {
3687    ["Size of ILongExposureInfraredFrameArrivedEventArgsVtbl"]
3688        [::std::mem::size_of::<ILongExposureInfraredFrameArrivedEventArgsVtbl>() - 32usize];
3689    ["Alignment of ILongExposureInfraredFrameArrivedEventArgsVtbl"]
3690        [::std::mem::align_of::<ILongExposureInfraredFrameArrivedEventArgsVtbl>() - 8usize];
3691    ["Offset of field: ILongExposureInfraredFrameArrivedEventArgsVtbl::QueryInterface"][::std::mem::offset_of!(
3692        ILongExposureInfraredFrameArrivedEventArgsVtbl,
3693        QueryInterface
3694    ) - 0usize];
3695    ["Offset of field: ILongExposureInfraredFrameArrivedEventArgsVtbl::AddRef"]
3696        [::std::mem::offset_of!(ILongExposureInfraredFrameArrivedEventArgsVtbl, AddRef) - 8usize];
3697    ["Offset of field: ILongExposureInfraredFrameArrivedEventArgsVtbl::Release"]
3698        [::std::mem::offset_of!(ILongExposureInfraredFrameArrivedEventArgsVtbl, Release) - 16usize];
3699    ["Offset of field: ILongExposureInfraredFrameArrivedEventArgsVtbl::get_FrameReference"][::std::mem::offset_of!(
3700        ILongExposureInfraredFrameArrivedEventArgsVtbl,
3701        get_FrameReference
3702    )
3703        - 24usize];
3704};
3705#[repr(C)]
3706pub struct ILongExposureInfraredFrameArrivedEventArgs {
3707    pub lpVtbl: *mut ILongExposureInfraredFrameArrivedEventArgsVtbl,
3708}
3709#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3710const _: () = {
3711    ["Size of ILongExposureInfraredFrameArrivedEventArgs"]
3712        [::std::mem::size_of::<ILongExposureInfraredFrameArrivedEventArgs>() - 8usize];
3713    ["Alignment of ILongExposureInfraredFrameArrivedEventArgs"]
3714        [::std::mem::align_of::<ILongExposureInfraredFrameArrivedEventArgs>() - 8usize];
3715    ["Offset of field: ILongExposureInfraredFrameArrivedEventArgs::lpVtbl"]
3716        [::std::mem::offset_of!(ILongExposureInfraredFrameArrivedEventArgs, lpVtbl) - 0usize];
3717};
3718impl Default for ILongExposureInfraredFrameArrivedEventArgs {
3719    fn default() -> Self {
3720        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3721        unsafe {
3722            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3723            s.assume_init()
3724        }
3725    }
3726}
3727unsafe extern "C" {
3728    pub static IID_ILongExposureInfraredFrameSource: IID;
3729}
3730#[repr(C)]
3731#[derive(Debug, Default)]
3732pub struct ILongExposureInfraredFrameSourceVtbl {
3733    pub QueryInterface: ::std::option::Option<
3734        unsafe extern "C" fn(
3735            This: *mut ILongExposureInfraredFrameSource,
3736            riid: *const IID,
3737            ppvObject: *mut *mut ::std::os::raw::c_void,
3738        ) -> HRESULT,
3739    >,
3740    pub AddRef: ::std::option::Option<
3741        unsafe extern "C" fn(This: *mut ILongExposureInfraredFrameSource) -> ULONG,
3742    >,
3743    pub Release: ::std::option::Option<
3744        unsafe extern "C" fn(This: *mut ILongExposureInfraredFrameSource) -> ULONG,
3745    >,
3746    pub SubscribeFrameCaptured: ::std::option::Option<
3747        unsafe extern "C" fn(
3748            This: *mut ILongExposureInfraredFrameSource,
3749            waitableHandle: *mut WAITABLE_HANDLE,
3750        ) -> HRESULT,
3751    >,
3752    pub UnsubscribeFrameCaptured: ::std::option::Option<
3753        unsafe extern "C" fn(
3754            This: *mut ILongExposureInfraredFrameSource,
3755            waitableHandle: WAITABLE_HANDLE,
3756        ) -> HRESULT,
3757    >,
3758    pub GetFrameCapturedEventData: ::std::option::Option<
3759        unsafe extern "C" fn(
3760            This: *mut ILongExposureInfraredFrameSource,
3761            waitableHandle: WAITABLE_HANDLE,
3762            eventData: *mut *mut IFrameCapturedEventArgs,
3763        ) -> HRESULT,
3764    >,
3765    pub get_IsActive: ::std::option::Option<
3766        unsafe extern "C" fn(
3767            This: *mut ILongExposureInfraredFrameSource,
3768            isActive: *mut BOOLEAN,
3769        ) -> HRESULT,
3770    >,
3771    pub OpenReader: ::std::option::Option<
3772        unsafe extern "C" fn(
3773            This: *mut ILongExposureInfraredFrameSource,
3774            reader: *mut *mut ILongExposureInfraredFrameReader,
3775        ) -> HRESULT,
3776    >,
3777    pub get_FrameDescription: ::std::option::Option<
3778        unsafe extern "C" fn(
3779            This: *mut ILongExposureInfraredFrameSource,
3780            frameDescription: *mut *mut IFrameDescription,
3781        ) -> HRESULT,
3782    >,
3783    pub get_KinectSensor: ::std::option::Option<
3784        unsafe extern "C" fn(
3785            This: *mut ILongExposureInfraredFrameSource,
3786            sensor: *mut *mut IKinectSensor,
3787        ) -> HRESULT,
3788    >,
3789}
3790#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3791const _: () = {
3792    ["Size of ILongExposureInfraredFrameSourceVtbl"]
3793        [::std::mem::size_of::<ILongExposureInfraredFrameSourceVtbl>() - 80usize];
3794    ["Alignment of ILongExposureInfraredFrameSourceVtbl"]
3795        [::std::mem::align_of::<ILongExposureInfraredFrameSourceVtbl>() - 8usize];
3796    ["Offset of field: ILongExposureInfraredFrameSourceVtbl::QueryInterface"]
3797        [::std::mem::offset_of!(ILongExposureInfraredFrameSourceVtbl, QueryInterface) - 0usize];
3798    ["Offset of field: ILongExposureInfraredFrameSourceVtbl::AddRef"]
3799        [::std::mem::offset_of!(ILongExposureInfraredFrameSourceVtbl, AddRef) - 8usize];
3800    ["Offset of field: ILongExposureInfraredFrameSourceVtbl::Release"]
3801        [::std::mem::offset_of!(ILongExposureInfraredFrameSourceVtbl, Release) - 16usize];
3802    ["Offset of field: ILongExposureInfraredFrameSourceVtbl::SubscribeFrameCaptured"][::std::mem::offset_of!(
3803        ILongExposureInfraredFrameSourceVtbl,
3804        SubscribeFrameCaptured
3805    ) - 24usize];
3806    ["Offset of field: ILongExposureInfraredFrameSourceVtbl::UnsubscribeFrameCaptured"][::std::mem::offset_of!(
3807        ILongExposureInfraredFrameSourceVtbl,
3808        UnsubscribeFrameCaptured
3809    )
3810        - 32usize];
3811    ["Offset of field: ILongExposureInfraredFrameSourceVtbl::GetFrameCapturedEventData"][::std::mem::offset_of!(
3812        ILongExposureInfraredFrameSourceVtbl,
3813        GetFrameCapturedEventData
3814    )
3815        - 40usize];
3816    ["Offset of field: ILongExposureInfraredFrameSourceVtbl::get_IsActive"]
3817        [::std::mem::offset_of!(ILongExposureInfraredFrameSourceVtbl, get_IsActive) - 48usize];
3818    ["Offset of field: ILongExposureInfraredFrameSourceVtbl::OpenReader"]
3819        [::std::mem::offset_of!(ILongExposureInfraredFrameSourceVtbl, OpenReader) - 56usize];
3820    ["Offset of field: ILongExposureInfraredFrameSourceVtbl::get_FrameDescription"][::std::mem::offset_of!(
3821        ILongExposureInfraredFrameSourceVtbl,
3822        get_FrameDescription
3823    ) - 64usize];
3824    ["Offset of field: ILongExposureInfraredFrameSourceVtbl::get_KinectSensor"]
3825        [::std::mem::offset_of!(ILongExposureInfraredFrameSourceVtbl, get_KinectSensor) - 72usize];
3826};
3827#[repr(C)]
3828pub struct ILongExposureInfraredFrameSource {
3829    pub lpVtbl: *mut ILongExposureInfraredFrameSourceVtbl,
3830}
3831#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3832const _: () = {
3833    ["Size of ILongExposureInfraredFrameSource"]
3834        [::std::mem::size_of::<ILongExposureInfraredFrameSource>() - 8usize];
3835    ["Alignment of ILongExposureInfraredFrameSource"]
3836        [::std::mem::align_of::<ILongExposureInfraredFrameSource>() - 8usize];
3837    ["Offset of field: ILongExposureInfraredFrameSource::lpVtbl"]
3838        [::std::mem::offset_of!(ILongExposureInfraredFrameSource, lpVtbl) - 0usize];
3839};
3840impl Default for ILongExposureInfraredFrameSource {
3841    fn default() -> Self {
3842        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3843        unsafe {
3844            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3845            s.assume_init()
3846        }
3847    }
3848}
3849unsafe extern "C" {
3850    pub static IID_ILongExposureInfraredFrameReader: IID;
3851}
3852#[repr(C)]
3853#[derive(Debug, Default)]
3854pub struct ILongExposureInfraredFrameReaderVtbl {
3855    pub QueryInterface: ::std::option::Option<
3856        unsafe extern "C" fn(
3857            This: *mut ILongExposureInfraredFrameReader,
3858            riid: *const IID,
3859            ppvObject: *mut *mut ::std::os::raw::c_void,
3860        ) -> HRESULT,
3861    >,
3862    pub AddRef: ::std::option::Option<
3863        unsafe extern "C" fn(This: *mut ILongExposureInfraredFrameReader) -> ULONG,
3864    >,
3865    pub Release: ::std::option::Option<
3866        unsafe extern "C" fn(This: *mut ILongExposureInfraredFrameReader) -> ULONG,
3867    >,
3868    pub SubscribeFrameArrived: ::std::option::Option<
3869        unsafe extern "C" fn(
3870            This: *mut ILongExposureInfraredFrameReader,
3871            waitableHandle: *mut WAITABLE_HANDLE,
3872        ) -> HRESULT,
3873    >,
3874    pub UnsubscribeFrameArrived: ::std::option::Option<
3875        unsafe extern "C" fn(
3876            This: *mut ILongExposureInfraredFrameReader,
3877            waitableHandle: WAITABLE_HANDLE,
3878        ) -> HRESULT,
3879    >,
3880    pub GetFrameArrivedEventData: ::std::option::Option<
3881        unsafe extern "C" fn(
3882            This: *mut ILongExposureInfraredFrameReader,
3883            waitableHandle: WAITABLE_HANDLE,
3884            eventData: *mut *mut ILongExposureInfraredFrameArrivedEventArgs,
3885        ) -> HRESULT,
3886    >,
3887    pub AcquireLatestFrame: ::std::option::Option<
3888        unsafe extern "C" fn(
3889            This: *mut ILongExposureInfraredFrameReader,
3890            longExposureInfraredFrame: *mut *mut ILongExposureInfraredFrame,
3891        ) -> HRESULT,
3892    >,
3893    pub get_IsPaused: ::std::option::Option<
3894        unsafe extern "C" fn(
3895            This: *mut ILongExposureInfraredFrameReader,
3896            isPaused: *mut BOOLEAN,
3897        ) -> HRESULT,
3898    >,
3899    pub put_IsPaused: ::std::option::Option<
3900        unsafe extern "C" fn(
3901            This: *mut ILongExposureInfraredFrameReader,
3902            isPaused: BOOLEAN,
3903        ) -> HRESULT,
3904    >,
3905    pub get_LongExposureInfraredFrameSource: ::std::option::Option<
3906        unsafe extern "C" fn(
3907            This: *mut ILongExposureInfraredFrameReader,
3908            LongExposureInfraredFrameSource: *mut *mut ILongExposureInfraredFrameSource,
3909        ) -> HRESULT,
3910    >,
3911}
3912#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3913const _: () = {
3914    ["Size of ILongExposureInfraredFrameReaderVtbl"]
3915        [::std::mem::size_of::<ILongExposureInfraredFrameReaderVtbl>() - 80usize];
3916    ["Alignment of ILongExposureInfraredFrameReaderVtbl"]
3917        [::std::mem::align_of::<ILongExposureInfraredFrameReaderVtbl>() - 8usize];
3918    ["Offset of field: ILongExposureInfraredFrameReaderVtbl::QueryInterface"]
3919        [::std::mem::offset_of!(ILongExposureInfraredFrameReaderVtbl, QueryInterface) - 0usize];
3920    ["Offset of field: ILongExposureInfraredFrameReaderVtbl::AddRef"]
3921        [::std::mem::offset_of!(ILongExposureInfraredFrameReaderVtbl, AddRef) - 8usize];
3922    ["Offset of field: ILongExposureInfraredFrameReaderVtbl::Release"]
3923        [::std::mem::offset_of!(ILongExposureInfraredFrameReaderVtbl, Release) - 16usize];
3924    ["Offset of field: ILongExposureInfraredFrameReaderVtbl::SubscribeFrameArrived"][::std::mem::offset_of!(
3925        ILongExposureInfraredFrameReaderVtbl,
3926        SubscribeFrameArrived
3927    ) - 24usize];
3928    ["Offset of field: ILongExposureInfraredFrameReaderVtbl::UnsubscribeFrameArrived"][::std::mem::offset_of!(
3929        ILongExposureInfraredFrameReaderVtbl,
3930        UnsubscribeFrameArrived
3931    ) - 32usize];
3932    ["Offset of field: ILongExposureInfraredFrameReaderVtbl::GetFrameArrivedEventData"][::std::mem::offset_of!(
3933        ILongExposureInfraredFrameReaderVtbl,
3934        GetFrameArrivedEventData
3935    )
3936        - 40usize];
3937    ["Offset of field: ILongExposureInfraredFrameReaderVtbl::AcquireLatestFrame"][::std::mem::offset_of!(
3938        ILongExposureInfraredFrameReaderVtbl,
3939        AcquireLatestFrame
3940    ) - 48usize];
3941    ["Offset of field: ILongExposureInfraredFrameReaderVtbl::get_IsPaused"]
3942        [::std::mem::offset_of!(ILongExposureInfraredFrameReaderVtbl, get_IsPaused) - 56usize];
3943    ["Offset of field: ILongExposureInfraredFrameReaderVtbl::put_IsPaused"]
3944        [::std::mem::offset_of!(ILongExposureInfraredFrameReaderVtbl, put_IsPaused) - 64usize];
3945    ["Offset of field: ILongExposureInfraredFrameReaderVtbl::get_LongExposureInfraredFrameSource"]
3946        [::std::mem::offset_of!(
3947            ILongExposureInfraredFrameReaderVtbl,
3948            get_LongExposureInfraredFrameSource
3949        ) - 72usize];
3950};
3951#[repr(C)]
3952pub struct ILongExposureInfraredFrameReader {
3953    pub lpVtbl: *mut ILongExposureInfraredFrameReaderVtbl,
3954}
3955#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3956const _: () = {
3957    ["Size of ILongExposureInfraredFrameReader"]
3958        [::std::mem::size_of::<ILongExposureInfraredFrameReader>() - 8usize];
3959    ["Alignment of ILongExposureInfraredFrameReader"]
3960        [::std::mem::align_of::<ILongExposureInfraredFrameReader>() - 8usize];
3961    ["Offset of field: ILongExposureInfraredFrameReader::lpVtbl"]
3962        [::std::mem::offset_of!(ILongExposureInfraredFrameReader, lpVtbl) - 0usize];
3963};
3964impl Default for ILongExposureInfraredFrameReader {
3965    fn default() -> Self {
3966        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3967        unsafe {
3968            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3969            s.assume_init()
3970        }
3971    }
3972}
3973unsafe extern "C" {
3974    pub static IID_ILongExposureInfraredFrame: IID;
3975}
3976#[repr(C)]
3977#[derive(Debug, Default)]
3978pub struct ILongExposureInfraredFrameVtbl {
3979    pub QueryInterface: ::std::option::Option<
3980        unsafe extern "C" fn(
3981            This: *mut ILongExposureInfraredFrame,
3982            riid: *const IID,
3983            ppvObject: *mut *mut ::std::os::raw::c_void,
3984        ) -> HRESULT,
3985    >,
3986    pub AddRef:
3987        ::std::option::Option<unsafe extern "C" fn(This: *mut ILongExposureInfraredFrame) -> ULONG>,
3988    pub Release:
3989        ::std::option::Option<unsafe extern "C" fn(This: *mut ILongExposureInfraredFrame) -> ULONG>,
3990    pub CopyFrameDataToArray: ::std::option::Option<
3991        unsafe extern "C" fn(
3992            This: *mut ILongExposureInfraredFrame,
3993            capacity: UINT,
3994            frameData: *mut UINT16,
3995        ) -> HRESULT,
3996    >,
3997    pub AccessUnderlyingBuffer: ::std::option::Option<
3998        unsafe extern "C" fn(
3999            This: *mut ILongExposureInfraredFrame,
4000            capacity: *mut UINT,
4001            buffer: *mut *mut UINT16,
4002        ) -> HRESULT,
4003    >,
4004    pub get_FrameDescription: ::std::option::Option<
4005        unsafe extern "C" fn(
4006            This: *mut ILongExposureInfraredFrame,
4007            frameDescription: *mut *mut IFrameDescription,
4008        ) -> HRESULT,
4009    >,
4010    pub get_RelativeTime: ::std::option::Option<
4011        unsafe extern "C" fn(
4012            This: *mut ILongExposureInfraredFrame,
4013            relativeTime: *mut TIMESPAN,
4014        ) -> HRESULT,
4015    >,
4016    pub get_LongExposureInfraredFrameSource: ::std::option::Option<
4017        unsafe extern "C" fn(
4018            This: *mut ILongExposureInfraredFrame,
4019            longExposureInfraredFrameSource: *mut *mut ILongExposureInfraredFrameSource,
4020        ) -> HRESULT,
4021    >,
4022}
4023#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4024const _: () = {
4025    ["Size of ILongExposureInfraredFrameVtbl"]
4026        [::std::mem::size_of::<ILongExposureInfraredFrameVtbl>() - 64usize];
4027    ["Alignment of ILongExposureInfraredFrameVtbl"]
4028        [::std::mem::align_of::<ILongExposureInfraredFrameVtbl>() - 8usize];
4029    ["Offset of field: ILongExposureInfraredFrameVtbl::QueryInterface"]
4030        [::std::mem::offset_of!(ILongExposureInfraredFrameVtbl, QueryInterface) - 0usize];
4031    ["Offset of field: ILongExposureInfraredFrameVtbl::AddRef"]
4032        [::std::mem::offset_of!(ILongExposureInfraredFrameVtbl, AddRef) - 8usize];
4033    ["Offset of field: ILongExposureInfraredFrameVtbl::Release"]
4034        [::std::mem::offset_of!(ILongExposureInfraredFrameVtbl, Release) - 16usize];
4035    ["Offset of field: ILongExposureInfraredFrameVtbl::CopyFrameDataToArray"]
4036        [::std::mem::offset_of!(ILongExposureInfraredFrameVtbl, CopyFrameDataToArray) - 24usize];
4037    ["Offset of field: ILongExposureInfraredFrameVtbl::AccessUnderlyingBuffer"]
4038        [::std::mem::offset_of!(ILongExposureInfraredFrameVtbl, AccessUnderlyingBuffer) - 32usize];
4039    ["Offset of field: ILongExposureInfraredFrameVtbl::get_FrameDescription"]
4040        [::std::mem::offset_of!(ILongExposureInfraredFrameVtbl, get_FrameDescription) - 40usize];
4041    ["Offset of field: ILongExposureInfraredFrameVtbl::get_RelativeTime"]
4042        [::std::mem::offset_of!(ILongExposureInfraredFrameVtbl, get_RelativeTime) - 48usize];
4043    ["Offset of field: ILongExposureInfraredFrameVtbl::get_LongExposureInfraredFrameSource"][::std::mem::offset_of!(
4044        ILongExposureInfraredFrameVtbl,
4045        get_LongExposureInfraredFrameSource
4046    )
4047        - 56usize];
4048};
4049#[repr(C)]
4050pub struct ILongExposureInfraredFrame {
4051    pub lpVtbl: *mut ILongExposureInfraredFrameVtbl,
4052}
4053#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4054const _: () = {
4055    ["Size of ILongExposureInfraredFrame"]
4056        [::std::mem::size_of::<ILongExposureInfraredFrame>() - 8usize];
4057    ["Alignment of ILongExposureInfraredFrame"]
4058        [::std::mem::align_of::<ILongExposureInfraredFrame>() - 8usize];
4059    ["Offset of field: ILongExposureInfraredFrame::lpVtbl"]
4060        [::std::mem::offset_of!(ILongExposureInfraredFrame, lpVtbl) - 0usize];
4061};
4062impl Default for ILongExposureInfraredFrame {
4063    fn default() -> Self {
4064        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4065        unsafe {
4066            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4067            s.assume_init()
4068        }
4069    }
4070}
4071unsafe extern "C" {
4072    pub static IID_IAudioBeam: IID;
4073}
4074#[repr(C)]
4075#[derive(Debug, Default)]
4076pub struct IAudioBeamVtbl {
4077    pub QueryInterface: ::std::option::Option<
4078        unsafe extern "C" fn(
4079            This: *mut IAudioBeam,
4080            riid: *const IID,
4081            ppvObject: *mut *mut ::std::os::raw::c_void,
4082        ) -> HRESULT,
4083    >,
4084    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IAudioBeam) -> ULONG>,
4085    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IAudioBeam) -> ULONG>,
4086    pub get_AudioSource: ::std::option::Option<
4087        unsafe extern "C" fn(This: *mut IAudioBeam, audioSource: *mut *mut IAudioSource) -> HRESULT,
4088    >,
4089    pub get_AudioBeamMode: ::std::option::Option<
4090        unsafe extern "C" fn(This: *mut IAudioBeam, audioBeamMode: *mut AudioBeamMode) -> HRESULT,
4091    >,
4092    pub put_AudioBeamMode: ::std::option::Option<
4093        unsafe extern "C" fn(This: *mut IAudioBeam, audioBeamMode: AudioBeamMode) -> HRESULT,
4094    >,
4095    pub get_BeamAngle: ::std::option::Option<
4096        unsafe extern "C" fn(This: *mut IAudioBeam, beamAngle: *mut f32) -> HRESULT,
4097    >,
4098    pub put_BeamAngle: ::std::option::Option<
4099        unsafe extern "C" fn(This: *mut IAudioBeam, beamAngle: f32) -> HRESULT,
4100    >,
4101    pub get_BeamAngleConfidence: ::std::option::Option<
4102        unsafe extern "C" fn(This: *mut IAudioBeam, beamAngleConfidence: *mut f32) -> HRESULT,
4103    >,
4104    pub OpenInputStream: ::std::option::Option<
4105        unsafe extern "C" fn(This: *mut IAudioBeam, stream: *mut *mut IStream) -> HRESULT,
4106    >,
4107    pub get_RelativeTime: ::std::option::Option<
4108        unsafe extern "C" fn(This: *mut IAudioBeam, relativeTime: *mut TIMESPAN) -> HRESULT,
4109    >,
4110}
4111#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4112const _: () = {
4113    ["Size of IAudioBeamVtbl"][::std::mem::size_of::<IAudioBeamVtbl>() - 88usize];
4114    ["Alignment of IAudioBeamVtbl"][::std::mem::align_of::<IAudioBeamVtbl>() - 8usize];
4115    ["Offset of field: IAudioBeamVtbl::QueryInterface"]
4116        [::std::mem::offset_of!(IAudioBeamVtbl, QueryInterface) - 0usize];
4117    ["Offset of field: IAudioBeamVtbl::AddRef"]
4118        [::std::mem::offset_of!(IAudioBeamVtbl, AddRef) - 8usize];
4119    ["Offset of field: IAudioBeamVtbl::Release"]
4120        [::std::mem::offset_of!(IAudioBeamVtbl, Release) - 16usize];
4121    ["Offset of field: IAudioBeamVtbl::get_AudioSource"]
4122        [::std::mem::offset_of!(IAudioBeamVtbl, get_AudioSource) - 24usize];
4123    ["Offset of field: IAudioBeamVtbl::get_AudioBeamMode"]
4124        [::std::mem::offset_of!(IAudioBeamVtbl, get_AudioBeamMode) - 32usize];
4125    ["Offset of field: IAudioBeamVtbl::put_AudioBeamMode"]
4126        [::std::mem::offset_of!(IAudioBeamVtbl, put_AudioBeamMode) - 40usize];
4127    ["Offset of field: IAudioBeamVtbl::get_BeamAngle"]
4128        [::std::mem::offset_of!(IAudioBeamVtbl, get_BeamAngle) - 48usize];
4129    ["Offset of field: IAudioBeamVtbl::put_BeamAngle"]
4130        [::std::mem::offset_of!(IAudioBeamVtbl, put_BeamAngle) - 56usize];
4131    ["Offset of field: IAudioBeamVtbl::get_BeamAngleConfidence"]
4132        [::std::mem::offset_of!(IAudioBeamVtbl, get_BeamAngleConfidence) - 64usize];
4133    ["Offset of field: IAudioBeamVtbl::OpenInputStream"]
4134        [::std::mem::offset_of!(IAudioBeamVtbl, OpenInputStream) - 72usize];
4135    ["Offset of field: IAudioBeamVtbl::get_RelativeTime"]
4136        [::std::mem::offset_of!(IAudioBeamVtbl, get_RelativeTime) - 80usize];
4137};
4138#[repr(C)]
4139pub struct IAudioBeam {
4140    pub lpVtbl: *mut IAudioBeamVtbl,
4141}
4142#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4143const _: () = {
4144    ["Size of IAudioBeam"][::std::mem::size_of::<IAudioBeam>() - 8usize];
4145    ["Alignment of IAudioBeam"][::std::mem::align_of::<IAudioBeam>() - 8usize];
4146    ["Offset of field: IAudioBeam::lpVtbl"][::std::mem::offset_of!(IAudioBeam, lpVtbl) - 0usize];
4147};
4148impl Default for IAudioBeam {
4149    fn default() -> Self {
4150        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4151        unsafe {
4152            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4153            s.assume_init()
4154        }
4155    }
4156}
4157unsafe extern "C" {
4158    pub static IID_IAudioBeamList: IID;
4159}
4160#[repr(C)]
4161#[derive(Debug, Default)]
4162pub struct IAudioBeamListVtbl {
4163    pub QueryInterface: ::std::option::Option<
4164        unsafe extern "C" fn(
4165            This: *mut IAudioBeamList,
4166            riid: *const IID,
4167            ppvObject: *mut *mut ::std::os::raw::c_void,
4168        ) -> HRESULT,
4169    >,
4170    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IAudioBeamList) -> ULONG>,
4171    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IAudioBeamList) -> ULONG>,
4172    pub get_BeamCount: ::std::option::Option<
4173        unsafe extern "C" fn(This: *mut IAudioBeamList, count: *mut UINT) -> HRESULT,
4174    >,
4175    pub OpenAudioBeam: ::std::option::Option<
4176        unsafe extern "C" fn(
4177            This: *mut IAudioBeamList,
4178            index: UINT,
4179            audioBeam: *mut *mut IAudioBeam,
4180        ) -> HRESULT,
4181    >,
4182}
4183#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4184const _: () = {
4185    ["Size of IAudioBeamListVtbl"][::std::mem::size_of::<IAudioBeamListVtbl>() - 40usize];
4186    ["Alignment of IAudioBeamListVtbl"][::std::mem::align_of::<IAudioBeamListVtbl>() - 8usize];
4187    ["Offset of field: IAudioBeamListVtbl::QueryInterface"]
4188        [::std::mem::offset_of!(IAudioBeamListVtbl, QueryInterface) - 0usize];
4189    ["Offset of field: IAudioBeamListVtbl::AddRef"]
4190        [::std::mem::offset_of!(IAudioBeamListVtbl, AddRef) - 8usize];
4191    ["Offset of field: IAudioBeamListVtbl::Release"]
4192        [::std::mem::offset_of!(IAudioBeamListVtbl, Release) - 16usize];
4193    ["Offset of field: IAudioBeamListVtbl::get_BeamCount"]
4194        [::std::mem::offset_of!(IAudioBeamListVtbl, get_BeamCount) - 24usize];
4195    ["Offset of field: IAudioBeamListVtbl::OpenAudioBeam"]
4196        [::std::mem::offset_of!(IAudioBeamListVtbl, OpenAudioBeam) - 32usize];
4197};
4198#[repr(C)]
4199pub struct IAudioBeamList {
4200    pub lpVtbl: *mut IAudioBeamListVtbl,
4201}
4202#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4203const _: () = {
4204    ["Size of IAudioBeamList"][::std::mem::size_of::<IAudioBeamList>() - 8usize];
4205    ["Alignment of IAudioBeamList"][::std::mem::align_of::<IAudioBeamList>() - 8usize];
4206    ["Offset of field: IAudioBeamList::lpVtbl"]
4207        [::std::mem::offset_of!(IAudioBeamList, lpVtbl) - 0usize];
4208};
4209impl Default for IAudioBeamList {
4210    fn default() -> Self {
4211        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4212        unsafe {
4213            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4214            s.assume_init()
4215        }
4216    }
4217}
4218unsafe extern "C" {
4219    pub static IID_IAudioBeamFrameList: IID;
4220}
4221#[repr(C)]
4222#[derive(Debug, Default)]
4223pub struct IAudioBeamFrameListVtbl {
4224    pub QueryInterface: ::std::option::Option<
4225        unsafe extern "C" fn(
4226            This: *mut IAudioBeamFrameList,
4227            riid: *const IID,
4228            ppvObject: *mut *mut ::std::os::raw::c_void,
4229        ) -> HRESULT,
4230    >,
4231    pub AddRef:
4232        ::std::option::Option<unsafe extern "C" fn(This: *mut IAudioBeamFrameList) -> ULONG>,
4233    pub Release:
4234        ::std::option::Option<unsafe extern "C" fn(This: *mut IAudioBeamFrameList) -> ULONG>,
4235    pub get_BeamCount: ::std::option::Option<
4236        unsafe extern "C" fn(This: *mut IAudioBeamFrameList, count: *mut UINT) -> HRESULT,
4237    >,
4238    pub OpenAudioBeamFrame: ::std::option::Option<
4239        unsafe extern "C" fn(
4240            This: *mut IAudioBeamFrameList,
4241            index: UINT,
4242            audioBeamFrame: *mut *mut IAudioBeamFrame,
4243        ) -> HRESULT,
4244    >,
4245}
4246#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4247const _: () = {
4248    ["Size of IAudioBeamFrameListVtbl"][::std::mem::size_of::<IAudioBeamFrameListVtbl>() - 40usize];
4249    ["Alignment of IAudioBeamFrameListVtbl"]
4250        [::std::mem::align_of::<IAudioBeamFrameListVtbl>() - 8usize];
4251    ["Offset of field: IAudioBeamFrameListVtbl::QueryInterface"]
4252        [::std::mem::offset_of!(IAudioBeamFrameListVtbl, QueryInterface) - 0usize];
4253    ["Offset of field: IAudioBeamFrameListVtbl::AddRef"]
4254        [::std::mem::offset_of!(IAudioBeamFrameListVtbl, AddRef) - 8usize];
4255    ["Offset of field: IAudioBeamFrameListVtbl::Release"]
4256        [::std::mem::offset_of!(IAudioBeamFrameListVtbl, Release) - 16usize];
4257    ["Offset of field: IAudioBeamFrameListVtbl::get_BeamCount"]
4258        [::std::mem::offset_of!(IAudioBeamFrameListVtbl, get_BeamCount) - 24usize];
4259    ["Offset of field: IAudioBeamFrameListVtbl::OpenAudioBeamFrame"]
4260        [::std::mem::offset_of!(IAudioBeamFrameListVtbl, OpenAudioBeamFrame) - 32usize];
4261};
4262#[repr(C)]
4263pub struct IAudioBeamFrameList {
4264    pub lpVtbl: *mut IAudioBeamFrameListVtbl,
4265}
4266#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4267const _: () = {
4268    ["Size of IAudioBeamFrameList"][::std::mem::size_of::<IAudioBeamFrameList>() - 8usize];
4269    ["Alignment of IAudioBeamFrameList"][::std::mem::align_of::<IAudioBeamFrameList>() - 8usize];
4270    ["Offset of field: IAudioBeamFrameList::lpVtbl"]
4271        [::std::mem::offset_of!(IAudioBeamFrameList, lpVtbl) - 0usize];
4272};
4273impl Default for IAudioBeamFrameList {
4274    fn default() -> Self {
4275        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4276        unsafe {
4277            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4278            s.assume_init()
4279        }
4280    }
4281}
4282unsafe extern "C" {
4283    pub static IID_IAudioBeamFrame: IID;
4284}
4285#[repr(C)]
4286#[derive(Debug, Default)]
4287pub struct IAudioBeamFrameVtbl {
4288    pub QueryInterface: ::std::option::Option<
4289        unsafe extern "C" fn(
4290            This: *mut IAudioBeamFrame,
4291            riid: *const IID,
4292            ppvObject: *mut *mut ::std::os::raw::c_void,
4293        ) -> HRESULT,
4294    >,
4295    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IAudioBeamFrame) -> ULONG>,
4296    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IAudioBeamFrame) -> ULONG>,
4297    pub get_AudioSource: ::std::option::Option<
4298        unsafe extern "C" fn(
4299            This: *mut IAudioBeamFrame,
4300            audioSource: *mut *mut IAudioSource,
4301        ) -> HRESULT,
4302    >,
4303    pub get_Duration: ::std::option::Option<
4304        unsafe extern "C" fn(This: *mut IAudioBeamFrame, duration: *mut TIMESPAN) -> HRESULT,
4305    >,
4306    pub get_AudioBeam: ::std::option::Option<
4307        unsafe extern "C" fn(
4308            This: *mut IAudioBeamFrame,
4309            audioBeam: *mut *mut IAudioBeam,
4310        ) -> HRESULT,
4311    >,
4312    pub get_SubFrameCount: ::std::option::Option<
4313        unsafe extern "C" fn(This: *mut IAudioBeamFrame, pSubFrameCount: *mut UINT) -> HRESULT,
4314    >,
4315    pub GetSubFrame: ::std::option::Option<
4316        unsafe extern "C" fn(
4317            This: *mut IAudioBeamFrame,
4318            subFrameIndex: UINT,
4319            audioBeamSubFrame: *mut *mut IAudioBeamSubFrame,
4320        ) -> HRESULT,
4321    >,
4322    pub get_RelativeTimeStart: ::std::option::Option<
4323        unsafe extern "C" fn(This: *mut IAudioBeamFrame, relativeTime: *mut TIMESPAN) -> HRESULT,
4324    >,
4325}
4326#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4327const _: () = {
4328    ["Size of IAudioBeamFrameVtbl"][::std::mem::size_of::<IAudioBeamFrameVtbl>() - 72usize];
4329    ["Alignment of IAudioBeamFrameVtbl"][::std::mem::align_of::<IAudioBeamFrameVtbl>() - 8usize];
4330    ["Offset of field: IAudioBeamFrameVtbl::QueryInterface"]
4331        [::std::mem::offset_of!(IAudioBeamFrameVtbl, QueryInterface) - 0usize];
4332    ["Offset of field: IAudioBeamFrameVtbl::AddRef"]
4333        [::std::mem::offset_of!(IAudioBeamFrameVtbl, AddRef) - 8usize];
4334    ["Offset of field: IAudioBeamFrameVtbl::Release"]
4335        [::std::mem::offset_of!(IAudioBeamFrameVtbl, Release) - 16usize];
4336    ["Offset of field: IAudioBeamFrameVtbl::get_AudioSource"]
4337        [::std::mem::offset_of!(IAudioBeamFrameVtbl, get_AudioSource) - 24usize];
4338    ["Offset of field: IAudioBeamFrameVtbl::get_Duration"]
4339        [::std::mem::offset_of!(IAudioBeamFrameVtbl, get_Duration) - 32usize];
4340    ["Offset of field: IAudioBeamFrameVtbl::get_AudioBeam"]
4341        [::std::mem::offset_of!(IAudioBeamFrameVtbl, get_AudioBeam) - 40usize];
4342    ["Offset of field: IAudioBeamFrameVtbl::get_SubFrameCount"]
4343        [::std::mem::offset_of!(IAudioBeamFrameVtbl, get_SubFrameCount) - 48usize];
4344    ["Offset of field: IAudioBeamFrameVtbl::GetSubFrame"]
4345        [::std::mem::offset_of!(IAudioBeamFrameVtbl, GetSubFrame) - 56usize];
4346    ["Offset of field: IAudioBeamFrameVtbl::get_RelativeTimeStart"]
4347        [::std::mem::offset_of!(IAudioBeamFrameVtbl, get_RelativeTimeStart) - 64usize];
4348};
4349#[repr(C)]
4350pub struct IAudioBeamFrame {
4351    pub lpVtbl: *mut IAudioBeamFrameVtbl,
4352}
4353#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4354const _: () = {
4355    ["Size of IAudioBeamFrame"][::std::mem::size_of::<IAudioBeamFrame>() - 8usize];
4356    ["Alignment of IAudioBeamFrame"][::std::mem::align_of::<IAudioBeamFrame>() - 8usize];
4357    ["Offset of field: IAudioBeamFrame::lpVtbl"]
4358        [::std::mem::offset_of!(IAudioBeamFrame, lpVtbl) - 0usize];
4359};
4360impl Default for IAudioBeamFrame {
4361    fn default() -> Self {
4362        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4363        unsafe {
4364            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4365            s.assume_init()
4366        }
4367    }
4368}
4369unsafe extern "C" {
4370    pub static IID_IAudioBeamSubFrame: IID;
4371}
4372#[repr(C)]
4373#[derive(Debug, Default)]
4374pub struct IAudioBeamSubFrameVtbl {
4375    pub QueryInterface: ::std::option::Option<
4376        unsafe extern "C" fn(
4377            This: *mut IAudioBeamSubFrame,
4378            riid: *const IID,
4379            ppvObject: *mut *mut ::std::os::raw::c_void,
4380        ) -> HRESULT,
4381    >,
4382    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IAudioBeamSubFrame) -> ULONG>,
4383    pub Release:
4384        ::std::option::Option<unsafe extern "C" fn(This: *mut IAudioBeamSubFrame) -> ULONG>,
4385    pub get_FrameLengthInBytes: ::std::option::Option<
4386        unsafe extern "C" fn(This: *mut IAudioBeamSubFrame, length: *mut UINT) -> HRESULT,
4387    >,
4388    pub get_Duration: ::std::option::Option<
4389        unsafe extern "C" fn(This: *mut IAudioBeamSubFrame, duration: *mut TIMESPAN) -> HRESULT,
4390    >,
4391    pub get_BeamAngle: ::std::option::Option<
4392        unsafe extern "C" fn(This: *mut IAudioBeamSubFrame, beamAngle: *mut f32) -> HRESULT,
4393    >,
4394    pub get_BeamAngleConfidence: ::std::option::Option<
4395        unsafe extern "C" fn(
4396            This: *mut IAudioBeamSubFrame,
4397            beamAngleConfidence: *mut f32,
4398        ) -> HRESULT,
4399    >,
4400    pub get_AudioBeamMode: ::std::option::Option<
4401        unsafe extern "C" fn(
4402            This: *mut IAudioBeamSubFrame,
4403            audioBeamMode: *mut AudioBeamMode,
4404        ) -> HRESULT,
4405    >,
4406    pub get_AudioBodyCorrelationCount: ::std::option::Option<
4407        unsafe extern "C" fn(This: *mut IAudioBeamSubFrame, pCount: *mut UINT) -> HRESULT,
4408    >,
4409    pub GetAudioBodyCorrelation: ::std::option::Option<
4410        unsafe extern "C" fn(
4411            This: *mut IAudioBeamSubFrame,
4412            index: UINT,
4413            ppAudioBodyCorrelation: *mut *mut IAudioBodyCorrelation,
4414        ) -> HRESULT,
4415    >,
4416    pub CopyFrameDataToArray: ::std::option::Option<
4417        unsafe extern "C" fn(
4418            This: *mut IAudioBeamSubFrame,
4419            capacity: UINT,
4420            frameData: *mut BYTE,
4421        ) -> HRESULT,
4422    >,
4423    pub AccessUnderlyingBuffer: ::std::option::Option<
4424        unsafe extern "C" fn(
4425            This: *mut IAudioBeamSubFrame,
4426            capacity: *mut UINT,
4427            buffer: *mut *mut BYTE,
4428        ) -> HRESULT,
4429    >,
4430    pub get_RelativeTime: ::std::option::Option<
4431        unsafe extern "C" fn(This: *mut IAudioBeamSubFrame, relativeTime: *mut TIMESPAN) -> HRESULT,
4432    >,
4433}
4434#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4435const _: () = {
4436    ["Size of IAudioBeamSubFrameVtbl"][::std::mem::size_of::<IAudioBeamSubFrameVtbl>() - 104usize];
4437    ["Alignment of IAudioBeamSubFrameVtbl"]
4438        [::std::mem::align_of::<IAudioBeamSubFrameVtbl>() - 8usize];
4439    ["Offset of field: IAudioBeamSubFrameVtbl::QueryInterface"]
4440        [::std::mem::offset_of!(IAudioBeamSubFrameVtbl, QueryInterface) - 0usize];
4441    ["Offset of field: IAudioBeamSubFrameVtbl::AddRef"]
4442        [::std::mem::offset_of!(IAudioBeamSubFrameVtbl, AddRef) - 8usize];
4443    ["Offset of field: IAudioBeamSubFrameVtbl::Release"]
4444        [::std::mem::offset_of!(IAudioBeamSubFrameVtbl, Release) - 16usize];
4445    ["Offset of field: IAudioBeamSubFrameVtbl::get_FrameLengthInBytes"]
4446        [::std::mem::offset_of!(IAudioBeamSubFrameVtbl, get_FrameLengthInBytes) - 24usize];
4447    ["Offset of field: IAudioBeamSubFrameVtbl::get_Duration"]
4448        [::std::mem::offset_of!(IAudioBeamSubFrameVtbl, get_Duration) - 32usize];
4449    ["Offset of field: IAudioBeamSubFrameVtbl::get_BeamAngle"]
4450        [::std::mem::offset_of!(IAudioBeamSubFrameVtbl, get_BeamAngle) - 40usize];
4451    ["Offset of field: IAudioBeamSubFrameVtbl::get_BeamAngleConfidence"]
4452        [::std::mem::offset_of!(IAudioBeamSubFrameVtbl, get_BeamAngleConfidence) - 48usize];
4453    ["Offset of field: IAudioBeamSubFrameVtbl::get_AudioBeamMode"]
4454        [::std::mem::offset_of!(IAudioBeamSubFrameVtbl, get_AudioBeamMode) - 56usize];
4455    ["Offset of field: IAudioBeamSubFrameVtbl::get_AudioBodyCorrelationCount"]
4456        [::std::mem::offset_of!(IAudioBeamSubFrameVtbl, get_AudioBodyCorrelationCount) - 64usize];
4457    ["Offset of field: IAudioBeamSubFrameVtbl::GetAudioBodyCorrelation"]
4458        [::std::mem::offset_of!(IAudioBeamSubFrameVtbl, GetAudioBodyCorrelation) - 72usize];
4459    ["Offset of field: IAudioBeamSubFrameVtbl::CopyFrameDataToArray"]
4460        [::std::mem::offset_of!(IAudioBeamSubFrameVtbl, CopyFrameDataToArray) - 80usize];
4461    ["Offset of field: IAudioBeamSubFrameVtbl::AccessUnderlyingBuffer"]
4462        [::std::mem::offset_of!(IAudioBeamSubFrameVtbl, AccessUnderlyingBuffer) - 88usize];
4463    ["Offset of field: IAudioBeamSubFrameVtbl::get_RelativeTime"]
4464        [::std::mem::offset_of!(IAudioBeamSubFrameVtbl, get_RelativeTime) - 96usize];
4465};
4466#[repr(C)]
4467pub struct IAudioBeamSubFrame {
4468    pub lpVtbl: *mut IAudioBeamSubFrameVtbl,
4469}
4470#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4471const _: () = {
4472    ["Size of IAudioBeamSubFrame"][::std::mem::size_of::<IAudioBeamSubFrame>() - 8usize];
4473    ["Alignment of IAudioBeamSubFrame"][::std::mem::align_of::<IAudioBeamSubFrame>() - 8usize];
4474    ["Offset of field: IAudioBeamSubFrame::lpVtbl"]
4475        [::std::mem::offset_of!(IAudioBeamSubFrame, lpVtbl) - 0usize];
4476};
4477impl Default for IAudioBeamSubFrame {
4478    fn default() -> Self {
4479        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4480        unsafe {
4481            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4482            s.assume_init()
4483        }
4484    }
4485}
4486unsafe extern "C" {
4487    pub static IID_IAudioBeamFrameReference: IID;
4488}
4489#[repr(C)]
4490#[derive(Debug, Default)]
4491pub struct IAudioBeamFrameReferenceVtbl {
4492    pub QueryInterface: ::std::option::Option<
4493        unsafe extern "C" fn(
4494            This: *mut IAudioBeamFrameReference,
4495            riid: *const IID,
4496            ppvObject: *mut *mut ::std::os::raw::c_void,
4497        ) -> HRESULT,
4498    >,
4499    pub AddRef:
4500        ::std::option::Option<unsafe extern "C" fn(This: *mut IAudioBeamFrameReference) -> ULONG>,
4501    pub Release:
4502        ::std::option::Option<unsafe extern "C" fn(This: *mut IAudioBeamFrameReference) -> ULONG>,
4503    pub AcquireBeamFrames: ::std::option::Option<
4504        unsafe extern "C" fn(
4505            This: *mut IAudioBeamFrameReference,
4506            audioBeamFrameList: *mut *mut IAudioBeamFrameList,
4507        ) -> HRESULT,
4508    >,
4509    pub get_RelativeTime: ::std::option::Option<
4510        unsafe extern "C" fn(
4511            This: *mut IAudioBeamFrameReference,
4512            relativeTime: *mut TIMESPAN,
4513        ) -> HRESULT,
4514    >,
4515}
4516#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4517const _: () = {
4518    ["Size of IAudioBeamFrameReferenceVtbl"]
4519        [::std::mem::size_of::<IAudioBeamFrameReferenceVtbl>() - 40usize];
4520    ["Alignment of IAudioBeamFrameReferenceVtbl"]
4521        [::std::mem::align_of::<IAudioBeamFrameReferenceVtbl>() - 8usize];
4522    ["Offset of field: IAudioBeamFrameReferenceVtbl::QueryInterface"]
4523        [::std::mem::offset_of!(IAudioBeamFrameReferenceVtbl, QueryInterface) - 0usize];
4524    ["Offset of field: IAudioBeamFrameReferenceVtbl::AddRef"]
4525        [::std::mem::offset_of!(IAudioBeamFrameReferenceVtbl, AddRef) - 8usize];
4526    ["Offset of field: IAudioBeamFrameReferenceVtbl::Release"]
4527        [::std::mem::offset_of!(IAudioBeamFrameReferenceVtbl, Release) - 16usize];
4528    ["Offset of field: IAudioBeamFrameReferenceVtbl::AcquireBeamFrames"]
4529        [::std::mem::offset_of!(IAudioBeamFrameReferenceVtbl, AcquireBeamFrames) - 24usize];
4530    ["Offset of field: IAudioBeamFrameReferenceVtbl::get_RelativeTime"]
4531        [::std::mem::offset_of!(IAudioBeamFrameReferenceVtbl, get_RelativeTime) - 32usize];
4532};
4533#[repr(C)]
4534pub struct IAudioBeamFrameReference {
4535    pub lpVtbl: *mut IAudioBeamFrameReferenceVtbl,
4536}
4537#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4538const _: () = {
4539    ["Size of IAudioBeamFrameReference"]
4540        [::std::mem::size_of::<IAudioBeamFrameReference>() - 8usize];
4541    ["Alignment of IAudioBeamFrameReference"]
4542        [::std::mem::align_of::<IAudioBeamFrameReference>() - 8usize];
4543    ["Offset of field: IAudioBeamFrameReference::lpVtbl"]
4544        [::std::mem::offset_of!(IAudioBeamFrameReference, lpVtbl) - 0usize];
4545};
4546impl Default for IAudioBeamFrameReference {
4547    fn default() -> Self {
4548        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4549        unsafe {
4550            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4551            s.assume_init()
4552        }
4553    }
4554}
4555unsafe extern "C" {
4556    pub static IID_IAudioBodyCorrelation: IID;
4557}
4558#[repr(C)]
4559#[derive(Debug, Default)]
4560pub struct IAudioBodyCorrelationVtbl {
4561    pub QueryInterface: ::std::option::Option<
4562        unsafe extern "C" fn(
4563            This: *mut IAudioBodyCorrelation,
4564            riid: *const IID,
4565            ppvObject: *mut *mut ::std::os::raw::c_void,
4566        ) -> HRESULT,
4567    >,
4568    pub AddRef:
4569        ::std::option::Option<unsafe extern "C" fn(This: *mut IAudioBodyCorrelation) -> ULONG>,
4570    pub Release:
4571        ::std::option::Option<unsafe extern "C" fn(This: *mut IAudioBodyCorrelation) -> ULONG>,
4572    pub get_BodyTrackingId: ::std::option::Option<
4573        unsafe extern "C" fn(This: *mut IAudioBodyCorrelation, trackingId: *mut UINT64) -> HRESULT,
4574    >,
4575}
4576#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4577const _: () = {
4578    ["Size of IAudioBodyCorrelationVtbl"]
4579        [::std::mem::size_of::<IAudioBodyCorrelationVtbl>() - 32usize];
4580    ["Alignment of IAudioBodyCorrelationVtbl"]
4581        [::std::mem::align_of::<IAudioBodyCorrelationVtbl>() - 8usize];
4582    ["Offset of field: IAudioBodyCorrelationVtbl::QueryInterface"]
4583        [::std::mem::offset_of!(IAudioBodyCorrelationVtbl, QueryInterface) - 0usize];
4584    ["Offset of field: IAudioBodyCorrelationVtbl::AddRef"]
4585        [::std::mem::offset_of!(IAudioBodyCorrelationVtbl, AddRef) - 8usize];
4586    ["Offset of field: IAudioBodyCorrelationVtbl::Release"]
4587        [::std::mem::offset_of!(IAudioBodyCorrelationVtbl, Release) - 16usize];
4588    ["Offset of field: IAudioBodyCorrelationVtbl::get_BodyTrackingId"]
4589        [::std::mem::offset_of!(IAudioBodyCorrelationVtbl, get_BodyTrackingId) - 24usize];
4590};
4591#[repr(C)]
4592pub struct IAudioBodyCorrelation {
4593    pub lpVtbl: *mut IAudioBodyCorrelationVtbl,
4594}
4595#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4596const _: () = {
4597    ["Size of IAudioBodyCorrelation"][::std::mem::size_of::<IAudioBodyCorrelation>() - 8usize];
4598    ["Alignment of IAudioBodyCorrelation"]
4599        [::std::mem::align_of::<IAudioBodyCorrelation>() - 8usize];
4600    ["Offset of field: IAudioBodyCorrelation::lpVtbl"]
4601        [::std::mem::offset_of!(IAudioBodyCorrelation, lpVtbl) - 0usize];
4602};
4603impl Default for IAudioBodyCorrelation {
4604    fn default() -> Self {
4605        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4606        unsafe {
4607            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4608            s.assume_init()
4609        }
4610    }
4611}
4612unsafe extern "C" {
4613    pub static IID_IAudioBeamFrameArrivedEventArgs: IID;
4614}
4615#[repr(C)]
4616#[derive(Debug, Default)]
4617pub struct IAudioBeamFrameArrivedEventArgsVtbl {
4618    pub QueryInterface: ::std::option::Option<
4619        unsafe extern "C" fn(
4620            This: *mut IAudioBeamFrameArrivedEventArgs,
4621            riid: *const IID,
4622            ppvObject: *mut *mut ::std::os::raw::c_void,
4623        ) -> HRESULT,
4624    >,
4625    pub AddRef: ::std::option::Option<
4626        unsafe extern "C" fn(This: *mut IAudioBeamFrameArrivedEventArgs) -> ULONG,
4627    >,
4628    pub Release: ::std::option::Option<
4629        unsafe extern "C" fn(This: *mut IAudioBeamFrameArrivedEventArgs) -> ULONG,
4630    >,
4631    pub get_FrameReference: ::std::option::Option<
4632        unsafe extern "C" fn(
4633            This: *mut IAudioBeamFrameArrivedEventArgs,
4634            audioBeamFrameReference: *mut *mut IAudioBeamFrameReference,
4635        ) -> HRESULT,
4636    >,
4637}
4638#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4639const _: () = {
4640    ["Size of IAudioBeamFrameArrivedEventArgsVtbl"]
4641        [::std::mem::size_of::<IAudioBeamFrameArrivedEventArgsVtbl>() - 32usize];
4642    ["Alignment of IAudioBeamFrameArrivedEventArgsVtbl"]
4643        [::std::mem::align_of::<IAudioBeamFrameArrivedEventArgsVtbl>() - 8usize];
4644    ["Offset of field: IAudioBeamFrameArrivedEventArgsVtbl::QueryInterface"]
4645        [::std::mem::offset_of!(IAudioBeamFrameArrivedEventArgsVtbl, QueryInterface) - 0usize];
4646    ["Offset of field: IAudioBeamFrameArrivedEventArgsVtbl::AddRef"]
4647        [::std::mem::offset_of!(IAudioBeamFrameArrivedEventArgsVtbl, AddRef) - 8usize];
4648    ["Offset of field: IAudioBeamFrameArrivedEventArgsVtbl::Release"]
4649        [::std::mem::offset_of!(IAudioBeamFrameArrivedEventArgsVtbl, Release) - 16usize];
4650    ["Offset of field: IAudioBeamFrameArrivedEventArgsVtbl::get_FrameReference"]
4651        [::std::mem::offset_of!(IAudioBeamFrameArrivedEventArgsVtbl, get_FrameReference) - 24usize];
4652};
4653#[repr(C)]
4654pub struct IAudioBeamFrameArrivedEventArgs {
4655    pub lpVtbl: *mut IAudioBeamFrameArrivedEventArgsVtbl,
4656}
4657#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4658const _: () = {
4659    ["Size of IAudioBeamFrameArrivedEventArgs"]
4660        [::std::mem::size_of::<IAudioBeamFrameArrivedEventArgs>() - 8usize];
4661    ["Alignment of IAudioBeamFrameArrivedEventArgs"]
4662        [::std::mem::align_of::<IAudioBeamFrameArrivedEventArgs>() - 8usize];
4663    ["Offset of field: IAudioBeamFrameArrivedEventArgs::lpVtbl"]
4664        [::std::mem::offset_of!(IAudioBeamFrameArrivedEventArgs, lpVtbl) - 0usize];
4665};
4666impl Default for IAudioBeamFrameArrivedEventArgs {
4667    fn default() -> Self {
4668        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4669        unsafe {
4670            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4671            s.assume_init()
4672        }
4673    }
4674}
4675unsafe extern "C" {
4676    pub static IID_IAudioBeamFrameReader: IID;
4677}
4678#[repr(C)]
4679#[derive(Debug, Default)]
4680pub struct IAudioBeamFrameReaderVtbl {
4681    pub QueryInterface: ::std::option::Option<
4682        unsafe extern "C" fn(
4683            This: *mut IAudioBeamFrameReader,
4684            riid: *const IID,
4685            ppvObject: *mut *mut ::std::os::raw::c_void,
4686        ) -> HRESULT,
4687    >,
4688    pub AddRef:
4689        ::std::option::Option<unsafe extern "C" fn(This: *mut IAudioBeamFrameReader) -> ULONG>,
4690    pub Release:
4691        ::std::option::Option<unsafe extern "C" fn(This: *mut IAudioBeamFrameReader) -> ULONG>,
4692    pub SubscribeFrameArrived: ::std::option::Option<
4693        unsafe extern "C" fn(
4694            This: *mut IAudioBeamFrameReader,
4695            waitableHandle: *mut WAITABLE_HANDLE,
4696        ) -> HRESULT,
4697    >,
4698    pub UnsubscribeFrameArrived: ::std::option::Option<
4699        unsafe extern "C" fn(
4700            This: *mut IAudioBeamFrameReader,
4701            waitableHandle: WAITABLE_HANDLE,
4702        ) -> HRESULT,
4703    >,
4704    pub GetFrameArrivedEventData: ::std::option::Option<
4705        unsafe extern "C" fn(
4706            This: *mut IAudioBeamFrameReader,
4707            waitableHandle: WAITABLE_HANDLE,
4708            eventData: *mut *mut IAudioBeamFrameArrivedEventArgs,
4709        ) -> HRESULT,
4710    >,
4711    pub AcquireLatestBeamFrames: ::std::option::Option<
4712        unsafe extern "C" fn(
4713            This: *mut IAudioBeamFrameReader,
4714            audioBeamFrameList: *mut *mut IAudioBeamFrameList,
4715        ) -> HRESULT,
4716    >,
4717    pub get_IsPaused: ::std::option::Option<
4718        unsafe extern "C" fn(This: *mut IAudioBeamFrameReader, isPaused: *mut BOOLEAN) -> HRESULT,
4719    >,
4720    pub put_IsPaused: ::std::option::Option<
4721        unsafe extern "C" fn(This: *mut IAudioBeamFrameReader, isPaused: BOOLEAN) -> HRESULT,
4722    >,
4723    pub get_AudioSource: ::std::option::Option<
4724        unsafe extern "C" fn(
4725            This: *mut IAudioBeamFrameReader,
4726            audioSource: *mut *mut IAudioSource,
4727        ) -> HRESULT,
4728    >,
4729}
4730#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4731const _: () = {
4732    ["Size of IAudioBeamFrameReaderVtbl"]
4733        [::std::mem::size_of::<IAudioBeamFrameReaderVtbl>() - 80usize];
4734    ["Alignment of IAudioBeamFrameReaderVtbl"]
4735        [::std::mem::align_of::<IAudioBeamFrameReaderVtbl>() - 8usize];
4736    ["Offset of field: IAudioBeamFrameReaderVtbl::QueryInterface"]
4737        [::std::mem::offset_of!(IAudioBeamFrameReaderVtbl, QueryInterface) - 0usize];
4738    ["Offset of field: IAudioBeamFrameReaderVtbl::AddRef"]
4739        [::std::mem::offset_of!(IAudioBeamFrameReaderVtbl, AddRef) - 8usize];
4740    ["Offset of field: IAudioBeamFrameReaderVtbl::Release"]
4741        [::std::mem::offset_of!(IAudioBeamFrameReaderVtbl, Release) - 16usize];
4742    ["Offset of field: IAudioBeamFrameReaderVtbl::SubscribeFrameArrived"]
4743        [::std::mem::offset_of!(IAudioBeamFrameReaderVtbl, SubscribeFrameArrived) - 24usize];
4744    ["Offset of field: IAudioBeamFrameReaderVtbl::UnsubscribeFrameArrived"]
4745        [::std::mem::offset_of!(IAudioBeamFrameReaderVtbl, UnsubscribeFrameArrived) - 32usize];
4746    ["Offset of field: IAudioBeamFrameReaderVtbl::GetFrameArrivedEventData"]
4747        [::std::mem::offset_of!(IAudioBeamFrameReaderVtbl, GetFrameArrivedEventData) - 40usize];
4748    ["Offset of field: IAudioBeamFrameReaderVtbl::AcquireLatestBeamFrames"]
4749        [::std::mem::offset_of!(IAudioBeamFrameReaderVtbl, AcquireLatestBeamFrames) - 48usize];
4750    ["Offset of field: IAudioBeamFrameReaderVtbl::get_IsPaused"]
4751        [::std::mem::offset_of!(IAudioBeamFrameReaderVtbl, get_IsPaused) - 56usize];
4752    ["Offset of field: IAudioBeamFrameReaderVtbl::put_IsPaused"]
4753        [::std::mem::offset_of!(IAudioBeamFrameReaderVtbl, put_IsPaused) - 64usize];
4754    ["Offset of field: IAudioBeamFrameReaderVtbl::get_AudioSource"]
4755        [::std::mem::offset_of!(IAudioBeamFrameReaderVtbl, get_AudioSource) - 72usize];
4756};
4757#[repr(C)]
4758pub struct IAudioBeamFrameReader {
4759    pub lpVtbl: *mut IAudioBeamFrameReaderVtbl,
4760}
4761#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4762const _: () = {
4763    ["Size of IAudioBeamFrameReader"][::std::mem::size_of::<IAudioBeamFrameReader>() - 8usize];
4764    ["Alignment of IAudioBeamFrameReader"]
4765        [::std::mem::align_of::<IAudioBeamFrameReader>() - 8usize];
4766    ["Offset of field: IAudioBeamFrameReader::lpVtbl"]
4767        [::std::mem::offset_of!(IAudioBeamFrameReader, lpVtbl) - 0usize];
4768};
4769impl Default for IAudioBeamFrameReader {
4770    fn default() -> Self {
4771        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4772        unsafe {
4773            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4774            s.assume_init()
4775        }
4776    }
4777}
4778unsafe extern "C" {
4779    pub static IID_IAudioSource: IID;
4780}
4781#[repr(C)]
4782#[derive(Debug, Default)]
4783pub struct IAudioSourceVtbl {
4784    pub QueryInterface: ::std::option::Option<
4785        unsafe extern "C" fn(
4786            This: *mut IAudioSource,
4787            riid: *const IID,
4788            ppvObject: *mut *mut ::std::os::raw::c_void,
4789        ) -> HRESULT,
4790    >,
4791    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IAudioSource) -> ULONG>,
4792    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IAudioSource) -> ULONG>,
4793    pub SubscribeFrameCaptured: ::std::option::Option<
4794        unsafe extern "C" fn(
4795            This: *mut IAudioSource,
4796            waitableHandle: *mut WAITABLE_HANDLE,
4797        ) -> HRESULT,
4798    >,
4799    pub UnsubscribeFrameCaptured: ::std::option::Option<
4800        unsafe extern "C" fn(This: *mut IAudioSource, waitableHandle: WAITABLE_HANDLE) -> HRESULT,
4801    >,
4802    pub GetFrameCapturedEventData: ::std::option::Option<
4803        unsafe extern "C" fn(
4804            This: *mut IAudioSource,
4805            waitableHandle: WAITABLE_HANDLE,
4806            eventData: *mut *mut IFrameCapturedEventArgs,
4807        ) -> HRESULT,
4808    >,
4809    pub get_KinectSensor: ::std::option::Option<
4810        unsafe extern "C" fn(This: *mut IAudioSource, sensor: *mut *mut IKinectSensor) -> HRESULT,
4811    >,
4812    pub get_IsActive: ::std::option::Option<
4813        unsafe extern "C" fn(This: *mut IAudioSource, isActive: *mut BOOLEAN) -> HRESULT,
4814    >,
4815    pub get_SubFrameLengthInBytes: ::std::option::Option<
4816        unsafe extern "C" fn(This: *mut IAudioSource, length: *mut UINT) -> HRESULT,
4817    >,
4818    pub get_SubFrameDuration: ::std::option::Option<
4819        unsafe extern "C" fn(This: *mut IAudioSource, duration: *mut TIMESPAN) -> HRESULT,
4820    >,
4821    pub get_MaxSubFrameCount: ::std::option::Option<
4822        unsafe extern "C" fn(This: *mut IAudioSource, count: *mut UINT) -> HRESULT,
4823    >,
4824    pub OpenReader: ::std::option::Option<
4825        unsafe extern "C" fn(
4826            This: *mut IAudioSource,
4827            reader: *mut *mut IAudioBeamFrameReader,
4828        ) -> HRESULT,
4829    >,
4830    pub get_AudioBeams: ::std::option::Option<
4831        unsafe extern "C" fn(
4832            This: *mut IAudioSource,
4833            audioBeamList: *mut *mut IAudioBeamList,
4834        ) -> HRESULT,
4835    >,
4836    pub get_AudioCalibrationState: ::std::option::Option<
4837        unsafe extern "C" fn(
4838            This: *mut IAudioSource,
4839            audioCalibrationState: *mut KinectAudioCalibrationState,
4840        ) -> HRESULT,
4841    >,
4842}
4843#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4844const _: () = {
4845    ["Size of IAudioSourceVtbl"][::std::mem::size_of::<IAudioSourceVtbl>() - 112usize];
4846    ["Alignment of IAudioSourceVtbl"][::std::mem::align_of::<IAudioSourceVtbl>() - 8usize];
4847    ["Offset of field: IAudioSourceVtbl::QueryInterface"]
4848        [::std::mem::offset_of!(IAudioSourceVtbl, QueryInterface) - 0usize];
4849    ["Offset of field: IAudioSourceVtbl::AddRef"]
4850        [::std::mem::offset_of!(IAudioSourceVtbl, AddRef) - 8usize];
4851    ["Offset of field: IAudioSourceVtbl::Release"]
4852        [::std::mem::offset_of!(IAudioSourceVtbl, Release) - 16usize];
4853    ["Offset of field: IAudioSourceVtbl::SubscribeFrameCaptured"]
4854        [::std::mem::offset_of!(IAudioSourceVtbl, SubscribeFrameCaptured) - 24usize];
4855    ["Offset of field: IAudioSourceVtbl::UnsubscribeFrameCaptured"]
4856        [::std::mem::offset_of!(IAudioSourceVtbl, UnsubscribeFrameCaptured) - 32usize];
4857    ["Offset of field: IAudioSourceVtbl::GetFrameCapturedEventData"]
4858        [::std::mem::offset_of!(IAudioSourceVtbl, GetFrameCapturedEventData) - 40usize];
4859    ["Offset of field: IAudioSourceVtbl::get_KinectSensor"]
4860        [::std::mem::offset_of!(IAudioSourceVtbl, get_KinectSensor) - 48usize];
4861    ["Offset of field: IAudioSourceVtbl::get_IsActive"]
4862        [::std::mem::offset_of!(IAudioSourceVtbl, get_IsActive) - 56usize];
4863    ["Offset of field: IAudioSourceVtbl::get_SubFrameLengthInBytes"]
4864        [::std::mem::offset_of!(IAudioSourceVtbl, get_SubFrameLengthInBytes) - 64usize];
4865    ["Offset of field: IAudioSourceVtbl::get_SubFrameDuration"]
4866        [::std::mem::offset_of!(IAudioSourceVtbl, get_SubFrameDuration) - 72usize];
4867    ["Offset of field: IAudioSourceVtbl::get_MaxSubFrameCount"]
4868        [::std::mem::offset_of!(IAudioSourceVtbl, get_MaxSubFrameCount) - 80usize];
4869    ["Offset of field: IAudioSourceVtbl::OpenReader"]
4870        [::std::mem::offset_of!(IAudioSourceVtbl, OpenReader) - 88usize];
4871    ["Offset of field: IAudioSourceVtbl::get_AudioBeams"]
4872        [::std::mem::offset_of!(IAudioSourceVtbl, get_AudioBeams) - 96usize];
4873    ["Offset of field: IAudioSourceVtbl::get_AudioCalibrationState"]
4874        [::std::mem::offset_of!(IAudioSourceVtbl, get_AudioCalibrationState) - 104usize];
4875};
4876#[repr(C)]
4877pub struct IAudioSource {
4878    pub lpVtbl: *mut IAudioSourceVtbl,
4879}
4880#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4881const _: () = {
4882    ["Size of IAudioSource"][::std::mem::size_of::<IAudioSource>() - 8usize];
4883    ["Alignment of IAudioSource"][::std::mem::align_of::<IAudioSource>() - 8usize];
4884    ["Offset of field: IAudioSource::lpVtbl"]
4885        [::std::mem::offset_of!(IAudioSource, lpVtbl) - 0usize];
4886};
4887impl Default for IAudioSource {
4888    fn default() -> Self {
4889        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4890        unsafe {
4891            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4892            s.assume_init()
4893        }
4894    }
4895}
4896unsafe extern "C" {
4897    pub static IID_ICoordinateMapper: IID;
4898}
4899#[repr(C)]
4900#[derive(Debug, Default)]
4901pub struct ICoordinateMapperVtbl {
4902    pub QueryInterface: ::std::option::Option<
4903        unsafe extern "C" fn(
4904            This: *mut ICoordinateMapper,
4905            riid: *const IID,
4906            ppvObject: *mut *mut ::std::os::raw::c_void,
4907        ) -> HRESULT,
4908    >,
4909    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut ICoordinateMapper) -> ULONG>,
4910    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut ICoordinateMapper) -> ULONG>,
4911    pub SubscribeCoordinateMappingChanged: ::std::option::Option<
4912        unsafe extern "C" fn(
4913            This: *mut ICoordinateMapper,
4914            waitableHandle: *mut WAITABLE_HANDLE,
4915        ) -> HRESULT,
4916    >,
4917    pub UnsubscribeCoordinateMappingChanged: ::std::option::Option<
4918        unsafe extern "C" fn(
4919            This: *mut ICoordinateMapper,
4920            waitableHandle: WAITABLE_HANDLE,
4921        ) -> HRESULT,
4922    >,
4923    pub GetCoordinateMappingChangedEventData: ::std::option::Option<
4924        unsafe extern "C" fn(
4925            This: *mut ICoordinateMapper,
4926            waitableHandle: WAITABLE_HANDLE,
4927            eventData: *mut *mut ICoordinateMappingChangedEventArgs,
4928        ) -> HRESULT,
4929    >,
4930    pub MapCameraPointToDepthSpace: ::std::option::Option<
4931        unsafe extern "C" fn(
4932            This: *mut ICoordinateMapper,
4933            cameraPoint: CameraSpacePoint,
4934            depthPoint: *mut DepthSpacePoint,
4935        ) -> HRESULT,
4936    >,
4937    pub MapCameraPointToColorSpace: ::std::option::Option<
4938        unsafe extern "C" fn(
4939            This: *mut ICoordinateMapper,
4940            cameraPoint: CameraSpacePoint,
4941            colorPoint: *mut ColorSpacePoint,
4942        ) -> HRESULT,
4943    >,
4944    pub MapDepthPointToCameraSpace: ::std::option::Option<
4945        unsafe extern "C" fn(
4946            This: *mut ICoordinateMapper,
4947            depthPoint: DepthSpacePoint,
4948            depth: UINT16,
4949            cameraPoint: *mut CameraSpacePoint,
4950        ) -> HRESULT,
4951    >,
4952    pub MapDepthPointToColorSpace: ::std::option::Option<
4953        unsafe extern "C" fn(
4954            This: *mut ICoordinateMapper,
4955            depthPoint: DepthSpacePoint,
4956            depth: UINT16,
4957            colorPoint: *mut ColorSpacePoint,
4958        ) -> HRESULT,
4959    >,
4960    pub MapCameraPointsToDepthSpace: ::std::option::Option<
4961        unsafe extern "C" fn(
4962            This: *mut ICoordinateMapper,
4963            cameraPointCount: UINT,
4964            cameraPoints: *const CameraSpacePoint,
4965            depthPointCount: UINT,
4966            depthPoints: *mut DepthSpacePoint,
4967        ) -> HRESULT,
4968    >,
4969    pub MapCameraPointsToColorSpace: ::std::option::Option<
4970        unsafe extern "C" fn(
4971            This: *mut ICoordinateMapper,
4972            cameraPointCount: UINT,
4973            cameraPoints: *const CameraSpacePoint,
4974            colorPointCount: UINT,
4975            colorPoints: *mut ColorSpacePoint,
4976        ) -> HRESULT,
4977    >,
4978    pub MapDepthPointsToCameraSpace: ::std::option::Option<
4979        unsafe extern "C" fn(
4980            This: *mut ICoordinateMapper,
4981            depthPointCount: UINT,
4982            depthPoints: *const DepthSpacePoint,
4983            depthCount: UINT,
4984            depths: *const UINT16,
4985            cameraPointCount: UINT,
4986            cameraPoints: *mut CameraSpacePoint,
4987        ) -> HRESULT,
4988    >,
4989    pub MapDepthPointsToColorSpace: ::std::option::Option<
4990        unsafe extern "C" fn(
4991            This: *mut ICoordinateMapper,
4992            depthPointCount: UINT,
4993            depthPoints: *const DepthSpacePoint,
4994            depthCount: UINT,
4995            depths: *const UINT16,
4996            colorPointCount: UINT,
4997            colorPoints: *mut ColorSpacePoint,
4998        ) -> HRESULT,
4999    >,
5000    pub MapDepthFrameToCameraSpace: ::std::option::Option<
5001        unsafe extern "C" fn(
5002            This: *mut ICoordinateMapper,
5003            depthPointCount: UINT,
5004            depthFrameData: *const UINT16,
5005            cameraPointCount: UINT,
5006            cameraSpacePoints: *mut CameraSpacePoint,
5007        ) -> HRESULT,
5008    >,
5009    pub MapDepthFrameToColorSpace: ::std::option::Option<
5010        unsafe extern "C" fn(
5011            This: *mut ICoordinateMapper,
5012            depthPointCount: UINT,
5013            depthFrameData: *const UINT16,
5014            colorPointCount: UINT,
5015            colorSpacePoints: *mut ColorSpacePoint,
5016        ) -> HRESULT,
5017    >,
5018    pub MapColorFrameToDepthSpace: ::std::option::Option<
5019        unsafe extern "C" fn(
5020            This: *mut ICoordinateMapper,
5021            depthDataPointCount: UINT,
5022            depthFrameData: *const UINT16,
5023            depthPointCount: UINT,
5024            depthSpacePoints: *mut DepthSpacePoint,
5025        ) -> HRESULT,
5026    >,
5027    pub MapColorFrameToCameraSpace: ::std::option::Option<
5028        unsafe extern "C" fn(
5029            This: *mut ICoordinateMapper,
5030            depthDataPointCount: UINT,
5031            depthFrameData: *const UINT16,
5032            cameraPointCount: UINT,
5033            cameraSpacePoints: *mut CameraSpacePoint,
5034        ) -> HRESULT,
5035    >,
5036    pub GetDepthFrameToCameraSpaceTable: ::std::option::Option<
5037        unsafe extern "C" fn(
5038            This: *mut ICoordinateMapper,
5039            tableEntryCount: *mut UINT,
5040            tableEntries: *mut *mut PointF,
5041        ) -> HRESULT,
5042    >,
5043    pub GetDepthCameraIntrinsics: ::std::option::Option<
5044        unsafe extern "C" fn(
5045            This: *mut ICoordinateMapper,
5046            cameraIntrinsics: *mut CameraIntrinsics,
5047        ) -> HRESULT,
5048    >,
5049}
5050#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5051const _: () = {
5052    ["Size of ICoordinateMapperVtbl"][::std::mem::size_of::<ICoordinateMapperVtbl>() - 160usize];
5053    ["Alignment of ICoordinateMapperVtbl"]
5054        [::std::mem::align_of::<ICoordinateMapperVtbl>() - 8usize];
5055    ["Offset of field: ICoordinateMapperVtbl::QueryInterface"]
5056        [::std::mem::offset_of!(ICoordinateMapperVtbl, QueryInterface) - 0usize];
5057    ["Offset of field: ICoordinateMapperVtbl::AddRef"]
5058        [::std::mem::offset_of!(ICoordinateMapperVtbl, AddRef) - 8usize];
5059    ["Offset of field: ICoordinateMapperVtbl::Release"]
5060        [::std::mem::offset_of!(ICoordinateMapperVtbl, Release) - 16usize];
5061    ["Offset of field: ICoordinateMapperVtbl::SubscribeCoordinateMappingChanged"][::std::mem::offset_of!(
5062        ICoordinateMapperVtbl,
5063        SubscribeCoordinateMappingChanged
5064    ) - 24usize];
5065    ["Offset of field: ICoordinateMapperVtbl::UnsubscribeCoordinateMappingChanged"][::std::mem::offset_of!(
5066        ICoordinateMapperVtbl,
5067        UnsubscribeCoordinateMappingChanged
5068    ) - 32usize];
5069    ["Offset of field: ICoordinateMapperVtbl::GetCoordinateMappingChangedEventData"][::std::mem::offset_of!(
5070        ICoordinateMapperVtbl,
5071        GetCoordinateMappingChangedEventData
5072    ) - 40usize];
5073    ["Offset of field: ICoordinateMapperVtbl::MapCameraPointToDepthSpace"]
5074        [::std::mem::offset_of!(ICoordinateMapperVtbl, MapCameraPointToDepthSpace) - 48usize];
5075    ["Offset of field: ICoordinateMapperVtbl::MapCameraPointToColorSpace"]
5076        [::std::mem::offset_of!(ICoordinateMapperVtbl, MapCameraPointToColorSpace) - 56usize];
5077    ["Offset of field: ICoordinateMapperVtbl::MapDepthPointToCameraSpace"]
5078        [::std::mem::offset_of!(ICoordinateMapperVtbl, MapDepthPointToCameraSpace) - 64usize];
5079    ["Offset of field: ICoordinateMapperVtbl::MapDepthPointToColorSpace"]
5080        [::std::mem::offset_of!(ICoordinateMapperVtbl, MapDepthPointToColorSpace) - 72usize];
5081    ["Offset of field: ICoordinateMapperVtbl::MapCameraPointsToDepthSpace"]
5082        [::std::mem::offset_of!(ICoordinateMapperVtbl, MapCameraPointsToDepthSpace) - 80usize];
5083    ["Offset of field: ICoordinateMapperVtbl::MapCameraPointsToColorSpace"]
5084        [::std::mem::offset_of!(ICoordinateMapperVtbl, MapCameraPointsToColorSpace) - 88usize];
5085    ["Offset of field: ICoordinateMapperVtbl::MapDepthPointsToCameraSpace"]
5086        [::std::mem::offset_of!(ICoordinateMapperVtbl, MapDepthPointsToCameraSpace) - 96usize];
5087    ["Offset of field: ICoordinateMapperVtbl::MapDepthPointsToColorSpace"]
5088        [::std::mem::offset_of!(ICoordinateMapperVtbl, MapDepthPointsToColorSpace) - 104usize];
5089    ["Offset of field: ICoordinateMapperVtbl::MapDepthFrameToCameraSpace"]
5090        [::std::mem::offset_of!(ICoordinateMapperVtbl, MapDepthFrameToCameraSpace) - 112usize];
5091    ["Offset of field: ICoordinateMapperVtbl::MapDepthFrameToColorSpace"]
5092        [::std::mem::offset_of!(ICoordinateMapperVtbl, MapDepthFrameToColorSpace) - 120usize];
5093    ["Offset of field: ICoordinateMapperVtbl::MapColorFrameToDepthSpace"]
5094        [::std::mem::offset_of!(ICoordinateMapperVtbl, MapColorFrameToDepthSpace) - 128usize];
5095    ["Offset of field: ICoordinateMapperVtbl::MapColorFrameToCameraSpace"]
5096        [::std::mem::offset_of!(ICoordinateMapperVtbl, MapColorFrameToCameraSpace) - 136usize];
5097    ["Offset of field: ICoordinateMapperVtbl::GetDepthFrameToCameraSpaceTable"]
5098        [::std::mem::offset_of!(ICoordinateMapperVtbl, GetDepthFrameToCameraSpaceTable) - 144usize];
5099    ["Offset of field: ICoordinateMapperVtbl::GetDepthCameraIntrinsics"]
5100        [::std::mem::offset_of!(ICoordinateMapperVtbl, GetDepthCameraIntrinsics) - 152usize];
5101};
5102#[repr(C)]
5103pub struct ICoordinateMapper {
5104    pub lpVtbl: *mut ICoordinateMapperVtbl,
5105}
5106#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5107const _: () = {
5108    ["Size of ICoordinateMapper"][::std::mem::size_of::<ICoordinateMapper>() - 8usize];
5109    ["Alignment of ICoordinateMapper"][::std::mem::align_of::<ICoordinateMapper>() - 8usize];
5110    ["Offset of field: ICoordinateMapper::lpVtbl"]
5111        [::std::mem::offset_of!(ICoordinateMapper, lpVtbl) - 0usize];
5112};
5113impl Default for ICoordinateMapper {
5114    fn default() -> Self {
5115        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5116        unsafe {
5117            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5118            s.assume_init()
5119        }
5120    }
5121}
5122unsafe extern "C" {
5123    pub static IID_ICoordinateMappingChangedEventArgs: IID;
5124}
5125#[repr(C)]
5126#[derive(Debug, Default)]
5127pub struct ICoordinateMappingChangedEventArgsVtbl {
5128    pub QueryInterface: ::std::option::Option<
5129        unsafe extern "C" fn(
5130            This: *mut ICoordinateMappingChangedEventArgs,
5131            riid: *const IID,
5132            ppvObject: *mut *mut ::std::os::raw::c_void,
5133        ) -> HRESULT,
5134    >,
5135    pub AddRef: ::std::option::Option<
5136        unsafe extern "C" fn(This: *mut ICoordinateMappingChangedEventArgs) -> ULONG,
5137    >,
5138    pub Release: ::std::option::Option<
5139        unsafe extern "C" fn(This: *mut ICoordinateMappingChangedEventArgs) -> ULONG,
5140    >,
5141}
5142#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5143const _: () = {
5144    ["Size of ICoordinateMappingChangedEventArgsVtbl"]
5145        [::std::mem::size_of::<ICoordinateMappingChangedEventArgsVtbl>() - 24usize];
5146    ["Alignment of ICoordinateMappingChangedEventArgsVtbl"]
5147        [::std::mem::align_of::<ICoordinateMappingChangedEventArgsVtbl>() - 8usize];
5148    ["Offset of field: ICoordinateMappingChangedEventArgsVtbl::QueryInterface"]
5149        [::std::mem::offset_of!(ICoordinateMappingChangedEventArgsVtbl, QueryInterface) - 0usize];
5150    ["Offset of field: ICoordinateMappingChangedEventArgsVtbl::AddRef"]
5151        [::std::mem::offset_of!(ICoordinateMappingChangedEventArgsVtbl, AddRef) - 8usize];
5152    ["Offset of field: ICoordinateMappingChangedEventArgsVtbl::Release"]
5153        [::std::mem::offset_of!(ICoordinateMappingChangedEventArgsVtbl, Release) - 16usize];
5154};
5155#[repr(C)]
5156pub struct ICoordinateMappingChangedEventArgs {
5157    pub lpVtbl: *mut ICoordinateMappingChangedEventArgsVtbl,
5158}
5159#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5160const _: () = {
5161    ["Size of ICoordinateMappingChangedEventArgs"]
5162        [::std::mem::size_of::<ICoordinateMappingChangedEventArgs>() - 8usize];
5163    ["Alignment of ICoordinateMappingChangedEventArgs"]
5164        [::std::mem::align_of::<ICoordinateMappingChangedEventArgs>() - 8usize];
5165    ["Offset of field: ICoordinateMappingChangedEventArgs::lpVtbl"]
5166        [::std::mem::offset_of!(ICoordinateMappingChangedEventArgs, lpVtbl) - 0usize];
5167};
5168impl Default for ICoordinateMappingChangedEventArgs {
5169    fn default() -> Self {
5170        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5171        unsafe {
5172            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5173            s.assume_init()
5174        }
5175    }
5176}
5177unsafe extern "C" {
5178    pub static IID_IColorCameraSettings: IID;
5179}
5180#[repr(C)]
5181#[derive(Debug, Default)]
5182pub struct IColorCameraSettingsVtbl {
5183    pub QueryInterface: ::std::option::Option<
5184        unsafe extern "C" fn(
5185            This: *mut IColorCameraSettings,
5186            riid: *const IID,
5187            ppvObject: *mut *mut ::std::os::raw::c_void,
5188        ) -> HRESULT,
5189    >,
5190    pub AddRef:
5191        ::std::option::Option<unsafe extern "C" fn(This: *mut IColorCameraSettings) -> ULONG>,
5192    pub Release:
5193        ::std::option::Option<unsafe extern "C" fn(This: *mut IColorCameraSettings) -> ULONG>,
5194    pub get_ExposureTime: ::std::option::Option<
5195        unsafe extern "C" fn(
5196            This: *mut IColorCameraSettings,
5197            exposureTime: *mut TIMESPAN,
5198        ) -> HRESULT,
5199    >,
5200    pub get_FrameInterval: ::std::option::Option<
5201        unsafe extern "C" fn(
5202            This: *mut IColorCameraSettings,
5203            frameInterval: *mut TIMESPAN,
5204        ) -> HRESULT,
5205    >,
5206    pub get_Gain: ::std::option::Option<
5207        unsafe extern "C" fn(This: *mut IColorCameraSettings, gain: *mut f32) -> HRESULT,
5208    >,
5209    pub get_Gamma: ::std::option::Option<
5210        unsafe extern "C" fn(This: *mut IColorCameraSettings, gamma: *mut f32) -> HRESULT,
5211    >,
5212}
5213#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5214const _: () = {
5215    ["Size of IColorCameraSettingsVtbl"]
5216        [::std::mem::size_of::<IColorCameraSettingsVtbl>() - 56usize];
5217    ["Alignment of IColorCameraSettingsVtbl"]
5218        [::std::mem::align_of::<IColorCameraSettingsVtbl>() - 8usize];
5219    ["Offset of field: IColorCameraSettingsVtbl::QueryInterface"]
5220        [::std::mem::offset_of!(IColorCameraSettingsVtbl, QueryInterface) - 0usize];
5221    ["Offset of field: IColorCameraSettingsVtbl::AddRef"]
5222        [::std::mem::offset_of!(IColorCameraSettingsVtbl, AddRef) - 8usize];
5223    ["Offset of field: IColorCameraSettingsVtbl::Release"]
5224        [::std::mem::offset_of!(IColorCameraSettingsVtbl, Release) - 16usize];
5225    ["Offset of field: IColorCameraSettingsVtbl::get_ExposureTime"]
5226        [::std::mem::offset_of!(IColorCameraSettingsVtbl, get_ExposureTime) - 24usize];
5227    ["Offset of field: IColorCameraSettingsVtbl::get_FrameInterval"]
5228        [::std::mem::offset_of!(IColorCameraSettingsVtbl, get_FrameInterval) - 32usize];
5229    ["Offset of field: IColorCameraSettingsVtbl::get_Gain"]
5230        [::std::mem::offset_of!(IColorCameraSettingsVtbl, get_Gain) - 40usize];
5231    ["Offset of field: IColorCameraSettingsVtbl::get_Gamma"]
5232        [::std::mem::offset_of!(IColorCameraSettingsVtbl, get_Gamma) - 48usize];
5233};
5234#[repr(C)]
5235pub struct IColorCameraSettings {
5236    pub lpVtbl: *mut IColorCameraSettingsVtbl,
5237}
5238#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5239const _: () = {
5240    ["Size of IColorCameraSettings"][::std::mem::size_of::<IColorCameraSettings>() - 8usize];
5241    ["Alignment of IColorCameraSettings"][::std::mem::align_of::<IColorCameraSettings>() - 8usize];
5242    ["Offset of field: IColorCameraSettings::lpVtbl"]
5243        [::std::mem::offset_of!(IColorCameraSettings, lpVtbl) - 0usize];
5244};
5245impl Default for IColorCameraSettings {
5246    fn default() -> Self {
5247        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5248        unsafe {
5249            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5250            s.assume_init()
5251        }
5252    }
5253}
5254unsafe extern "C" {
5255    pub fn GetDefaultKinectSensor(defaultKinectSensor: *mut *mut IKinectSensor) -> HRESULT;
5256}
5257#[repr(i32)]
5258#[derive(Debug, Clone, Hash, PartialEq, Eq)]
5259pub enum PointerDeviceType {
5260    Touch = 0,
5261    Pen = 1,
5262    Mouse = 2,
5263    Kinect = 3,
5264}
5265#[repr(i32)]
5266#[derive(Debug, Clone, Hash, PartialEq, Eq)]
5267pub enum HandType {
5268    NONE = 0,
5269    LEFT = 1,
5270    RIGHT = 2,
5271}
5272#[repr(i32)]
5273#[derive(Debug, Clone, Hash, PartialEq, Eq)]
5274pub enum KinectHoldingState {
5275    Started = 0,
5276    Completed = 1,
5277    Canceled = 2,
5278}
5279#[repr(i32)]
5280#[derive(Debug, Clone, Hash, PartialEq, Eq)]
5281pub enum KinectGestureSettings {
5282    None = 0,
5283    Tap = 1,
5284    ManipulationTranslateX = 64,
5285    ManipulationTranslateY = 128,
5286    ManipulationTranslateRailsX = 256,
5287    ManipulationTranslateRailsY = 512,
5288    ManipulationScale = 2048,
5289    ManipulationTranslateInertia = 4096,
5290    KinectHold = 65536,
5291}
5292#[repr(i32)]
5293#[derive(Debug, Clone, Hash, PartialEq, Eq)]
5294pub enum KinectInteractionMode {
5295    Normal = 0,
5296    Off = 1,
5297    Media = 2,
5298}
5299#[repr(i32)]
5300#[derive(Debug, Clone, Hash, PartialEq, Eq)]
5301pub enum KinectEngagementMode {
5302    None = 0,
5303    SystemOnePerson = 1,
5304    SystemTwoPerson = 2,
5305    ManualOnePerson = 3,
5306    ManualTwoPerson = 4,
5307}
5308#[repr(C)]
5309#[derive(Debug, Default)]
5310pub struct KinectManipulationDelta {
5311    pub Translation: PointF,
5312    pub Scale: f32,
5313    pub Rotation: f32,
5314    pub Expansion: f32,
5315}
5316#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5317const _: () = {
5318    ["Size of KinectManipulationDelta"][::std::mem::size_of::<KinectManipulationDelta>() - 20usize];
5319    ["Alignment of KinectManipulationDelta"]
5320        [::std::mem::align_of::<KinectManipulationDelta>() - 4usize];
5321    ["Offset of field: KinectManipulationDelta::Translation"]
5322        [::std::mem::offset_of!(KinectManipulationDelta, Translation) - 0usize];
5323    ["Offset of field: KinectManipulationDelta::Scale"]
5324        [::std::mem::offset_of!(KinectManipulationDelta, Scale) - 8usize];
5325    ["Offset of field: KinectManipulationDelta::Rotation"]
5326        [::std::mem::offset_of!(KinectManipulationDelta, Rotation) - 12usize];
5327    ["Offset of field: KinectManipulationDelta::Expansion"]
5328        [::std::mem::offset_of!(KinectManipulationDelta, Expansion) - 16usize];
5329};
5330#[repr(C)]
5331#[derive(Debug, Default)]
5332pub struct KinectManipulationVelocities {
5333    pub Linear: PointF,
5334    pub Angular: f32,
5335    pub Expansion: f32,
5336}
5337#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5338const _: () = {
5339    ["Size of KinectManipulationVelocities"]
5340        [::std::mem::size_of::<KinectManipulationVelocities>() - 16usize];
5341    ["Alignment of KinectManipulationVelocities"]
5342        [::std::mem::align_of::<KinectManipulationVelocities>() - 4usize];
5343    ["Offset of field: KinectManipulationVelocities::Linear"]
5344        [::std::mem::offset_of!(KinectManipulationVelocities, Linear) - 0usize];
5345    ["Offset of field: KinectManipulationVelocities::Angular"]
5346        [::std::mem::offset_of!(KinectManipulationVelocities, Angular) - 8usize];
5347    ["Offset of field: KinectManipulationVelocities::Expansion"]
5348        [::std::mem::offset_of!(KinectManipulationVelocities, Expansion) - 12usize];
5349};
5350unsafe extern "C" {
5351    pub static mut __MIDL_itf_Kinect2ECOM_0000_0052_v0_0_c_ifspec: RPC_IF_HANDLE;
5352}
5353unsafe extern "C" {
5354    pub static mut __MIDL_itf_Kinect2ECOM_0000_0052_v0_0_s_ifspec: RPC_IF_HANDLE;
5355}
5356unsafe extern "C" {
5357    pub static IID_IBodyHandPair: IID;
5358}
5359#[repr(C)]
5360#[derive(Debug, Default)]
5361pub struct IBodyHandPairVtbl {
5362    pub QueryInterface: ::std::option::Option<
5363        unsafe extern "C" fn(
5364            This: *mut IBodyHandPair,
5365            riid: *const IID,
5366            ppvObject: *mut *mut ::std::os::raw::c_void,
5367        ) -> HRESULT,
5368    >,
5369    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IBodyHandPair) -> ULONG>,
5370    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IBodyHandPair) -> ULONG>,
5371    pub get_BodyTrackingId: ::std::option::Option<
5372        unsafe extern "C" fn(This: *mut IBodyHandPair, value: *mut UINT64) -> HRESULT,
5373    >,
5374    pub put_BodyTrackingId: ::std::option::Option<
5375        unsafe extern "C" fn(This: *mut IBodyHandPair, value: UINT64) -> HRESULT,
5376    >,
5377    pub get_HandType: ::std::option::Option<
5378        unsafe extern "C" fn(This: *mut IBodyHandPair, value: *mut HandType) -> HRESULT,
5379    >,
5380    pub put_HandType: ::std::option::Option<
5381        unsafe extern "C" fn(This: *mut IBodyHandPair, value: HandType) -> HRESULT,
5382    >,
5383}
5384#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5385const _: () = {
5386    ["Size of IBodyHandPairVtbl"][::std::mem::size_of::<IBodyHandPairVtbl>() - 56usize];
5387    ["Alignment of IBodyHandPairVtbl"][::std::mem::align_of::<IBodyHandPairVtbl>() - 8usize];
5388    ["Offset of field: IBodyHandPairVtbl::QueryInterface"]
5389        [::std::mem::offset_of!(IBodyHandPairVtbl, QueryInterface) - 0usize];
5390    ["Offset of field: IBodyHandPairVtbl::AddRef"]
5391        [::std::mem::offset_of!(IBodyHandPairVtbl, AddRef) - 8usize];
5392    ["Offset of field: IBodyHandPairVtbl::Release"]
5393        [::std::mem::offset_of!(IBodyHandPairVtbl, Release) - 16usize];
5394    ["Offset of field: IBodyHandPairVtbl::get_BodyTrackingId"]
5395        [::std::mem::offset_of!(IBodyHandPairVtbl, get_BodyTrackingId) - 24usize];
5396    ["Offset of field: IBodyHandPairVtbl::put_BodyTrackingId"]
5397        [::std::mem::offset_of!(IBodyHandPairVtbl, put_BodyTrackingId) - 32usize];
5398    ["Offset of field: IBodyHandPairVtbl::get_HandType"]
5399        [::std::mem::offset_of!(IBodyHandPairVtbl, get_HandType) - 40usize];
5400    ["Offset of field: IBodyHandPairVtbl::put_HandType"]
5401        [::std::mem::offset_of!(IBodyHandPairVtbl, put_HandType) - 48usize];
5402};
5403#[repr(C)]
5404pub struct IBodyHandPair {
5405    pub lpVtbl: *mut IBodyHandPairVtbl,
5406}
5407#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5408const _: () = {
5409    ["Size of IBodyHandPair"][::std::mem::size_of::<IBodyHandPair>() - 8usize];
5410    ["Alignment of IBodyHandPair"][::std::mem::align_of::<IBodyHandPair>() - 8usize];
5411    ["Offset of field: IBodyHandPair::lpVtbl"]
5412        [::std::mem::offset_of!(IBodyHandPair, lpVtbl) - 0usize];
5413};
5414impl Default for IBodyHandPair {
5415    fn default() -> Self {
5416        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5417        unsafe {
5418            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5419            s.assume_init()
5420        }
5421    }
5422}
5423unsafe extern "C" {
5424    pub static IID_IKinectCoreWindow: IID;
5425}
5426#[repr(C)]
5427#[derive(Debug, Default)]
5428pub struct IKinectCoreWindowVtbl {
5429    pub QueryInterface: ::std::option::Option<
5430        unsafe extern "C" fn(
5431            This: *mut IKinectCoreWindow,
5432            riid: *const IID,
5433            ppvObject: *mut *mut ::std::os::raw::c_void,
5434        ) -> HRESULT,
5435    >,
5436    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IKinectCoreWindow) -> ULONG>,
5437    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IKinectCoreWindow) -> ULONG>,
5438    pub SubscribePointerEntered: ::std::option::Option<
5439        unsafe extern "C" fn(
5440            This: *mut IKinectCoreWindow,
5441            waitableHandle: *mut WAITABLE_HANDLE,
5442        ) -> HRESULT,
5443    >,
5444    pub UnsubscribePointerEntered: ::std::option::Option<
5445        unsafe extern "C" fn(
5446            This: *mut IKinectCoreWindow,
5447            waitableHandle: WAITABLE_HANDLE,
5448        ) -> HRESULT,
5449    >,
5450    pub GetPointerEnteredEventData: ::std::option::Option<
5451        unsafe extern "C" fn(
5452            This: *mut IKinectCoreWindow,
5453            waitableHandle: WAITABLE_HANDLE,
5454            eventData: *mut *mut IKinectPointerEventArgs,
5455        ) -> HRESULT,
5456    >,
5457    pub SubscribePointerMoved: ::std::option::Option<
5458        unsafe extern "C" fn(
5459            This: *mut IKinectCoreWindow,
5460            waitableHandle: *mut WAITABLE_HANDLE,
5461        ) -> HRESULT,
5462    >,
5463    pub UnsubscribePointerMoved: ::std::option::Option<
5464        unsafe extern "C" fn(
5465            This: *mut IKinectCoreWindow,
5466            waitableHandle: WAITABLE_HANDLE,
5467        ) -> HRESULT,
5468    >,
5469    pub GetPointerMovedEventData: ::std::option::Option<
5470        unsafe extern "C" fn(
5471            This: *mut IKinectCoreWindow,
5472            waitableHandle: WAITABLE_HANDLE,
5473            eventData: *mut *mut IKinectPointerEventArgs,
5474        ) -> HRESULT,
5475    >,
5476    pub SubscribePointerExited: ::std::option::Option<
5477        unsafe extern "C" fn(
5478            This: *mut IKinectCoreWindow,
5479            waitableHandle: *mut WAITABLE_HANDLE,
5480        ) -> HRESULT,
5481    >,
5482    pub UnsubscribePointerExited: ::std::option::Option<
5483        unsafe extern "C" fn(
5484            This: *mut IKinectCoreWindow,
5485            waitableHandle: WAITABLE_HANDLE,
5486        ) -> HRESULT,
5487    >,
5488    pub GetPointerExitedEventData: ::std::option::Option<
5489        unsafe extern "C" fn(
5490            This: *mut IKinectCoreWindow,
5491            waitableHandle: WAITABLE_HANDLE,
5492            eventData: *mut *mut IKinectPointerEventArgs,
5493        ) -> HRESULT,
5494    >,
5495}
5496#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5497const _: () = {
5498    ["Size of IKinectCoreWindowVtbl"][::std::mem::size_of::<IKinectCoreWindowVtbl>() - 96usize];
5499    ["Alignment of IKinectCoreWindowVtbl"]
5500        [::std::mem::align_of::<IKinectCoreWindowVtbl>() - 8usize];
5501    ["Offset of field: IKinectCoreWindowVtbl::QueryInterface"]
5502        [::std::mem::offset_of!(IKinectCoreWindowVtbl, QueryInterface) - 0usize];
5503    ["Offset of field: IKinectCoreWindowVtbl::AddRef"]
5504        [::std::mem::offset_of!(IKinectCoreWindowVtbl, AddRef) - 8usize];
5505    ["Offset of field: IKinectCoreWindowVtbl::Release"]
5506        [::std::mem::offset_of!(IKinectCoreWindowVtbl, Release) - 16usize];
5507    ["Offset of field: IKinectCoreWindowVtbl::SubscribePointerEntered"]
5508        [::std::mem::offset_of!(IKinectCoreWindowVtbl, SubscribePointerEntered) - 24usize];
5509    ["Offset of field: IKinectCoreWindowVtbl::UnsubscribePointerEntered"]
5510        [::std::mem::offset_of!(IKinectCoreWindowVtbl, UnsubscribePointerEntered) - 32usize];
5511    ["Offset of field: IKinectCoreWindowVtbl::GetPointerEnteredEventData"]
5512        [::std::mem::offset_of!(IKinectCoreWindowVtbl, GetPointerEnteredEventData) - 40usize];
5513    ["Offset of field: IKinectCoreWindowVtbl::SubscribePointerMoved"]
5514        [::std::mem::offset_of!(IKinectCoreWindowVtbl, SubscribePointerMoved) - 48usize];
5515    ["Offset of field: IKinectCoreWindowVtbl::UnsubscribePointerMoved"]
5516        [::std::mem::offset_of!(IKinectCoreWindowVtbl, UnsubscribePointerMoved) - 56usize];
5517    ["Offset of field: IKinectCoreWindowVtbl::GetPointerMovedEventData"]
5518        [::std::mem::offset_of!(IKinectCoreWindowVtbl, GetPointerMovedEventData) - 64usize];
5519    ["Offset of field: IKinectCoreWindowVtbl::SubscribePointerExited"]
5520        [::std::mem::offset_of!(IKinectCoreWindowVtbl, SubscribePointerExited) - 72usize];
5521    ["Offset of field: IKinectCoreWindowVtbl::UnsubscribePointerExited"]
5522        [::std::mem::offset_of!(IKinectCoreWindowVtbl, UnsubscribePointerExited) - 80usize];
5523    ["Offset of field: IKinectCoreWindowVtbl::GetPointerExitedEventData"]
5524        [::std::mem::offset_of!(IKinectCoreWindowVtbl, GetPointerExitedEventData) - 88usize];
5525};
5526#[repr(C)]
5527pub struct IKinectCoreWindow {
5528    pub lpVtbl: *mut IKinectCoreWindowVtbl,
5529}
5530#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5531const _: () = {
5532    ["Size of IKinectCoreWindow"][::std::mem::size_of::<IKinectCoreWindow>() - 8usize];
5533    ["Alignment of IKinectCoreWindow"][::std::mem::align_of::<IKinectCoreWindow>() - 8usize];
5534    ["Offset of field: IKinectCoreWindow::lpVtbl"]
5535        [::std::mem::offset_of!(IKinectCoreWindow, lpVtbl) - 0usize];
5536};
5537impl Default for IKinectCoreWindow {
5538    fn default() -> Self {
5539        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5540        unsafe {
5541            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5542            s.assume_init()
5543        }
5544    }
5545}
5546unsafe extern "C" {
5547    pub static IID_IKinectGestureRecognizer: IID;
5548}
5549#[repr(C)]
5550#[derive(Debug, Default)]
5551pub struct IKinectGestureRecognizerVtbl {
5552    pub QueryInterface: ::std::option::Option<
5553        unsafe extern "C" fn(
5554            This: *mut IKinectGestureRecognizer,
5555            riid: *const IID,
5556            ppvObject: *mut *mut ::std::os::raw::c_void,
5557        ) -> HRESULT,
5558    >,
5559    pub AddRef:
5560        ::std::option::Option<unsafe extern "C" fn(This: *mut IKinectGestureRecognizer) -> ULONG>,
5561    pub Release:
5562        ::std::option::Option<unsafe extern "C" fn(This: *mut IKinectGestureRecognizer) -> ULONG>,
5563    pub RegisterSelectionTappedHandler: ::std::option::Option<
5564        unsafe extern "C" fn(
5565            This: *mut IKinectGestureRecognizer,
5566            handler: *mut IKinectGestureRecognizerSelectionHandler,
5567        ) -> HRESULT,
5568    >,
5569    pub UnregisterSelectionTappedHandler:
5570        ::std::option::Option<unsafe extern "C" fn(This: *mut IKinectGestureRecognizer) -> HRESULT>,
5571    pub RegisterSelectionHoldingHandler: ::std::option::Option<
5572        unsafe extern "C" fn(
5573            This: *mut IKinectGestureRecognizer,
5574            handler: *mut IKinectGestureRecognizerSelectionHandler,
5575        ) -> HRESULT,
5576    >,
5577    pub UnregisterSelectionHoldingHandler:
5578        ::std::option::Option<unsafe extern "C" fn(This: *mut IKinectGestureRecognizer) -> HRESULT>,
5579    pub RegisterSelectionPressingStartedHandler: ::std::option::Option<
5580        unsafe extern "C" fn(
5581            This: *mut IKinectGestureRecognizer,
5582            handler: *mut IKinectGestureRecognizerSelectionHandler,
5583        ) -> HRESULT,
5584    >,
5585    pub UnregisterSelectionPressingStartedHandler:
5586        ::std::option::Option<unsafe extern "C" fn(This: *mut IKinectGestureRecognizer) -> HRESULT>,
5587    pub RegisterSelectionPressingUpdatedHandler: ::std::option::Option<
5588        unsafe extern "C" fn(
5589            This: *mut IKinectGestureRecognizer,
5590            handler: *mut IKinectGestureRecognizerSelectionHandler,
5591        ) -> HRESULT,
5592    >,
5593    pub UnregisterSelectionPressingUpdatedHandler:
5594        ::std::option::Option<unsafe extern "C" fn(This: *mut IKinectGestureRecognizer) -> HRESULT>,
5595    pub RegisterSelectionPressingCompletedHandler: ::std::option::Option<
5596        unsafe extern "C" fn(
5597            This: *mut IKinectGestureRecognizer,
5598            handler: *mut IKinectGestureRecognizerSelectionHandler,
5599        ) -> HRESULT,
5600    >,
5601    pub UnregisterSelectionPressingCompletedHandler:
5602        ::std::option::Option<unsafe extern "C" fn(This: *mut IKinectGestureRecognizer) -> HRESULT>,
5603    pub RegisterManipulationStartedHandler: ::std::option::Option<
5604        unsafe extern "C" fn(
5605            This: *mut IKinectGestureRecognizer,
5606            handler: *mut IKinectGestureRecognizerManipulationHandler,
5607        ) -> HRESULT,
5608    >,
5609    pub UnregisterManipulationStartedHandler:
5610        ::std::option::Option<unsafe extern "C" fn(This: *mut IKinectGestureRecognizer) -> HRESULT>,
5611    pub RegisterManipulationUpdatedHandler: ::std::option::Option<
5612        unsafe extern "C" fn(
5613            This: *mut IKinectGestureRecognizer,
5614            handler: *mut IKinectGestureRecognizerManipulationHandler,
5615        ) -> HRESULT,
5616    >,
5617    pub UnregisterManipulationUpdatedHandler:
5618        ::std::option::Option<unsafe extern "C" fn(This: *mut IKinectGestureRecognizer) -> HRESULT>,
5619    pub RegisterManipulationInertiaStartingHandler: ::std::option::Option<
5620        unsafe extern "C" fn(
5621            This: *mut IKinectGestureRecognizer,
5622            handler: *mut IKinectGestureRecognizerManipulationHandler,
5623        ) -> HRESULT,
5624    >,
5625    pub UnregisterManipulationInertiaStartingHandler:
5626        ::std::option::Option<unsafe extern "C" fn(This: *mut IKinectGestureRecognizer) -> HRESULT>,
5627    pub RegisterManipulationCompletedHandler: ::std::option::Option<
5628        unsafe extern "C" fn(
5629            This: *mut IKinectGestureRecognizer,
5630            handler: *mut IKinectGestureRecognizerManipulationHandler,
5631        ) -> HRESULT,
5632    >,
5633    pub UnregisterManipulationCompletedHandler:
5634        ::std::option::Option<unsafe extern "C" fn(This: *mut IKinectGestureRecognizer) -> HRESULT>,
5635    pub get_GestureSettings: ::std::option::Option<
5636        unsafe extern "C" fn(
5637            This: *mut IKinectGestureRecognizer,
5638            value: *mut KinectGestureSettings,
5639        ) -> HRESULT,
5640    >,
5641    pub put_GestureSettings: ::std::option::Option<
5642        unsafe extern "C" fn(
5643            This: *mut IKinectGestureRecognizer,
5644            value: KinectGestureSettings,
5645        ) -> HRESULT,
5646    >,
5647    pub get_IsInertial: ::std::option::Option<
5648        unsafe extern "C" fn(This: *mut IKinectGestureRecognizer, value: *mut BOOLEAN) -> HRESULT,
5649    >,
5650    pub get_IsActive: ::std::option::Option<
5651        unsafe extern "C" fn(This: *mut IKinectGestureRecognizer, value: *mut BOOLEAN) -> HRESULT,
5652    >,
5653    pub get_InertiaTranslationDeceleration: ::std::option::Option<
5654        unsafe extern "C" fn(This: *mut IKinectGestureRecognizer, value: *mut f32) -> HRESULT,
5655    >,
5656    pub put_InertiaTranslationDeceleration: ::std::option::Option<
5657        unsafe extern "C" fn(This: *mut IKinectGestureRecognizer, value: f32) -> HRESULT,
5658    >,
5659    pub get_InertiaTranslationDisplacement: ::std::option::Option<
5660        unsafe extern "C" fn(This: *mut IKinectGestureRecognizer, value: *mut f32) -> HRESULT,
5661    >,
5662    pub put_InertiaTranslationDisplacement: ::std::option::Option<
5663        unsafe extern "C" fn(This: *mut IKinectGestureRecognizer, value: f32) -> HRESULT,
5664    >,
5665    pub get_AutoProcessInertia: ::std::option::Option<
5666        unsafe extern "C" fn(This: *mut IKinectGestureRecognizer, value: *mut BOOLEAN) -> HRESULT,
5667    >,
5668    pub put_AutoProcessInertia: ::std::option::Option<
5669        unsafe extern "C" fn(This: *mut IKinectGestureRecognizer, value: BOOLEAN) -> HRESULT,
5670    >,
5671    pub get_BoundingRect: ::std::option::Option<
5672        unsafe extern "C" fn(This: *mut IKinectGestureRecognizer, value: *mut RectF) -> HRESULT,
5673    >,
5674    pub put_BoundingRect: ::std::option::Option<
5675        unsafe extern "C" fn(This: *mut IKinectGestureRecognizer, value: RectF) -> HRESULT,
5676    >,
5677    pub ProcessDownEvent: ::std::option::Option<
5678        unsafe extern "C" fn(
5679            This: *mut IKinectGestureRecognizer,
5680            value: *mut IKinectPointerPoint,
5681        ) -> HRESULT,
5682    >,
5683    pub ProcessUpEvent: ::std::option::Option<
5684        unsafe extern "C" fn(
5685            This: *mut IKinectGestureRecognizer,
5686            value: *mut IKinectPointerPoint,
5687        ) -> HRESULT,
5688    >,
5689    pub ProcessMoveEvents: ::std::option::Option<
5690        unsafe extern "C" fn(
5691            This: *mut IKinectGestureRecognizer,
5692            value: *mut IKinectPointerPoint,
5693        ) -> HRESULT,
5694    >,
5695    pub ProcessInertia:
5696        ::std::option::Option<unsafe extern "C" fn(This: *mut IKinectGestureRecognizer) -> HRESULT>,
5697    pub CompleteGesture:
5698        ::std::option::Option<unsafe extern "C" fn(This: *mut IKinectGestureRecognizer) -> HRESULT>,
5699}
5700#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5701const _: () = {
5702    ["Size of IKinectGestureRecognizerVtbl"]
5703        [::std::mem::size_of::<IKinectGestureRecognizerVtbl>() - 304usize];
5704    ["Alignment of IKinectGestureRecognizerVtbl"]
5705        [::std::mem::align_of::<IKinectGestureRecognizerVtbl>() - 8usize];
5706    ["Offset of field: IKinectGestureRecognizerVtbl::QueryInterface"]
5707        [::std::mem::offset_of!(IKinectGestureRecognizerVtbl, QueryInterface) - 0usize];
5708    ["Offset of field: IKinectGestureRecognizerVtbl::AddRef"]
5709        [::std::mem::offset_of!(IKinectGestureRecognizerVtbl, AddRef) - 8usize];
5710    ["Offset of field: IKinectGestureRecognizerVtbl::Release"]
5711        [::std::mem::offset_of!(IKinectGestureRecognizerVtbl, Release) - 16usize];
5712    ["Offset of field: IKinectGestureRecognizerVtbl::RegisterSelectionTappedHandler"][::std::mem::offset_of!(
5713        IKinectGestureRecognizerVtbl,
5714        RegisterSelectionTappedHandler
5715    ) - 24usize];
5716    ["Offset of field: IKinectGestureRecognizerVtbl::UnregisterSelectionTappedHandler"][::std::mem::offset_of!(
5717        IKinectGestureRecognizerVtbl,
5718        UnregisterSelectionTappedHandler
5719    )
5720        - 32usize];
5721    ["Offset of field: IKinectGestureRecognizerVtbl::RegisterSelectionHoldingHandler"][::std::mem::offset_of!(
5722        IKinectGestureRecognizerVtbl,
5723        RegisterSelectionHoldingHandler
5724    ) - 40usize];
5725    ["Offset of field: IKinectGestureRecognizerVtbl::UnregisterSelectionHoldingHandler"][::std::mem::offset_of!(
5726        IKinectGestureRecognizerVtbl,
5727        UnregisterSelectionHoldingHandler
5728    )
5729        - 48usize];
5730    ["Offset of field: IKinectGestureRecognizerVtbl::RegisterSelectionPressingStartedHandler"][::std::mem::offset_of!(
5731        IKinectGestureRecognizerVtbl,
5732        RegisterSelectionPressingStartedHandler
5733    )
5734        - 56usize];
5735    ["Offset of field: IKinectGestureRecognizerVtbl::UnregisterSelectionPressingStartedHandler"][::std::mem::offset_of!(
5736        IKinectGestureRecognizerVtbl,
5737        UnregisterSelectionPressingStartedHandler
5738    )
5739        - 64usize];
5740    ["Offset of field: IKinectGestureRecognizerVtbl::RegisterSelectionPressingUpdatedHandler"][::std::mem::offset_of!(
5741        IKinectGestureRecognizerVtbl,
5742        RegisterSelectionPressingUpdatedHandler
5743    )
5744        - 72usize];
5745    ["Offset of field: IKinectGestureRecognizerVtbl::UnregisterSelectionPressingUpdatedHandler"][::std::mem::offset_of!(
5746        IKinectGestureRecognizerVtbl,
5747        UnregisterSelectionPressingUpdatedHandler
5748    )
5749        - 80usize];
5750    ["Offset of field: IKinectGestureRecognizerVtbl::RegisterSelectionPressingCompletedHandler"][::std::mem::offset_of!(
5751        IKinectGestureRecognizerVtbl,
5752        RegisterSelectionPressingCompletedHandler
5753    )
5754        - 88usize];
5755    ["Offset of field: IKinectGestureRecognizerVtbl::UnregisterSelectionPressingCompletedHandler"]
5756        [::std::mem::offset_of!(
5757            IKinectGestureRecognizerVtbl,
5758            UnregisterSelectionPressingCompletedHandler
5759        ) - 96usize];
5760    ["Offset of field: IKinectGestureRecognizerVtbl::RegisterManipulationStartedHandler"][::std::mem::offset_of!(
5761        IKinectGestureRecognizerVtbl,
5762        RegisterManipulationStartedHandler
5763    )
5764        - 104usize];
5765    ["Offset of field: IKinectGestureRecognizerVtbl::UnregisterManipulationStartedHandler"][::std::mem::offset_of!(
5766        IKinectGestureRecognizerVtbl,
5767        UnregisterManipulationStartedHandler
5768    )
5769        - 112usize];
5770    ["Offset of field: IKinectGestureRecognizerVtbl::RegisterManipulationUpdatedHandler"][::std::mem::offset_of!(
5771        IKinectGestureRecognizerVtbl,
5772        RegisterManipulationUpdatedHandler
5773    )
5774        - 120usize];
5775    ["Offset of field: IKinectGestureRecognizerVtbl::UnregisterManipulationUpdatedHandler"][::std::mem::offset_of!(
5776        IKinectGestureRecognizerVtbl,
5777        UnregisterManipulationUpdatedHandler
5778    )
5779        - 128usize];
5780    ["Offset of field: IKinectGestureRecognizerVtbl::RegisterManipulationInertiaStartingHandler"][::std::mem::offset_of!(
5781        IKinectGestureRecognizerVtbl,
5782        RegisterManipulationInertiaStartingHandler
5783    )
5784        - 136usize];
5785    ["Offset of field: IKinectGestureRecognizerVtbl::UnregisterManipulationInertiaStartingHandler"]
5786        [::std::mem::offset_of!(
5787            IKinectGestureRecognizerVtbl,
5788            UnregisterManipulationInertiaStartingHandler
5789        ) - 144usize];
5790    ["Offset of field: IKinectGestureRecognizerVtbl::RegisterManipulationCompletedHandler"][::std::mem::offset_of!(
5791        IKinectGestureRecognizerVtbl,
5792        RegisterManipulationCompletedHandler
5793    )
5794        - 152usize];
5795    ["Offset of field: IKinectGestureRecognizerVtbl::UnregisterManipulationCompletedHandler"][::std::mem::offset_of!(
5796        IKinectGestureRecognizerVtbl,
5797        UnregisterManipulationCompletedHandler
5798    )
5799        - 160usize];
5800    ["Offset of field: IKinectGestureRecognizerVtbl::get_GestureSettings"]
5801        [::std::mem::offset_of!(IKinectGestureRecognizerVtbl, get_GestureSettings) - 168usize];
5802    ["Offset of field: IKinectGestureRecognizerVtbl::put_GestureSettings"]
5803        [::std::mem::offset_of!(IKinectGestureRecognizerVtbl, put_GestureSettings) - 176usize];
5804    ["Offset of field: IKinectGestureRecognizerVtbl::get_IsInertial"]
5805        [::std::mem::offset_of!(IKinectGestureRecognizerVtbl, get_IsInertial) - 184usize];
5806    ["Offset of field: IKinectGestureRecognizerVtbl::get_IsActive"]
5807        [::std::mem::offset_of!(IKinectGestureRecognizerVtbl, get_IsActive) - 192usize];
5808    ["Offset of field: IKinectGestureRecognizerVtbl::get_InertiaTranslationDeceleration"][::std::mem::offset_of!(
5809        IKinectGestureRecognizerVtbl,
5810        get_InertiaTranslationDeceleration
5811    )
5812        - 200usize];
5813    ["Offset of field: IKinectGestureRecognizerVtbl::put_InertiaTranslationDeceleration"][::std::mem::offset_of!(
5814        IKinectGestureRecognizerVtbl,
5815        put_InertiaTranslationDeceleration
5816    )
5817        - 208usize];
5818    ["Offset of field: IKinectGestureRecognizerVtbl::get_InertiaTranslationDisplacement"][::std::mem::offset_of!(
5819        IKinectGestureRecognizerVtbl,
5820        get_InertiaTranslationDisplacement
5821    )
5822        - 216usize];
5823    ["Offset of field: IKinectGestureRecognizerVtbl::put_InertiaTranslationDisplacement"][::std::mem::offset_of!(
5824        IKinectGestureRecognizerVtbl,
5825        put_InertiaTranslationDisplacement
5826    )
5827        - 224usize];
5828    ["Offset of field: IKinectGestureRecognizerVtbl::get_AutoProcessInertia"]
5829        [::std::mem::offset_of!(IKinectGestureRecognizerVtbl, get_AutoProcessInertia) - 232usize];
5830    ["Offset of field: IKinectGestureRecognizerVtbl::put_AutoProcessInertia"]
5831        [::std::mem::offset_of!(IKinectGestureRecognizerVtbl, put_AutoProcessInertia) - 240usize];
5832    ["Offset of field: IKinectGestureRecognizerVtbl::get_BoundingRect"]
5833        [::std::mem::offset_of!(IKinectGestureRecognizerVtbl, get_BoundingRect) - 248usize];
5834    ["Offset of field: IKinectGestureRecognizerVtbl::put_BoundingRect"]
5835        [::std::mem::offset_of!(IKinectGestureRecognizerVtbl, put_BoundingRect) - 256usize];
5836    ["Offset of field: IKinectGestureRecognizerVtbl::ProcessDownEvent"]
5837        [::std::mem::offset_of!(IKinectGestureRecognizerVtbl, ProcessDownEvent) - 264usize];
5838    ["Offset of field: IKinectGestureRecognizerVtbl::ProcessUpEvent"]
5839        [::std::mem::offset_of!(IKinectGestureRecognizerVtbl, ProcessUpEvent) - 272usize];
5840    ["Offset of field: IKinectGestureRecognizerVtbl::ProcessMoveEvents"]
5841        [::std::mem::offset_of!(IKinectGestureRecognizerVtbl, ProcessMoveEvents) - 280usize];
5842    ["Offset of field: IKinectGestureRecognizerVtbl::ProcessInertia"]
5843        [::std::mem::offset_of!(IKinectGestureRecognizerVtbl, ProcessInertia) - 288usize];
5844    ["Offset of field: IKinectGestureRecognizerVtbl::CompleteGesture"]
5845        [::std::mem::offset_of!(IKinectGestureRecognizerVtbl, CompleteGesture) - 296usize];
5846};
5847#[repr(C)]
5848pub struct IKinectGestureRecognizer {
5849    pub lpVtbl: *mut IKinectGestureRecognizerVtbl,
5850}
5851#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5852const _: () = {
5853    ["Size of IKinectGestureRecognizer"]
5854        [::std::mem::size_of::<IKinectGestureRecognizer>() - 8usize];
5855    ["Alignment of IKinectGestureRecognizer"]
5856        [::std::mem::align_of::<IKinectGestureRecognizer>() - 8usize];
5857    ["Offset of field: IKinectGestureRecognizer::lpVtbl"]
5858        [::std::mem::offset_of!(IKinectGestureRecognizer, lpVtbl) - 0usize];
5859};
5860impl Default for IKinectGestureRecognizer {
5861    fn default() -> Self {
5862        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5863        unsafe {
5864            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5865            s.assume_init()
5866        }
5867    }
5868}
5869unsafe extern "C" {
5870    pub static IID_IKinectGestureRecognizerSelectionHandler: IID;
5871}
5872#[repr(C)]
5873#[derive(Debug, Default)]
5874pub struct IKinectGestureRecognizerSelectionHandlerVtbl {
5875    pub QueryInterface: ::std::option::Option<
5876        unsafe extern "C" fn(
5877            This: *mut IKinectGestureRecognizerSelectionHandler,
5878            riid: *const IID,
5879            ppvObject: *mut *mut ::std::os::raw::c_void,
5880        ) -> HRESULT,
5881    >,
5882    pub AddRef: ::std::option::Option<
5883        unsafe extern "C" fn(This: *mut IKinectGestureRecognizerSelectionHandler) -> ULONG,
5884    >,
5885    pub Release: ::std::option::Option<
5886        unsafe extern "C" fn(This: *mut IKinectGestureRecognizerSelectionHandler) -> ULONG,
5887    >,
5888    pub OnTapped: ::std::option::Option<
5889        unsafe extern "C" fn(
5890            This: *mut IKinectGestureRecognizerSelectionHandler,
5891            args: *mut IKinectTappedEventArgs,
5892        ) -> HRESULT,
5893    >,
5894    pub OnHolding: ::std::option::Option<
5895        unsafe extern "C" fn(
5896            This: *mut IKinectGestureRecognizerSelectionHandler,
5897            args: *mut IKinectHoldingEventArgs,
5898        ) -> HRESULT,
5899    >,
5900    pub OnPressingStarted: ::std::option::Option<
5901        unsafe extern "C" fn(
5902            This: *mut IKinectGestureRecognizerSelectionHandler,
5903            args: *mut IKinectPressingStartedEventArgs,
5904        ) -> HRESULT,
5905    >,
5906    pub OnPressingUpdated: ::std::option::Option<
5907        unsafe extern "C" fn(
5908            This: *mut IKinectGestureRecognizerSelectionHandler,
5909            args: *mut IKinectPressingUpdatedEventArgs,
5910        ) -> HRESULT,
5911    >,
5912    pub OnPressingCompleted: ::std::option::Option<
5913        unsafe extern "C" fn(
5914            This: *mut IKinectGestureRecognizerSelectionHandler,
5915            args: *mut IKinectPressingCompletedEventArgs,
5916        ) -> HRESULT,
5917    >,
5918}
5919#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5920const _: () = {
5921    ["Size of IKinectGestureRecognizerSelectionHandlerVtbl"]
5922        [::std::mem::size_of::<IKinectGestureRecognizerSelectionHandlerVtbl>() - 64usize];
5923    ["Alignment of IKinectGestureRecognizerSelectionHandlerVtbl"]
5924        [::std::mem::align_of::<IKinectGestureRecognizerSelectionHandlerVtbl>() - 8usize];
5925    ["Offset of field: IKinectGestureRecognizerSelectionHandlerVtbl::QueryInterface"][::std::mem::offset_of!(
5926        IKinectGestureRecognizerSelectionHandlerVtbl,
5927        QueryInterface
5928    ) - 0usize];
5929    ["Offset of field: IKinectGestureRecognizerSelectionHandlerVtbl::AddRef"]
5930        [::std::mem::offset_of!(IKinectGestureRecognizerSelectionHandlerVtbl, AddRef) - 8usize];
5931    ["Offset of field: IKinectGestureRecognizerSelectionHandlerVtbl::Release"]
5932        [::std::mem::offset_of!(IKinectGestureRecognizerSelectionHandlerVtbl, Release) - 16usize];
5933    ["Offset of field: IKinectGestureRecognizerSelectionHandlerVtbl::OnTapped"]
5934        [::std::mem::offset_of!(IKinectGestureRecognizerSelectionHandlerVtbl, OnTapped) - 24usize];
5935    ["Offset of field: IKinectGestureRecognizerSelectionHandlerVtbl::OnHolding"]
5936        [::std::mem::offset_of!(IKinectGestureRecognizerSelectionHandlerVtbl, OnHolding) - 32usize];
5937    ["Offset of field: IKinectGestureRecognizerSelectionHandlerVtbl::OnPressingStarted"][::std::mem::offset_of!(
5938        IKinectGestureRecognizerSelectionHandlerVtbl,
5939        OnPressingStarted
5940    )
5941        - 40usize];
5942    ["Offset of field: IKinectGestureRecognizerSelectionHandlerVtbl::OnPressingUpdated"][::std::mem::offset_of!(
5943        IKinectGestureRecognizerSelectionHandlerVtbl,
5944        OnPressingUpdated
5945    )
5946        - 48usize];
5947    ["Offset of field: IKinectGestureRecognizerSelectionHandlerVtbl::OnPressingCompleted"][::std::mem::offset_of!(
5948        IKinectGestureRecognizerSelectionHandlerVtbl,
5949        OnPressingCompleted
5950    )
5951        - 56usize];
5952};
5953#[repr(C)]
5954pub struct IKinectGestureRecognizerSelectionHandler {
5955    pub lpVtbl: *mut IKinectGestureRecognizerSelectionHandlerVtbl,
5956}
5957#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5958const _: () = {
5959    ["Size of IKinectGestureRecognizerSelectionHandler"]
5960        [::std::mem::size_of::<IKinectGestureRecognizerSelectionHandler>() - 8usize];
5961    ["Alignment of IKinectGestureRecognizerSelectionHandler"]
5962        [::std::mem::align_of::<IKinectGestureRecognizerSelectionHandler>() - 8usize];
5963    ["Offset of field: IKinectGestureRecognizerSelectionHandler::lpVtbl"]
5964        [::std::mem::offset_of!(IKinectGestureRecognizerSelectionHandler, lpVtbl) - 0usize];
5965};
5966impl Default for IKinectGestureRecognizerSelectionHandler {
5967    fn default() -> Self {
5968        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5969        unsafe {
5970            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5971            s.assume_init()
5972        }
5973    }
5974}
5975unsafe extern "C" {
5976    pub static IID_IKinectGestureRecognizerManipulationHandler: IID;
5977}
5978#[repr(C)]
5979#[derive(Debug, Default)]
5980pub struct IKinectGestureRecognizerManipulationHandlerVtbl {
5981    pub QueryInterface: ::std::option::Option<
5982        unsafe extern "C" fn(
5983            This: *mut IKinectGestureRecognizerManipulationHandler,
5984            riid: *const IID,
5985            ppvObject: *mut *mut ::std::os::raw::c_void,
5986        ) -> HRESULT,
5987    >,
5988    pub AddRef: ::std::option::Option<
5989        unsafe extern "C" fn(This: *mut IKinectGestureRecognizerManipulationHandler) -> ULONG,
5990    >,
5991    pub Release: ::std::option::Option<
5992        unsafe extern "C" fn(This: *mut IKinectGestureRecognizerManipulationHandler) -> ULONG,
5993    >,
5994    pub OnManipulationStarted: ::std::option::Option<
5995        unsafe extern "C" fn(
5996            This: *mut IKinectGestureRecognizerManipulationHandler,
5997            args: *mut IKinectManipulationStartedEventArgs,
5998        ) -> HRESULT,
5999    >,
6000    pub OnManipulationUpdated: ::std::option::Option<
6001        unsafe extern "C" fn(
6002            This: *mut IKinectGestureRecognizerManipulationHandler,
6003            args: *mut IKinectManipulationUpdatedEventArgs,
6004        ) -> HRESULT,
6005    >,
6006    pub OnManipulationInertiaStarting: ::std::option::Option<
6007        unsafe extern "C" fn(
6008            This: *mut IKinectGestureRecognizerManipulationHandler,
6009            args: *mut IKinectManipulationInertiaStartingEventArgs,
6010        ) -> HRESULT,
6011    >,
6012    pub OnManipulationCompleted: ::std::option::Option<
6013        unsafe extern "C" fn(
6014            This: *mut IKinectGestureRecognizerManipulationHandler,
6015            args: *mut IKinectManipulationCompletedEventArgs,
6016        ) -> HRESULT,
6017    >,
6018}
6019#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6020const _: () = {
6021    ["Size of IKinectGestureRecognizerManipulationHandlerVtbl"]
6022        [::std::mem::size_of::<IKinectGestureRecognizerManipulationHandlerVtbl>() - 56usize];
6023    ["Alignment of IKinectGestureRecognizerManipulationHandlerVtbl"]
6024        [::std::mem::align_of::<IKinectGestureRecognizerManipulationHandlerVtbl>() - 8usize];
6025    ["Offset of field: IKinectGestureRecognizerManipulationHandlerVtbl::QueryInterface"][::std::mem::offset_of!(
6026        IKinectGestureRecognizerManipulationHandlerVtbl,
6027        QueryInterface
6028    )
6029        - 0usize];
6030    ["Offset of field: IKinectGestureRecognizerManipulationHandlerVtbl::AddRef"]
6031        [::std::mem::offset_of!(IKinectGestureRecognizerManipulationHandlerVtbl, AddRef) - 8usize];
6032    ["Offset of field: IKinectGestureRecognizerManipulationHandlerVtbl::Release"][::std::mem::offset_of!(
6033        IKinectGestureRecognizerManipulationHandlerVtbl,
6034        Release
6035    ) - 16usize];
6036    ["Offset of field: IKinectGestureRecognizerManipulationHandlerVtbl::OnManipulationStarted"][::std::mem::offset_of!(
6037        IKinectGestureRecognizerManipulationHandlerVtbl,
6038        OnManipulationStarted
6039    )
6040        - 24usize];
6041    ["Offset of field: IKinectGestureRecognizerManipulationHandlerVtbl::OnManipulationUpdated"][::std::mem::offset_of!(
6042        IKinectGestureRecognizerManipulationHandlerVtbl,
6043        OnManipulationUpdated
6044    )
6045        - 32usize];
6046    [
6047        "Offset of field: IKinectGestureRecognizerManipulationHandlerVtbl::OnManipulationInertiaStarting",
6048    ][::std::mem::offset_of!(
6049        IKinectGestureRecognizerManipulationHandlerVtbl,
6050        OnManipulationInertiaStarting
6051    ) - 40usize];
6052    ["Offset of field: IKinectGestureRecognizerManipulationHandlerVtbl::OnManipulationCompleted"][::std::mem::offset_of!(
6053        IKinectGestureRecognizerManipulationHandlerVtbl,
6054        OnManipulationCompleted
6055    )
6056        - 48usize];
6057};
6058#[repr(C)]
6059pub struct IKinectGestureRecognizerManipulationHandler {
6060    pub lpVtbl: *mut IKinectGestureRecognizerManipulationHandlerVtbl,
6061}
6062#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6063const _: () = {
6064    ["Size of IKinectGestureRecognizerManipulationHandler"]
6065        [::std::mem::size_of::<IKinectGestureRecognizerManipulationHandler>() - 8usize];
6066    ["Alignment of IKinectGestureRecognizerManipulationHandler"]
6067        [::std::mem::align_of::<IKinectGestureRecognizerManipulationHandler>() - 8usize];
6068    ["Offset of field: IKinectGestureRecognizerManipulationHandler::lpVtbl"]
6069        [::std::mem::offset_of!(IKinectGestureRecognizerManipulationHandler, lpVtbl) - 0usize];
6070};
6071impl Default for IKinectGestureRecognizerManipulationHandler {
6072    fn default() -> Self {
6073        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6074        unsafe {
6075            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6076            s.assume_init()
6077        }
6078    }
6079}
6080unsafe extern "C" {
6081    pub static IID_IKinectHoldingEventArgs: IID;
6082}
6083#[repr(C)]
6084#[derive(Debug, Default)]
6085pub struct IKinectHoldingEventArgsVtbl {
6086    pub QueryInterface: ::std::option::Option<
6087        unsafe extern "C" fn(
6088            This: *mut IKinectHoldingEventArgs,
6089            riid: *const IID,
6090            ppvObject: *mut *mut ::std::os::raw::c_void,
6091        ) -> HRESULT,
6092    >,
6093    pub AddRef:
6094        ::std::option::Option<unsafe extern "C" fn(This: *mut IKinectHoldingEventArgs) -> ULONG>,
6095    pub Release:
6096        ::std::option::Option<unsafe extern "C" fn(This: *mut IKinectHoldingEventArgs) -> ULONG>,
6097    pub get_PointerDeviceType: ::std::option::Option<
6098        unsafe extern "C" fn(
6099            This: *mut IKinectHoldingEventArgs,
6100            value: *mut PointerDeviceType,
6101        ) -> HRESULT,
6102    >,
6103    pub get_Position: ::std::option::Option<
6104        unsafe extern "C" fn(This: *mut IKinectHoldingEventArgs, value: *mut PointF) -> HRESULT,
6105    >,
6106    pub get_HoldingState: ::std::option::Option<
6107        unsafe extern "C" fn(
6108            This: *mut IKinectHoldingEventArgs,
6109            value: *mut KinectHoldingState,
6110        ) -> HRESULT,
6111    >,
6112}
6113#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6114const _: () = {
6115    ["Size of IKinectHoldingEventArgsVtbl"]
6116        [::std::mem::size_of::<IKinectHoldingEventArgsVtbl>() - 48usize];
6117    ["Alignment of IKinectHoldingEventArgsVtbl"]
6118        [::std::mem::align_of::<IKinectHoldingEventArgsVtbl>() - 8usize];
6119    ["Offset of field: IKinectHoldingEventArgsVtbl::QueryInterface"]
6120        [::std::mem::offset_of!(IKinectHoldingEventArgsVtbl, QueryInterface) - 0usize];
6121    ["Offset of field: IKinectHoldingEventArgsVtbl::AddRef"]
6122        [::std::mem::offset_of!(IKinectHoldingEventArgsVtbl, AddRef) - 8usize];
6123    ["Offset of field: IKinectHoldingEventArgsVtbl::Release"]
6124        [::std::mem::offset_of!(IKinectHoldingEventArgsVtbl, Release) - 16usize];
6125    ["Offset of field: IKinectHoldingEventArgsVtbl::get_PointerDeviceType"]
6126        [::std::mem::offset_of!(IKinectHoldingEventArgsVtbl, get_PointerDeviceType) - 24usize];
6127    ["Offset of field: IKinectHoldingEventArgsVtbl::get_Position"]
6128        [::std::mem::offset_of!(IKinectHoldingEventArgsVtbl, get_Position) - 32usize];
6129    ["Offset of field: IKinectHoldingEventArgsVtbl::get_HoldingState"]
6130        [::std::mem::offset_of!(IKinectHoldingEventArgsVtbl, get_HoldingState) - 40usize];
6131};
6132#[repr(C)]
6133pub struct IKinectHoldingEventArgs {
6134    pub lpVtbl: *mut IKinectHoldingEventArgsVtbl,
6135}
6136#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6137const _: () = {
6138    ["Size of IKinectHoldingEventArgs"][::std::mem::size_of::<IKinectHoldingEventArgs>() - 8usize];
6139    ["Alignment of IKinectHoldingEventArgs"]
6140        [::std::mem::align_of::<IKinectHoldingEventArgs>() - 8usize];
6141    ["Offset of field: IKinectHoldingEventArgs::lpVtbl"]
6142        [::std::mem::offset_of!(IKinectHoldingEventArgs, lpVtbl) - 0usize];
6143};
6144impl Default for IKinectHoldingEventArgs {
6145    fn default() -> Self {
6146        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6147        unsafe {
6148            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6149            s.assume_init()
6150        }
6151    }
6152}
6153unsafe extern "C" {
6154    pub static IID_IKinectManipulationCompletedEventArgs: IID;
6155}
6156#[repr(C)]
6157#[derive(Debug, Default)]
6158pub struct IKinectManipulationCompletedEventArgsVtbl {
6159    pub QueryInterface: ::std::option::Option<
6160        unsafe extern "C" fn(
6161            This: *mut IKinectManipulationCompletedEventArgs,
6162            riid: *const IID,
6163            ppvObject: *mut *mut ::std::os::raw::c_void,
6164        ) -> HRESULT,
6165    >,
6166    pub AddRef: ::std::option::Option<
6167        unsafe extern "C" fn(This: *mut IKinectManipulationCompletedEventArgs) -> ULONG,
6168    >,
6169    pub Release: ::std::option::Option<
6170        unsafe extern "C" fn(This: *mut IKinectManipulationCompletedEventArgs) -> ULONG,
6171    >,
6172    pub get_PointerDeviceType: ::std::option::Option<
6173        unsafe extern "C" fn(
6174            This: *mut IKinectManipulationCompletedEventArgs,
6175            value: *mut PointerDeviceType,
6176        ) -> HRESULT,
6177    >,
6178    pub get_Position: ::std::option::Option<
6179        unsafe extern "C" fn(
6180            This: *mut IKinectManipulationCompletedEventArgs,
6181            value: *mut PointF,
6182        ) -> HRESULT,
6183    >,
6184    pub get_Cumulative: ::std::option::Option<
6185        unsafe extern "C" fn(
6186            This: *mut IKinectManipulationCompletedEventArgs,
6187            value: *mut KinectManipulationDelta,
6188        ) -> HRESULT,
6189    >,
6190    pub get_Velocities: ::std::option::Option<
6191        unsafe extern "C" fn(
6192            This: *mut IKinectManipulationCompletedEventArgs,
6193            value: *mut KinectManipulationVelocities,
6194        ) -> HRESULT,
6195    >,
6196}
6197#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6198const _: () = {
6199    ["Size of IKinectManipulationCompletedEventArgsVtbl"]
6200        [::std::mem::size_of::<IKinectManipulationCompletedEventArgsVtbl>() - 56usize];
6201    ["Alignment of IKinectManipulationCompletedEventArgsVtbl"]
6202        [::std::mem::align_of::<IKinectManipulationCompletedEventArgsVtbl>() - 8usize];
6203    ["Offset of field: IKinectManipulationCompletedEventArgsVtbl::QueryInterface"][::std::mem::offset_of!(
6204        IKinectManipulationCompletedEventArgsVtbl,
6205        QueryInterface
6206    ) - 0usize];
6207    ["Offset of field: IKinectManipulationCompletedEventArgsVtbl::AddRef"]
6208        [::std::mem::offset_of!(IKinectManipulationCompletedEventArgsVtbl, AddRef) - 8usize];
6209    ["Offset of field: IKinectManipulationCompletedEventArgsVtbl::Release"]
6210        [::std::mem::offset_of!(IKinectManipulationCompletedEventArgsVtbl, Release) - 16usize];
6211    ["Offset of field: IKinectManipulationCompletedEventArgsVtbl::get_PointerDeviceType"][::std::mem::offset_of!(
6212        IKinectManipulationCompletedEventArgsVtbl,
6213        get_PointerDeviceType
6214    )
6215        - 24usize];
6216    ["Offset of field: IKinectManipulationCompletedEventArgsVtbl::get_Position"]
6217        [::std::mem::offset_of!(IKinectManipulationCompletedEventArgsVtbl, get_Position) - 32usize];
6218    ["Offset of field: IKinectManipulationCompletedEventArgsVtbl::get_Cumulative"][::std::mem::offset_of!(
6219        IKinectManipulationCompletedEventArgsVtbl,
6220        get_Cumulative
6221    ) - 40usize];
6222    ["Offset of field: IKinectManipulationCompletedEventArgsVtbl::get_Velocities"][::std::mem::offset_of!(
6223        IKinectManipulationCompletedEventArgsVtbl,
6224        get_Velocities
6225    ) - 48usize];
6226};
6227#[repr(C)]
6228pub struct IKinectManipulationCompletedEventArgs {
6229    pub lpVtbl: *mut IKinectManipulationCompletedEventArgsVtbl,
6230}
6231#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6232const _: () = {
6233    ["Size of IKinectManipulationCompletedEventArgs"]
6234        [::std::mem::size_of::<IKinectManipulationCompletedEventArgs>() - 8usize];
6235    ["Alignment of IKinectManipulationCompletedEventArgs"]
6236        [::std::mem::align_of::<IKinectManipulationCompletedEventArgs>() - 8usize];
6237    ["Offset of field: IKinectManipulationCompletedEventArgs::lpVtbl"]
6238        [::std::mem::offset_of!(IKinectManipulationCompletedEventArgs, lpVtbl) - 0usize];
6239};
6240impl Default for IKinectManipulationCompletedEventArgs {
6241    fn default() -> Self {
6242        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6243        unsafe {
6244            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6245            s.assume_init()
6246        }
6247    }
6248}
6249unsafe extern "C" {
6250    pub static IID_IKinectManipulationInertiaStartingEventArgs: IID;
6251}
6252#[repr(C)]
6253#[derive(Debug, Default)]
6254pub struct IKinectManipulationInertiaStartingEventArgsVtbl {
6255    pub QueryInterface: ::std::option::Option<
6256        unsafe extern "C" fn(
6257            This: *mut IKinectManipulationInertiaStartingEventArgs,
6258            riid: *const IID,
6259            ppvObject: *mut *mut ::std::os::raw::c_void,
6260        ) -> HRESULT,
6261    >,
6262    pub AddRef: ::std::option::Option<
6263        unsafe extern "C" fn(This: *mut IKinectManipulationInertiaStartingEventArgs) -> ULONG,
6264    >,
6265    pub Release: ::std::option::Option<
6266        unsafe extern "C" fn(This: *mut IKinectManipulationInertiaStartingEventArgs) -> ULONG,
6267    >,
6268    pub get_PointerDeviceType: ::std::option::Option<
6269        unsafe extern "C" fn(
6270            This: *mut IKinectManipulationInertiaStartingEventArgs,
6271            value: *mut PointerDeviceType,
6272        ) -> HRESULT,
6273    >,
6274    pub get_Position: ::std::option::Option<
6275        unsafe extern "C" fn(
6276            This: *mut IKinectManipulationInertiaStartingEventArgs,
6277            value: *mut PointF,
6278        ) -> HRESULT,
6279    >,
6280    pub get_Delta: ::std::option::Option<
6281        unsafe extern "C" fn(
6282            This: *mut IKinectManipulationInertiaStartingEventArgs,
6283            value: *mut KinectManipulationDelta,
6284        ) -> HRESULT,
6285    >,
6286    pub get_Cumulative: ::std::option::Option<
6287        unsafe extern "C" fn(
6288            This: *mut IKinectManipulationInertiaStartingEventArgs,
6289            value: *mut KinectManipulationDelta,
6290        ) -> HRESULT,
6291    >,
6292    pub get_Velocities: ::std::option::Option<
6293        unsafe extern "C" fn(
6294            This: *mut IKinectManipulationInertiaStartingEventArgs,
6295            value: *mut KinectManipulationVelocities,
6296        ) -> HRESULT,
6297    >,
6298}
6299#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6300const _: () = {
6301    ["Size of IKinectManipulationInertiaStartingEventArgsVtbl"]
6302        [::std::mem::size_of::<IKinectManipulationInertiaStartingEventArgsVtbl>() - 64usize];
6303    ["Alignment of IKinectManipulationInertiaStartingEventArgsVtbl"]
6304        [::std::mem::align_of::<IKinectManipulationInertiaStartingEventArgsVtbl>() - 8usize];
6305    ["Offset of field: IKinectManipulationInertiaStartingEventArgsVtbl::QueryInterface"][::std::mem::offset_of!(
6306        IKinectManipulationInertiaStartingEventArgsVtbl,
6307        QueryInterface
6308    )
6309        - 0usize];
6310    ["Offset of field: IKinectManipulationInertiaStartingEventArgsVtbl::AddRef"]
6311        [::std::mem::offset_of!(IKinectManipulationInertiaStartingEventArgsVtbl, AddRef) - 8usize];
6312    ["Offset of field: IKinectManipulationInertiaStartingEventArgsVtbl::Release"][::std::mem::offset_of!(
6313        IKinectManipulationInertiaStartingEventArgsVtbl,
6314        Release
6315    ) - 16usize];
6316    ["Offset of field: IKinectManipulationInertiaStartingEventArgsVtbl::get_PointerDeviceType"][::std::mem::offset_of!(
6317        IKinectManipulationInertiaStartingEventArgsVtbl,
6318        get_PointerDeviceType
6319    )
6320        - 24usize];
6321    ["Offset of field: IKinectManipulationInertiaStartingEventArgsVtbl::get_Position"][::std::mem::offset_of!(
6322        IKinectManipulationInertiaStartingEventArgsVtbl,
6323        get_Position
6324    ) - 32usize];
6325    ["Offset of field: IKinectManipulationInertiaStartingEventArgsVtbl::get_Delta"][::std::mem::offset_of!(
6326        IKinectManipulationInertiaStartingEventArgsVtbl,
6327        get_Delta
6328    ) - 40usize];
6329    ["Offset of field: IKinectManipulationInertiaStartingEventArgsVtbl::get_Cumulative"][::std::mem::offset_of!(
6330        IKinectManipulationInertiaStartingEventArgsVtbl,
6331        get_Cumulative
6332    )
6333        - 48usize];
6334    ["Offset of field: IKinectManipulationInertiaStartingEventArgsVtbl::get_Velocities"][::std::mem::offset_of!(
6335        IKinectManipulationInertiaStartingEventArgsVtbl,
6336        get_Velocities
6337    )
6338        - 56usize];
6339};
6340#[repr(C)]
6341pub struct IKinectManipulationInertiaStartingEventArgs {
6342    pub lpVtbl: *mut IKinectManipulationInertiaStartingEventArgsVtbl,
6343}
6344#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6345const _: () = {
6346    ["Size of IKinectManipulationInertiaStartingEventArgs"]
6347        [::std::mem::size_of::<IKinectManipulationInertiaStartingEventArgs>() - 8usize];
6348    ["Alignment of IKinectManipulationInertiaStartingEventArgs"]
6349        [::std::mem::align_of::<IKinectManipulationInertiaStartingEventArgs>() - 8usize];
6350    ["Offset of field: IKinectManipulationInertiaStartingEventArgs::lpVtbl"]
6351        [::std::mem::offset_of!(IKinectManipulationInertiaStartingEventArgs, lpVtbl) - 0usize];
6352};
6353impl Default for IKinectManipulationInertiaStartingEventArgs {
6354    fn default() -> Self {
6355        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6356        unsafe {
6357            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6358            s.assume_init()
6359        }
6360    }
6361}
6362unsafe extern "C" {
6363    pub static IID_IKinectManipulationStartedEventArgs: IID;
6364}
6365#[repr(C)]
6366#[derive(Debug, Default)]
6367pub struct IKinectManipulationStartedEventArgsVtbl {
6368    pub QueryInterface: ::std::option::Option<
6369        unsafe extern "C" fn(
6370            This: *mut IKinectManipulationStartedEventArgs,
6371            riid: *const IID,
6372            ppvObject: *mut *mut ::std::os::raw::c_void,
6373        ) -> HRESULT,
6374    >,
6375    pub AddRef: ::std::option::Option<
6376        unsafe extern "C" fn(This: *mut IKinectManipulationStartedEventArgs) -> ULONG,
6377    >,
6378    pub Release: ::std::option::Option<
6379        unsafe extern "C" fn(This: *mut IKinectManipulationStartedEventArgs) -> ULONG,
6380    >,
6381    pub get_PointerDeviceType: ::std::option::Option<
6382        unsafe extern "C" fn(
6383            This: *mut IKinectManipulationStartedEventArgs,
6384            value: *mut PointerDeviceType,
6385        ) -> HRESULT,
6386    >,
6387    pub get_Position: ::std::option::Option<
6388        unsafe extern "C" fn(
6389            This: *mut IKinectManipulationStartedEventArgs,
6390            value: *mut PointF,
6391        ) -> HRESULT,
6392    >,
6393    pub get_Cumulative: ::std::option::Option<
6394        unsafe extern "C" fn(
6395            This: *mut IKinectManipulationStartedEventArgs,
6396            value: *mut KinectManipulationDelta,
6397        ) -> HRESULT,
6398    >,
6399}
6400#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6401const _: () = {
6402    ["Size of IKinectManipulationStartedEventArgsVtbl"]
6403        [::std::mem::size_of::<IKinectManipulationStartedEventArgsVtbl>() - 48usize];
6404    ["Alignment of IKinectManipulationStartedEventArgsVtbl"]
6405        [::std::mem::align_of::<IKinectManipulationStartedEventArgsVtbl>() - 8usize];
6406    ["Offset of field: IKinectManipulationStartedEventArgsVtbl::QueryInterface"]
6407        [::std::mem::offset_of!(IKinectManipulationStartedEventArgsVtbl, QueryInterface) - 0usize];
6408    ["Offset of field: IKinectManipulationStartedEventArgsVtbl::AddRef"]
6409        [::std::mem::offset_of!(IKinectManipulationStartedEventArgsVtbl, AddRef) - 8usize];
6410    ["Offset of field: IKinectManipulationStartedEventArgsVtbl::Release"]
6411        [::std::mem::offset_of!(IKinectManipulationStartedEventArgsVtbl, Release) - 16usize];
6412    ["Offset of field: IKinectManipulationStartedEventArgsVtbl::get_PointerDeviceType"][::std::mem::offset_of!(
6413        IKinectManipulationStartedEventArgsVtbl,
6414        get_PointerDeviceType
6415    )
6416        - 24usize];
6417    ["Offset of field: IKinectManipulationStartedEventArgsVtbl::get_Position"]
6418        [::std::mem::offset_of!(IKinectManipulationStartedEventArgsVtbl, get_Position) - 32usize];
6419    ["Offset of field: IKinectManipulationStartedEventArgsVtbl::get_Cumulative"]
6420        [::std::mem::offset_of!(IKinectManipulationStartedEventArgsVtbl, get_Cumulative) - 40usize];
6421};
6422#[repr(C)]
6423pub struct IKinectManipulationStartedEventArgs {
6424    pub lpVtbl: *mut IKinectManipulationStartedEventArgsVtbl,
6425}
6426#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6427const _: () = {
6428    ["Size of IKinectManipulationStartedEventArgs"]
6429        [::std::mem::size_of::<IKinectManipulationStartedEventArgs>() - 8usize];
6430    ["Alignment of IKinectManipulationStartedEventArgs"]
6431        [::std::mem::align_of::<IKinectManipulationStartedEventArgs>() - 8usize];
6432    ["Offset of field: IKinectManipulationStartedEventArgs::lpVtbl"]
6433        [::std::mem::offset_of!(IKinectManipulationStartedEventArgs, lpVtbl) - 0usize];
6434};
6435impl Default for IKinectManipulationStartedEventArgs {
6436    fn default() -> Self {
6437        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6438        unsafe {
6439            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6440            s.assume_init()
6441        }
6442    }
6443}
6444unsafe extern "C" {
6445    pub static IID_IKinectManipulationUpdatedEventArgs: IID;
6446}
6447#[repr(C)]
6448#[derive(Debug, Default)]
6449pub struct IKinectManipulationUpdatedEventArgsVtbl {
6450    pub QueryInterface: ::std::option::Option<
6451        unsafe extern "C" fn(
6452            This: *mut IKinectManipulationUpdatedEventArgs,
6453            riid: *const IID,
6454            ppvObject: *mut *mut ::std::os::raw::c_void,
6455        ) -> HRESULT,
6456    >,
6457    pub AddRef: ::std::option::Option<
6458        unsafe extern "C" fn(This: *mut IKinectManipulationUpdatedEventArgs) -> ULONG,
6459    >,
6460    pub Release: ::std::option::Option<
6461        unsafe extern "C" fn(This: *mut IKinectManipulationUpdatedEventArgs) -> ULONG,
6462    >,
6463    pub get_PointerDeviceType: ::std::option::Option<
6464        unsafe extern "C" fn(
6465            This: *mut IKinectManipulationUpdatedEventArgs,
6466            value: *mut PointerDeviceType,
6467        ) -> HRESULT,
6468    >,
6469    pub get_Position: ::std::option::Option<
6470        unsafe extern "C" fn(
6471            This: *mut IKinectManipulationUpdatedEventArgs,
6472            value: *mut PointF,
6473        ) -> HRESULT,
6474    >,
6475    pub get_Delta: ::std::option::Option<
6476        unsafe extern "C" fn(
6477            This: *mut IKinectManipulationUpdatedEventArgs,
6478            value: *mut KinectManipulationDelta,
6479        ) -> HRESULT,
6480    >,
6481    pub get_Cumulative: ::std::option::Option<
6482        unsafe extern "C" fn(
6483            This: *mut IKinectManipulationUpdatedEventArgs,
6484            value: *mut KinectManipulationDelta,
6485        ) -> HRESULT,
6486    >,
6487    pub get_Velocities: ::std::option::Option<
6488        unsafe extern "C" fn(
6489            This: *mut IKinectManipulationUpdatedEventArgs,
6490            value: *mut KinectManipulationVelocities,
6491        ) -> HRESULT,
6492    >,
6493}
6494#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6495const _: () = {
6496    ["Size of IKinectManipulationUpdatedEventArgsVtbl"]
6497        [::std::mem::size_of::<IKinectManipulationUpdatedEventArgsVtbl>() - 64usize];
6498    ["Alignment of IKinectManipulationUpdatedEventArgsVtbl"]
6499        [::std::mem::align_of::<IKinectManipulationUpdatedEventArgsVtbl>() - 8usize];
6500    ["Offset of field: IKinectManipulationUpdatedEventArgsVtbl::QueryInterface"]
6501        [::std::mem::offset_of!(IKinectManipulationUpdatedEventArgsVtbl, QueryInterface) - 0usize];
6502    ["Offset of field: IKinectManipulationUpdatedEventArgsVtbl::AddRef"]
6503        [::std::mem::offset_of!(IKinectManipulationUpdatedEventArgsVtbl, AddRef) - 8usize];
6504    ["Offset of field: IKinectManipulationUpdatedEventArgsVtbl::Release"]
6505        [::std::mem::offset_of!(IKinectManipulationUpdatedEventArgsVtbl, Release) - 16usize];
6506    ["Offset of field: IKinectManipulationUpdatedEventArgsVtbl::get_PointerDeviceType"][::std::mem::offset_of!(
6507        IKinectManipulationUpdatedEventArgsVtbl,
6508        get_PointerDeviceType
6509    )
6510        - 24usize];
6511    ["Offset of field: IKinectManipulationUpdatedEventArgsVtbl::get_Position"]
6512        [::std::mem::offset_of!(IKinectManipulationUpdatedEventArgsVtbl, get_Position) - 32usize];
6513    ["Offset of field: IKinectManipulationUpdatedEventArgsVtbl::get_Delta"]
6514        [::std::mem::offset_of!(IKinectManipulationUpdatedEventArgsVtbl, get_Delta) - 40usize];
6515    ["Offset of field: IKinectManipulationUpdatedEventArgsVtbl::get_Cumulative"]
6516        [::std::mem::offset_of!(IKinectManipulationUpdatedEventArgsVtbl, get_Cumulative) - 48usize];
6517    ["Offset of field: IKinectManipulationUpdatedEventArgsVtbl::get_Velocities"]
6518        [::std::mem::offset_of!(IKinectManipulationUpdatedEventArgsVtbl, get_Velocities) - 56usize];
6519};
6520#[repr(C)]
6521pub struct IKinectManipulationUpdatedEventArgs {
6522    pub lpVtbl: *mut IKinectManipulationUpdatedEventArgsVtbl,
6523}
6524#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6525const _: () = {
6526    ["Size of IKinectManipulationUpdatedEventArgs"]
6527        [::std::mem::size_of::<IKinectManipulationUpdatedEventArgs>() - 8usize];
6528    ["Alignment of IKinectManipulationUpdatedEventArgs"]
6529        [::std::mem::align_of::<IKinectManipulationUpdatedEventArgs>() - 8usize];
6530    ["Offset of field: IKinectManipulationUpdatedEventArgs::lpVtbl"]
6531        [::std::mem::offset_of!(IKinectManipulationUpdatedEventArgs, lpVtbl) - 0usize];
6532};
6533impl Default for IKinectManipulationUpdatedEventArgs {
6534    fn default() -> Self {
6535        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6536        unsafe {
6537            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6538            s.assume_init()
6539        }
6540    }
6541}
6542unsafe extern "C" {
6543    pub static IID_IKinectPointerDevice: IID;
6544}
6545#[repr(C)]
6546#[derive(Debug, Default)]
6547pub struct IKinectPointerDeviceVtbl {
6548    pub QueryInterface: ::std::option::Option<
6549        unsafe extern "C" fn(
6550            This: *mut IKinectPointerDevice,
6551            riid: *const IID,
6552            ppvObject: *mut *mut ::std::os::raw::c_void,
6553        ) -> HRESULT,
6554    >,
6555    pub AddRef:
6556        ::std::option::Option<unsafe extern "C" fn(This: *mut IKinectPointerDevice) -> ULONG>,
6557    pub Release:
6558        ::std::option::Option<unsafe extern "C" fn(This: *mut IKinectPointerDevice) -> ULONG>,
6559    pub get_PointerDeviceType: ::std::option::Option<
6560        unsafe extern "C" fn(
6561            This: *mut IKinectPointerDevice,
6562            value: *mut PointerDeviceType,
6563        ) -> HRESULT,
6564    >,
6565}
6566#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6567const _: () = {
6568    ["Size of IKinectPointerDeviceVtbl"]
6569        [::std::mem::size_of::<IKinectPointerDeviceVtbl>() - 32usize];
6570    ["Alignment of IKinectPointerDeviceVtbl"]
6571        [::std::mem::align_of::<IKinectPointerDeviceVtbl>() - 8usize];
6572    ["Offset of field: IKinectPointerDeviceVtbl::QueryInterface"]
6573        [::std::mem::offset_of!(IKinectPointerDeviceVtbl, QueryInterface) - 0usize];
6574    ["Offset of field: IKinectPointerDeviceVtbl::AddRef"]
6575        [::std::mem::offset_of!(IKinectPointerDeviceVtbl, AddRef) - 8usize];
6576    ["Offset of field: IKinectPointerDeviceVtbl::Release"]
6577        [::std::mem::offset_of!(IKinectPointerDeviceVtbl, Release) - 16usize];
6578    ["Offset of field: IKinectPointerDeviceVtbl::get_PointerDeviceType"]
6579        [::std::mem::offset_of!(IKinectPointerDeviceVtbl, get_PointerDeviceType) - 24usize];
6580};
6581#[repr(C)]
6582pub struct IKinectPointerDevice {
6583    pub lpVtbl: *mut IKinectPointerDeviceVtbl,
6584}
6585#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6586const _: () = {
6587    ["Size of IKinectPointerDevice"][::std::mem::size_of::<IKinectPointerDevice>() - 8usize];
6588    ["Alignment of IKinectPointerDevice"][::std::mem::align_of::<IKinectPointerDevice>() - 8usize];
6589    ["Offset of field: IKinectPointerDevice::lpVtbl"]
6590        [::std::mem::offset_of!(IKinectPointerDevice, lpVtbl) - 0usize];
6591};
6592impl Default for IKinectPointerDevice {
6593    fn default() -> Self {
6594        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6595        unsafe {
6596            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6597            s.assume_init()
6598        }
6599    }
6600}
6601unsafe extern "C" {
6602    pub static IID_IKinectPointerEventArgs: IID;
6603}
6604#[repr(C)]
6605#[derive(Debug, Default)]
6606pub struct IKinectPointerEventArgsVtbl {
6607    pub QueryInterface: ::std::option::Option<
6608        unsafe extern "C" fn(
6609            This: *mut IKinectPointerEventArgs,
6610            riid: *const IID,
6611            ppvObject: *mut *mut ::std::os::raw::c_void,
6612        ) -> HRESULT,
6613    >,
6614    pub AddRef:
6615        ::std::option::Option<unsafe extern "C" fn(This: *mut IKinectPointerEventArgs) -> ULONG>,
6616    pub Release:
6617        ::std::option::Option<unsafe extern "C" fn(This: *mut IKinectPointerEventArgs) -> ULONG>,
6618    pub get_Handled: ::std::option::Option<
6619        unsafe extern "C" fn(This: *mut IKinectPointerEventArgs, handled: *mut BOOLEAN) -> HRESULT,
6620    >,
6621    pub put_Handled: ::std::option::Option<
6622        unsafe extern "C" fn(This: *mut IKinectPointerEventArgs, handled: BOOLEAN) -> HRESULT,
6623    >,
6624    pub get_CurrentPoint: ::std::option::Option<
6625        unsafe extern "C" fn(
6626            This: *mut IKinectPointerEventArgs,
6627            pointer: *mut *mut IKinectPointerPoint,
6628        ) -> HRESULT,
6629    >,
6630}
6631#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6632const _: () = {
6633    ["Size of IKinectPointerEventArgsVtbl"]
6634        [::std::mem::size_of::<IKinectPointerEventArgsVtbl>() - 48usize];
6635    ["Alignment of IKinectPointerEventArgsVtbl"]
6636        [::std::mem::align_of::<IKinectPointerEventArgsVtbl>() - 8usize];
6637    ["Offset of field: IKinectPointerEventArgsVtbl::QueryInterface"]
6638        [::std::mem::offset_of!(IKinectPointerEventArgsVtbl, QueryInterface) - 0usize];
6639    ["Offset of field: IKinectPointerEventArgsVtbl::AddRef"]
6640        [::std::mem::offset_of!(IKinectPointerEventArgsVtbl, AddRef) - 8usize];
6641    ["Offset of field: IKinectPointerEventArgsVtbl::Release"]
6642        [::std::mem::offset_of!(IKinectPointerEventArgsVtbl, Release) - 16usize];
6643    ["Offset of field: IKinectPointerEventArgsVtbl::get_Handled"]
6644        [::std::mem::offset_of!(IKinectPointerEventArgsVtbl, get_Handled) - 24usize];
6645    ["Offset of field: IKinectPointerEventArgsVtbl::put_Handled"]
6646        [::std::mem::offset_of!(IKinectPointerEventArgsVtbl, put_Handled) - 32usize];
6647    ["Offset of field: IKinectPointerEventArgsVtbl::get_CurrentPoint"]
6648        [::std::mem::offset_of!(IKinectPointerEventArgsVtbl, get_CurrentPoint) - 40usize];
6649};
6650#[repr(C)]
6651pub struct IKinectPointerEventArgs {
6652    pub lpVtbl: *mut IKinectPointerEventArgsVtbl,
6653}
6654#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6655const _: () = {
6656    ["Size of IKinectPointerEventArgs"][::std::mem::size_of::<IKinectPointerEventArgs>() - 8usize];
6657    ["Alignment of IKinectPointerEventArgs"]
6658        [::std::mem::align_of::<IKinectPointerEventArgs>() - 8usize];
6659    ["Offset of field: IKinectPointerEventArgs::lpVtbl"]
6660        [::std::mem::offset_of!(IKinectPointerEventArgs, lpVtbl) - 0usize];
6661};
6662impl Default for IKinectPointerEventArgs {
6663    fn default() -> Self {
6664        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6665        unsafe {
6666            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6667            s.assume_init()
6668        }
6669    }
6670}
6671unsafe extern "C" {
6672    pub static IID_IKinectPointerPoint: IID;
6673}
6674#[repr(C)]
6675#[derive(Debug, Default)]
6676pub struct IKinectPointerPointVtbl {
6677    pub QueryInterface: ::std::option::Option<
6678        unsafe extern "C" fn(
6679            This: *mut IKinectPointerPoint,
6680            riid: *const IID,
6681            ppvObject: *mut *mut ::std::os::raw::c_void,
6682        ) -> HRESULT,
6683    >,
6684    pub AddRef:
6685        ::std::option::Option<unsafe extern "C" fn(This: *mut IKinectPointerPoint) -> ULONG>,
6686    pub Release:
6687        ::std::option::Option<unsafe extern "C" fn(This: *mut IKinectPointerPoint) -> ULONG>,
6688    pub get_PointerDevice: ::std::option::Option<
6689        unsafe extern "C" fn(
6690            This: *mut IKinectPointerPoint,
6691            ppPointerDevice: *mut *mut IKinectPointerDevice,
6692        ) -> HRESULT,
6693    >,
6694    pub get_PointerId: ::std::option::Option<
6695        unsafe extern "C" fn(This: *mut IKinectPointerPoint, pointerId: *mut UINT) -> HRESULT,
6696    >,
6697    pub get_Position: ::std::option::Option<
6698        unsafe extern "C" fn(This: *mut IKinectPointerPoint, position: *mut PointF) -> HRESULT,
6699    >,
6700    pub get_RawPosition: ::std::option::Option<
6701        unsafe extern "C" fn(This: *mut IKinectPointerPoint, rawPosition: *mut PointF) -> HRESULT,
6702    >,
6703    pub get_Timestamp: ::std::option::Option<
6704        unsafe extern "C" fn(This: *mut IKinectPointerPoint, timestamp: *mut UINT64) -> HRESULT,
6705    >,
6706    pub get_Properties: ::std::option::Option<
6707        unsafe extern "C" fn(
6708            This: *mut IKinectPointerPoint,
6709            ppProperties: *mut *mut IKinectPointerPointProperties,
6710        ) -> HRESULT,
6711    >,
6712}
6713#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6714const _: () = {
6715    ["Size of IKinectPointerPointVtbl"][::std::mem::size_of::<IKinectPointerPointVtbl>() - 72usize];
6716    ["Alignment of IKinectPointerPointVtbl"]
6717        [::std::mem::align_of::<IKinectPointerPointVtbl>() - 8usize];
6718    ["Offset of field: IKinectPointerPointVtbl::QueryInterface"]
6719        [::std::mem::offset_of!(IKinectPointerPointVtbl, QueryInterface) - 0usize];
6720    ["Offset of field: IKinectPointerPointVtbl::AddRef"]
6721        [::std::mem::offset_of!(IKinectPointerPointVtbl, AddRef) - 8usize];
6722    ["Offset of field: IKinectPointerPointVtbl::Release"]
6723        [::std::mem::offset_of!(IKinectPointerPointVtbl, Release) - 16usize];
6724    ["Offset of field: IKinectPointerPointVtbl::get_PointerDevice"]
6725        [::std::mem::offset_of!(IKinectPointerPointVtbl, get_PointerDevice) - 24usize];
6726    ["Offset of field: IKinectPointerPointVtbl::get_PointerId"]
6727        [::std::mem::offset_of!(IKinectPointerPointVtbl, get_PointerId) - 32usize];
6728    ["Offset of field: IKinectPointerPointVtbl::get_Position"]
6729        [::std::mem::offset_of!(IKinectPointerPointVtbl, get_Position) - 40usize];
6730    ["Offset of field: IKinectPointerPointVtbl::get_RawPosition"]
6731        [::std::mem::offset_of!(IKinectPointerPointVtbl, get_RawPosition) - 48usize];
6732    ["Offset of field: IKinectPointerPointVtbl::get_Timestamp"]
6733        [::std::mem::offset_of!(IKinectPointerPointVtbl, get_Timestamp) - 56usize];
6734    ["Offset of field: IKinectPointerPointVtbl::get_Properties"]
6735        [::std::mem::offset_of!(IKinectPointerPointVtbl, get_Properties) - 64usize];
6736};
6737#[repr(C)]
6738pub struct IKinectPointerPoint {
6739    pub lpVtbl: *mut IKinectPointerPointVtbl,
6740}
6741#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6742const _: () = {
6743    ["Size of IKinectPointerPoint"][::std::mem::size_of::<IKinectPointerPoint>() - 8usize];
6744    ["Alignment of IKinectPointerPoint"][::std::mem::align_of::<IKinectPointerPoint>() - 8usize];
6745    ["Offset of field: IKinectPointerPoint::lpVtbl"]
6746        [::std::mem::offset_of!(IKinectPointerPoint, lpVtbl) - 0usize];
6747};
6748impl Default for IKinectPointerPoint {
6749    fn default() -> Self {
6750        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6751        unsafe {
6752            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6753            s.assume_init()
6754        }
6755    }
6756}
6757unsafe extern "C" {
6758    pub static IID_IKinectPointerPointProperties: IID;
6759}
6760#[repr(C)]
6761#[derive(Debug, Default)]
6762pub struct IKinectPointerPointPropertiesVtbl {
6763    pub QueryInterface: ::std::option::Option<
6764        unsafe extern "C" fn(
6765            This: *mut IKinectPointerPointProperties,
6766            riid: *const IID,
6767            ppvObject: *mut *mut ::std::os::raw::c_void,
6768        ) -> HRESULT,
6769    >,
6770    pub AddRef: ::std::option::Option<
6771        unsafe extern "C" fn(This: *mut IKinectPointerPointProperties) -> ULONG,
6772    >,
6773    pub Release: ::std::option::Option<
6774        unsafe extern "C" fn(This: *mut IKinectPointerPointProperties) -> ULONG,
6775    >,
6776    pub get_IsPrimary: ::std::option::Option<
6777        unsafe extern "C" fn(
6778            This: *mut IKinectPointerPointProperties,
6779            isPrimary: *mut BOOLEAN,
6780        ) -> HRESULT,
6781    >,
6782    pub get_IsInRange: ::std::option::Option<
6783        unsafe extern "C" fn(
6784            This: *mut IKinectPointerPointProperties,
6785            isInRange: *mut BOOLEAN,
6786        ) -> HRESULT,
6787    >,
6788    pub get_IsEngaged: ::std::option::Option<
6789        unsafe extern "C" fn(
6790            This: *mut IKinectPointerPointProperties,
6791            isEngaged: *mut BOOLEAN,
6792        ) -> HRESULT,
6793    >,
6794    pub get_BodyTrackingId: ::std::option::Option<
6795        unsafe extern "C" fn(
6796            This: *mut IKinectPointerPointProperties,
6797            bodyTrackingId: *mut UINT64,
6798        ) -> HRESULT,
6799    >,
6800    pub get_HandType: ::std::option::Option<
6801        unsafe extern "C" fn(
6802            This: *mut IKinectPointerPointProperties,
6803            handType: *mut HandType,
6804        ) -> HRESULT,
6805    >,
6806    pub get_HandReachExtent: ::std::option::Option<
6807        unsafe extern "C" fn(
6808            This: *mut IKinectPointerPointProperties,
6809            handReachExtent: *mut f32,
6810        ) -> HRESULT,
6811    >,
6812    pub get_BodyTimeCounter: ::std::option::Option<
6813        unsafe extern "C" fn(
6814            This: *mut IKinectPointerPointProperties,
6815            bodyTimeCounter: *mut TIMESPAN,
6816        ) -> HRESULT,
6817    >,
6818    pub get_HandRotation: ::std::option::Option<
6819        unsafe extern "C" fn(
6820            This: *mut IKinectPointerPointProperties,
6821            handRotation: *mut f32,
6822        ) -> HRESULT,
6823    >,
6824    pub get_PressExtent: ::std::option::Option<
6825        unsafe extern "C" fn(
6826            This: *mut IKinectPointerPointProperties,
6827            pressExtent: *mut f32,
6828        ) -> HRESULT,
6829    >,
6830    pub get_UnclampedPosition: ::std::option::Option<
6831        unsafe extern "C" fn(
6832            This: *mut IKinectPointerPointProperties,
6833            unclampedPosition: *mut PointF,
6834        ) -> HRESULT,
6835    >,
6836}
6837#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6838const _: () = {
6839    ["Size of IKinectPointerPointPropertiesVtbl"]
6840        [::std::mem::size_of::<IKinectPointerPointPropertiesVtbl>() - 104usize];
6841    ["Alignment of IKinectPointerPointPropertiesVtbl"]
6842        [::std::mem::align_of::<IKinectPointerPointPropertiesVtbl>() - 8usize];
6843    ["Offset of field: IKinectPointerPointPropertiesVtbl::QueryInterface"]
6844        [::std::mem::offset_of!(IKinectPointerPointPropertiesVtbl, QueryInterface) - 0usize];
6845    ["Offset of field: IKinectPointerPointPropertiesVtbl::AddRef"]
6846        [::std::mem::offset_of!(IKinectPointerPointPropertiesVtbl, AddRef) - 8usize];
6847    ["Offset of field: IKinectPointerPointPropertiesVtbl::Release"]
6848        [::std::mem::offset_of!(IKinectPointerPointPropertiesVtbl, Release) - 16usize];
6849    ["Offset of field: IKinectPointerPointPropertiesVtbl::get_IsPrimary"]
6850        [::std::mem::offset_of!(IKinectPointerPointPropertiesVtbl, get_IsPrimary) - 24usize];
6851    ["Offset of field: IKinectPointerPointPropertiesVtbl::get_IsInRange"]
6852        [::std::mem::offset_of!(IKinectPointerPointPropertiesVtbl, get_IsInRange) - 32usize];
6853    ["Offset of field: IKinectPointerPointPropertiesVtbl::get_IsEngaged"]
6854        [::std::mem::offset_of!(IKinectPointerPointPropertiesVtbl, get_IsEngaged) - 40usize];
6855    ["Offset of field: IKinectPointerPointPropertiesVtbl::get_BodyTrackingId"]
6856        [::std::mem::offset_of!(IKinectPointerPointPropertiesVtbl, get_BodyTrackingId) - 48usize];
6857    ["Offset of field: IKinectPointerPointPropertiesVtbl::get_HandType"]
6858        [::std::mem::offset_of!(IKinectPointerPointPropertiesVtbl, get_HandType) - 56usize];
6859    ["Offset of field: IKinectPointerPointPropertiesVtbl::get_HandReachExtent"]
6860        [::std::mem::offset_of!(IKinectPointerPointPropertiesVtbl, get_HandReachExtent) - 64usize];
6861    ["Offset of field: IKinectPointerPointPropertiesVtbl::get_BodyTimeCounter"]
6862        [::std::mem::offset_of!(IKinectPointerPointPropertiesVtbl, get_BodyTimeCounter) - 72usize];
6863    ["Offset of field: IKinectPointerPointPropertiesVtbl::get_HandRotation"]
6864        [::std::mem::offset_of!(IKinectPointerPointPropertiesVtbl, get_HandRotation) - 80usize];
6865    ["Offset of field: IKinectPointerPointPropertiesVtbl::get_PressExtent"]
6866        [::std::mem::offset_of!(IKinectPointerPointPropertiesVtbl, get_PressExtent) - 88usize];
6867    ["Offset of field: IKinectPointerPointPropertiesVtbl::get_UnclampedPosition"][::std::mem::offset_of!(
6868        IKinectPointerPointPropertiesVtbl,
6869        get_UnclampedPosition
6870    ) - 96usize];
6871};
6872#[repr(C)]
6873pub struct IKinectPointerPointProperties {
6874    pub lpVtbl: *mut IKinectPointerPointPropertiesVtbl,
6875}
6876#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6877const _: () = {
6878    ["Size of IKinectPointerPointProperties"]
6879        [::std::mem::size_of::<IKinectPointerPointProperties>() - 8usize];
6880    ["Alignment of IKinectPointerPointProperties"]
6881        [::std::mem::align_of::<IKinectPointerPointProperties>() - 8usize];
6882    ["Offset of field: IKinectPointerPointProperties::lpVtbl"]
6883        [::std::mem::offset_of!(IKinectPointerPointProperties, lpVtbl) - 0usize];
6884};
6885impl Default for IKinectPointerPointProperties {
6886    fn default() -> Self {
6887        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6888        unsafe {
6889            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6890            s.assume_init()
6891        }
6892    }
6893}
6894unsafe extern "C" {
6895    pub static IID_IKinectPressingCompletedEventArgs: IID;
6896}
6897#[repr(C)]
6898#[derive(Debug, Default)]
6899pub struct IKinectPressingCompletedEventArgsVtbl {
6900    pub QueryInterface: ::std::option::Option<
6901        unsafe extern "C" fn(
6902            This: *mut IKinectPressingCompletedEventArgs,
6903            riid: *const IID,
6904            ppvObject: *mut *mut ::std::os::raw::c_void,
6905        ) -> HRESULT,
6906    >,
6907    pub AddRef: ::std::option::Option<
6908        unsafe extern "C" fn(This: *mut IKinectPressingCompletedEventArgs) -> ULONG,
6909    >,
6910    pub Release: ::std::option::Option<
6911        unsafe extern "C" fn(This: *mut IKinectPressingCompletedEventArgs) -> ULONG,
6912    >,
6913    pub get_Position: ::std::option::Option<
6914        unsafe extern "C" fn(
6915            This: *mut IKinectPressingCompletedEventArgs,
6916            value: *mut PointF,
6917        ) -> HRESULT,
6918    >,
6919}
6920#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6921const _: () = {
6922    ["Size of IKinectPressingCompletedEventArgsVtbl"]
6923        [::std::mem::size_of::<IKinectPressingCompletedEventArgsVtbl>() - 32usize];
6924    ["Alignment of IKinectPressingCompletedEventArgsVtbl"]
6925        [::std::mem::align_of::<IKinectPressingCompletedEventArgsVtbl>() - 8usize];
6926    ["Offset of field: IKinectPressingCompletedEventArgsVtbl::QueryInterface"]
6927        [::std::mem::offset_of!(IKinectPressingCompletedEventArgsVtbl, QueryInterface) - 0usize];
6928    ["Offset of field: IKinectPressingCompletedEventArgsVtbl::AddRef"]
6929        [::std::mem::offset_of!(IKinectPressingCompletedEventArgsVtbl, AddRef) - 8usize];
6930    ["Offset of field: IKinectPressingCompletedEventArgsVtbl::Release"]
6931        [::std::mem::offset_of!(IKinectPressingCompletedEventArgsVtbl, Release) - 16usize];
6932    ["Offset of field: IKinectPressingCompletedEventArgsVtbl::get_Position"]
6933        [::std::mem::offset_of!(IKinectPressingCompletedEventArgsVtbl, get_Position) - 24usize];
6934};
6935#[repr(C)]
6936pub struct IKinectPressingCompletedEventArgs {
6937    pub lpVtbl: *mut IKinectPressingCompletedEventArgsVtbl,
6938}
6939#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6940const _: () = {
6941    ["Size of IKinectPressingCompletedEventArgs"]
6942        [::std::mem::size_of::<IKinectPressingCompletedEventArgs>() - 8usize];
6943    ["Alignment of IKinectPressingCompletedEventArgs"]
6944        [::std::mem::align_of::<IKinectPressingCompletedEventArgs>() - 8usize];
6945    ["Offset of field: IKinectPressingCompletedEventArgs::lpVtbl"]
6946        [::std::mem::offset_of!(IKinectPressingCompletedEventArgs, lpVtbl) - 0usize];
6947};
6948impl Default for IKinectPressingCompletedEventArgs {
6949    fn default() -> Self {
6950        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6951        unsafe {
6952            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6953            s.assume_init()
6954        }
6955    }
6956}
6957unsafe extern "C" {
6958    pub static IID_IKinectPressingStartedEventArgs: IID;
6959}
6960#[repr(C)]
6961#[derive(Debug, Default)]
6962pub struct IKinectPressingStartedEventArgsVtbl {
6963    pub QueryInterface: ::std::option::Option<
6964        unsafe extern "C" fn(
6965            This: *mut IKinectPressingStartedEventArgs,
6966            riid: *const IID,
6967            ppvObject: *mut *mut ::std::os::raw::c_void,
6968        ) -> HRESULT,
6969    >,
6970    pub AddRef: ::std::option::Option<
6971        unsafe extern "C" fn(This: *mut IKinectPressingStartedEventArgs) -> ULONG,
6972    >,
6973    pub Release: ::std::option::Option<
6974        unsafe extern "C" fn(This: *mut IKinectPressingStartedEventArgs) -> ULONG,
6975    >,
6976    pub get_Position: ::std::option::Option<
6977        unsafe extern "C" fn(
6978            This: *mut IKinectPressingStartedEventArgs,
6979            value: *mut PointF,
6980        ) -> HRESULT,
6981    >,
6982}
6983#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6984const _: () = {
6985    ["Size of IKinectPressingStartedEventArgsVtbl"]
6986        [::std::mem::size_of::<IKinectPressingStartedEventArgsVtbl>() - 32usize];
6987    ["Alignment of IKinectPressingStartedEventArgsVtbl"]
6988        [::std::mem::align_of::<IKinectPressingStartedEventArgsVtbl>() - 8usize];
6989    ["Offset of field: IKinectPressingStartedEventArgsVtbl::QueryInterface"]
6990        [::std::mem::offset_of!(IKinectPressingStartedEventArgsVtbl, QueryInterface) - 0usize];
6991    ["Offset of field: IKinectPressingStartedEventArgsVtbl::AddRef"]
6992        [::std::mem::offset_of!(IKinectPressingStartedEventArgsVtbl, AddRef) - 8usize];
6993    ["Offset of field: IKinectPressingStartedEventArgsVtbl::Release"]
6994        [::std::mem::offset_of!(IKinectPressingStartedEventArgsVtbl, Release) - 16usize];
6995    ["Offset of field: IKinectPressingStartedEventArgsVtbl::get_Position"]
6996        [::std::mem::offset_of!(IKinectPressingStartedEventArgsVtbl, get_Position) - 24usize];
6997};
6998#[repr(C)]
6999pub struct IKinectPressingStartedEventArgs {
7000    pub lpVtbl: *mut IKinectPressingStartedEventArgsVtbl,
7001}
7002#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7003const _: () = {
7004    ["Size of IKinectPressingStartedEventArgs"]
7005        [::std::mem::size_of::<IKinectPressingStartedEventArgs>() - 8usize];
7006    ["Alignment of IKinectPressingStartedEventArgs"]
7007        [::std::mem::align_of::<IKinectPressingStartedEventArgs>() - 8usize];
7008    ["Offset of field: IKinectPressingStartedEventArgs::lpVtbl"]
7009        [::std::mem::offset_of!(IKinectPressingStartedEventArgs, lpVtbl) - 0usize];
7010};
7011impl Default for IKinectPressingStartedEventArgs {
7012    fn default() -> Self {
7013        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7014        unsafe {
7015            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7016            s.assume_init()
7017        }
7018    }
7019}
7020unsafe extern "C" {
7021    pub static IID_IKinectPressingUpdatedEventArgs: IID;
7022}
7023#[repr(C)]
7024#[derive(Debug, Default)]
7025pub struct IKinectPressingUpdatedEventArgsVtbl {
7026    pub QueryInterface: ::std::option::Option<
7027        unsafe extern "C" fn(
7028            This: *mut IKinectPressingUpdatedEventArgs,
7029            riid: *const IID,
7030            ppvObject: *mut *mut ::std::os::raw::c_void,
7031        ) -> HRESULT,
7032    >,
7033    pub AddRef: ::std::option::Option<
7034        unsafe extern "C" fn(This: *mut IKinectPressingUpdatedEventArgs) -> ULONG,
7035    >,
7036    pub Release: ::std::option::Option<
7037        unsafe extern "C" fn(This: *mut IKinectPressingUpdatedEventArgs) -> ULONG,
7038    >,
7039    pub get_Position: ::std::option::Option<
7040        unsafe extern "C" fn(
7041            This: *mut IKinectPressingUpdatedEventArgs,
7042            value: *mut PointF,
7043        ) -> HRESULT,
7044    >,
7045    pub get_PressExtent: ::std::option::Option<
7046        unsafe extern "C" fn(
7047            This: *mut IKinectPressingUpdatedEventArgs,
7048            value: *mut f32,
7049        ) -> HRESULT,
7050    >,
7051    pub get_HoldProgress: ::std::option::Option<
7052        unsafe extern "C" fn(
7053            This: *mut IKinectPressingUpdatedEventArgs,
7054            value: *mut f32,
7055        ) -> HRESULT,
7056    >,
7057}
7058#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7059const _: () = {
7060    ["Size of IKinectPressingUpdatedEventArgsVtbl"]
7061        [::std::mem::size_of::<IKinectPressingUpdatedEventArgsVtbl>() - 48usize];
7062    ["Alignment of IKinectPressingUpdatedEventArgsVtbl"]
7063        [::std::mem::align_of::<IKinectPressingUpdatedEventArgsVtbl>() - 8usize];
7064    ["Offset of field: IKinectPressingUpdatedEventArgsVtbl::QueryInterface"]
7065        [::std::mem::offset_of!(IKinectPressingUpdatedEventArgsVtbl, QueryInterface) - 0usize];
7066    ["Offset of field: IKinectPressingUpdatedEventArgsVtbl::AddRef"]
7067        [::std::mem::offset_of!(IKinectPressingUpdatedEventArgsVtbl, AddRef) - 8usize];
7068    ["Offset of field: IKinectPressingUpdatedEventArgsVtbl::Release"]
7069        [::std::mem::offset_of!(IKinectPressingUpdatedEventArgsVtbl, Release) - 16usize];
7070    ["Offset of field: IKinectPressingUpdatedEventArgsVtbl::get_Position"]
7071        [::std::mem::offset_of!(IKinectPressingUpdatedEventArgsVtbl, get_Position) - 24usize];
7072    ["Offset of field: IKinectPressingUpdatedEventArgsVtbl::get_PressExtent"]
7073        [::std::mem::offset_of!(IKinectPressingUpdatedEventArgsVtbl, get_PressExtent) - 32usize];
7074    ["Offset of field: IKinectPressingUpdatedEventArgsVtbl::get_HoldProgress"]
7075        [::std::mem::offset_of!(IKinectPressingUpdatedEventArgsVtbl, get_HoldProgress) - 40usize];
7076};
7077#[repr(C)]
7078pub struct IKinectPressingUpdatedEventArgs {
7079    pub lpVtbl: *mut IKinectPressingUpdatedEventArgsVtbl,
7080}
7081#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7082const _: () = {
7083    ["Size of IKinectPressingUpdatedEventArgs"]
7084        [::std::mem::size_of::<IKinectPressingUpdatedEventArgs>() - 8usize];
7085    ["Alignment of IKinectPressingUpdatedEventArgs"]
7086        [::std::mem::align_of::<IKinectPressingUpdatedEventArgs>() - 8usize];
7087    ["Offset of field: IKinectPressingUpdatedEventArgs::lpVtbl"]
7088        [::std::mem::offset_of!(IKinectPressingUpdatedEventArgs, lpVtbl) - 0usize];
7089};
7090impl Default for IKinectPressingUpdatedEventArgs {
7091    fn default() -> Self {
7092        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7093        unsafe {
7094            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7095            s.assume_init()
7096        }
7097    }
7098}
7099unsafe extern "C" {
7100    pub static IID_IKinectTappedEventArgs: IID;
7101}
7102#[repr(C)]
7103#[derive(Debug, Default)]
7104pub struct IKinectTappedEventArgsVtbl {
7105    pub QueryInterface: ::std::option::Option<
7106        unsafe extern "C" fn(
7107            This: *mut IKinectTappedEventArgs,
7108            riid: *const IID,
7109            ppvObject: *mut *mut ::std::os::raw::c_void,
7110        ) -> HRESULT,
7111    >,
7112    pub AddRef:
7113        ::std::option::Option<unsafe extern "C" fn(This: *mut IKinectTappedEventArgs) -> ULONG>,
7114    pub Release:
7115        ::std::option::Option<unsafe extern "C" fn(This: *mut IKinectTappedEventArgs) -> ULONG>,
7116    pub get_PointerDeviceType: ::std::option::Option<
7117        unsafe extern "C" fn(
7118            This: *mut IKinectTappedEventArgs,
7119            value: *mut PointerDeviceType,
7120        ) -> HRESULT,
7121    >,
7122    pub get_Position: ::std::option::Option<
7123        unsafe extern "C" fn(This: *mut IKinectTappedEventArgs, value: *mut PointF) -> HRESULT,
7124    >,
7125    pub get_TapCount: ::std::option::Option<
7126        unsafe extern "C" fn(This: *mut IKinectTappedEventArgs, value: *mut UINT) -> HRESULT,
7127    >,
7128}
7129#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7130const _: () = {
7131    ["Size of IKinectTappedEventArgsVtbl"]
7132        [::std::mem::size_of::<IKinectTappedEventArgsVtbl>() - 48usize];
7133    ["Alignment of IKinectTappedEventArgsVtbl"]
7134        [::std::mem::align_of::<IKinectTappedEventArgsVtbl>() - 8usize];
7135    ["Offset of field: IKinectTappedEventArgsVtbl::QueryInterface"]
7136        [::std::mem::offset_of!(IKinectTappedEventArgsVtbl, QueryInterface) - 0usize];
7137    ["Offset of field: IKinectTappedEventArgsVtbl::AddRef"]
7138        [::std::mem::offset_of!(IKinectTappedEventArgsVtbl, AddRef) - 8usize];
7139    ["Offset of field: IKinectTappedEventArgsVtbl::Release"]
7140        [::std::mem::offset_of!(IKinectTappedEventArgsVtbl, Release) - 16usize];
7141    ["Offset of field: IKinectTappedEventArgsVtbl::get_PointerDeviceType"]
7142        [::std::mem::offset_of!(IKinectTappedEventArgsVtbl, get_PointerDeviceType) - 24usize];
7143    ["Offset of field: IKinectTappedEventArgsVtbl::get_Position"]
7144        [::std::mem::offset_of!(IKinectTappedEventArgsVtbl, get_Position) - 32usize];
7145    ["Offset of field: IKinectTappedEventArgsVtbl::get_TapCount"]
7146        [::std::mem::offset_of!(IKinectTappedEventArgsVtbl, get_TapCount) - 40usize];
7147};
7148#[repr(C)]
7149pub struct IKinectTappedEventArgs {
7150    pub lpVtbl: *mut IKinectTappedEventArgsVtbl,
7151}
7152#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7153const _: () = {
7154    ["Size of IKinectTappedEventArgs"][::std::mem::size_of::<IKinectTappedEventArgs>() - 8usize];
7155    ["Alignment of IKinectTappedEventArgs"]
7156        [::std::mem::align_of::<IKinectTappedEventArgs>() - 8usize];
7157    ["Offset of field: IKinectTappedEventArgs::lpVtbl"]
7158        [::std::mem::offset_of!(IKinectTappedEventArgs, lpVtbl) - 0usize];
7159};
7160impl Default for IKinectTappedEventArgs {
7161    fn default() -> Self {
7162        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7163        unsafe {
7164            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7165            s.assume_init()
7166        }
7167    }
7168}
7169unsafe extern "C" {
7170    pub fn GetKinectCoreWindowForCurrentThread(
7171        ppKinectCoreWindow: *mut *mut IKinectCoreWindow,
7172    ) -> HRESULT;
7173}
7174unsafe extern "C" {
7175    pub fn CreateKinectGestureRecognizer(
7176        ppKinectGestureRecognizer: *mut *mut IKinectGestureRecognizer,
7177    ) -> HRESULT;
7178}
7179unsafe extern "C" {
7180    pub fn OverrideKinectInteractionMode(mode: KinectInteractionMode) -> HRESULT;
7181}
7182unsafe extern "C" {
7183    pub fn SetKinectOnePersonSystemEngagement() -> HRESULT;
7184}
7185unsafe extern "C" {
7186    pub fn SetKinectTwoPersonSystemEngagement() -> HRESULT;
7187}
7188unsafe extern "C" {
7189    pub fn SetKinectOnePersonManualEngagement(pBodyHandPair: *mut IBodyHandPair) -> HRESULT;
7190}
7191unsafe extern "C" {
7192    pub fn SetKinectTwoPersonManualEngagement(
7193        pBodyHandPair1: *mut IBodyHandPair,
7194        pBodyHandPair2: *mut IBodyHandPair,
7195    ) -> HRESULT;
7196}
7197unsafe extern "C" {
7198    pub fn GetKinectEngagementMode(pMode: *mut KinectEngagementMode) -> HRESULT;
7199}
7200unsafe extern "C" {
7201    pub fn GetKinectManualEngagedHandCount(pManualEngagedHandCount: *mut UINT) -> HRESULT;
7202}
7203unsafe extern "C" {
7204    pub fn GetKinectManualEngagedHand(
7205        manualEngagedHandIndex: UINT,
7206        ppManualEngagedHand: *mut *mut IBodyHandPair,
7207    ) -> HRESULT;
7208}
7209unsafe extern "C" {
7210    pub fn GetMaximumKinectEngagedPersonCount(
7211        pMaximumKinectEngagedPersonCount: *mut UINT,
7212    ) -> HRESULT;
7213}
7214unsafe extern "C" {
7215    pub fn CreateBodyHandPair(
7216        bodyTrackingId: UINT64,
7217        handType: HandType,
7218        ppBodyHandPair: *mut *mut IBodyHandPair,
7219    ) -> HRESULT;
7220}
7221unsafe extern "C" {
7222    pub static mut __MIDL_itf_Kinect2ECOM_0000_0070_v0_0_c_ifspec: RPC_IF_HANDLE;
7223}
7224unsafe extern "C" {
7225    pub static mut __MIDL_itf_Kinect2ECOM_0000_0070_v0_0_s_ifspec: RPC_IF_HANDLE;
7226}