1 #![allow(non_snake_case, non_camel_case_types, non_upper_case_globals, clashing_extern_declarations, clippy::all)]
2 #[link(name = "windows")]
3 extern "system" {
4     #[cfg(feature = "Win32_Foundation")]
DCompositionAttachMouseDragToHwnd(visual: IDCompositionVisual, hwnd: super::super::Foundation::HWND, enable: super::super::Foundation::BOOL) -> ::windows_sys::core::HRESULT5     pub fn DCompositionAttachMouseDragToHwnd(visual: IDCompositionVisual, hwnd: super::super::Foundation::HWND, enable: super::super::Foundation::BOOL) -> ::windows_sys::core::HRESULT;
6     #[cfg(feature = "Win32_Foundation")]
DCompositionAttachMouseWheelToHwnd(visual: IDCompositionVisual, hwnd: super::super::Foundation::HWND, enable: super::super::Foundation::BOOL) -> ::windows_sys::core::HRESULT7     pub fn DCompositionAttachMouseWheelToHwnd(visual: IDCompositionVisual, hwnd: super::super::Foundation::HWND, enable: super::super::Foundation::BOOL) -> ::windows_sys::core::HRESULT;
8     #[cfg(feature = "Win32_Foundation")]
DCompositionBoostCompositorClock(enable: super::super::Foundation::BOOL) -> ::windows_sys::core::HRESULT9     pub fn DCompositionBoostCompositorClock(enable: super::super::Foundation::BOOL) -> ::windows_sys::core::HRESULT;
10     #[cfg(feature = "Win32_Graphics_Dxgi")]
DCompositionCreateDevice(dxgidevice: super::Dxgi::IDXGIDevice, iid: *const ::windows_sys::core::GUID, dcompositiondevice: *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT11     pub fn DCompositionCreateDevice(dxgidevice: super::Dxgi::IDXGIDevice, iid: *const ::windows_sys::core::GUID, dcompositiondevice: *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT;
DCompositionCreateDevice2(renderingdevice: ::windows_sys::core::IUnknown, iid: *const ::windows_sys::core::GUID, dcompositiondevice: *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT12     pub fn DCompositionCreateDevice2(renderingdevice: ::windows_sys::core::IUnknown, iid: *const ::windows_sys::core::GUID, dcompositiondevice: *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT;
DCompositionCreateDevice3(renderingdevice: ::windows_sys::core::IUnknown, iid: *const ::windows_sys::core::GUID, dcompositiondevice: *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT13     pub fn DCompositionCreateDevice3(renderingdevice: ::windows_sys::core::IUnknown, iid: *const ::windows_sys::core::GUID, dcompositiondevice: *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT;
14     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
DCompositionCreateSurfaceHandle(desiredaccess: u32, securityattributes: *const super::super::Security::SECURITY_ATTRIBUTES, surfacehandle: *mut super::super::Foundation::HANDLE) -> ::windows_sys::core::HRESULT15     pub fn DCompositionCreateSurfaceHandle(desiredaccess: u32, securityattributes: *const super::super::Security::SECURITY_ATTRIBUTES, surfacehandle: *mut super::super::Foundation::HANDLE) -> ::windows_sys::core::HRESULT;
DCompositionGetFrameId(frameidtype: COMPOSITION_FRAME_ID_TYPE, frameid: *mut u64) -> ::windows_sys::core::HRESULT16     pub fn DCompositionGetFrameId(frameidtype: COMPOSITION_FRAME_ID_TYPE, frameid: *mut u64) -> ::windows_sys::core::HRESULT;
17     #[cfg(feature = "Win32_Foundation")]
DCompositionGetStatistics(frameid: u64, framestats: *mut COMPOSITION_FRAME_STATS, targetidcount: u32, targetids: *mut COMPOSITION_TARGET_ID, actualtargetidcount: *mut u32) -> ::windows_sys::core::HRESULT18     pub fn DCompositionGetStatistics(frameid: u64, framestats: *mut COMPOSITION_FRAME_STATS, targetidcount: u32, targetids: *mut COMPOSITION_TARGET_ID, actualtargetidcount: *mut u32) -> ::windows_sys::core::HRESULT;
19     #[cfg(feature = "Win32_Foundation")]
DCompositionGetTargetStatistics(frameid: u64, targetid: *const COMPOSITION_TARGET_ID, targetstats: *mut COMPOSITION_TARGET_STATS) -> ::windows_sys::core::HRESULT20     pub fn DCompositionGetTargetStatistics(frameid: u64, targetid: *const COMPOSITION_TARGET_ID, targetstats: *mut COMPOSITION_TARGET_STATS) -> ::windows_sys::core::HRESULT;
21     #[cfg(feature = "Win32_Foundation")]
DCompositionWaitForCompositorClock(count: u32, handles: *const super::super::Foundation::HANDLE, timeoutinms: u32) -> u3222     pub fn DCompositionWaitForCompositorClock(count: u32, handles: *const super::super::Foundation::HANDLE, timeoutinms: u32) -> u32;
23 }
24 pub const COMPOSITIONOBJECT_READ: i32 = 1i32;
25 pub const COMPOSITIONOBJECT_WRITE: i32 = 2i32;
26 pub type COMPOSITION_FRAME_ID_TYPE = i32;
27 pub const COMPOSITION_FRAME_ID_CREATED: COMPOSITION_FRAME_ID_TYPE = 0i32;
28 pub const COMPOSITION_FRAME_ID_CONFIRMED: COMPOSITION_FRAME_ID_TYPE = 1i32;
29 pub const COMPOSITION_FRAME_ID_COMPLETED: COMPOSITION_FRAME_ID_TYPE = 2i32;
30 #[repr(C)]
31 pub struct COMPOSITION_FRAME_STATS {
32     pub startTime: u64,
33     pub targetTime: u64,
34     pub framePeriod: u64,
35 }
36 impl ::core::marker::Copy for COMPOSITION_FRAME_STATS {}
37 impl ::core::clone::Clone for COMPOSITION_FRAME_STATS {
clone(&self) -> Self38     fn clone(&self) -> Self {
39         *self
40     }
41 }
42 #[repr(C)]
43 pub struct COMPOSITION_STATS {
44     pub presentCount: u32,
45     pub refreshCount: u32,
46     pub virtualRefreshCount: u32,
47     pub time: u64,
48 }
49 impl ::core::marker::Copy for COMPOSITION_STATS {}
50 impl ::core::clone::Clone for COMPOSITION_STATS {
clone(&self) -> Self51     fn clone(&self) -> Self {
52         *self
53     }
54 }
55 pub const COMPOSITION_STATS_MAX_TARGETS: u32 = 256u32;
56 #[repr(C)]
57 #[cfg(feature = "Win32_Foundation")]
58 pub struct COMPOSITION_TARGET_ID {
59     pub displayAdapterLuid: super::super::Foundation::LUID,
60     pub renderAdapterLuid: super::super::Foundation::LUID,
61     pub vidPnSourceId: u32,
62     pub vidPnTargetId: u32,
63     pub uniqueId: u32,
64 }
65 #[cfg(feature = "Win32_Foundation")]
66 impl ::core::marker::Copy for COMPOSITION_TARGET_ID {}
67 #[cfg(feature = "Win32_Foundation")]
68 impl ::core::clone::Clone for COMPOSITION_TARGET_ID {
clone(&self) -> Self69     fn clone(&self) -> Self {
70         *self
71     }
72 }
73 #[repr(C)]
74 pub struct COMPOSITION_TARGET_STATS {
75     pub outstandingPresents: u32,
76     pub presentTime: u64,
77     pub vblankDuration: u64,
78     pub presentedStats: COMPOSITION_STATS,
79     pub completedStats: COMPOSITION_STATS,
80 }
81 impl ::core::marker::Copy for COMPOSITION_TARGET_STATS {}
82 impl ::core::clone::Clone for COMPOSITION_TARGET_STATS {
clone(&self) -> Self83     fn clone(&self) -> Self {
84         *self
85     }
86 }
87 pub type DCOMPOSITION_BACKFACE_VISIBILITY = i32;
88 pub const DCOMPOSITION_BACKFACE_VISIBILITY_VISIBLE: DCOMPOSITION_BACKFACE_VISIBILITY = 0i32;
89 pub const DCOMPOSITION_BACKFACE_VISIBILITY_HIDDEN: DCOMPOSITION_BACKFACE_VISIBILITY = 1i32;
90 pub const DCOMPOSITION_BACKFACE_VISIBILITY_INHERIT: DCOMPOSITION_BACKFACE_VISIBILITY = -1i32;
91 pub type DCOMPOSITION_BITMAP_INTERPOLATION_MODE = i32;
92 pub const DCOMPOSITION_BITMAP_INTERPOLATION_MODE_NEAREST_NEIGHBOR: DCOMPOSITION_BITMAP_INTERPOLATION_MODE = 0i32;
93 pub const DCOMPOSITION_BITMAP_INTERPOLATION_MODE_LINEAR: DCOMPOSITION_BITMAP_INTERPOLATION_MODE = 1i32;
94 pub const DCOMPOSITION_BITMAP_INTERPOLATION_MODE_INHERIT: DCOMPOSITION_BITMAP_INTERPOLATION_MODE = -1i32;
95 pub type DCOMPOSITION_BORDER_MODE = i32;
96 pub const DCOMPOSITION_BORDER_MODE_SOFT: DCOMPOSITION_BORDER_MODE = 0i32;
97 pub const DCOMPOSITION_BORDER_MODE_HARD: DCOMPOSITION_BORDER_MODE = 1i32;
98 pub const DCOMPOSITION_BORDER_MODE_INHERIT: DCOMPOSITION_BORDER_MODE = -1i32;
99 pub type DCOMPOSITION_COMPOSITE_MODE = i32;
100 pub const DCOMPOSITION_COMPOSITE_MODE_SOURCE_OVER: DCOMPOSITION_COMPOSITE_MODE = 0i32;
101 pub const DCOMPOSITION_COMPOSITE_MODE_DESTINATION_INVERT: DCOMPOSITION_COMPOSITE_MODE = 1i32;
102 pub const DCOMPOSITION_COMPOSITE_MODE_MIN_BLEND: DCOMPOSITION_COMPOSITE_MODE = 2i32;
103 pub const DCOMPOSITION_COMPOSITE_MODE_INHERIT: DCOMPOSITION_COMPOSITE_MODE = -1i32;
104 pub type DCOMPOSITION_DEPTH_MODE = i32;
105 pub const DCOMPOSITION_DEPTH_MODE_TREE: DCOMPOSITION_DEPTH_MODE = 0i32;
106 pub const DCOMPOSITION_DEPTH_MODE_SPATIAL: DCOMPOSITION_DEPTH_MODE = 1i32;
107 pub const DCOMPOSITION_DEPTH_MODE_SORTED: DCOMPOSITION_DEPTH_MODE = 3i32;
108 pub const DCOMPOSITION_DEPTH_MODE_INHERIT: DCOMPOSITION_DEPTH_MODE = -1i32;
109 #[repr(C)]
110 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
111 pub struct DCOMPOSITION_FRAME_STATISTICS {
112     pub lastFrameTime: i64,
113     pub currentCompositionRate: super::Dxgi::Common::DXGI_RATIONAL,
114     pub currentTime: i64,
115     pub timeFrequency: i64,
116     pub nextEstimatedFrameTime: i64,
117 }
118 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
119 impl ::core::marker::Copy for DCOMPOSITION_FRAME_STATISTICS {}
120 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
121 impl ::core::clone::Clone for DCOMPOSITION_FRAME_STATISTICS {
clone(&self) -> Self122     fn clone(&self) -> Self {
123         *self
124     }
125 }
126 pub const DCOMPOSITION_MAX_WAITFORCOMPOSITORCLOCK_OBJECTS: u32 = 32u32;
127 pub type DCOMPOSITION_OPACITY_MODE = i32;
128 pub const DCOMPOSITION_OPACITY_MODE_LAYER: DCOMPOSITION_OPACITY_MODE = 0i32;
129 pub const DCOMPOSITION_OPACITY_MODE_MULTIPLY: DCOMPOSITION_OPACITY_MODE = 1i32;
130 pub const DCOMPOSITION_OPACITY_MODE_INHERIT: DCOMPOSITION_OPACITY_MODE = -1i32;
131 #[repr(C)]
132 pub struct DCompositionInkTrailPoint {
133     pub x: f32,
134     pub y: f32,
135     pub radius: f32,
136 }
137 impl ::core::marker::Copy for DCompositionInkTrailPoint {}
138 impl ::core::clone::Clone for DCompositionInkTrailPoint {
clone(&self) -> Self139     fn clone(&self) -> Self {
140         *self
141     }
142 }
143 pub type IDCompositionAffineTransform2DEffect = *mut ::core::ffi::c_void;
144 pub type IDCompositionAnimation = *mut ::core::ffi::c_void;
145 pub type IDCompositionArithmeticCompositeEffect = *mut ::core::ffi::c_void;
146 pub type IDCompositionBlendEffect = *mut ::core::ffi::c_void;
147 pub type IDCompositionBrightnessEffect = *mut ::core::ffi::c_void;
148 pub type IDCompositionClip = *mut ::core::ffi::c_void;
149 pub type IDCompositionColorMatrixEffect = *mut ::core::ffi::c_void;
150 pub type IDCompositionCompositeEffect = *mut ::core::ffi::c_void;
151 pub type IDCompositionDelegatedInkTrail = *mut ::core::ffi::c_void;
152 pub type IDCompositionDesktopDevice = *mut ::core::ffi::c_void;
153 pub type IDCompositionDevice = *mut ::core::ffi::c_void;
154 pub type IDCompositionDevice2 = *mut ::core::ffi::c_void;
155 pub type IDCompositionDevice3 = *mut ::core::ffi::c_void;
156 pub type IDCompositionDeviceDebug = *mut ::core::ffi::c_void;
157 pub type IDCompositionEffect = *mut ::core::ffi::c_void;
158 pub type IDCompositionEffectGroup = *mut ::core::ffi::c_void;
159 pub type IDCompositionFilterEffect = *mut ::core::ffi::c_void;
160 pub type IDCompositionGaussianBlurEffect = *mut ::core::ffi::c_void;
161 pub type IDCompositionHueRotationEffect = *mut ::core::ffi::c_void;
162 pub type IDCompositionInkTrailDevice = *mut ::core::ffi::c_void;
163 pub type IDCompositionLinearTransferEffect = *mut ::core::ffi::c_void;
164 pub type IDCompositionMatrixTransform = *mut ::core::ffi::c_void;
165 pub type IDCompositionMatrixTransform3D = *mut ::core::ffi::c_void;
166 pub type IDCompositionRectangleClip = *mut ::core::ffi::c_void;
167 pub type IDCompositionRotateTransform = *mut ::core::ffi::c_void;
168 pub type IDCompositionRotateTransform3D = *mut ::core::ffi::c_void;
169 pub type IDCompositionSaturationEffect = *mut ::core::ffi::c_void;
170 pub type IDCompositionScaleTransform = *mut ::core::ffi::c_void;
171 pub type IDCompositionScaleTransform3D = *mut ::core::ffi::c_void;
172 pub type IDCompositionShadowEffect = *mut ::core::ffi::c_void;
173 pub type IDCompositionSkewTransform = *mut ::core::ffi::c_void;
174 pub type IDCompositionSurface = *mut ::core::ffi::c_void;
175 pub type IDCompositionSurfaceFactory = *mut ::core::ffi::c_void;
176 pub type IDCompositionTableTransferEffect = *mut ::core::ffi::c_void;
177 pub type IDCompositionTarget = *mut ::core::ffi::c_void;
178 pub type IDCompositionTransform = *mut ::core::ffi::c_void;
179 pub type IDCompositionTransform3D = *mut ::core::ffi::c_void;
180 pub type IDCompositionTranslateTransform = *mut ::core::ffi::c_void;
181 pub type IDCompositionTranslateTransform3D = *mut ::core::ffi::c_void;
182 pub type IDCompositionTurbulenceEffect = *mut ::core::ffi::c_void;
183 pub type IDCompositionVirtualSurface = *mut ::core::ffi::c_void;
184 pub type IDCompositionVisual = *mut ::core::ffi::c_void;
185 pub type IDCompositionVisual2 = *mut ::core::ffi::c_void;
186 pub type IDCompositionVisual3 = *mut ::core::ffi::c_void;
187 pub type IDCompositionVisualDebug = *mut ::core::ffi::c_void;
188