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