1 #![allow(unused_variables, non_upper_case_globals, non_snake_case, unused_unsafe, non_camel_case_types, dead_code, clippy::all)]
2 pub const COMPOSITIONOBJECT_READ: i32 = 1i32;
3 pub const COMPOSITIONOBJECT_WRITE: i32 = 2i32;
4 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
5 #[repr(transparent)]
6 pub struct COMPOSITION_FRAME_ID_TYPE(pub i32);
7 pub const COMPOSITION_FRAME_ID_CREATED: COMPOSITION_FRAME_ID_TYPE = COMPOSITION_FRAME_ID_TYPE(0i32);
8 pub const COMPOSITION_FRAME_ID_CONFIRMED: COMPOSITION_FRAME_ID_TYPE = COMPOSITION_FRAME_ID_TYPE(1i32);
9 pub const COMPOSITION_FRAME_ID_COMPLETED: COMPOSITION_FRAME_ID_TYPE = COMPOSITION_FRAME_ID_TYPE(2i32);
10 impl ::std::convert::From<i32> for COMPOSITION_FRAME_ID_TYPE {
11     fn from(value: i32) -> Self {
12         Self(value)
13     }
14 }
15 unsafe impl ::windows::runtime::Abi for COMPOSITION_FRAME_ID_TYPE {
16     type Abi = Self;
17     type DefaultType = Self;
18 }
19 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
20 #[repr(C)]
21 pub struct COMPOSITION_FRAME_STATS {
22     pub startTime: u64,
23     pub targetTime: u64,
24     pub framePeriod: u64,
25 }
26 impl COMPOSITION_FRAME_STATS {}
27 impl ::std::default::Default for COMPOSITION_FRAME_STATS {
28     fn default() -> Self {
29         unsafe { ::std::mem::zeroed() }
30     }
31 }
32 impl ::std::fmt::Debug for COMPOSITION_FRAME_STATS {
33     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
34         fmt.debug_struct("COMPOSITION_FRAME_STATS").field("startTime", &self.startTime).field("targetTime", &self.targetTime).field("framePeriod", &self.framePeriod).finish()
35     }
36 }
37 impl ::std::cmp::PartialEq for COMPOSITION_FRAME_STATS {
38     fn eq(&self, other: &Self) -> bool {
39         self.startTime == other.startTime && self.targetTime == other.targetTime && self.framePeriod == other.framePeriod
40     }
41 }
42 impl ::std::cmp::Eq for COMPOSITION_FRAME_STATS {}
43 unsafe impl ::windows::runtime::Abi for COMPOSITION_FRAME_STATS {
44     type Abi = Self;
45     type DefaultType = Self;
46 }
47 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
48 #[repr(C)]
49 pub struct COMPOSITION_STATS {
50     pub presentCount: u32,
51     pub refreshCount: u32,
52     pub virtualRefreshCount: u32,
53     pub time: u64,
54 }
55 impl COMPOSITION_STATS {}
56 impl ::std::default::Default for COMPOSITION_STATS {
57     fn default() -> Self {
58         unsafe { ::std::mem::zeroed() }
59     }
60 }
61 impl ::std::fmt::Debug for COMPOSITION_STATS {
62     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
63         fmt.debug_struct("COMPOSITION_STATS").field("presentCount", &self.presentCount).field("refreshCount", &self.refreshCount).field("virtualRefreshCount", &self.virtualRefreshCount).field("time", &self.time).finish()
64     }
65 }
66 impl ::std::cmp::PartialEq for COMPOSITION_STATS {
67     fn eq(&self, other: &Self) -> bool {
68         self.presentCount == other.presentCount && self.refreshCount == other.refreshCount && self.virtualRefreshCount == other.virtualRefreshCount && self.time == other.time
69     }
70 }
71 impl ::std::cmp::Eq for COMPOSITION_STATS {}
72 unsafe impl ::windows::runtime::Abi for COMPOSITION_STATS {
73     type Abi = Self;
74     type DefaultType = Self;
75 }
76 pub const COMPOSITION_STATS_MAX_TARGETS: u32 = 256u32;
77 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
78 #[repr(C)]
79 #[cfg(feature = "Win32_Foundation")]
80 pub struct COMPOSITION_TARGET_ID {
81     pub displayAdapterLuid: super::super::Foundation::LUID,
82     pub renderAdapterLuid: super::super::Foundation::LUID,
83     pub vidPnSourceId: u32,
84     pub vidPnTargetId: u32,
85     pub uniqueId: u32,
86 }
87 #[cfg(feature = "Win32_Foundation")]
88 impl COMPOSITION_TARGET_ID {}
89 #[cfg(feature = "Win32_Foundation")]
90 impl ::std::default::Default for COMPOSITION_TARGET_ID {
91     fn default() -> Self {
92         unsafe { ::std::mem::zeroed() }
93     }
94 }
95 #[cfg(feature = "Win32_Foundation")]
96 impl ::std::fmt::Debug for COMPOSITION_TARGET_ID {
97     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
98         fmt.debug_struct("COMPOSITION_TARGET_ID").field("displayAdapterLuid", &self.displayAdapterLuid).field("renderAdapterLuid", &self.renderAdapterLuid).field("vidPnSourceId", &self.vidPnSourceId).field("vidPnTargetId", &self.vidPnTargetId).field("uniqueId", &self.uniqueId).finish()
99     }
100 }
101 #[cfg(feature = "Win32_Foundation")]
102 impl ::std::cmp::PartialEq for COMPOSITION_TARGET_ID {
103     fn eq(&self, other: &Self) -> bool {
104         self.displayAdapterLuid == other.displayAdapterLuid && self.renderAdapterLuid == other.renderAdapterLuid && self.vidPnSourceId == other.vidPnSourceId && self.vidPnTargetId == other.vidPnTargetId && self.uniqueId == other.uniqueId
105     }
106 }
107 #[cfg(feature = "Win32_Foundation")]
108 impl ::std::cmp::Eq for COMPOSITION_TARGET_ID {}
109 #[cfg(feature = "Win32_Foundation")]
110 unsafe impl ::windows::runtime::Abi for COMPOSITION_TARGET_ID {
111     type Abi = Self;
112     type DefaultType = Self;
113 }
114 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
115 #[repr(C)]
116 pub struct COMPOSITION_TARGET_STATS {
117     pub outstandingPresents: u32,
118     pub presentTime: u64,
119     pub vblankDuration: u64,
120     pub presentedStats: COMPOSITION_STATS,
121     pub completedStats: COMPOSITION_STATS,
122 }
123 impl COMPOSITION_TARGET_STATS {}
124 impl ::std::default::Default for COMPOSITION_TARGET_STATS {
125     fn default() -> Self {
126         unsafe { ::std::mem::zeroed() }
127     }
128 }
129 impl ::std::fmt::Debug for COMPOSITION_TARGET_STATS {
130     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
131         fmt.debug_struct("COMPOSITION_TARGET_STATS").field("outstandingPresents", &self.outstandingPresents).field("presentTime", &self.presentTime).field("vblankDuration", &self.vblankDuration).field("presentedStats", &self.presentedStats).field("completedStats", &self.completedStats).finish()
132     }
133 }
134 impl ::std::cmp::PartialEq for COMPOSITION_TARGET_STATS {
135     fn eq(&self, other: &Self) -> bool {
136         self.outstandingPresents == other.outstandingPresents && self.presentTime == other.presentTime && self.vblankDuration == other.vblankDuration && self.presentedStats == other.presentedStats && self.completedStats == other.completedStats
137     }
138 }
139 impl ::std::cmp::Eq for COMPOSITION_TARGET_STATS {}
140 unsafe impl ::windows::runtime::Abi for COMPOSITION_TARGET_STATS {
141     type Abi = Self;
142     type DefaultType = Self;
143 }
144 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
145 #[repr(transparent)]
146 pub struct DCOMPOSITION_BACKFACE_VISIBILITY(pub i32);
147 pub const DCOMPOSITION_BACKFACE_VISIBILITY_VISIBLE: DCOMPOSITION_BACKFACE_VISIBILITY = DCOMPOSITION_BACKFACE_VISIBILITY(0i32);
148 pub const DCOMPOSITION_BACKFACE_VISIBILITY_HIDDEN: DCOMPOSITION_BACKFACE_VISIBILITY = DCOMPOSITION_BACKFACE_VISIBILITY(1i32);
149 pub const DCOMPOSITION_BACKFACE_VISIBILITY_INHERIT: DCOMPOSITION_BACKFACE_VISIBILITY = DCOMPOSITION_BACKFACE_VISIBILITY(-1i32);
150 impl ::std::convert::From<i32> for DCOMPOSITION_BACKFACE_VISIBILITY {
151     fn from(value: i32) -> Self {
152         Self(value)
153     }
154 }
155 unsafe impl ::windows::runtime::Abi for DCOMPOSITION_BACKFACE_VISIBILITY {
156     type Abi = Self;
157     type DefaultType = Self;
158 }
159 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
160 #[repr(transparent)]
161 pub struct DCOMPOSITION_BITMAP_INTERPOLATION_MODE(pub i32);
162 pub const DCOMPOSITION_BITMAP_INTERPOLATION_MODE_NEAREST_NEIGHBOR: DCOMPOSITION_BITMAP_INTERPOLATION_MODE = DCOMPOSITION_BITMAP_INTERPOLATION_MODE(0i32);
163 pub const DCOMPOSITION_BITMAP_INTERPOLATION_MODE_LINEAR: DCOMPOSITION_BITMAP_INTERPOLATION_MODE = DCOMPOSITION_BITMAP_INTERPOLATION_MODE(1i32);
164 pub const DCOMPOSITION_BITMAP_INTERPOLATION_MODE_INHERIT: DCOMPOSITION_BITMAP_INTERPOLATION_MODE = DCOMPOSITION_BITMAP_INTERPOLATION_MODE(-1i32);
165 impl ::std::convert::From<i32> for DCOMPOSITION_BITMAP_INTERPOLATION_MODE {
166     fn from(value: i32) -> Self {
167         Self(value)
168     }
169 }
170 unsafe impl ::windows::runtime::Abi for DCOMPOSITION_BITMAP_INTERPOLATION_MODE {
171     type Abi = Self;
172     type DefaultType = Self;
173 }
174 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
175 #[repr(transparent)]
176 pub struct DCOMPOSITION_BORDER_MODE(pub i32);
177 pub const DCOMPOSITION_BORDER_MODE_SOFT: DCOMPOSITION_BORDER_MODE = DCOMPOSITION_BORDER_MODE(0i32);
178 pub const DCOMPOSITION_BORDER_MODE_HARD: DCOMPOSITION_BORDER_MODE = DCOMPOSITION_BORDER_MODE(1i32);
179 pub const DCOMPOSITION_BORDER_MODE_INHERIT: DCOMPOSITION_BORDER_MODE = DCOMPOSITION_BORDER_MODE(-1i32);
180 impl ::std::convert::From<i32> for DCOMPOSITION_BORDER_MODE {
181     fn from(value: i32) -> Self {
182         Self(value)
183     }
184 }
185 unsafe impl ::windows::runtime::Abi for DCOMPOSITION_BORDER_MODE {
186     type Abi = Self;
187     type DefaultType = Self;
188 }
189 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
190 #[repr(transparent)]
191 pub struct DCOMPOSITION_COMPOSITE_MODE(pub i32);
192 pub const DCOMPOSITION_COMPOSITE_MODE_SOURCE_OVER: DCOMPOSITION_COMPOSITE_MODE = DCOMPOSITION_COMPOSITE_MODE(0i32);
193 pub const DCOMPOSITION_COMPOSITE_MODE_DESTINATION_INVERT: DCOMPOSITION_COMPOSITE_MODE = DCOMPOSITION_COMPOSITE_MODE(1i32);
194 pub const DCOMPOSITION_COMPOSITE_MODE_MIN_BLEND: DCOMPOSITION_COMPOSITE_MODE = DCOMPOSITION_COMPOSITE_MODE(2i32);
195 pub const DCOMPOSITION_COMPOSITE_MODE_INHERIT: DCOMPOSITION_COMPOSITE_MODE = DCOMPOSITION_COMPOSITE_MODE(-1i32);
196 impl ::std::convert::From<i32> for DCOMPOSITION_COMPOSITE_MODE {
197     fn from(value: i32) -> Self {
198         Self(value)
199     }
200 }
201 unsafe impl ::windows::runtime::Abi for DCOMPOSITION_COMPOSITE_MODE {
202     type Abi = Self;
203     type DefaultType = Self;
204 }
205 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
206 #[repr(transparent)]
207 pub struct DCOMPOSITION_DEPTH_MODE(pub i32);
208 pub const DCOMPOSITION_DEPTH_MODE_TREE: DCOMPOSITION_DEPTH_MODE = DCOMPOSITION_DEPTH_MODE(0i32);
209 pub const DCOMPOSITION_DEPTH_MODE_SPATIAL: DCOMPOSITION_DEPTH_MODE = DCOMPOSITION_DEPTH_MODE(1i32);
210 pub const DCOMPOSITION_DEPTH_MODE_SORTED: DCOMPOSITION_DEPTH_MODE = DCOMPOSITION_DEPTH_MODE(3i32);
211 pub const DCOMPOSITION_DEPTH_MODE_INHERIT: DCOMPOSITION_DEPTH_MODE = DCOMPOSITION_DEPTH_MODE(-1i32);
212 impl ::std::convert::From<i32> for DCOMPOSITION_DEPTH_MODE {
213     fn from(value: i32) -> Self {
214         Self(value)
215     }
216 }
217 unsafe impl ::windows::runtime::Abi for DCOMPOSITION_DEPTH_MODE {
218     type Abi = Self;
219     type DefaultType = Self;
220 }
221 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
222 #[repr(C)]
223 #[cfg(feature = "Win32_Graphics_Dxgi")]
224 pub struct DCOMPOSITION_FRAME_STATISTICS {
225     pub lastFrameTime: i64,
226     pub currentCompositionRate: super::Dxgi::DXGI_RATIONAL,
227     pub currentTime: i64,
228     pub timeFrequency: i64,
229     pub nextEstimatedFrameTime: i64,
230 }
231 #[cfg(feature = "Win32_Graphics_Dxgi")]
232 impl DCOMPOSITION_FRAME_STATISTICS {}
233 #[cfg(feature = "Win32_Graphics_Dxgi")]
234 impl ::std::default::Default for DCOMPOSITION_FRAME_STATISTICS {
235     fn default() -> Self {
236         unsafe { ::std::mem::zeroed() }
237     }
238 }
239 #[cfg(feature = "Win32_Graphics_Dxgi")]
240 impl ::std::fmt::Debug for DCOMPOSITION_FRAME_STATISTICS {
241     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
242         fmt.debug_struct("DCOMPOSITION_FRAME_STATISTICS")
243             .field("lastFrameTime", &self.lastFrameTime)
244             .field("currentCompositionRate", &self.currentCompositionRate)
245             .field("currentTime", &self.currentTime)
246             .field("timeFrequency", &self.timeFrequency)
247             .field("nextEstimatedFrameTime", &self.nextEstimatedFrameTime)
248             .finish()
249     }
250 }
251 #[cfg(feature = "Win32_Graphics_Dxgi")]
252 impl ::std::cmp::PartialEq for DCOMPOSITION_FRAME_STATISTICS {
253     fn eq(&self, other: &Self) -> bool {
254         self.lastFrameTime == other.lastFrameTime && self.currentCompositionRate == other.currentCompositionRate && self.currentTime == other.currentTime && self.timeFrequency == other.timeFrequency && self.nextEstimatedFrameTime == other.nextEstimatedFrameTime
255     }
256 }
257 #[cfg(feature = "Win32_Graphics_Dxgi")]
258 impl ::std::cmp::Eq for DCOMPOSITION_FRAME_STATISTICS {}
259 #[cfg(feature = "Win32_Graphics_Dxgi")]
260 unsafe impl ::windows::runtime::Abi for DCOMPOSITION_FRAME_STATISTICS {
261     type Abi = Self;
262     type DefaultType = Self;
263 }
264 pub const DCOMPOSITION_MAX_WAITFORCOMPOSITORCLOCK_OBJECTS: u32 = 32u32;
265 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
266 #[repr(transparent)]
267 pub struct DCOMPOSITION_OPACITY_MODE(pub i32);
268 pub const DCOMPOSITION_OPACITY_MODE_LAYER: DCOMPOSITION_OPACITY_MODE = DCOMPOSITION_OPACITY_MODE(0i32);
269 pub const DCOMPOSITION_OPACITY_MODE_MULTIPLY: DCOMPOSITION_OPACITY_MODE = DCOMPOSITION_OPACITY_MODE(1i32);
270 pub const DCOMPOSITION_OPACITY_MODE_INHERIT: DCOMPOSITION_OPACITY_MODE = DCOMPOSITION_OPACITY_MODE(-1i32);
271 impl ::std::convert::From<i32> for DCOMPOSITION_OPACITY_MODE {
272     fn from(value: i32) -> Self {
273         Self(value)
274     }
275 }
276 unsafe impl ::windows::runtime::Abi for DCOMPOSITION_OPACITY_MODE {
277     type Abi = Self;
278     type DefaultType = Self;
279 }
280 #[cfg(feature = "Win32_Foundation")]
281 #[inline]
282 pub unsafe fn DCompositionAttachMouseDragToHwnd<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionVisual>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(visual: Param0, hwnd: Param1, enable: Param2) -> ::windows::runtime::Result<()> {
283     #[cfg(windows)]
284     {
285         #[link(name = "windows")]
286         extern "system" {
287             fn DCompositionAttachMouseDragToHwnd(visual: ::windows::runtime::RawPtr, hwnd: super::super::Foundation::HWND, enable: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT;
288         }
289         DCompositionAttachMouseDragToHwnd(visual.into_param().abi(), hwnd.into_param().abi(), enable.into_param().abi()).ok()
290     }
291     #[cfg(not(windows))]
292     unimplemented!("Unsupported target OS");
293 }
294 #[cfg(feature = "Win32_Foundation")]
295 #[inline]
296 pub unsafe fn DCompositionAttachMouseWheelToHwnd<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionVisual>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(visual: Param0, hwnd: Param1, enable: Param2) -> ::windows::runtime::Result<()> {
297     #[cfg(windows)]
298     {
299         #[link(name = "windows")]
300         extern "system" {
301             fn DCompositionAttachMouseWheelToHwnd(visual: ::windows::runtime::RawPtr, hwnd: super::super::Foundation::HWND, enable: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT;
302         }
303         DCompositionAttachMouseWheelToHwnd(visual.into_param().abi(), hwnd.into_param().abi(), enable.into_param().abi()).ok()
304     }
305     #[cfg(not(windows))]
306     unimplemented!("Unsupported target OS");
307 }
308 #[cfg(feature = "Win32_Foundation")]
309 #[inline]
310 pub unsafe fn DCompositionBoostCompositorClock<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(enable: Param0) -> ::windows::runtime::Result<()> {
311     #[cfg(windows)]
312     {
313         #[link(name = "windows")]
314         extern "system" {
315             fn DCompositionBoostCompositorClock(enable: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT;
316         }
317         DCompositionBoostCompositorClock(enable.into_param().abi()).ok()
318     }
319     #[cfg(not(windows))]
320     unimplemented!("Unsupported target OS");
321 }
322 #[cfg(feature = "Win32_Graphics_Dxgi")]
323 #[inline]
324 pub unsafe fn DCompositionCreateDevice<'a, Param0: ::windows::runtime::IntoParam<'a, super::Dxgi::IDXGIDevice>>(dxgidevice: Param0, iid: *const ::windows::runtime::GUID, dcompositiondevice: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
325     #[cfg(windows)]
326     {
327         #[link(name = "windows")]
328         extern "system" {
329             fn DCompositionCreateDevice(dxgidevice: ::windows::runtime::RawPtr, iid: *const ::windows::runtime::GUID, dcompositiondevice: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT;
330         }
331         DCompositionCreateDevice(dxgidevice.into_param().abi(), ::std::mem::transmute(iid), ::std::mem::transmute(dcompositiondevice)).ok()
332     }
333     #[cfg(not(windows))]
334     unimplemented!("Unsupported target OS");
335 }
336 #[inline]
337 pub unsafe fn DCompositionCreateDevice2<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(renderingdevice: Param0, iid: *const ::windows::runtime::GUID, dcompositiondevice: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
338     #[cfg(windows)]
339     {
340         #[link(name = "windows")]
341         extern "system" {
342             fn DCompositionCreateDevice2(renderingdevice: ::windows::runtime::RawPtr, iid: *const ::windows::runtime::GUID, dcompositiondevice: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT;
343         }
344         DCompositionCreateDevice2(renderingdevice.into_param().abi(), ::std::mem::transmute(iid), ::std::mem::transmute(dcompositiondevice)).ok()
345     }
346     #[cfg(not(windows))]
347     unimplemented!("Unsupported target OS");
348 }
349 #[inline]
350 pub unsafe fn DCompositionCreateDevice3<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(renderingdevice: Param0, iid: *const ::windows::runtime::GUID, dcompositiondevice: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
351     #[cfg(windows)]
352     {
353         #[link(name = "windows")]
354         extern "system" {
355             fn DCompositionCreateDevice3(renderingdevice: ::windows::runtime::RawPtr, iid: *const ::windows::runtime::GUID, dcompositiondevice: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT;
356         }
357         DCompositionCreateDevice3(renderingdevice.into_param().abi(), ::std::mem::transmute(iid), ::std::mem::transmute(dcompositiondevice)).ok()
358     }
359     #[cfg(not(windows))]
360     unimplemented!("Unsupported target OS");
361 }
362 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
363 #[inline]
364 pub unsafe fn DCompositionCreateSurfaceHandle(desiredaccess: u32, securityattributes: *const super::super::Security::SECURITY_ATTRIBUTES) -> ::windows::runtime::Result<super::super::Foundation::HANDLE> {
365     #[cfg(windows)]
366     {
367         #[link(name = "windows")]
368         extern "system" {
369             fn DCompositionCreateSurfaceHandle(desiredaccess: u32, securityattributes: *const super::super::Security::SECURITY_ATTRIBUTES, surfacehandle: *mut super::super::Foundation::HANDLE) -> ::windows::runtime::HRESULT;
370         }
371         let mut result__: <super::super::Foundation::HANDLE as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
372         DCompositionCreateSurfaceHandle(::std::mem::transmute(desiredaccess), ::std::mem::transmute(securityattributes), &mut result__).from_abi::<super::super::Foundation::HANDLE>(result__)
373     }
374     #[cfg(not(windows))]
375     unimplemented!("Unsupported target OS");
376 }
377 #[inline]
378 pub unsafe fn DCompositionGetFrameId(frameidtype: COMPOSITION_FRAME_ID_TYPE) -> ::windows::runtime::Result<u64> {
379     #[cfg(windows)]
380     {
381         #[link(name = "windows")]
382         extern "system" {
383             fn DCompositionGetFrameId(frameidtype: COMPOSITION_FRAME_ID_TYPE, frameid: *mut u64) -> ::windows::runtime::HRESULT;
384         }
385         let mut result__: <u64 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
386         DCompositionGetFrameId(::std::mem::transmute(frameidtype), &mut result__).from_abi::<u64>(result__)
387     }
388     #[cfg(not(windows))]
389     unimplemented!("Unsupported target OS");
390 }
391 #[cfg(feature = "Win32_Foundation")]
392 #[inline]
393 pub unsafe fn DCompositionGetStatistics(frameid: u64, framestats: *mut COMPOSITION_FRAME_STATS, targetidcount: u32, targetids: *mut COMPOSITION_TARGET_ID, actualtargetidcount: *mut u32) -> ::windows::runtime::Result<()> {
394     #[cfg(windows)]
395     {
396         #[link(name = "windows")]
397         extern "system" {
398             fn DCompositionGetStatistics(frameid: u64, framestats: *mut COMPOSITION_FRAME_STATS, targetidcount: u32, targetids: *mut COMPOSITION_TARGET_ID, actualtargetidcount: *mut u32) -> ::windows::runtime::HRESULT;
399         }
400         DCompositionGetStatistics(::std::mem::transmute(frameid), ::std::mem::transmute(framestats), ::std::mem::transmute(targetidcount), ::std::mem::transmute(targetids), ::std::mem::transmute(actualtargetidcount)).ok()
401     }
402     #[cfg(not(windows))]
403     unimplemented!("Unsupported target OS");
404 }
405 #[cfg(feature = "Win32_Foundation")]
406 #[inline]
407 pub unsafe fn DCompositionGetTargetStatistics(frameid: u64, targetid: *const COMPOSITION_TARGET_ID) -> ::windows::runtime::Result<COMPOSITION_TARGET_STATS> {
408     #[cfg(windows)]
409     {
410         #[link(name = "windows")]
411         extern "system" {
412             fn DCompositionGetTargetStatistics(frameid: u64, targetid: *const COMPOSITION_TARGET_ID, targetstats: *mut COMPOSITION_TARGET_STATS) -> ::windows::runtime::HRESULT;
413         }
414         let mut result__: <COMPOSITION_TARGET_STATS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
415         DCompositionGetTargetStatistics(::std::mem::transmute(frameid), ::std::mem::transmute(targetid), &mut result__).from_abi::<COMPOSITION_TARGET_STATS>(result__)
416     }
417     #[cfg(not(windows))]
418     unimplemented!("Unsupported target OS");
419 }
420 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
421 #[repr(C)]
422 pub struct DCompositionInkTrailPoint {
423     pub x: f32,
424     pub y: f32,
425     pub radius: f32,
426 }
427 impl DCompositionInkTrailPoint {}
428 impl ::std::default::Default for DCompositionInkTrailPoint {
429     fn default() -> Self {
430         unsafe { ::std::mem::zeroed() }
431     }
432 }
433 impl ::std::fmt::Debug for DCompositionInkTrailPoint {
434     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
435         fmt.debug_struct("DCompositionInkTrailPoint").field("x", &self.x).field("y", &self.y).field("radius", &self.radius).finish()
436     }
437 }
438 impl ::std::cmp::PartialEq for DCompositionInkTrailPoint {
439     fn eq(&self, other: &Self) -> bool {
440         self.x == other.x && self.y == other.y && self.radius == other.radius
441     }
442 }
443 impl ::std::cmp::Eq for DCompositionInkTrailPoint {}
444 unsafe impl ::windows::runtime::Abi for DCompositionInkTrailPoint {
445     type Abi = Self;
446     type DefaultType = Self;
447 }
448 #[cfg(feature = "Win32_Foundation")]
449 #[inline]
450 pub unsafe fn DCompositionWaitForCompositorClock(count: u32, handles: *const super::super::Foundation::HANDLE, timeoutinms: u32) -> u32 {
451     #[cfg(windows)]
452     {
453         #[link(name = "windows")]
454         extern "system" {
455             fn DCompositionWaitForCompositorClock(count: u32, handles: *const super::super::Foundation::HANDLE, timeoutinms: u32) -> u32;
456         }
457         ::std::mem::transmute(DCompositionWaitForCompositorClock(::std::mem::transmute(count), ::std::mem::transmute(handles), ::std::mem::transmute(timeoutinms)))
458     }
459     #[cfg(not(windows))]
460     unimplemented!("Unsupported target OS");
461 }
462 #[repr(transparent)]
463 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
464 pub struct IDCompositionAffineTransform2DEffect(::windows::runtime::IUnknown);
465 impl IDCompositionAffineTransform2DEffect {
466     pub unsafe fn SetInput<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, index: u32, input: Param1, flags: u32) -> ::windows::runtime::Result<()> {
467         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), input.into_param().abi(), ::std::mem::transmute(flags)).ok()
468     }
469     #[cfg(feature = "Win32_Graphics_Direct2D")]
470     pub unsafe fn SetInterpolationMode(&self, interpolationmode: super::Direct2D::D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE) -> ::windows::runtime::Result<()> {
471         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(interpolationmode)).ok()
472     }
473     #[cfg(feature = "Win32_Graphics_Direct2D")]
474     pub unsafe fn SetBorderMode(&self, bordermode: super::Direct2D::D2D1_BORDER_MODE) -> ::windows::runtime::Result<()> {
475         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(bordermode)).ok()
476     }
477     #[cfg(feature = "Foundation_Numerics")]
478     pub unsafe fn SetTransformMatrix(&self, transformmatrix: *const super::super::super::Foundation::Numerics::Matrix3x2) -> ::windows::runtime::Result<()> {
479         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(transformmatrix)).ok()
480     }
481     pub unsafe fn SetTransformMatrixElement<'a, Param2: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, row: i32, column: i32, animation: Param2) -> ::windows::runtime::Result<()> {
482         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(row), ::std::mem::transmute(column), animation.into_param().abi()).ok()
483     }
484     pub unsafe fn SetTransformMatrixElement2(&self, row: i32, column: i32, value: f32) -> ::windows::runtime::Result<()> {
485         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(row), ::std::mem::transmute(column), ::std::mem::transmute(value)).ok()
486     }
487     pub unsafe fn SetSharpness<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
488         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
489     }
490     pub unsafe fn SetSharpness2(&self, sharpness: f32) -> ::windows::runtime::Result<()> {
491         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(sharpness)).ok()
492     }
493 }
494 unsafe impl ::windows::runtime::Interface for IDCompositionAffineTransform2DEffect {
495     type Vtable = IDCompositionAffineTransform2DEffect_abi;
496     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(192199144, 52694, 18735, [187, 188, 94, 211, 33, 87, 2, 109]);
497 }
498 impl ::std::convert::From<IDCompositionAffineTransform2DEffect> for ::windows::runtime::IUnknown {
499     fn from(value: IDCompositionAffineTransform2DEffect) -> Self {
500         unsafe { ::std::mem::transmute(value) }
501     }
502 }
503 impl ::std::convert::From<&IDCompositionAffineTransform2DEffect> for ::windows::runtime::IUnknown {
504     fn from(value: &IDCompositionAffineTransform2DEffect) -> Self {
505         ::std::convert::From::from(::std::clone::Clone::clone(value))
506     }
507 }
508 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionAffineTransform2DEffect {
509     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
510         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
511     }
512 }
513 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionAffineTransform2DEffect {
514     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
515         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
516     }
517 }
518 impl ::std::convert::From<IDCompositionAffineTransform2DEffect> for IDCompositionFilterEffect {
519     fn from(value: IDCompositionAffineTransform2DEffect) -> Self {
520         unsafe { ::std::mem::transmute(value) }
521     }
522 }
523 impl ::std::convert::From<&IDCompositionAffineTransform2DEffect> for IDCompositionFilterEffect {
524     fn from(value: &IDCompositionAffineTransform2DEffect) -> Self {
525         ::std::convert::From::from(::std::clone::Clone::clone(value))
526     }
527 }
528 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionFilterEffect> for IDCompositionAffineTransform2DEffect {
529     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionFilterEffect> {
530         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionFilterEffect>::into(self))
531     }
532 }
533 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionFilterEffect> for &IDCompositionAffineTransform2DEffect {
534     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionFilterEffect> {
535         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionFilterEffect>::into(::std::clone::Clone::clone(self)))
536     }
537 }
538 impl ::std::convert::From<IDCompositionAffineTransform2DEffect> for IDCompositionEffect {
539     fn from(value: IDCompositionAffineTransform2DEffect) -> Self {
540         unsafe { ::std::mem::transmute(value) }
541     }
542 }
543 impl ::std::convert::From<&IDCompositionAffineTransform2DEffect> for IDCompositionEffect {
544     fn from(value: &IDCompositionAffineTransform2DEffect) -> Self {
545         ::std::convert::From::from(::std::clone::Clone::clone(value))
546     }
547 }
548 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for IDCompositionAffineTransform2DEffect {
549     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
550         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(self))
551     }
552 }
553 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for &IDCompositionAffineTransform2DEffect {
554     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
555         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(::std::clone::Clone::clone(self)))
556     }
557 }
558 #[repr(C)]
559 #[doc(hidden)]
560 pub struct IDCompositionAffineTransform2DEffect_abi(
561     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
562     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
563     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
564     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, input: ::windows::runtime::RawPtr, flags: u32) -> ::windows::runtime::HRESULT,
565     #[cfg(feature = "Win32_Graphics_Direct2D")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, interpolationmode: super::Direct2D::D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE) -> ::windows::runtime::HRESULT,
566     #[cfg(not(feature = "Win32_Graphics_Direct2D"))] usize,
567     #[cfg(feature = "Win32_Graphics_Direct2D")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, bordermode: super::Direct2D::D2D1_BORDER_MODE) -> ::windows::runtime::HRESULT,
568     #[cfg(not(feature = "Win32_Graphics_Direct2D"))] usize,
569     #[cfg(feature = "Foundation_Numerics")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, transformmatrix: *const super::super::super::Foundation::Numerics::Matrix3x2) -> ::windows::runtime::HRESULT,
570     #[cfg(not(feature = "Foundation_Numerics"))] usize,
571     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, row: i32, column: i32, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
572     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, row: i32, column: i32, value: f32) -> ::windows::runtime::HRESULT,
573     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
574     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, sharpness: f32) -> ::windows::runtime::HRESULT,
575 );
576 #[repr(transparent)]
577 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
578 pub struct IDCompositionAnimation(::windows::runtime::IUnknown);
579 impl IDCompositionAnimation {
580     pub unsafe fn Reset(&self) -> ::windows::runtime::Result<()> {
581         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)).ok()
582     }
583     pub unsafe fn SetAbsoluteBeginTime(&self, begintime: i64) -> ::windows::runtime::Result<()> {
584         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(begintime)).ok()
585     }
586     pub unsafe fn AddCubic(&self, beginoffset: f64, constantcoefficient: f32, linearcoefficient: f32, quadraticcoefficient: f32, cubiccoefficient: f32) -> ::windows::runtime::Result<()> {
587         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(beginoffset), ::std::mem::transmute(constantcoefficient), ::std::mem::transmute(linearcoefficient), ::std::mem::transmute(quadraticcoefficient), ::std::mem::transmute(cubiccoefficient)).ok()
588     }
589     pub unsafe fn AddSinusoidal(&self, beginoffset: f64, bias: f32, amplitude: f32, frequency: f32, phase: f32) -> ::windows::runtime::Result<()> {
590         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(beginoffset), ::std::mem::transmute(bias), ::std::mem::transmute(amplitude), ::std::mem::transmute(frequency), ::std::mem::transmute(phase)).ok()
591     }
592     pub unsafe fn AddRepeat(&self, beginoffset: f64, durationtorepeat: f64) -> ::windows::runtime::Result<()> {
593         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(beginoffset), ::std::mem::transmute(durationtorepeat)).ok()
594     }
595     pub unsafe fn End(&self, endoffset: f64, endvalue: f32) -> ::windows::runtime::Result<()> {
596         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(endoffset), ::std::mem::transmute(endvalue)).ok()
597     }
598 }
599 unsafe impl ::windows::runtime::Interface for IDCompositionAnimation {
600     type Vtable = IDCompositionAnimation_abi;
601     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3422392793, 20914, 17892, [179, 222, 209, 156, 207, 184, 99, 197]);
602 }
603 impl ::std::convert::From<IDCompositionAnimation> for ::windows::runtime::IUnknown {
604     fn from(value: IDCompositionAnimation) -> Self {
605         unsafe { ::std::mem::transmute(value) }
606     }
607 }
608 impl ::std::convert::From<&IDCompositionAnimation> for ::windows::runtime::IUnknown {
609     fn from(value: &IDCompositionAnimation) -> Self {
610         ::std::convert::From::from(::std::clone::Clone::clone(value))
611     }
612 }
613 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionAnimation {
614     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
615         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
616     }
617 }
618 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionAnimation {
619     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
620         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
621     }
622 }
623 #[repr(C)]
624 #[doc(hidden)]
625 pub struct IDCompositionAnimation_abi(
626     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
627     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
628     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
629     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
630     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, begintime: i64) -> ::windows::runtime::HRESULT,
631     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, beginoffset: f64, constantcoefficient: f32, linearcoefficient: f32, quadraticcoefficient: f32, cubiccoefficient: f32) -> ::windows::runtime::HRESULT,
632     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, beginoffset: f64, bias: f32, amplitude: f32, frequency: f32, phase: f32) -> ::windows::runtime::HRESULT,
633     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, beginoffset: f64, durationtorepeat: f64) -> ::windows::runtime::HRESULT,
634     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, endoffset: f64, endvalue: f32) -> ::windows::runtime::HRESULT,
635 );
636 #[repr(transparent)]
637 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
638 pub struct IDCompositionArithmeticCompositeEffect(::windows::runtime::IUnknown);
639 impl IDCompositionArithmeticCompositeEffect {
640     pub unsafe fn SetInput<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, index: u32, input: Param1, flags: u32) -> ::windows::runtime::Result<()> {
641         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), input.into_param().abi(), ::std::mem::transmute(flags)).ok()
642     }
643     #[cfg(feature = "Win32_Graphics_Direct2D")]
644     pub unsafe fn SetCoefficients(&self, coefficients: *const super::Direct2D::D2D_VECTOR_4F) -> ::windows::runtime::Result<()> {
645         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(coefficients)).ok()
646     }
647     #[cfg(feature = "Win32_Foundation")]
648     pub unsafe fn SetClampOutput<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, clampoutput: Param0) -> ::windows::runtime::Result<()> {
649         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), clampoutput.into_param().abi()).ok()
650     }
651     pub unsafe fn SetCoefficient1<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
652         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
653     }
654     pub unsafe fn SetCoefficient12(&self, coeffcient1: f32) -> ::windows::runtime::Result<()> {
655         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(coeffcient1)).ok()
656     }
657     pub unsafe fn SetCoefficient2<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
658         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
659     }
660     pub unsafe fn SetCoefficient22(&self, coefficient2: f32) -> ::windows::runtime::Result<()> {
661         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(coefficient2)).ok()
662     }
663     pub unsafe fn SetCoefficient3<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
664         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
665     }
666     pub unsafe fn SetCoefficient32(&self, coefficient3: f32) -> ::windows::runtime::Result<()> {
667         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(coefficient3)).ok()
668     }
669     pub unsafe fn SetCoefficient4<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
670         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
671     }
672     pub unsafe fn SetCoefficient42(&self, coefficient4: f32) -> ::windows::runtime::Result<()> {
673         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(coefficient4)).ok()
674     }
675 }
676 unsafe impl ::windows::runtime::Interface for IDCompositionArithmeticCompositeEffect {
677     type Vtable = IDCompositionArithmeticCompositeEffect_abi;
678     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(996663208, 58333, 20065, [182, 64, 70, 194, 243, 215, 57, 220]);
679 }
680 impl ::std::convert::From<IDCompositionArithmeticCompositeEffect> for ::windows::runtime::IUnknown {
681     fn from(value: IDCompositionArithmeticCompositeEffect) -> Self {
682         unsafe { ::std::mem::transmute(value) }
683     }
684 }
685 impl ::std::convert::From<&IDCompositionArithmeticCompositeEffect> for ::windows::runtime::IUnknown {
686     fn from(value: &IDCompositionArithmeticCompositeEffect) -> Self {
687         ::std::convert::From::from(::std::clone::Clone::clone(value))
688     }
689 }
690 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionArithmeticCompositeEffect {
691     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
692         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
693     }
694 }
695 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionArithmeticCompositeEffect {
696     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
697         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
698     }
699 }
700 impl ::std::convert::From<IDCompositionArithmeticCompositeEffect> for IDCompositionFilterEffect {
701     fn from(value: IDCompositionArithmeticCompositeEffect) -> Self {
702         unsafe { ::std::mem::transmute(value) }
703     }
704 }
705 impl ::std::convert::From<&IDCompositionArithmeticCompositeEffect> for IDCompositionFilterEffect {
706     fn from(value: &IDCompositionArithmeticCompositeEffect) -> Self {
707         ::std::convert::From::from(::std::clone::Clone::clone(value))
708     }
709 }
710 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionFilterEffect> for IDCompositionArithmeticCompositeEffect {
711     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionFilterEffect> {
712         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionFilterEffect>::into(self))
713     }
714 }
715 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionFilterEffect> for &IDCompositionArithmeticCompositeEffect {
716     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionFilterEffect> {
717         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionFilterEffect>::into(::std::clone::Clone::clone(self)))
718     }
719 }
720 impl ::std::convert::From<IDCompositionArithmeticCompositeEffect> for IDCompositionEffect {
721     fn from(value: IDCompositionArithmeticCompositeEffect) -> Self {
722         unsafe { ::std::mem::transmute(value) }
723     }
724 }
725 impl ::std::convert::From<&IDCompositionArithmeticCompositeEffect> for IDCompositionEffect {
726     fn from(value: &IDCompositionArithmeticCompositeEffect) -> Self {
727         ::std::convert::From::from(::std::clone::Clone::clone(value))
728     }
729 }
730 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for IDCompositionArithmeticCompositeEffect {
731     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
732         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(self))
733     }
734 }
735 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for &IDCompositionArithmeticCompositeEffect {
736     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
737         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(::std::clone::Clone::clone(self)))
738     }
739 }
740 #[repr(C)]
741 #[doc(hidden)]
742 pub struct IDCompositionArithmeticCompositeEffect_abi(
743     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
744     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
745     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
746     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, input: ::windows::runtime::RawPtr, flags: u32) -> ::windows::runtime::HRESULT,
747     #[cfg(feature = "Win32_Graphics_Direct2D")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, coefficients: *const super::Direct2D::D2D_VECTOR_4F) -> ::windows::runtime::HRESULT,
748     #[cfg(not(feature = "Win32_Graphics_Direct2D"))] usize,
749     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clampoutput: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
750     #[cfg(not(feature = "Win32_Foundation"))] usize,
751     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
752     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, coeffcient1: f32) -> ::windows::runtime::HRESULT,
753     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
754     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, coefficient2: f32) -> ::windows::runtime::HRESULT,
755     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
756     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, coefficient3: f32) -> ::windows::runtime::HRESULT,
757     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
758     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, coefficient4: f32) -> ::windows::runtime::HRESULT,
759 );
760 #[repr(transparent)]
761 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
762 pub struct IDCompositionBlendEffect(::windows::runtime::IUnknown);
763 impl IDCompositionBlendEffect {
764     pub unsafe fn SetInput<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, index: u32, input: Param1, flags: u32) -> ::windows::runtime::Result<()> {
765         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), input.into_param().abi(), ::std::mem::transmute(flags)).ok()
766     }
767     #[cfg(feature = "Win32_Graphics_Direct2D")]
768     pub unsafe fn SetMode(&self, mode: super::Direct2D::D2D1_BLEND_MODE) -> ::windows::runtime::Result<()> {
769         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(mode)).ok()
770     }
771 }
772 unsafe impl ::windows::runtime::Interface for IDCompositionBlendEffect {
773     type Vtable = IDCompositionBlendEffect_abi;
774     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(871160842, 22410, 18961, [156, 20, 12, 185, 5, 23, 249, 197]);
775 }
776 impl ::std::convert::From<IDCompositionBlendEffect> for ::windows::runtime::IUnknown {
777     fn from(value: IDCompositionBlendEffect) -> Self {
778         unsafe { ::std::mem::transmute(value) }
779     }
780 }
781 impl ::std::convert::From<&IDCompositionBlendEffect> for ::windows::runtime::IUnknown {
782     fn from(value: &IDCompositionBlendEffect) -> Self {
783         ::std::convert::From::from(::std::clone::Clone::clone(value))
784     }
785 }
786 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionBlendEffect {
787     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
788         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
789     }
790 }
791 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionBlendEffect {
792     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
793         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
794     }
795 }
796 impl ::std::convert::From<IDCompositionBlendEffect> for IDCompositionFilterEffect {
797     fn from(value: IDCompositionBlendEffect) -> Self {
798         unsafe { ::std::mem::transmute(value) }
799     }
800 }
801 impl ::std::convert::From<&IDCompositionBlendEffect> for IDCompositionFilterEffect {
802     fn from(value: &IDCompositionBlendEffect) -> Self {
803         ::std::convert::From::from(::std::clone::Clone::clone(value))
804     }
805 }
806 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionFilterEffect> for IDCompositionBlendEffect {
807     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionFilterEffect> {
808         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionFilterEffect>::into(self))
809     }
810 }
811 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionFilterEffect> for &IDCompositionBlendEffect {
812     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionFilterEffect> {
813         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionFilterEffect>::into(::std::clone::Clone::clone(self)))
814     }
815 }
816 impl ::std::convert::From<IDCompositionBlendEffect> for IDCompositionEffect {
817     fn from(value: IDCompositionBlendEffect) -> Self {
818         unsafe { ::std::mem::transmute(value) }
819     }
820 }
821 impl ::std::convert::From<&IDCompositionBlendEffect> for IDCompositionEffect {
822     fn from(value: &IDCompositionBlendEffect) -> Self {
823         ::std::convert::From::from(::std::clone::Clone::clone(value))
824     }
825 }
826 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for IDCompositionBlendEffect {
827     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
828         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(self))
829     }
830 }
831 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for &IDCompositionBlendEffect {
832     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
833         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(::std::clone::Clone::clone(self)))
834     }
835 }
836 #[repr(C)]
837 #[doc(hidden)]
838 pub struct IDCompositionBlendEffect_abi(
839     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
840     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
841     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
842     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, input: ::windows::runtime::RawPtr, flags: u32) -> ::windows::runtime::HRESULT,
843     #[cfg(feature = "Win32_Graphics_Direct2D")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, mode: super::Direct2D::D2D1_BLEND_MODE) -> ::windows::runtime::HRESULT,
844     #[cfg(not(feature = "Win32_Graphics_Direct2D"))] usize,
845 );
846 #[repr(transparent)]
847 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
848 pub struct IDCompositionBrightnessEffect(::windows::runtime::IUnknown);
849 impl IDCompositionBrightnessEffect {
850     pub unsafe fn SetInput<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, index: u32, input: Param1, flags: u32) -> ::windows::runtime::Result<()> {
851         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), input.into_param().abi(), ::std::mem::transmute(flags)).ok()
852     }
853     #[cfg(feature = "Win32_Graphics_Direct2D")]
854     pub unsafe fn SetWhitePoint(&self, whitepoint: *const super::Direct2D::D2D_VECTOR_2F) -> ::windows::runtime::Result<()> {
855         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(whitepoint)).ok()
856     }
857     #[cfg(feature = "Win32_Graphics_Direct2D")]
858     pub unsafe fn SetBlackPoint(&self, blackpoint: *const super::Direct2D::D2D_VECTOR_2F) -> ::windows::runtime::Result<()> {
859         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(blackpoint)).ok()
860     }
861     pub unsafe fn SetWhitePointX<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
862         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
863     }
864     pub unsafe fn SetWhitePointX2(&self, whitepointx: f32) -> ::windows::runtime::Result<()> {
865         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(whitepointx)).ok()
866     }
867     pub unsafe fn SetWhitePointY<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
868         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
869     }
870     pub unsafe fn SetWhitePointY2(&self, whitepointy: f32) -> ::windows::runtime::Result<()> {
871         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(whitepointy)).ok()
872     }
873     pub unsafe fn SetBlackPointX<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
874         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
875     }
876     pub unsafe fn SetBlackPointX2(&self, blackpointx: f32) -> ::windows::runtime::Result<()> {
877         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(blackpointx)).ok()
878     }
879     pub unsafe fn SetBlackPointY<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
880         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
881     }
882     pub unsafe fn SetBlackPointY2(&self, blackpointy: f32) -> ::windows::runtime::Result<()> {
883         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(blackpointy)).ok()
884     }
885 }
886 unsafe impl ::windows::runtime::Interface for IDCompositionBrightnessEffect {
887     type Vtable = IDCompositionBrightnessEffect_abi;
888     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1613187438, 52026, 18859, [147, 79, 215, 152, 218, 79, 125, 166]);
889 }
890 impl ::std::convert::From<IDCompositionBrightnessEffect> for ::windows::runtime::IUnknown {
891     fn from(value: IDCompositionBrightnessEffect) -> Self {
892         unsafe { ::std::mem::transmute(value) }
893     }
894 }
895 impl ::std::convert::From<&IDCompositionBrightnessEffect> for ::windows::runtime::IUnknown {
896     fn from(value: &IDCompositionBrightnessEffect) -> Self {
897         ::std::convert::From::from(::std::clone::Clone::clone(value))
898     }
899 }
900 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionBrightnessEffect {
901     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
902         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
903     }
904 }
905 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionBrightnessEffect {
906     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
907         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
908     }
909 }
910 impl ::std::convert::From<IDCompositionBrightnessEffect> for IDCompositionFilterEffect {
911     fn from(value: IDCompositionBrightnessEffect) -> Self {
912         unsafe { ::std::mem::transmute(value) }
913     }
914 }
915 impl ::std::convert::From<&IDCompositionBrightnessEffect> for IDCompositionFilterEffect {
916     fn from(value: &IDCompositionBrightnessEffect) -> Self {
917         ::std::convert::From::from(::std::clone::Clone::clone(value))
918     }
919 }
920 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionFilterEffect> for IDCompositionBrightnessEffect {
921     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionFilterEffect> {
922         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionFilterEffect>::into(self))
923     }
924 }
925 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionFilterEffect> for &IDCompositionBrightnessEffect {
926     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionFilterEffect> {
927         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionFilterEffect>::into(::std::clone::Clone::clone(self)))
928     }
929 }
930 impl ::std::convert::From<IDCompositionBrightnessEffect> for IDCompositionEffect {
931     fn from(value: IDCompositionBrightnessEffect) -> Self {
932         unsafe { ::std::mem::transmute(value) }
933     }
934 }
935 impl ::std::convert::From<&IDCompositionBrightnessEffect> for IDCompositionEffect {
936     fn from(value: &IDCompositionBrightnessEffect) -> Self {
937         ::std::convert::From::from(::std::clone::Clone::clone(value))
938     }
939 }
940 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for IDCompositionBrightnessEffect {
941     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
942         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(self))
943     }
944 }
945 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for &IDCompositionBrightnessEffect {
946     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
947         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(::std::clone::Clone::clone(self)))
948     }
949 }
950 #[repr(C)]
951 #[doc(hidden)]
952 pub struct IDCompositionBrightnessEffect_abi(
953     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
954     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
955     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
956     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, input: ::windows::runtime::RawPtr, flags: u32) -> ::windows::runtime::HRESULT,
957     #[cfg(feature = "Win32_Graphics_Direct2D")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, whitepoint: *const super::Direct2D::D2D_VECTOR_2F) -> ::windows::runtime::HRESULT,
958     #[cfg(not(feature = "Win32_Graphics_Direct2D"))] usize,
959     #[cfg(feature = "Win32_Graphics_Direct2D")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, blackpoint: *const super::Direct2D::D2D_VECTOR_2F) -> ::windows::runtime::HRESULT,
960     #[cfg(not(feature = "Win32_Graphics_Direct2D"))] usize,
961     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
962     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, whitepointx: f32) -> ::windows::runtime::HRESULT,
963     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
964     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, whitepointy: f32) -> ::windows::runtime::HRESULT,
965     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
966     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, blackpointx: f32) -> ::windows::runtime::HRESULT,
967     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
968     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, blackpointy: f32) -> ::windows::runtime::HRESULT,
969 );
970 #[repr(transparent)]
971 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
972 pub struct IDCompositionClip(::windows::runtime::IUnknown);
973 impl IDCompositionClip {}
974 unsafe impl ::windows::runtime::Interface for IDCompositionClip {
975     type Vtable = IDCompositionClip_abi;
976     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1689007875, 40255, 17900, [161, 9, 124, 172, 14, 122, 19, 167]);
977 }
978 impl ::std::convert::From<IDCompositionClip> for ::windows::runtime::IUnknown {
979     fn from(value: IDCompositionClip) -> Self {
980         unsafe { ::std::mem::transmute(value) }
981     }
982 }
983 impl ::std::convert::From<&IDCompositionClip> for ::windows::runtime::IUnknown {
984     fn from(value: &IDCompositionClip) -> Self {
985         ::std::convert::From::from(::std::clone::Clone::clone(value))
986     }
987 }
988 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionClip {
989     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
990         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
991     }
992 }
993 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionClip {
994     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
995         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
996     }
997 }
998 #[repr(C)]
999 #[doc(hidden)]
1000 pub struct IDCompositionClip_abi(
1001     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1002     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1003     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1004 );
1005 #[repr(transparent)]
1006 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1007 pub struct IDCompositionColorMatrixEffect(::windows::runtime::IUnknown);
1008 impl IDCompositionColorMatrixEffect {
1009     pub unsafe fn SetInput<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, index: u32, input: Param1, flags: u32) -> ::windows::runtime::Result<()> {
1010         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), input.into_param().abi(), ::std::mem::transmute(flags)).ok()
1011     }
1012     #[cfg(feature = "Win32_Graphics_Direct2D")]
1013     pub unsafe fn SetMatrix(&self, matrix: *const super::Direct2D::D2D_MATRIX_5X4_F) -> ::windows::runtime::Result<()> {
1014         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(matrix)).ok()
1015     }
1016     pub unsafe fn SetMatrixElement<'a, Param2: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, row: i32, column: i32, animation: Param2) -> ::windows::runtime::Result<()> {
1017         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(row), ::std::mem::transmute(column), animation.into_param().abi()).ok()
1018     }
1019     pub unsafe fn SetMatrixElement2(&self, row: i32, column: i32, value: f32) -> ::windows::runtime::Result<()> {
1020         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(row), ::std::mem::transmute(column), ::std::mem::transmute(value)).ok()
1021     }
1022     #[cfg(feature = "Win32_Graphics_Direct2D")]
1023     pub unsafe fn SetAlphaMode(&self, mode: super::Direct2D::D2D1_COLORMATRIX_ALPHA_MODE) -> ::windows::runtime::Result<()> {
1024         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(mode)).ok()
1025     }
1026     #[cfg(feature = "Win32_Foundation")]
1027     pub unsafe fn SetClampOutput<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, clamp: Param0) -> ::windows::runtime::Result<()> {
1028         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), clamp.into_param().abi()).ok()
1029     }
1030 }
1031 unsafe impl ::windows::runtime::Interface for IDCompositionColorMatrixEffect {
1032     type Vtable = IDCompositionColorMatrixEffect_abi;
1033     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3239512610, 15586, 18790, [144, 212, 85, 64, 139, 252, 132, 196]);
1034 }
1035 impl ::std::convert::From<IDCompositionColorMatrixEffect> for ::windows::runtime::IUnknown {
1036     fn from(value: IDCompositionColorMatrixEffect) -> Self {
1037         unsafe { ::std::mem::transmute(value) }
1038     }
1039 }
1040 impl ::std::convert::From<&IDCompositionColorMatrixEffect> for ::windows::runtime::IUnknown {
1041     fn from(value: &IDCompositionColorMatrixEffect) -> Self {
1042         ::std::convert::From::from(::std::clone::Clone::clone(value))
1043     }
1044 }
1045 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionColorMatrixEffect {
1046     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1047         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1048     }
1049 }
1050 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionColorMatrixEffect {
1051     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1052         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1053     }
1054 }
1055 impl ::std::convert::From<IDCompositionColorMatrixEffect> for IDCompositionFilterEffect {
1056     fn from(value: IDCompositionColorMatrixEffect) -> Self {
1057         unsafe { ::std::mem::transmute(value) }
1058     }
1059 }
1060 impl ::std::convert::From<&IDCompositionColorMatrixEffect> for IDCompositionFilterEffect {
1061     fn from(value: &IDCompositionColorMatrixEffect) -> Self {
1062         ::std::convert::From::from(::std::clone::Clone::clone(value))
1063     }
1064 }
1065 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionFilterEffect> for IDCompositionColorMatrixEffect {
1066     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionFilterEffect> {
1067         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionFilterEffect>::into(self))
1068     }
1069 }
1070 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionFilterEffect> for &IDCompositionColorMatrixEffect {
1071     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionFilterEffect> {
1072         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionFilterEffect>::into(::std::clone::Clone::clone(self)))
1073     }
1074 }
1075 impl ::std::convert::From<IDCompositionColorMatrixEffect> for IDCompositionEffect {
1076     fn from(value: IDCompositionColorMatrixEffect) -> Self {
1077         unsafe { ::std::mem::transmute(value) }
1078     }
1079 }
1080 impl ::std::convert::From<&IDCompositionColorMatrixEffect> for IDCompositionEffect {
1081     fn from(value: &IDCompositionColorMatrixEffect) -> Self {
1082         ::std::convert::From::from(::std::clone::Clone::clone(value))
1083     }
1084 }
1085 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for IDCompositionColorMatrixEffect {
1086     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
1087         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(self))
1088     }
1089 }
1090 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for &IDCompositionColorMatrixEffect {
1091     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
1092         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(::std::clone::Clone::clone(self)))
1093     }
1094 }
1095 #[repr(C)]
1096 #[doc(hidden)]
1097 pub struct IDCompositionColorMatrixEffect_abi(
1098     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1099     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1100     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1101     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, input: ::windows::runtime::RawPtr, flags: u32) -> ::windows::runtime::HRESULT,
1102     #[cfg(feature = "Win32_Graphics_Direct2D")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, matrix: *const super::Direct2D::D2D_MATRIX_5X4_F) -> ::windows::runtime::HRESULT,
1103     #[cfg(not(feature = "Win32_Graphics_Direct2D"))] usize,
1104     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, row: i32, column: i32, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1105     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, row: i32, column: i32, value: f32) -> ::windows::runtime::HRESULT,
1106     #[cfg(feature = "Win32_Graphics_Direct2D")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, mode: super::Direct2D::D2D1_COLORMATRIX_ALPHA_MODE) -> ::windows::runtime::HRESULT,
1107     #[cfg(not(feature = "Win32_Graphics_Direct2D"))] usize,
1108     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clamp: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
1109     #[cfg(not(feature = "Win32_Foundation"))] usize,
1110 );
1111 #[repr(transparent)]
1112 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1113 pub struct IDCompositionCompositeEffect(::windows::runtime::IUnknown);
1114 impl IDCompositionCompositeEffect {
1115     pub unsafe fn SetInput<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, index: u32, input: Param1, flags: u32) -> ::windows::runtime::Result<()> {
1116         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), input.into_param().abi(), ::std::mem::transmute(flags)).ok()
1117     }
1118     #[cfg(feature = "Win32_Graphics_Direct2D")]
1119     pub unsafe fn SetMode(&self, mode: super::Direct2D::D2D1_COMPOSITE_MODE) -> ::windows::runtime::Result<()> {
1120         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(mode)).ok()
1121     }
1122 }
1123 unsafe impl ::windows::runtime::Interface for IDCompositionCompositeEffect {
1124     type Vtable = IDCompositionCompositeEffect_abi;
1125     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1466308288, 41521, 18765, [163, 141, 0, 253, 94, 196, 219, 70]);
1126 }
1127 impl ::std::convert::From<IDCompositionCompositeEffect> for ::windows::runtime::IUnknown {
1128     fn from(value: IDCompositionCompositeEffect) -> Self {
1129         unsafe { ::std::mem::transmute(value) }
1130     }
1131 }
1132 impl ::std::convert::From<&IDCompositionCompositeEffect> for ::windows::runtime::IUnknown {
1133     fn from(value: &IDCompositionCompositeEffect) -> Self {
1134         ::std::convert::From::from(::std::clone::Clone::clone(value))
1135     }
1136 }
1137 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionCompositeEffect {
1138     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1139         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1140     }
1141 }
1142 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionCompositeEffect {
1143     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1144         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1145     }
1146 }
1147 impl ::std::convert::From<IDCompositionCompositeEffect> for IDCompositionFilterEffect {
1148     fn from(value: IDCompositionCompositeEffect) -> Self {
1149         unsafe { ::std::mem::transmute(value) }
1150     }
1151 }
1152 impl ::std::convert::From<&IDCompositionCompositeEffect> for IDCompositionFilterEffect {
1153     fn from(value: &IDCompositionCompositeEffect) -> Self {
1154         ::std::convert::From::from(::std::clone::Clone::clone(value))
1155     }
1156 }
1157 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionFilterEffect> for IDCompositionCompositeEffect {
1158     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionFilterEffect> {
1159         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionFilterEffect>::into(self))
1160     }
1161 }
1162 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionFilterEffect> for &IDCompositionCompositeEffect {
1163     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionFilterEffect> {
1164         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionFilterEffect>::into(::std::clone::Clone::clone(self)))
1165     }
1166 }
1167 impl ::std::convert::From<IDCompositionCompositeEffect> for IDCompositionEffect {
1168     fn from(value: IDCompositionCompositeEffect) -> Self {
1169         unsafe { ::std::mem::transmute(value) }
1170     }
1171 }
1172 impl ::std::convert::From<&IDCompositionCompositeEffect> for IDCompositionEffect {
1173     fn from(value: &IDCompositionCompositeEffect) -> Self {
1174         ::std::convert::From::from(::std::clone::Clone::clone(value))
1175     }
1176 }
1177 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for IDCompositionCompositeEffect {
1178     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
1179         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(self))
1180     }
1181 }
1182 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for &IDCompositionCompositeEffect {
1183     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
1184         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(::std::clone::Clone::clone(self)))
1185     }
1186 }
1187 #[repr(C)]
1188 #[doc(hidden)]
1189 pub struct IDCompositionCompositeEffect_abi(
1190     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1191     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1192     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1193     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, input: ::windows::runtime::RawPtr, flags: u32) -> ::windows::runtime::HRESULT,
1194     #[cfg(feature = "Win32_Graphics_Direct2D")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, mode: super::Direct2D::D2D1_COMPOSITE_MODE) -> ::windows::runtime::HRESULT,
1195     #[cfg(not(feature = "Win32_Graphics_Direct2D"))] usize,
1196 );
1197 #[repr(transparent)]
1198 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1199 pub struct IDCompositionDelegatedInkTrail(::windows::runtime::IUnknown);
1200 impl IDCompositionDelegatedInkTrail {
1201     pub unsafe fn AddTrailPoints(&self, inkpoints: *const DCompositionInkTrailPoint, inkpointscount: u32) -> ::windows::runtime::Result<u32> {
1202         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1203         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(inkpoints), ::std::mem::transmute(inkpointscount), &mut result__).from_abi::<u32>(result__)
1204     }
1205     pub unsafe fn AddTrailPointsWithPrediction(&self, inkpoints: *const DCompositionInkTrailPoint, inkpointscount: u32, predictedinkpoints: *const DCompositionInkTrailPoint, predictedinkpointscount: u32) -> ::windows::runtime::Result<u32> {
1206         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1207         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(inkpoints), ::std::mem::transmute(inkpointscount), ::std::mem::transmute(predictedinkpoints), ::std::mem::transmute(predictedinkpointscount), &mut result__).from_abi::<u32>(result__)
1208     }
1209     pub unsafe fn RemoveTrailPoints(&self, generationid: u32) -> ::windows::runtime::Result<()> {
1210         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(generationid)).ok()
1211     }
1212     #[cfg(feature = "Win32_Graphics_Direct2D")]
1213     pub unsafe fn StartNewTrail(&self, color: *const super::Direct2D::D2D1_COLOR_F) -> ::windows::runtime::Result<()> {
1214         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(color)).ok()
1215     }
1216 }
1217 unsafe impl ::windows::runtime::Interface for IDCompositionDelegatedInkTrail {
1218     type Vtable = IDCompositionDelegatedInkTrail_abi;
1219     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3259272859, 21629, 16471, [140, 245, 129, 68, 237, 225, 194, 218]);
1220 }
1221 impl ::std::convert::From<IDCompositionDelegatedInkTrail> for ::windows::runtime::IUnknown {
1222     fn from(value: IDCompositionDelegatedInkTrail) -> Self {
1223         unsafe { ::std::mem::transmute(value) }
1224     }
1225 }
1226 impl ::std::convert::From<&IDCompositionDelegatedInkTrail> for ::windows::runtime::IUnknown {
1227     fn from(value: &IDCompositionDelegatedInkTrail) -> Self {
1228         ::std::convert::From::from(::std::clone::Clone::clone(value))
1229     }
1230 }
1231 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionDelegatedInkTrail {
1232     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1233         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1234     }
1235 }
1236 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionDelegatedInkTrail {
1237     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1238         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1239     }
1240 }
1241 #[repr(C)]
1242 #[doc(hidden)]
1243 pub struct IDCompositionDelegatedInkTrail_abi(
1244     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1245     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1246     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1247     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, inkpoints: *const DCompositionInkTrailPoint, inkpointscount: u32, generationid: *mut u32) -> ::windows::runtime::HRESULT,
1248     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, inkpoints: *const DCompositionInkTrailPoint, inkpointscount: u32, predictedinkpoints: *const DCompositionInkTrailPoint, predictedinkpointscount: u32, generationid: *mut u32) -> ::windows::runtime::HRESULT,
1249     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, generationid: u32) -> ::windows::runtime::HRESULT,
1250     #[cfg(feature = "Win32_Graphics_Direct2D")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, color: *const super::Direct2D::D2D1_COLOR_F) -> ::windows::runtime::HRESULT,
1251     #[cfg(not(feature = "Win32_Graphics_Direct2D"))] usize,
1252 );
1253 #[repr(transparent)]
1254 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1255 pub struct IDCompositionDesktopDevice(::windows::runtime::IUnknown);
1256 impl IDCompositionDesktopDevice {
1257     pub unsafe fn Commit(&self) -> ::windows::runtime::Result<()> {
1258         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)).ok()
1259     }
1260     pub unsafe fn WaitForCommitCompletion(&self) -> ::windows::runtime::Result<()> {
1261         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)).ok()
1262     }
1263     #[cfg(feature = "Win32_Graphics_Dxgi")]
1264     pub unsafe fn GetFrameStatistics(&self) -> ::windows::runtime::Result<DCOMPOSITION_FRAME_STATISTICS> {
1265         let mut result__: <DCOMPOSITION_FRAME_STATISTICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1266         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DCOMPOSITION_FRAME_STATISTICS>(result__)
1267     }
1268     pub unsafe fn CreateVisual(&self) -> ::windows::runtime::Result<IDCompositionVisual2> {
1269         let mut result__: <IDCompositionVisual2 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1270         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionVisual2>(result__)
1271     }
1272     pub unsafe fn CreateSurfaceFactory<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, renderingdevice: Param0) -> ::windows::runtime::Result<IDCompositionSurfaceFactory> {
1273         let mut result__: <IDCompositionSurfaceFactory as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1274         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), renderingdevice.into_param().abi(), &mut result__).from_abi::<IDCompositionSurfaceFactory>(result__)
1275     }
1276     #[cfg(feature = "Win32_Graphics_Dxgi")]
1277     pub unsafe fn CreateSurface(&self, width: u32, height: u32, pixelformat: super::Dxgi::DXGI_FORMAT, alphamode: super::Dxgi::DXGI_ALPHA_MODE) -> ::windows::runtime::Result<IDCompositionSurface> {
1278         let mut result__: <IDCompositionSurface as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1279         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(width), ::std::mem::transmute(height), ::std::mem::transmute(pixelformat), ::std::mem::transmute(alphamode), &mut result__).from_abi::<IDCompositionSurface>(result__)
1280     }
1281     #[cfg(feature = "Win32_Graphics_Dxgi")]
1282     pub unsafe fn CreateVirtualSurface(&self, initialwidth: u32, initialheight: u32, pixelformat: super::Dxgi::DXGI_FORMAT, alphamode: super::Dxgi::DXGI_ALPHA_MODE) -> ::windows::runtime::Result<IDCompositionVirtualSurface> {
1283         let mut result__: <IDCompositionVirtualSurface as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1284         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(initialwidth), ::std::mem::transmute(initialheight), ::std::mem::transmute(pixelformat), ::std::mem::transmute(alphamode), &mut result__).from_abi::<IDCompositionVirtualSurface>(result__)
1285     }
1286     pub unsafe fn CreateTranslateTransform(&self) -> ::windows::runtime::Result<IDCompositionTranslateTransform> {
1287         let mut result__: <IDCompositionTranslateTransform as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1288         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionTranslateTransform>(result__)
1289     }
1290     pub unsafe fn CreateScaleTransform(&self) -> ::windows::runtime::Result<IDCompositionScaleTransform> {
1291         let mut result__: <IDCompositionScaleTransform as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1292         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionScaleTransform>(result__)
1293     }
1294     pub unsafe fn CreateRotateTransform(&self) -> ::windows::runtime::Result<IDCompositionRotateTransform> {
1295         let mut result__: <IDCompositionRotateTransform as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1296         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionRotateTransform>(result__)
1297     }
1298     pub unsafe fn CreateSkewTransform(&self) -> ::windows::runtime::Result<IDCompositionSkewTransform> {
1299         let mut result__: <IDCompositionSkewTransform as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1300         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionSkewTransform>(result__)
1301     }
1302     pub unsafe fn CreateMatrixTransform(&self) -> ::windows::runtime::Result<IDCompositionMatrixTransform> {
1303         let mut result__: <IDCompositionMatrixTransform as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1304         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionMatrixTransform>(result__)
1305     }
1306     pub unsafe fn CreateTransformGroup(&self, transforms: *const ::std::option::Option<IDCompositionTransform>, elements: u32) -> ::windows::runtime::Result<IDCompositionTransform> {
1307         let mut result__: <IDCompositionTransform as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1308         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(transforms), ::std::mem::transmute(elements), &mut result__).from_abi::<IDCompositionTransform>(result__)
1309     }
1310     pub unsafe fn CreateTranslateTransform3D(&self) -> ::windows::runtime::Result<IDCompositionTranslateTransform3D> {
1311         let mut result__: <IDCompositionTranslateTransform3D as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1312         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionTranslateTransform3D>(result__)
1313     }
1314     pub unsafe fn CreateScaleTransform3D(&self) -> ::windows::runtime::Result<IDCompositionScaleTransform3D> {
1315         let mut result__: <IDCompositionScaleTransform3D as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1316         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionScaleTransform3D>(result__)
1317     }
1318     pub unsafe fn CreateRotateTransform3D(&self) -> ::windows::runtime::Result<IDCompositionRotateTransform3D> {
1319         let mut result__: <IDCompositionRotateTransform3D as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1320         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionRotateTransform3D>(result__)
1321     }
1322     pub unsafe fn CreateMatrixTransform3D(&self) -> ::windows::runtime::Result<IDCompositionMatrixTransform3D> {
1323         let mut result__: <IDCompositionMatrixTransform3D as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1324         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionMatrixTransform3D>(result__)
1325     }
1326     pub unsafe fn CreateTransform3DGroup(&self, transforms3d: *const ::std::option::Option<IDCompositionTransform3D>, elements: u32) -> ::windows::runtime::Result<IDCompositionTransform3D> {
1327         let mut result__: <IDCompositionTransform3D as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1328         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(transforms3d), ::std::mem::transmute(elements), &mut result__).from_abi::<IDCompositionTransform3D>(result__)
1329     }
1330     pub unsafe fn CreateEffectGroup(&self) -> ::windows::runtime::Result<IDCompositionEffectGroup> {
1331         let mut result__: <IDCompositionEffectGroup as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1332         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionEffectGroup>(result__)
1333     }
1334     pub unsafe fn CreateRectangleClip(&self) -> ::windows::runtime::Result<IDCompositionRectangleClip> {
1335         let mut result__: <IDCompositionRectangleClip as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1336         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionRectangleClip>(result__)
1337     }
1338     pub unsafe fn CreateAnimation(&self) -> ::windows::runtime::Result<IDCompositionAnimation> {
1339         let mut result__: <IDCompositionAnimation as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1340         (::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionAnimation>(result__)
1341     }
1342     #[cfg(feature = "Win32_Foundation")]
1343     pub unsafe fn CreateTargetForHwnd<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, hwnd: Param0, topmost: Param1) -> ::windows::runtime::Result<IDCompositionTarget> {
1344         let mut result__: <IDCompositionTarget as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1345         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), hwnd.into_param().abi(), topmost.into_param().abi(), &mut result__).from_abi::<IDCompositionTarget>(result__)
1346     }
1347     #[cfg(feature = "Win32_Foundation")]
1348     pub unsafe fn CreateSurfaceFromHandle<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, handle: Param0) -> ::windows::runtime::Result<::windows::runtime::IUnknown> {
1349         let mut result__: <::windows::runtime::IUnknown as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1350         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), handle.into_param().abi(), &mut result__).from_abi::<::windows::runtime::IUnknown>(result__)
1351     }
1352     #[cfg(feature = "Win32_Foundation")]
1353     pub unsafe fn CreateSurfaceFromHwnd<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, hwnd: Param0) -> ::windows::runtime::Result<::windows::runtime::IUnknown> {
1354         let mut result__: <::windows::runtime::IUnknown as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1355         (::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self), hwnd.into_param().abi(), &mut result__).from_abi::<::windows::runtime::IUnknown>(result__)
1356     }
1357 }
1358 unsafe impl ::windows::runtime::Interface for IDCompositionDesktopDevice {
1359     type Vtable = IDCompositionDesktopDevice_abi;
1360     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1598436350, 7688, 19640, [140, 117, 206, 36, 51, 63, 86, 2]);
1361 }
1362 impl ::std::convert::From<IDCompositionDesktopDevice> for ::windows::runtime::IUnknown {
1363     fn from(value: IDCompositionDesktopDevice) -> Self {
1364         unsafe { ::std::mem::transmute(value) }
1365     }
1366 }
1367 impl ::std::convert::From<&IDCompositionDesktopDevice> for ::windows::runtime::IUnknown {
1368     fn from(value: &IDCompositionDesktopDevice) -> Self {
1369         ::std::convert::From::from(::std::clone::Clone::clone(value))
1370     }
1371 }
1372 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionDesktopDevice {
1373     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1374         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1375     }
1376 }
1377 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionDesktopDevice {
1378     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1379         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1380     }
1381 }
1382 impl ::std::convert::From<IDCompositionDesktopDevice> for IDCompositionDevice2 {
1383     fn from(value: IDCompositionDesktopDevice) -> Self {
1384         unsafe { ::std::mem::transmute(value) }
1385     }
1386 }
1387 impl ::std::convert::From<&IDCompositionDesktopDevice> for IDCompositionDevice2 {
1388     fn from(value: &IDCompositionDesktopDevice) -> Self {
1389         ::std::convert::From::from(::std::clone::Clone::clone(value))
1390     }
1391 }
1392 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionDevice2> for IDCompositionDesktopDevice {
1393     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionDevice2> {
1394         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionDevice2>::into(self))
1395     }
1396 }
1397 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionDevice2> for &IDCompositionDesktopDevice {
1398     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionDevice2> {
1399         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionDevice2>::into(::std::clone::Clone::clone(self)))
1400     }
1401 }
1402 #[repr(C)]
1403 #[doc(hidden)]
1404 pub struct IDCompositionDesktopDevice_abi(
1405     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1406     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1407     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1408     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1409     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1410     #[cfg(feature = "Win32_Graphics_Dxgi")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, statistics: *mut DCOMPOSITION_FRAME_STATISTICS) -> ::windows::runtime::HRESULT,
1411     #[cfg(not(feature = "Win32_Graphics_Dxgi"))] usize,
1412     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, visual: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1413     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, renderingdevice: ::windows::runtime::RawPtr, surfacefactory: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1414     #[cfg(feature = "Win32_Graphics_Dxgi")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, width: u32, height: u32, pixelformat: super::Dxgi::DXGI_FORMAT, alphamode: super::Dxgi::DXGI_ALPHA_MODE, surface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1415     #[cfg(not(feature = "Win32_Graphics_Dxgi"))] usize,
1416     #[cfg(feature = "Win32_Graphics_Dxgi")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, initialwidth: u32, initialheight: u32, pixelformat: super::Dxgi::DXGI_FORMAT, alphamode: super::Dxgi::DXGI_ALPHA_MODE, virtualsurface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1417     #[cfg(not(feature = "Win32_Graphics_Dxgi"))] usize,
1418     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, translatetransform: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1419     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, scaletransform: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1420     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, rotatetransform: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1421     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, skewtransform: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1422     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, matrixtransform: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1423     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, transforms: *const ::windows::runtime::RawPtr, elements: u32, transformgroup: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1424     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, translatetransform3d: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1425     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, scaletransform3d: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1426     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, rotatetransform3d: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1427     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, matrixtransform3d: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1428     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, transforms3d: *const ::windows::runtime::RawPtr, elements: u32, transform3dgroup: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1429     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, effectgroup: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1430     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clip: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1431     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1432     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hwnd: super::super::Foundation::HWND, topmost: super::super::Foundation::BOOL, target: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1433     #[cfg(not(feature = "Win32_Foundation"))] usize,
1434     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, handle: super::super::Foundation::HANDLE, surface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1435     #[cfg(not(feature = "Win32_Foundation"))] usize,
1436     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hwnd: super::super::Foundation::HWND, surface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1437     #[cfg(not(feature = "Win32_Foundation"))] usize,
1438 );
1439 #[repr(transparent)]
1440 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1441 pub struct IDCompositionDevice(::windows::runtime::IUnknown);
1442 impl IDCompositionDevice {
1443     pub unsafe fn Commit(&self) -> ::windows::runtime::Result<()> {
1444         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)).ok()
1445     }
1446     pub unsafe fn WaitForCommitCompletion(&self) -> ::windows::runtime::Result<()> {
1447         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)).ok()
1448     }
1449     #[cfg(feature = "Win32_Graphics_Dxgi")]
1450     pub unsafe fn GetFrameStatistics(&self) -> ::windows::runtime::Result<DCOMPOSITION_FRAME_STATISTICS> {
1451         let mut result__: <DCOMPOSITION_FRAME_STATISTICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1452         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DCOMPOSITION_FRAME_STATISTICS>(result__)
1453     }
1454     #[cfg(feature = "Win32_Foundation")]
1455     pub unsafe fn CreateTargetForHwnd<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, hwnd: Param0, topmost: Param1) -> ::windows::runtime::Result<IDCompositionTarget> {
1456         let mut result__: <IDCompositionTarget as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1457         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), hwnd.into_param().abi(), topmost.into_param().abi(), &mut result__).from_abi::<IDCompositionTarget>(result__)
1458     }
1459     pub unsafe fn CreateVisual(&self) -> ::windows::runtime::Result<IDCompositionVisual> {
1460         let mut result__: <IDCompositionVisual as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1461         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionVisual>(result__)
1462     }
1463     #[cfg(feature = "Win32_Graphics_Dxgi")]
1464     pub unsafe fn CreateSurface(&self, width: u32, height: u32, pixelformat: super::Dxgi::DXGI_FORMAT, alphamode: super::Dxgi::DXGI_ALPHA_MODE) -> ::windows::runtime::Result<IDCompositionSurface> {
1465         let mut result__: <IDCompositionSurface as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1466         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(width), ::std::mem::transmute(height), ::std::mem::transmute(pixelformat), ::std::mem::transmute(alphamode), &mut result__).from_abi::<IDCompositionSurface>(result__)
1467     }
1468     #[cfg(feature = "Win32_Graphics_Dxgi")]
1469     pub unsafe fn CreateVirtualSurface(&self, initialwidth: u32, initialheight: u32, pixelformat: super::Dxgi::DXGI_FORMAT, alphamode: super::Dxgi::DXGI_ALPHA_MODE) -> ::windows::runtime::Result<IDCompositionVirtualSurface> {
1470         let mut result__: <IDCompositionVirtualSurface as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1471         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(initialwidth), ::std::mem::transmute(initialheight), ::std::mem::transmute(pixelformat), ::std::mem::transmute(alphamode), &mut result__).from_abi::<IDCompositionVirtualSurface>(result__)
1472     }
1473     #[cfg(feature = "Win32_Foundation")]
1474     pub unsafe fn CreateSurfaceFromHandle<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, handle: Param0) -> ::windows::runtime::Result<::windows::runtime::IUnknown> {
1475         let mut result__: <::windows::runtime::IUnknown as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1476         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), handle.into_param().abi(), &mut result__).from_abi::<::windows::runtime::IUnknown>(result__)
1477     }
1478     #[cfg(feature = "Win32_Foundation")]
1479     pub unsafe fn CreateSurfaceFromHwnd<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, hwnd: Param0) -> ::windows::runtime::Result<::windows::runtime::IUnknown> {
1480         let mut result__: <::windows::runtime::IUnknown as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1481         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), hwnd.into_param().abi(), &mut result__).from_abi::<::windows::runtime::IUnknown>(result__)
1482     }
1483     pub unsafe fn CreateTranslateTransform(&self) -> ::windows::runtime::Result<IDCompositionTranslateTransform> {
1484         let mut result__: <IDCompositionTranslateTransform as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1485         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionTranslateTransform>(result__)
1486     }
1487     pub unsafe fn CreateScaleTransform(&self) -> ::windows::runtime::Result<IDCompositionScaleTransform> {
1488         let mut result__: <IDCompositionScaleTransform as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1489         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionScaleTransform>(result__)
1490     }
1491     pub unsafe fn CreateRotateTransform(&self) -> ::windows::runtime::Result<IDCompositionRotateTransform> {
1492         let mut result__: <IDCompositionRotateTransform as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1493         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionRotateTransform>(result__)
1494     }
1495     pub unsafe fn CreateSkewTransform(&self) -> ::windows::runtime::Result<IDCompositionSkewTransform> {
1496         let mut result__: <IDCompositionSkewTransform as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1497         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionSkewTransform>(result__)
1498     }
1499     pub unsafe fn CreateMatrixTransform(&self) -> ::windows::runtime::Result<IDCompositionMatrixTransform> {
1500         let mut result__: <IDCompositionMatrixTransform as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1501         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionMatrixTransform>(result__)
1502     }
1503     pub unsafe fn CreateTransformGroup(&self, transforms: *const ::std::option::Option<IDCompositionTransform>, elements: u32) -> ::windows::runtime::Result<IDCompositionTransform> {
1504         let mut result__: <IDCompositionTransform as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1505         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), ::std::mem::transmute(transforms), ::std::mem::transmute(elements), &mut result__).from_abi::<IDCompositionTransform>(result__)
1506     }
1507     pub unsafe fn CreateTranslateTransform3D(&self) -> ::windows::runtime::Result<IDCompositionTranslateTransform3D> {
1508         let mut result__: <IDCompositionTranslateTransform3D as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1509         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionTranslateTransform3D>(result__)
1510     }
1511     pub unsafe fn CreateScaleTransform3D(&self) -> ::windows::runtime::Result<IDCompositionScaleTransform3D> {
1512         let mut result__: <IDCompositionScaleTransform3D as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1513         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionScaleTransform3D>(result__)
1514     }
1515     pub unsafe fn CreateRotateTransform3D(&self) -> ::windows::runtime::Result<IDCompositionRotateTransform3D> {
1516         let mut result__: <IDCompositionRotateTransform3D as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1517         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionRotateTransform3D>(result__)
1518     }
1519     pub unsafe fn CreateMatrixTransform3D(&self) -> ::windows::runtime::Result<IDCompositionMatrixTransform3D> {
1520         let mut result__: <IDCompositionMatrixTransform3D as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1521         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionMatrixTransform3D>(result__)
1522     }
1523     pub unsafe fn CreateTransform3DGroup(&self, transforms3d: *const ::std::option::Option<IDCompositionTransform3D>, elements: u32) -> ::windows::runtime::Result<IDCompositionTransform3D> {
1524         let mut result__: <IDCompositionTransform3D as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1525         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), ::std::mem::transmute(transforms3d), ::std::mem::transmute(elements), &mut result__).from_abi::<IDCompositionTransform3D>(result__)
1526     }
1527     pub unsafe fn CreateEffectGroup(&self) -> ::windows::runtime::Result<IDCompositionEffectGroup> {
1528         let mut result__: <IDCompositionEffectGroup as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1529         (::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionEffectGroup>(result__)
1530     }
1531     pub unsafe fn CreateRectangleClip(&self) -> ::windows::runtime::Result<IDCompositionRectangleClip> {
1532         let mut result__: <IDCompositionRectangleClip as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1533         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionRectangleClip>(result__)
1534     }
1535     pub unsafe fn CreateAnimation(&self) -> ::windows::runtime::Result<IDCompositionAnimation> {
1536         let mut result__: <IDCompositionAnimation as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1537         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionAnimation>(result__)
1538     }
1539     #[cfg(feature = "Win32_Foundation")]
1540     pub unsafe fn CheckDeviceState(&self) -> ::windows::runtime::Result<super::super::Foundation::BOOL> {
1541         let mut result__: <super::super::Foundation::BOOL as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1542         (::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BOOL>(result__)
1543     }
1544 }
1545 unsafe impl ::windows::runtime::Interface for IDCompositionDevice {
1546     type Vtable = IDCompositionDevice_abi;
1547     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3279857978, 59306, 17677, [177, 111, 151, 70, 203, 4, 7, 243]);
1548 }
1549 impl ::std::convert::From<IDCompositionDevice> for ::windows::runtime::IUnknown {
1550     fn from(value: IDCompositionDevice) -> Self {
1551         unsafe { ::std::mem::transmute(value) }
1552     }
1553 }
1554 impl ::std::convert::From<&IDCompositionDevice> for ::windows::runtime::IUnknown {
1555     fn from(value: &IDCompositionDevice) -> Self {
1556         ::std::convert::From::from(::std::clone::Clone::clone(value))
1557     }
1558 }
1559 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionDevice {
1560     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1561         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1562     }
1563 }
1564 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionDevice {
1565     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1566         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1567     }
1568 }
1569 #[repr(C)]
1570 #[doc(hidden)]
1571 pub struct IDCompositionDevice_abi(
1572     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1573     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1574     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1575     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1576     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1577     #[cfg(feature = "Win32_Graphics_Dxgi")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, statistics: *mut DCOMPOSITION_FRAME_STATISTICS) -> ::windows::runtime::HRESULT,
1578     #[cfg(not(feature = "Win32_Graphics_Dxgi"))] usize,
1579     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hwnd: super::super::Foundation::HWND, topmost: super::super::Foundation::BOOL, target: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1580     #[cfg(not(feature = "Win32_Foundation"))] usize,
1581     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, visual: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1582     #[cfg(feature = "Win32_Graphics_Dxgi")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, width: u32, height: u32, pixelformat: super::Dxgi::DXGI_FORMAT, alphamode: super::Dxgi::DXGI_ALPHA_MODE, surface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1583     #[cfg(not(feature = "Win32_Graphics_Dxgi"))] usize,
1584     #[cfg(feature = "Win32_Graphics_Dxgi")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, initialwidth: u32, initialheight: u32, pixelformat: super::Dxgi::DXGI_FORMAT, alphamode: super::Dxgi::DXGI_ALPHA_MODE, virtualsurface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1585     #[cfg(not(feature = "Win32_Graphics_Dxgi"))] usize,
1586     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, handle: super::super::Foundation::HANDLE, surface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1587     #[cfg(not(feature = "Win32_Foundation"))] usize,
1588     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hwnd: super::super::Foundation::HWND, surface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1589     #[cfg(not(feature = "Win32_Foundation"))] usize,
1590     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, translatetransform: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1591     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, scaletransform: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1592     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, rotatetransform: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1593     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, skewtransform: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1594     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, matrixtransform: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1595     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, transforms: *const ::windows::runtime::RawPtr, elements: u32, transformgroup: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1596     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, translatetransform3d: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1597     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, scaletransform3d: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1598     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, rotatetransform3d: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1599     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, matrixtransform3d: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1600     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, transforms3d: *const ::windows::runtime::RawPtr, elements: u32, transform3dgroup: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1601     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, effectgroup: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1602     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clip: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1603     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1604     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pfvalid: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
1605     #[cfg(not(feature = "Win32_Foundation"))] usize,
1606 );
1607 #[repr(transparent)]
1608 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1609 pub struct IDCompositionDevice2(::windows::runtime::IUnknown);
1610 impl IDCompositionDevice2 {
1611     pub unsafe fn Commit(&self) -> ::windows::runtime::Result<()> {
1612         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)).ok()
1613     }
1614     pub unsafe fn WaitForCommitCompletion(&self) -> ::windows::runtime::Result<()> {
1615         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)).ok()
1616     }
1617     #[cfg(feature = "Win32_Graphics_Dxgi")]
1618     pub unsafe fn GetFrameStatistics(&self) -> ::windows::runtime::Result<DCOMPOSITION_FRAME_STATISTICS> {
1619         let mut result__: <DCOMPOSITION_FRAME_STATISTICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1620         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DCOMPOSITION_FRAME_STATISTICS>(result__)
1621     }
1622     pub unsafe fn CreateVisual(&self) -> ::windows::runtime::Result<IDCompositionVisual2> {
1623         let mut result__: <IDCompositionVisual2 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1624         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionVisual2>(result__)
1625     }
1626     pub unsafe fn CreateSurfaceFactory<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, renderingdevice: Param0) -> ::windows::runtime::Result<IDCompositionSurfaceFactory> {
1627         let mut result__: <IDCompositionSurfaceFactory as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1628         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), renderingdevice.into_param().abi(), &mut result__).from_abi::<IDCompositionSurfaceFactory>(result__)
1629     }
1630     #[cfg(feature = "Win32_Graphics_Dxgi")]
1631     pub unsafe fn CreateSurface(&self, width: u32, height: u32, pixelformat: super::Dxgi::DXGI_FORMAT, alphamode: super::Dxgi::DXGI_ALPHA_MODE) -> ::windows::runtime::Result<IDCompositionSurface> {
1632         let mut result__: <IDCompositionSurface as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1633         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(width), ::std::mem::transmute(height), ::std::mem::transmute(pixelformat), ::std::mem::transmute(alphamode), &mut result__).from_abi::<IDCompositionSurface>(result__)
1634     }
1635     #[cfg(feature = "Win32_Graphics_Dxgi")]
1636     pub unsafe fn CreateVirtualSurface(&self, initialwidth: u32, initialheight: u32, pixelformat: super::Dxgi::DXGI_FORMAT, alphamode: super::Dxgi::DXGI_ALPHA_MODE) -> ::windows::runtime::Result<IDCompositionVirtualSurface> {
1637         let mut result__: <IDCompositionVirtualSurface as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1638         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(initialwidth), ::std::mem::transmute(initialheight), ::std::mem::transmute(pixelformat), ::std::mem::transmute(alphamode), &mut result__).from_abi::<IDCompositionVirtualSurface>(result__)
1639     }
1640     pub unsafe fn CreateTranslateTransform(&self) -> ::windows::runtime::Result<IDCompositionTranslateTransform> {
1641         let mut result__: <IDCompositionTranslateTransform as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1642         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionTranslateTransform>(result__)
1643     }
1644     pub unsafe fn CreateScaleTransform(&self) -> ::windows::runtime::Result<IDCompositionScaleTransform> {
1645         let mut result__: <IDCompositionScaleTransform as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1646         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionScaleTransform>(result__)
1647     }
1648     pub unsafe fn CreateRotateTransform(&self) -> ::windows::runtime::Result<IDCompositionRotateTransform> {
1649         let mut result__: <IDCompositionRotateTransform as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1650         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionRotateTransform>(result__)
1651     }
1652     pub unsafe fn CreateSkewTransform(&self) -> ::windows::runtime::Result<IDCompositionSkewTransform> {
1653         let mut result__: <IDCompositionSkewTransform as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1654         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionSkewTransform>(result__)
1655     }
1656     pub unsafe fn CreateMatrixTransform(&self) -> ::windows::runtime::Result<IDCompositionMatrixTransform> {
1657         let mut result__: <IDCompositionMatrixTransform as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1658         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionMatrixTransform>(result__)
1659     }
1660     pub unsafe fn CreateTransformGroup(&self, transforms: *const ::std::option::Option<IDCompositionTransform>, elements: u32) -> ::windows::runtime::Result<IDCompositionTransform> {
1661         let mut result__: <IDCompositionTransform as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1662         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(transforms), ::std::mem::transmute(elements), &mut result__).from_abi::<IDCompositionTransform>(result__)
1663     }
1664     pub unsafe fn CreateTranslateTransform3D(&self) -> ::windows::runtime::Result<IDCompositionTranslateTransform3D> {
1665         let mut result__: <IDCompositionTranslateTransform3D as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1666         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionTranslateTransform3D>(result__)
1667     }
1668     pub unsafe fn CreateScaleTransform3D(&self) -> ::windows::runtime::Result<IDCompositionScaleTransform3D> {
1669         let mut result__: <IDCompositionScaleTransform3D as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1670         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionScaleTransform3D>(result__)
1671     }
1672     pub unsafe fn CreateRotateTransform3D(&self) -> ::windows::runtime::Result<IDCompositionRotateTransform3D> {
1673         let mut result__: <IDCompositionRotateTransform3D as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1674         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionRotateTransform3D>(result__)
1675     }
1676     pub unsafe fn CreateMatrixTransform3D(&self) -> ::windows::runtime::Result<IDCompositionMatrixTransform3D> {
1677         let mut result__: <IDCompositionMatrixTransform3D as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1678         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionMatrixTransform3D>(result__)
1679     }
1680     pub unsafe fn CreateTransform3DGroup(&self, transforms3d: *const ::std::option::Option<IDCompositionTransform3D>, elements: u32) -> ::windows::runtime::Result<IDCompositionTransform3D> {
1681         let mut result__: <IDCompositionTransform3D as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1682         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(transforms3d), ::std::mem::transmute(elements), &mut result__).from_abi::<IDCompositionTransform3D>(result__)
1683     }
1684     pub unsafe fn CreateEffectGroup(&self) -> ::windows::runtime::Result<IDCompositionEffectGroup> {
1685         let mut result__: <IDCompositionEffectGroup as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1686         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionEffectGroup>(result__)
1687     }
1688     pub unsafe fn CreateRectangleClip(&self) -> ::windows::runtime::Result<IDCompositionRectangleClip> {
1689         let mut result__: <IDCompositionRectangleClip as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1690         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionRectangleClip>(result__)
1691     }
1692     pub unsafe fn CreateAnimation(&self) -> ::windows::runtime::Result<IDCompositionAnimation> {
1693         let mut result__: <IDCompositionAnimation as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1694         (::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionAnimation>(result__)
1695     }
1696 }
1697 unsafe impl ::windows::runtime::Interface for IDCompositionDevice2 {
1698     type Vtable = IDCompositionDevice2_abi;
1699     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1979074189, 7054, 17532, [155, 198, 117, 254, 168, 11, 91, 37]);
1700 }
1701 impl ::std::convert::From<IDCompositionDevice2> for ::windows::runtime::IUnknown {
1702     fn from(value: IDCompositionDevice2) -> Self {
1703         unsafe { ::std::mem::transmute(value) }
1704     }
1705 }
1706 impl ::std::convert::From<&IDCompositionDevice2> for ::windows::runtime::IUnknown {
1707     fn from(value: &IDCompositionDevice2) -> Self {
1708         ::std::convert::From::from(::std::clone::Clone::clone(value))
1709     }
1710 }
1711 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionDevice2 {
1712     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1713         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1714     }
1715 }
1716 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionDevice2 {
1717     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1718         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1719     }
1720 }
1721 #[repr(C)]
1722 #[doc(hidden)]
1723 pub struct IDCompositionDevice2_abi(
1724     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1725     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1726     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1727     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1728     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1729     #[cfg(feature = "Win32_Graphics_Dxgi")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, statistics: *mut DCOMPOSITION_FRAME_STATISTICS) -> ::windows::runtime::HRESULT,
1730     #[cfg(not(feature = "Win32_Graphics_Dxgi"))] usize,
1731     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, visual: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1732     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, renderingdevice: ::windows::runtime::RawPtr, surfacefactory: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1733     #[cfg(feature = "Win32_Graphics_Dxgi")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, width: u32, height: u32, pixelformat: super::Dxgi::DXGI_FORMAT, alphamode: super::Dxgi::DXGI_ALPHA_MODE, surface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1734     #[cfg(not(feature = "Win32_Graphics_Dxgi"))] usize,
1735     #[cfg(feature = "Win32_Graphics_Dxgi")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, initialwidth: u32, initialheight: u32, pixelformat: super::Dxgi::DXGI_FORMAT, alphamode: super::Dxgi::DXGI_ALPHA_MODE, virtualsurface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1736     #[cfg(not(feature = "Win32_Graphics_Dxgi"))] usize,
1737     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, translatetransform: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1738     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, scaletransform: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1739     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, rotatetransform: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1740     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, skewtransform: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1741     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, matrixtransform: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1742     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, transforms: *const ::windows::runtime::RawPtr, elements: u32, transformgroup: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1743     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, translatetransform3d: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1744     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, scaletransform3d: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1745     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, rotatetransform3d: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1746     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, matrixtransform3d: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1747     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, transforms3d: *const ::windows::runtime::RawPtr, elements: u32, transform3dgroup: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1748     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, effectgroup: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1749     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clip: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1750     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1751 );
1752 #[repr(transparent)]
1753 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1754 pub struct IDCompositionDevice3(::windows::runtime::IUnknown);
1755 impl IDCompositionDevice3 {
1756     pub unsafe fn Commit(&self) -> ::windows::runtime::Result<()> {
1757         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)).ok()
1758     }
1759     pub unsafe fn WaitForCommitCompletion(&self) -> ::windows::runtime::Result<()> {
1760         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)).ok()
1761     }
1762     #[cfg(feature = "Win32_Graphics_Dxgi")]
1763     pub unsafe fn GetFrameStatistics(&self) -> ::windows::runtime::Result<DCOMPOSITION_FRAME_STATISTICS> {
1764         let mut result__: <DCOMPOSITION_FRAME_STATISTICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1765         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DCOMPOSITION_FRAME_STATISTICS>(result__)
1766     }
1767     pub unsafe fn CreateVisual(&self) -> ::windows::runtime::Result<IDCompositionVisual2> {
1768         let mut result__: <IDCompositionVisual2 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1769         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionVisual2>(result__)
1770     }
1771     pub unsafe fn CreateSurfaceFactory<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, renderingdevice: Param0) -> ::windows::runtime::Result<IDCompositionSurfaceFactory> {
1772         let mut result__: <IDCompositionSurfaceFactory as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1773         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), renderingdevice.into_param().abi(), &mut result__).from_abi::<IDCompositionSurfaceFactory>(result__)
1774     }
1775     #[cfg(feature = "Win32_Graphics_Dxgi")]
1776     pub unsafe fn CreateSurface(&self, width: u32, height: u32, pixelformat: super::Dxgi::DXGI_FORMAT, alphamode: super::Dxgi::DXGI_ALPHA_MODE) -> ::windows::runtime::Result<IDCompositionSurface> {
1777         let mut result__: <IDCompositionSurface as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1778         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(width), ::std::mem::transmute(height), ::std::mem::transmute(pixelformat), ::std::mem::transmute(alphamode), &mut result__).from_abi::<IDCompositionSurface>(result__)
1779     }
1780     #[cfg(feature = "Win32_Graphics_Dxgi")]
1781     pub unsafe fn CreateVirtualSurface(&self, initialwidth: u32, initialheight: u32, pixelformat: super::Dxgi::DXGI_FORMAT, alphamode: super::Dxgi::DXGI_ALPHA_MODE) -> ::windows::runtime::Result<IDCompositionVirtualSurface> {
1782         let mut result__: <IDCompositionVirtualSurface as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1783         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(initialwidth), ::std::mem::transmute(initialheight), ::std::mem::transmute(pixelformat), ::std::mem::transmute(alphamode), &mut result__).from_abi::<IDCompositionVirtualSurface>(result__)
1784     }
1785     pub unsafe fn CreateTranslateTransform(&self) -> ::windows::runtime::Result<IDCompositionTranslateTransform> {
1786         let mut result__: <IDCompositionTranslateTransform as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1787         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionTranslateTransform>(result__)
1788     }
1789     pub unsafe fn CreateScaleTransform(&self) -> ::windows::runtime::Result<IDCompositionScaleTransform> {
1790         let mut result__: <IDCompositionScaleTransform as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1791         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionScaleTransform>(result__)
1792     }
1793     pub unsafe fn CreateRotateTransform(&self) -> ::windows::runtime::Result<IDCompositionRotateTransform> {
1794         let mut result__: <IDCompositionRotateTransform as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1795         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionRotateTransform>(result__)
1796     }
1797     pub unsafe fn CreateSkewTransform(&self) -> ::windows::runtime::Result<IDCompositionSkewTransform> {
1798         let mut result__: <IDCompositionSkewTransform as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1799         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionSkewTransform>(result__)
1800     }
1801     pub unsafe fn CreateMatrixTransform(&self) -> ::windows::runtime::Result<IDCompositionMatrixTransform> {
1802         let mut result__: <IDCompositionMatrixTransform as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1803         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionMatrixTransform>(result__)
1804     }
1805     pub unsafe fn CreateTransformGroup(&self, transforms: *const ::std::option::Option<IDCompositionTransform>, elements: u32) -> ::windows::runtime::Result<IDCompositionTransform> {
1806         let mut result__: <IDCompositionTransform as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1807         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(transforms), ::std::mem::transmute(elements), &mut result__).from_abi::<IDCompositionTransform>(result__)
1808     }
1809     pub unsafe fn CreateTranslateTransform3D(&self) -> ::windows::runtime::Result<IDCompositionTranslateTransform3D> {
1810         let mut result__: <IDCompositionTranslateTransform3D as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1811         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionTranslateTransform3D>(result__)
1812     }
1813     pub unsafe fn CreateScaleTransform3D(&self) -> ::windows::runtime::Result<IDCompositionScaleTransform3D> {
1814         let mut result__: <IDCompositionScaleTransform3D as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1815         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionScaleTransform3D>(result__)
1816     }
1817     pub unsafe fn CreateRotateTransform3D(&self) -> ::windows::runtime::Result<IDCompositionRotateTransform3D> {
1818         let mut result__: <IDCompositionRotateTransform3D as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1819         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionRotateTransform3D>(result__)
1820     }
1821     pub unsafe fn CreateMatrixTransform3D(&self) -> ::windows::runtime::Result<IDCompositionMatrixTransform3D> {
1822         let mut result__: <IDCompositionMatrixTransform3D as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1823         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionMatrixTransform3D>(result__)
1824     }
1825     pub unsafe fn CreateTransform3DGroup(&self, transforms3d: *const ::std::option::Option<IDCompositionTransform3D>, elements: u32) -> ::windows::runtime::Result<IDCompositionTransform3D> {
1826         let mut result__: <IDCompositionTransform3D as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1827         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(transforms3d), ::std::mem::transmute(elements), &mut result__).from_abi::<IDCompositionTransform3D>(result__)
1828     }
1829     pub unsafe fn CreateEffectGroup(&self) -> ::windows::runtime::Result<IDCompositionEffectGroup> {
1830         let mut result__: <IDCompositionEffectGroup as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1831         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionEffectGroup>(result__)
1832     }
1833     pub unsafe fn CreateRectangleClip(&self) -> ::windows::runtime::Result<IDCompositionRectangleClip> {
1834         let mut result__: <IDCompositionRectangleClip as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1835         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionRectangleClip>(result__)
1836     }
1837     pub unsafe fn CreateAnimation(&self) -> ::windows::runtime::Result<IDCompositionAnimation> {
1838         let mut result__: <IDCompositionAnimation as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1839         (::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionAnimation>(result__)
1840     }
1841     pub unsafe fn CreateGaussianBlurEffect(&self) -> ::windows::runtime::Result<IDCompositionGaussianBlurEffect> {
1842         let mut result__: <IDCompositionGaussianBlurEffect as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1843         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionGaussianBlurEffect>(result__)
1844     }
1845     pub unsafe fn CreateBrightnessEffect(&self) -> ::windows::runtime::Result<IDCompositionBrightnessEffect> {
1846         let mut result__: <IDCompositionBrightnessEffect as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1847         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionBrightnessEffect>(result__)
1848     }
1849     pub unsafe fn CreateColorMatrixEffect(&self) -> ::windows::runtime::Result<IDCompositionColorMatrixEffect> {
1850         let mut result__: <IDCompositionColorMatrixEffect as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1851         (::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionColorMatrixEffect>(result__)
1852     }
1853     pub unsafe fn CreateShadowEffect(&self) -> ::windows::runtime::Result<IDCompositionShadowEffect> {
1854         let mut result__: <IDCompositionShadowEffect as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1855         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionShadowEffect>(result__)
1856     }
1857     pub unsafe fn CreateHueRotationEffect(&self) -> ::windows::runtime::Result<IDCompositionHueRotationEffect> {
1858         let mut result__: <IDCompositionHueRotationEffect as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1859         (::windows::runtime::Interface::vtable(self).28)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionHueRotationEffect>(result__)
1860     }
1861     pub unsafe fn CreateSaturationEffect(&self) -> ::windows::runtime::Result<IDCompositionSaturationEffect> {
1862         let mut result__: <IDCompositionSaturationEffect as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1863         (::windows::runtime::Interface::vtable(self).29)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionSaturationEffect>(result__)
1864     }
1865     pub unsafe fn CreateTurbulenceEffect(&self) -> ::windows::runtime::Result<IDCompositionTurbulenceEffect> {
1866         let mut result__: <IDCompositionTurbulenceEffect as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1867         (::windows::runtime::Interface::vtable(self).30)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionTurbulenceEffect>(result__)
1868     }
1869     pub unsafe fn CreateLinearTransferEffect(&self) -> ::windows::runtime::Result<IDCompositionLinearTransferEffect> {
1870         let mut result__: <IDCompositionLinearTransferEffect as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1871         (::windows::runtime::Interface::vtable(self).31)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionLinearTransferEffect>(result__)
1872     }
1873     pub unsafe fn CreateTableTransferEffect(&self) -> ::windows::runtime::Result<IDCompositionTableTransferEffect> {
1874         let mut result__: <IDCompositionTableTransferEffect as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1875         (::windows::runtime::Interface::vtable(self).32)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionTableTransferEffect>(result__)
1876     }
1877     pub unsafe fn CreateCompositeEffect(&self) -> ::windows::runtime::Result<IDCompositionCompositeEffect> {
1878         let mut result__: <IDCompositionCompositeEffect as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1879         (::windows::runtime::Interface::vtable(self).33)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionCompositeEffect>(result__)
1880     }
1881     pub unsafe fn CreateBlendEffect(&self) -> ::windows::runtime::Result<IDCompositionBlendEffect> {
1882         let mut result__: <IDCompositionBlendEffect as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1883         (::windows::runtime::Interface::vtable(self).34)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionBlendEffect>(result__)
1884     }
1885     pub unsafe fn CreateArithmeticCompositeEffect(&self) -> ::windows::runtime::Result<IDCompositionArithmeticCompositeEffect> {
1886         let mut result__: <IDCompositionArithmeticCompositeEffect as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1887         (::windows::runtime::Interface::vtable(self).35)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionArithmeticCompositeEffect>(result__)
1888     }
1889     pub unsafe fn CreateAffineTransform2DEffect(&self) -> ::windows::runtime::Result<IDCompositionAffineTransform2DEffect> {
1890         let mut result__: <IDCompositionAffineTransform2DEffect as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1891         (::windows::runtime::Interface::vtable(self).36)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionAffineTransform2DEffect>(result__)
1892     }
1893 }
1894 unsafe impl ::windows::runtime::Interface for IDCompositionDevice3 {
1895     type Vtable = IDCompositionDevice3_abi;
1896     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(159894278, 63766, 18623, [141, 53, 206, 118, 65, 120, 27, 217]);
1897 }
1898 impl ::std::convert::From<IDCompositionDevice3> for ::windows::runtime::IUnknown {
1899     fn from(value: IDCompositionDevice3) -> Self {
1900         unsafe { ::std::mem::transmute(value) }
1901     }
1902 }
1903 impl ::std::convert::From<&IDCompositionDevice3> for ::windows::runtime::IUnknown {
1904     fn from(value: &IDCompositionDevice3) -> Self {
1905         ::std::convert::From::from(::std::clone::Clone::clone(value))
1906     }
1907 }
1908 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionDevice3 {
1909     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1910         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1911     }
1912 }
1913 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionDevice3 {
1914     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1915         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1916     }
1917 }
1918 impl ::std::convert::From<IDCompositionDevice3> for IDCompositionDevice2 {
1919     fn from(value: IDCompositionDevice3) -> Self {
1920         unsafe { ::std::mem::transmute(value) }
1921     }
1922 }
1923 impl ::std::convert::From<&IDCompositionDevice3> for IDCompositionDevice2 {
1924     fn from(value: &IDCompositionDevice3) -> Self {
1925         ::std::convert::From::from(::std::clone::Clone::clone(value))
1926     }
1927 }
1928 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionDevice2> for IDCompositionDevice3 {
1929     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionDevice2> {
1930         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionDevice2>::into(self))
1931     }
1932 }
1933 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionDevice2> for &IDCompositionDevice3 {
1934     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionDevice2> {
1935         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionDevice2>::into(::std::clone::Clone::clone(self)))
1936     }
1937 }
1938 #[repr(C)]
1939 #[doc(hidden)]
1940 pub struct IDCompositionDevice3_abi(
1941     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1942     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1943     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1944     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1945     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1946     #[cfg(feature = "Win32_Graphics_Dxgi")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, statistics: *mut DCOMPOSITION_FRAME_STATISTICS) -> ::windows::runtime::HRESULT,
1947     #[cfg(not(feature = "Win32_Graphics_Dxgi"))] usize,
1948     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, visual: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1949     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, renderingdevice: ::windows::runtime::RawPtr, surfacefactory: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1950     #[cfg(feature = "Win32_Graphics_Dxgi")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, width: u32, height: u32, pixelformat: super::Dxgi::DXGI_FORMAT, alphamode: super::Dxgi::DXGI_ALPHA_MODE, surface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1951     #[cfg(not(feature = "Win32_Graphics_Dxgi"))] usize,
1952     #[cfg(feature = "Win32_Graphics_Dxgi")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, initialwidth: u32, initialheight: u32, pixelformat: super::Dxgi::DXGI_FORMAT, alphamode: super::Dxgi::DXGI_ALPHA_MODE, virtualsurface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1953     #[cfg(not(feature = "Win32_Graphics_Dxgi"))] usize,
1954     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, translatetransform: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1955     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, scaletransform: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1956     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, rotatetransform: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1957     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, skewtransform: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1958     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, matrixtransform: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1959     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, transforms: *const ::windows::runtime::RawPtr, elements: u32, transformgroup: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1960     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, translatetransform3d: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1961     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, scaletransform3d: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1962     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, rotatetransform3d: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1963     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, matrixtransform3d: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1964     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, transforms3d: *const ::windows::runtime::RawPtr, elements: u32, transform3dgroup: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1965     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, effectgroup: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1966     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clip: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1967     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1968     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gaussianblureffect: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1969     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, brightnesseffect: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1970     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, colormatrixeffect: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1971     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, shadoweffect: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1972     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, huerotationeffect: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1973     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, saturationeffect: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1974     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, turbulenceeffect: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1975     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lineartransfereffect: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1976     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, tabletransfereffect: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1977     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, compositeeffect: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1978     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, blendeffect: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1979     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, arithmeticcompositeeffect: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1980     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, affinetransform2deffect: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1981 );
1982 #[repr(transparent)]
1983 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1984 pub struct IDCompositionDeviceDebug(::windows::runtime::IUnknown);
1985 impl IDCompositionDeviceDebug {
1986     pub unsafe fn EnableDebugCounters(&self) -> ::windows::runtime::Result<()> {
1987         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)).ok()
1988     }
1989     pub unsafe fn DisableDebugCounters(&self) -> ::windows::runtime::Result<()> {
1990         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)).ok()
1991     }
1992 }
1993 unsafe impl ::windows::runtime::Interface for IDCompositionDeviceDebug {
1994     type Vtable = IDCompositionDeviceDebug_abi;
1995     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2711864906, 8783, 19073, [151, 115, 79, 3, 168, 157, 60, 108]);
1996 }
1997 impl ::std::convert::From<IDCompositionDeviceDebug> for ::windows::runtime::IUnknown {
1998     fn from(value: IDCompositionDeviceDebug) -> Self {
1999         unsafe { ::std::mem::transmute(value) }
2000     }
2001 }
2002 impl ::std::convert::From<&IDCompositionDeviceDebug> for ::windows::runtime::IUnknown {
2003     fn from(value: &IDCompositionDeviceDebug) -> Self {
2004         ::std::convert::From::from(::std::clone::Clone::clone(value))
2005     }
2006 }
2007 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionDeviceDebug {
2008     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2009         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2010     }
2011 }
2012 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionDeviceDebug {
2013     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2014         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2015     }
2016 }
2017 #[repr(C)]
2018 #[doc(hidden)]
2019 pub struct IDCompositionDeviceDebug_abi(
2020     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2021     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2022     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2023     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2024     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2025 );
2026 #[repr(transparent)]
2027 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2028 pub struct IDCompositionEffect(::windows::runtime::IUnknown);
2029 impl IDCompositionEffect {}
2030 unsafe impl ::windows::runtime::Interface for IDCompositionEffect {
2031     type Vtable = IDCompositionEffect_abi;
2032     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3967922319, 49099, 20109, [177, 147, 169, 21, 88, 121, 153, 232]);
2033 }
2034 impl ::std::convert::From<IDCompositionEffect> for ::windows::runtime::IUnknown {
2035     fn from(value: IDCompositionEffect) -> Self {
2036         unsafe { ::std::mem::transmute(value) }
2037     }
2038 }
2039 impl ::std::convert::From<&IDCompositionEffect> for ::windows::runtime::IUnknown {
2040     fn from(value: &IDCompositionEffect) -> Self {
2041         ::std::convert::From::from(::std::clone::Clone::clone(value))
2042     }
2043 }
2044 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionEffect {
2045     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2046         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2047     }
2048 }
2049 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionEffect {
2050     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2051         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2052     }
2053 }
2054 #[repr(C)]
2055 #[doc(hidden)]
2056 pub struct IDCompositionEffect_abi(
2057     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2058     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2059     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2060 );
2061 #[repr(transparent)]
2062 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2063 pub struct IDCompositionEffectGroup(::windows::runtime::IUnknown);
2064 impl IDCompositionEffectGroup {
2065     pub unsafe fn SetOpacity<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
2066         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
2067     }
2068     pub unsafe fn SetOpacity2(&self, opacity: f32) -> ::windows::runtime::Result<()> {
2069         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(opacity)).ok()
2070     }
2071     pub unsafe fn SetTransform3D<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionTransform3D>>(&self, transform3d: Param0) -> ::windows::runtime::Result<()> {
2072         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), transform3d.into_param().abi()).ok()
2073     }
2074 }
2075 unsafe impl ::windows::runtime::Interface for IDCompositionEffectGroup {
2076     type Vtable = IDCompositionEffectGroup_abi;
2077     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2811402868, 59058, 19414, [139, 149, 64, 64, 17, 156, 163, 77]);
2078 }
2079 impl ::std::convert::From<IDCompositionEffectGroup> for ::windows::runtime::IUnknown {
2080     fn from(value: IDCompositionEffectGroup) -> Self {
2081         unsafe { ::std::mem::transmute(value) }
2082     }
2083 }
2084 impl ::std::convert::From<&IDCompositionEffectGroup> for ::windows::runtime::IUnknown {
2085     fn from(value: &IDCompositionEffectGroup) -> Self {
2086         ::std::convert::From::from(::std::clone::Clone::clone(value))
2087     }
2088 }
2089 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionEffectGroup {
2090     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2091         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2092     }
2093 }
2094 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionEffectGroup {
2095     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2096         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2097     }
2098 }
2099 impl ::std::convert::From<IDCompositionEffectGroup> for IDCompositionEffect {
2100     fn from(value: IDCompositionEffectGroup) -> Self {
2101         unsafe { ::std::mem::transmute(value) }
2102     }
2103 }
2104 impl ::std::convert::From<&IDCompositionEffectGroup> for IDCompositionEffect {
2105     fn from(value: &IDCompositionEffectGroup) -> Self {
2106         ::std::convert::From::from(::std::clone::Clone::clone(value))
2107     }
2108 }
2109 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for IDCompositionEffectGroup {
2110     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
2111         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(self))
2112     }
2113 }
2114 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for &IDCompositionEffectGroup {
2115     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
2116         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(::std::clone::Clone::clone(self)))
2117     }
2118 }
2119 #[repr(C)]
2120 #[doc(hidden)]
2121 pub struct IDCompositionEffectGroup_abi(
2122     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2123     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2124     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2125     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2126     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, opacity: f32) -> ::windows::runtime::HRESULT,
2127     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, transform3d: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2128 );
2129 #[repr(transparent)]
2130 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2131 pub struct IDCompositionFilterEffect(::windows::runtime::IUnknown);
2132 impl IDCompositionFilterEffect {
2133     pub unsafe fn SetInput<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, index: u32, input: Param1, flags: u32) -> ::windows::runtime::Result<()> {
2134         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), input.into_param().abi(), ::std::mem::transmute(flags)).ok()
2135     }
2136 }
2137 unsafe impl ::windows::runtime::Interface for IDCompositionFilterEffect {
2138     type Vtable = IDCompositionFilterEffect_abi;
2139     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(818160085, 36018, 20127, [177, 51, 55, 190, 39, 13, 74, 194]);
2140 }
2141 impl ::std::convert::From<IDCompositionFilterEffect> for ::windows::runtime::IUnknown {
2142     fn from(value: IDCompositionFilterEffect) -> Self {
2143         unsafe { ::std::mem::transmute(value) }
2144     }
2145 }
2146 impl ::std::convert::From<&IDCompositionFilterEffect> for ::windows::runtime::IUnknown {
2147     fn from(value: &IDCompositionFilterEffect) -> Self {
2148         ::std::convert::From::from(::std::clone::Clone::clone(value))
2149     }
2150 }
2151 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionFilterEffect {
2152     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2153         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2154     }
2155 }
2156 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionFilterEffect {
2157     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2158         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2159     }
2160 }
2161 impl ::std::convert::From<IDCompositionFilterEffect> for IDCompositionEffect {
2162     fn from(value: IDCompositionFilterEffect) -> Self {
2163         unsafe { ::std::mem::transmute(value) }
2164     }
2165 }
2166 impl ::std::convert::From<&IDCompositionFilterEffect> for IDCompositionEffect {
2167     fn from(value: &IDCompositionFilterEffect) -> Self {
2168         ::std::convert::From::from(::std::clone::Clone::clone(value))
2169     }
2170 }
2171 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for IDCompositionFilterEffect {
2172     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
2173         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(self))
2174     }
2175 }
2176 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for &IDCompositionFilterEffect {
2177     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
2178         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(::std::clone::Clone::clone(self)))
2179     }
2180 }
2181 #[repr(C)]
2182 #[doc(hidden)]
2183 pub struct IDCompositionFilterEffect_abi(
2184     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2185     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2186     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2187     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, input: ::windows::runtime::RawPtr, flags: u32) -> ::windows::runtime::HRESULT,
2188 );
2189 #[repr(transparent)]
2190 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2191 pub struct IDCompositionGaussianBlurEffect(::windows::runtime::IUnknown);
2192 impl IDCompositionGaussianBlurEffect {
2193     pub unsafe fn SetInput<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, index: u32, input: Param1, flags: u32) -> ::windows::runtime::Result<()> {
2194         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), input.into_param().abi(), ::std::mem::transmute(flags)).ok()
2195     }
2196     pub unsafe fn SetStandardDeviation<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
2197         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
2198     }
2199     pub unsafe fn SetStandardDeviation2(&self, amount: f32) -> ::windows::runtime::Result<()> {
2200         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(amount)).ok()
2201     }
2202     #[cfg(feature = "Win32_Graphics_Direct2D")]
2203     pub unsafe fn SetBorderMode(&self, mode: super::Direct2D::D2D1_BORDER_MODE) -> ::windows::runtime::Result<()> {
2204         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(mode)).ok()
2205     }
2206 }
2207 unsafe impl ::windows::runtime::Interface for IDCompositionGaussianBlurEffect {
2208     type Vtable = IDCompositionGaussianBlurEffect_abi;
2209     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1171574967, 7124, 17742, [136, 148, 43, 250, 104, 68, 48, 51]);
2210 }
2211 impl ::std::convert::From<IDCompositionGaussianBlurEffect> for ::windows::runtime::IUnknown {
2212     fn from(value: IDCompositionGaussianBlurEffect) -> Self {
2213         unsafe { ::std::mem::transmute(value) }
2214     }
2215 }
2216 impl ::std::convert::From<&IDCompositionGaussianBlurEffect> for ::windows::runtime::IUnknown {
2217     fn from(value: &IDCompositionGaussianBlurEffect) -> Self {
2218         ::std::convert::From::from(::std::clone::Clone::clone(value))
2219     }
2220 }
2221 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionGaussianBlurEffect {
2222     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2223         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2224     }
2225 }
2226 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionGaussianBlurEffect {
2227     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2228         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2229     }
2230 }
2231 impl ::std::convert::From<IDCompositionGaussianBlurEffect> for IDCompositionFilterEffect {
2232     fn from(value: IDCompositionGaussianBlurEffect) -> Self {
2233         unsafe { ::std::mem::transmute(value) }
2234     }
2235 }
2236 impl ::std::convert::From<&IDCompositionGaussianBlurEffect> for IDCompositionFilterEffect {
2237     fn from(value: &IDCompositionGaussianBlurEffect) -> Self {
2238         ::std::convert::From::from(::std::clone::Clone::clone(value))
2239     }
2240 }
2241 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionFilterEffect> for IDCompositionGaussianBlurEffect {
2242     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionFilterEffect> {
2243         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionFilterEffect>::into(self))
2244     }
2245 }
2246 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionFilterEffect> for &IDCompositionGaussianBlurEffect {
2247     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionFilterEffect> {
2248         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionFilterEffect>::into(::std::clone::Clone::clone(self)))
2249     }
2250 }
2251 impl ::std::convert::From<IDCompositionGaussianBlurEffect> for IDCompositionEffect {
2252     fn from(value: IDCompositionGaussianBlurEffect) -> Self {
2253         unsafe { ::std::mem::transmute(value) }
2254     }
2255 }
2256 impl ::std::convert::From<&IDCompositionGaussianBlurEffect> for IDCompositionEffect {
2257     fn from(value: &IDCompositionGaussianBlurEffect) -> Self {
2258         ::std::convert::From::from(::std::clone::Clone::clone(value))
2259     }
2260 }
2261 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for IDCompositionGaussianBlurEffect {
2262     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
2263         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(self))
2264     }
2265 }
2266 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for &IDCompositionGaussianBlurEffect {
2267     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
2268         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(::std::clone::Clone::clone(self)))
2269     }
2270 }
2271 #[repr(C)]
2272 #[doc(hidden)]
2273 pub struct IDCompositionGaussianBlurEffect_abi(
2274     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2275     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2276     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2277     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, input: ::windows::runtime::RawPtr, flags: u32) -> ::windows::runtime::HRESULT,
2278     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2279     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, amount: f32) -> ::windows::runtime::HRESULT,
2280     #[cfg(feature = "Win32_Graphics_Direct2D")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, mode: super::Direct2D::D2D1_BORDER_MODE) -> ::windows::runtime::HRESULT,
2281     #[cfg(not(feature = "Win32_Graphics_Direct2D"))] usize,
2282 );
2283 #[repr(transparent)]
2284 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2285 pub struct IDCompositionHueRotationEffect(::windows::runtime::IUnknown);
2286 impl IDCompositionHueRotationEffect {
2287     pub unsafe fn SetInput<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, index: u32, input: Param1, flags: u32) -> ::windows::runtime::Result<()> {
2288         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), input.into_param().abi(), ::std::mem::transmute(flags)).ok()
2289     }
2290     pub unsafe fn SetAngle<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
2291         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
2292     }
2293     pub unsafe fn SetAngle2(&self, amountdegrees: f32) -> ::windows::runtime::Result<()> {
2294         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(amountdegrees)).ok()
2295     }
2296 }
2297 unsafe impl ::windows::runtime::Interface for IDCompositionHueRotationEffect {
2298     type Vtable = IDCompositionHueRotationEffect_abi;
2299     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1840904480, 1904, 18305, [176, 198, 56, 25, 18, 249, 209, 103]);
2300 }
2301 impl ::std::convert::From<IDCompositionHueRotationEffect> for ::windows::runtime::IUnknown {
2302     fn from(value: IDCompositionHueRotationEffect) -> Self {
2303         unsafe { ::std::mem::transmute(value) }
2304     }
2305 }
2306 impl ::std::convert::From<&IDCompositionHueRotationEffect> for ::windows::runtime::IUnknown {
2307     fn from(value: &IDCompositionHueRotationEffect) -> Self {
2308         ::std::convert::From::from(::std::clone::Clone::clone(value))
2309     }
2310 }
2311 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionHueRotationEffect {
2312     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2313         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2314     }
2315 }
2316 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionHueRotationEffect {
2317     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2318         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2319     }
2320 }
2321 impl ::std::convert::From<IDCompositionHueRotationEffect> for IDCompositionFilterEffect {
2322     fn from(value: IDCompositionHueRotationEffect) -> Self {
2323         unsafe { ::std::mem::transmute(value) }
2324     }
2325 }
2326 impl ::std::convert::From<&IDCompositionHueRotationEffect> for IDCompositionFilterEffect {
2327     fn from(value: &IDCompositionHueRotationEffect) -> Self {
2328         ::std::convert::From::from(::std::clone::Clone::clone(value))
2329     }
2330 }
2331 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionFilterEffect> for IDCompositionHueRotationEffect {
2332     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionFilterEffect> {
2333         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionFilterEffect>::into(self))
2334     }
2335 }
2336 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionFilterEffect> for &IDCompositionHueRotationEffect {
2337     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionFilterEffect> {
2338         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionFilterEffect>::into(::std::clone::Clone::clone(self)))
2339     }
2340 }
2341 impl ::std::convert::From<IDCompositionHueRotationEffect> for IDCompositionEffect {
2342     fn from(value: IDCompositionHueRotationEffect) -> Self {
2343         unsafe { ::std::mem::transmute(value) }
2344     }
2345 }
2346 impl ::std::convert::From<&IDCompositionHueRotationEffect> for IDCompositionEffect {
2347     fn from(value: &IDCompositionHueRotationEffect) -> Self {
2348         ::std::convert::From::from(::std::clone::Clone::clone(value))
2349     }
2350 }
2351 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for IDCompositionHueRotationEffect {
2352     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
2353         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(self))
2354     }
2355 }
2356 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for &IDCompositionHueRotationEffect {
2357     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
2358         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(::std::clone::Clone::clone(self)))
2359     }
2360 }
2361 #[repr(C)]
2362 #[doc(hidden)]
2363 pub struct IDCompositionHueRotationEffect_abi(
2364     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2365     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2366     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2367     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, input: ::windows::runtime::RawPtr, flags: u32) -> ::windows::runtime::HRESULT,
2368     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2369     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, amountdegrees: f32) -> ::windows::runtime::HRESULT,
2370 );
2371 #[repr(transparent)]
2372 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2373 pub struct IDCompositionInkTrailDevice(::windows::runtime::IUnknown);
2374 impl IDCompositionInkTrailDevice {
2375     pub unsafe fn CreateDelegatedInkTrail(&self) -> ::windows::runtime::Result<IDCompositionDelegatedInkTrail> {
2376         let mut result__: <IDCompositionDelegatedInkTrail as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2377         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDCompositionDelegatedInkTrail>(result__)
2378     }
2379     pub unsafe fn CreateDelegatedInkTrailForSwapChain<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, swapchain: Param0) -> ::windows::runtime::Result<IDCompositionDelegatedInkTrail> {
2380         let mut result__: <IDCompositionDelegatedInkTrail as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2381         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), swapchain.into_param().abi(), &mut result__).from_abi::<IDCompositionDelegatedInkTrail>(result__)
2382     }
2383 }
2384 unsafe impl ::windows::runtime::Interface for IDCompositionInkTrailDevice {
2385     type Vtable = IDCompositionInkTrailDevice_abi;
2386     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3742137580, 52715, 19786, [185, 28, 114, 27, 242, 47, 78, 108]);
2387 }
2388 impl ::std::convert::From<IDCompositionInkTrailDevice> for ::windows::runtime::IUnknown {
2389     fn from(value: IDCompositionInkTrailDevice) -> Self {
2390         unsafe { ::std::mem::transmute(value) }
2391     }
2392 }
2393 impl ::std::convert::From<&IDCompositionInkTrailDevice> for ::windows::runtime::IUnknown {
2394     fn from(value: &IDCompositionInkTrailDevice) -> Self {
2395         ::std::convert::From::from(::std::clone::Clone::clone(value))
2396     }
2397 }
2398 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionInkTrailDevice {
2399     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2400         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2401     }
2402 }
2403 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionInkTrailDevice {
2404     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2405         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2406     }
2407 }
2408 #[repr(C)]
2409 #[doc(hidden)]
2410 pub struct IDCompositionInkTrailDevice_abi(
2411     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2412     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2413     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2414     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, inktrail: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2415     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, swapchain: ::windows::runtime::RawPtr, inktrail: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2416 );
2417 #[repr(transparent)]
2418 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2419 pub struct IDCompositionLinearTransferEffect(::windows::runtime::IUnknown);
2420 impl IDCompositionLinearTransferEffect {
2421     pub unsafe fn SetInput<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, index: u32, input: Param1, flags: u32) -> ::windows::runtime::Result<()> {
2422         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), input.into_param().abi(), ::std::mem::transmute(flags)).ok()
2423     }
2424     pub unsafe fn SetRedYIntercept<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
2425         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
2426     }
2427     pub unsafe fn SetRedYIntercept2(&self, redyintercept: f32) -> ::windows::runtime::Result<()> {
2428         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(redyintercept)).ok()
2429     }
2430     pub unsafe fn SetRedSlope<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
2431         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
2432     }
2433     pub unsafe fn SetRedSlope2(&self, redslope: f32) -> ::windows::runtime::Result<()> {
2434         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(redslope)).ok()
2435     }
2436     #[cfg(feature = "Win32_Foundation")]
2437     pub unsafe fn SetRedDisable<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, reddisable: Param0) -> ::windows::runtime::Result<()> {
2438         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), reddisable.into_param().abi()).ok()
2439     }
2440     pub unsafe fn SetGreenYIntercept<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
2441         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
2442     }
2443     pub unsafe fn SetGreenYIntercept2(&self, greenyintercept: f32) -> ::windows::runtime::Result<()> {
2444         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(greenyintercept)).ok()
2445     }
2446     pub unsafe fn SetGreenSlope<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
2447         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
2448     }
2449     pub unsafe fn SetGreenSlope2(&self, greenslope: f32) -> ::windows::runtime::Result<()> {
2450         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(greenslope)).ok()
2451     }
2452     #[cfg(feature = "Win32_Foundation")]
2453     pub unsafe fn SetGreenDisable<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, greendisable: Param0) -> ::windows::runtime::Result<()> {
2454         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), greendisable.into_param().abi()).ok()
2455     }
2456     pub unsafe fn SetBlueYIntercept<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
2457         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
2458     }
2459     pub unsafe fn SetBlueYIntercept2(&self, blueyintercept: f32) -> ::windows::runtime::Result<()> {
2460         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(blueyintercept)).ok()
2461     }
2462     pub unsafe fn SetBlueSlope<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
2463         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
2464     }
2465     pub unsafe fn SetBlueSlope2(&self, blueslope: f32) -> ::windows::runtime::Result<()> {
2466         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), ::std::mem::transmute(blueslope)).ok()
2467     }
2468     #[cfg(feature = "Win32_Foundation")]
2469     pub unsafe fn SetBlueDisable<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, bluedisable: Param0) -> ::windows::runtime::Result<()> {
2470         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), bluedisable.into_param().abi()).ok()
2471     }
2472     pub unsafe fn SetAlphaYIntercept<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
2473         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
2474     }
2475     pub unsafe fn SetAlphaYIntercept2(&self, alphayintercept: f32) -> ::windows::runtime::Result<()> {
2476         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(alphayintercept)).ok()
2477     }
2478     pub unsafe fn SetAlphaSlope<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
2479         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
2480     }
2481     pub unsafe fn SetAlphaSlope2(&self, alphaslope: f32) -> ::windows::runtime::Result<()> {
2482         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), ::std::mem::transmute(alphaslope)).ok()
2483     }
2484     #[cfg(feature = "Win32_Foundation")]
2485     pub unsafe fn SetAlphaDisable<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, alphadisable: Param0) -> ::windows::runtime::Result<()> {
2486         (::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self), alphadisable.into_param().abi()).ok()
2487     }
2488     #[cfg(feature = "Win32_Foundation")]
2489     pub unsafe fn SetClampOutput<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, clampoutput: Param0) -> ::windows::runtime::Result<()> {
2490         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), clampoutput.into_param().abi()).ok()
2491     }
2492 }
2493 unsafe impl ::windows::runtime::Interface for IDCompositionLinearTransferEffect {
2494     type Vtable = IDCompositionLinearTransferEffect_abi;
2495     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1124462171, 50336, 19592, [147, 133, 103, 18, 78, 1, 118, 131]);
2496 }
2497 impl ::std::convert::From<IDCompositionLinearTransferEffect> for ::windows::runtime::IUnknown {
2498     fn from(value: IDCompositionLinearTransferEffect) -> Self {
2499         unsafe { ::std::mem::transmute(value) }
2500     }
2501 }
2502 impl ::std::convert::From<&IDCompositionLinearTransferEffect> for ::windows::runtime::IUnknown {
2503     fn from(value: &IDCompositionLinearTransferEffect) -> Self {
2504         ::std::convert::From::from(::std::clone::Clone::clone(value))
2505     }
2506 }
2507 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionLinearTransferEffect {
2508     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2509         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2510     }
2511 }
2512 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionLinearTransferEffect {
2513     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2514         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2515     }
2516 }
2517 impl ::std::convert::From<IDCompositionLinearTransferEffect> for IDCompositionFilterEffect {
2518     fn from(value: IDCompositionLinearTransferEffect) -> Self {
2519         unsafe { ::std::mem::transmute(value) }
2520     }
2521 }
2522 impl ::std::convert::From<&IDCompositionLinearTransferEffect> for IDCompositionFilterEffect {
2523     fn from(value: &IDCompositionLinearTransferEffect) -> Self {
2524         ::std::convert::From::from(::std::clone::Clone::clone(value))
2525     }
2526 }
2527 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionFilterEffect> for IDCompositionLinearTransferEffect {
2528     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionFilterEffect> {
2529         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionFilterEffect>::into(self))
2530     }
2531 }
2532 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionFilterEffect> for &IDCompositionLinearTransferEffect {
2533     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionFilterEffect> {
2534         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionFilterEffect>::into(::std::clone::Clone::clone(self)))
2535     }
2536 }
2537 impl ::std::convert::From<IDCompositionLinearTransferEffect> for IDCompositionEffect {
2538     fn from(value: IDCompositionLinearTransferEffect) -> Self {
2539         unsafe { ::std::mem::transmute(value) }
2540     }
2541 }
2542 impl ::std::convert::From<&IDCompositionLinearTransferEffect> for IDCompositionEffect {
2543     fn from(value: &IDCompositionLinearTransferEffect) -> Self {
2544         ::std::convert::From::from(::std::clone::Clone::clone(value))
2545     }
2546 }
2547 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for IDCompositionLinearTransferEffect {
2548     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
2549         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(self))
2550     }
2551 }
2552 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for &IDCompositionLinearTransferEffect {
2553     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
2554         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(::std::clone::Clone::clone(self)))
2555     }
2556 }
2557 #[repr(C)]
2558 #[doc(hidden)]
2559 pub struct IDCompositionLinearTransferEffect_abi(
2560     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2561     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2562     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2563     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, input: ::windows::runtime::RawPtr, flags: u32) -> ::windows::runtime::HRESULT,
2564     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2565     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, redyintercept: f32) -> ::windows::runtime::HRESULT,
2566     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2567     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, redslope: f32) -> ::windows::runtime::HRESULT,
2568     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, reddisable: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
2569     #[cfg(not(feature = "Win32_Foundation"))] usize,
2570     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2571     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, greenyintercept: f32) -> ::windows::runtime::HRESULT,
2572     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2573     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, greenslope: f32) -> ::windows::runtime::HRESULT,
2574     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, greendisable: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
2575     #[cfg(not(feature = "Win32_Foundation"))] usize,
2576     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2577     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, blueyintercept: f32) -> ::windows::runtime::HRESULT,
2578     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2579     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, blueslope: f32) -> ::windows::runtime::HRESULT,
2580     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, bluedisable: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
2581     #[cfg(not(feature = "Win32_Foundation"))] usize,
2582     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2583     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, alphayintercept: f32) -> ::windows::runtime::HRESULT,
2584     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2585     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, alphaslope: f32) -> ::windows::runtime::HRESULT,
2586     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, alphadisable: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
2587     #[cfg(not(feature = "Win32_Foundation"))] usize,
2588     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clampoutput: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
2589     #[cfg(not(feature = "Win32_Foundation"))] usize,
2590 );
2591 #[repr(transparent)]
2592 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2593 pub struct IDCompositionMatrixTransform(::windows::runtime::IUnknown);
2594 impl IDCompositionMatrixTransform {
2595     #[cfg(feature = "Foundation_Numerics")]
2596     pub unsafe fn SetMatrix(&self, matrix: *const super::super::super::Foundation::Numerics::Matrix3x2) -> ::windows::runtime::Result<()> {
2597         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(matrix)).ok()
2598     }
2599     pub unsafe fn SetMatrixElement<'a, Param2: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, row: i32, column: i32, animation: Param2) -> ::windows::runtime::Result<()> {
2600         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(row), ::std::mem::transmute(column), animation.into_param().abi()).ok()
2601     }
2602     pub unsafe fn SetMatrixElement2(&self, row: i32, column: i32, value: f32) -> ::windows::runtime::Result<()> {
2603         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(row), ::std::mem::transmute(column), ::std::mem::transmute(value)).ok()
2604     }
2605 }
2606 unsafe impl ::windows::runtime::Interface for IDCompositionMatrixTransform {
2607     type Vtable = IDCompositionMatrixTransform_abi;
2608     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(382598919, 50435, 16796, [131, 242, 9, 101, 199, 175, 31, 166]);
2609 }
2610 impl ::std::convert::From<IDCompositionMatrixTransform> for ::windows::runtime::IUnknown {
2611     fn from(value: IDCompositionMatrixTransform) -> Self {
2612         unsafe { ::std::mem::transmute(value) }
2613     }
2614 }
2615 impl ::std::convert::From<&IDCompositionMatrixTransform> for ::windows::runtime::IUnknown {
2616     fn from(value: &IDCompositionMatrixTransform) -> Self {
2617         ::std::convert::From::from(::std::clone::Clone::clone(value))
2618     }
2619 }
2620 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionMatrixTransform {
2621     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2622         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2623     }
2624 }
2625 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionMatrixTransform {
2626     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2627         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2628     }
2629 }
2630 impl ::std::convert::From<IDCompositionMatrixTransform> for IDCompositionTransform {
2631     fn from(value: IDCompositionMatrixTransform) -> Self {
2632         unsafe { ::std::mem::transmute(value) }
2633     }
2634 }
2635 impl ::std::convert::From<&IDCompositionMatrixTransform> for IDCompositionTransform {
2636     fn from(value: &IDCompositionMatrixTransform) -> Self {
2637         ::std::convert::From::from(::std::clone::Clone::clone(value))
2638     }
2639 }
2640 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionTransform> for IDCompositionMatrixTransform {
2641     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionTransform> {
2642         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionTransform>::into(self))
2643     }
2644 }
2645 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionTransform> for &IDCompositionMatrixTransform {
2646     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionTransform> {
2647         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionTransform>::into(::std::clone::Clone::clone(self)))
2648     }
2649 }
2650 impl ::std::convert::From<IDCompositionMatrixTransform> for IDCompositionTransform3D {
2651     fn from(value: IDCompositionMatrixTransform) -> Self {
2652         unsafe { ::std::mem::transmute(value) }
2653     }
2654 }
2655 impl ::std::convert::From<&IDCompositionMatrixTransform> for IDCompositionTransform3D {
2656     fn from(value: &IDCompositionMatrixTransform) -> Self {
2657         ::std::convert::From::from(::std::clone::Clone::clone(value))
2658     }
2659 }
2660 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionTransform3D> for IDCompositionMatrixTransform {
2661     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionTransform3D> {
2662         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionTransform3D>::into(self))
2663     }
2664 }
2665 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionTransform3D> for &IDCompositionMatrixTransform {
2666     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionTransform3D> {
2667         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionTransform3D>::into(::std::clone::Clone::clone(self)))
2668     }
2669 }
2670 impl ::std::convert::From<IDCompositionMatrixTransform> for IDCompositionEffect {
2671     fn from(value: IDCompositionMatrixTransform) -> Self {
2672         unsafe { ::std::mem::transmute(value) }
2673     }
2674 }
2675 impl ::std::convert::From<&IDCompositionMatrixTransform> for IDCompositionEffect {
2676     fn from(value: &IDCompositionMatrixTransform) -> Self {
2677         ::std::convert::From::from(::std::clone::Clone::clone(value))
2678     }
2679 }
2680 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for IDCompositionMatrixTransform {
2681     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
2682         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(self))
2683     }
2684 }
2685 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for &IDCompositionMatrixTransform {
2686     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
2687         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(::std::clone::Clone::clone(self)))
2688     }
2689 }
2690 #[repr(C)]
2691 #[doc(hidden)]
2692 pub struct IDCompositionMatrixTransform_abi(
2693     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2694     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2695     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2696     #[cfg(feature = "Foundation_Numerics")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, matrix: *const super::super::super::Foundation::Numerics::Matrix3x2) -> ::windows::runtime::HRESULT,
2697     #[cfg(not(feature = "Foundation_Numerics"))] usize,
2698     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, row: i32, column: i32, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2699     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, row: i32, column: i32, value: f32) -> ::windows::runtime::HRESULT,
2700 );
2701 #[repr(transparent)]
2702 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2703 pub struct IDCompositionMatrixTransform3D(::windows::runtime::IUnknown);
2704 impl IDCompositionMatrixTransform3D {
2705     #[cfg(feature = "Win32_Graphics_Direct3D9")]
2706     pub unsafe fn SetMatrix(&self, matrix: *const super::Direct3D9::D3DMATRIX) -> ::windows::runtime::Result<()> {
2707         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(matrix)).ok()
2708     }
2709     pub unsafe fn SetMatrixElement<'a, Param2: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, row: i32, column: i32, animation: Param2) -> ::windows::runtime::Result<()> {
2710         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(row), ::std::mem::transmute(column), animation.into_param().abi()).ok()
2711     }
2712     pub unsafe fn SetMatrixElement2(&self, row: i32, column: i32, value: f32) -> ::windows::runtime::Result<()> {
2713         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(row), ::std::mem::transmute(column), ::std::mem::transmute(value)).ok()
2714     }
2715 }
2716 unsafe impl ::windows::runtime::Interface for IDCompositionMatrixTransform3D {
2717     type Vtable = IDCompositionMatrixTransform3D_abi;
2718     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1261659120, 25659, 16823, [182, 224, 204, 242, 45, 52, 70, 124]);
2719 }
2720 impl ::std::convert::From<IDCompositionMatrixTransform3D> for ::windows::runtime::IUnknown {
2721     fn from(value: IDCompositionMatrixTransform3D) -> Self {
2722         unsafe { ::std::mem::transmute(value) }
2723     }
2724 }
2725 impl ::std::convert::From<&IDCompositionMatrixTransform3D> for ::windows::runtime::IUnknown {
2726     fn from(value: &IDCompositionMatrixTransform3D) -> Self {
2727         ::std::convert::From::from(::std::clone::Clone::clone(value))
2728     }
2729 }
2730 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionMatrixTransform3D {
2731     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2732         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2733     }
2734 }
2735 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionMatrixTransform3D {
2736     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2737         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2738     }
2739 }
2740 impl ::std::convert::From<IDCompositionMatrixTransform3D> for IDCompositionTransform3D {
2741     fn from(value: IDCompositionMatrixTransform3D) -> Self {
2742         unsafe { ::std::mem::transmute(value) }
2743     }
2744 }
2745 impl ::std::convert::From<&IDCompositionMatrixTransform3D> for IDCompositionTransform3D {
2746     fn from(value: &IDCompositionMatrixTransform3D) -> Self {
2747         ::std::convert::From::from(::std::clone::Clone::clone(value))
2748     }
2749 }
2750 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionTransform3D> for IDCompositionMatrixTransform3D {
2751     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionTransform3D> {
2752         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionTransform3D>::into(self))
2753     }
2754 }
2755 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionTransform3D> for &IDCompositionMatrixTransform3D {
2756     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionTransform3D> {
2757         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionTransform3D>::into(::std::clone::Clone::clone(self)))
2758     }
2759 }
2760 impl ::std::convert::From<IDCompositionMatrixTransform3D> for IDCompositionEffect {
2761     fn from(value: IDCompositionMatrixTransform3D) -> Self {
2762         unsafe { ::std::mem::transmute(value) }
2763     }
2764 }
2765 impl ::std::convert::From<&IDCompositionMatrixTransform3D> for IDCompositionEffect {
2766     fn from(value: &IDCompositionMatrixTransform3D) -> Self {
2767         ::std::convert::From::from(::std::clone::Clone::clone(value))
2768     }
2769 }
2770 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for IDCompositionMatrixTransform3D {
2771     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
2772         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(self))
2773     }
2774 }
2775 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for &IDCompositionMatrixTransform3D {
2776     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
2777         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(::std::clone::Clone::clone(self)))
2778     }
2779 }
2780 #[repr(C)]
2781 #[doc(hidden)]
2782 pub struct IDCompositionMatrixTransform3D_abi(
2783     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2784     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2785     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2786     #[cfg(feature = "Win32_Graphics_Direct3D9")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, matrix: *const super::Direct3D9::D3DMATRIX) -> ::windows::runtime::HRESULT,
2787     #[cfg(not(feature = "Win32_Graphics_Direct3D9"))] usize,
2788     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, row: i32, column: i32, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2789     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, row: i32, column: i32, value: f32) -> ::windows::runtime::HRESULT,
2790 );
2791 #[repr(transparent)]
2792 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2793 pub struct IDCompositionRectangleClip(::windows::runtime::IUnknown);
2794 impl IDCompositionRectangleClip {
2795     pub unsafe fn SetLeft<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
2796         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
2797     }
2798     pub unsafe fn SetLeft2(&self, left: f32) -> ::windows::runtime::Result<()> {
2799         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(left)).ok()
2800     }
2801     pub unsafe fn SetTop<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
2802         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
2803     }
2804     pub unsafe fn SetTop2(&self, top: f32) -> ::windows::runtime::Result<()> {
2805         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(top)).ok()
2806     }
2807     pub unsafe fn SetRight<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
2808         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
2809     }
2810     pub unsafe fn SetRight2(&self, right: f32) -> ::windows::runtime::Result<()> {
2811         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(right)).ok()
2812     }
2813     pub unsafe fn SetBottom<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
2814         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
2815     }
2816     pub unsafe fn SetBottom2(&self, bottom: f32) -> ::windows::runtime::Result<()> {
2817         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(bottom)).ok()
2818     }
2819     pub unsafe fn SetTopLeftRadiusX<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
2820         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
2821     }
2822     pub unsafe fn SetTopLeftRadiusX2(&self, radius: f32) -> ::windows::runtime::Result<()> {
2823         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(radius)).ok()
2824     }
2825     pub unsafe fn SetTopLeftRadiusY<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
2826         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
2827     }
2828     pub unsafe fn SetTopLeftRadiusY2(&self, radius: f32) -> ::windows::runtime::Result<()> {
2829         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(radius)).ok()
2830     }
2831     pub unsafe fn SetTopRightRadiusX<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
2832         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
2833     }
2834     pub unsafe fn SetTopRightRadiusX2(&self, radius: f32) -> ::windows::runtime::Result<()> {
2835         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), ::std::mem::transmute(radius)).ok()
2836     }
2837     pub unsafe fn SetTopRightRadiusY<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
2838         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
2839     }
2840     pub unsafe fn SetTopRightRadiusY2(&self, radius: f32) -> ::windows::runtime::Result<()> {
2841         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), ::std::mem::transmute(radius)).ok()
2842     }
2843     pub unsafe fn SetBottomLeftRadiusX<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
2844         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
2845     }
2846     pub unsafe fn SetBottomLeftRadiusX2(&self, radius: f32) -> ::windows::runtime::Result<()> {
2847         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(radius)).ok()
2848     }
2849     pub unsafe fn SetBottomLeftRadiusY<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
2850         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
2851     }
2852     pub unsafe fn SetBottomLeftRadiusY2(&self, radius: f32) -> ::windows::runtime::Result<()> {
2853         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), ::std::mem::transmute(radius)).ok()
2854     }
2855     pub unsafe fn SetBottomRightRadiusX<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
2856         (::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
2857     }
2858     pub unsafe fn SetBottomRightRadiusX2(&self, radius: f32) -> ::windows::runtime::Result<()> {
2859         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), ::std::mem::transmute(radius)).ok()
2860     }
2861     pub unsafe fn SetBottomRightRadiusY<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
2862         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
2863     }
2864     pub unsafe fn SetBottomRightRadiusY2(&self, radius: f32) -> ::windows::runtime::Result<()> {
2865         (::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self), ::std::mem::transmute(radius)).ok()
2866     }
2867 }
2868 unsafe impl ::windows::runtime::Interface for IDCompositionRectangleClip {
2869     type Vtable = IDCompositionRectangleClip_abi;
2870     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2554506621, 55759, 18696, [174, 215, 72, 181, 29, 165, 231, 194]);
2871 }
2872 impl ::std::convert::From<IDCompositionRectangleClip> for ::windows::runtime::IUnknown {
2873     fn from(value: IDCompositionRectangleClip) -> Self {
2874         unsafe { ::std::mem::transmute(value) }
2875     }
2876 }
2877 impl ::std::convert::From<&IDCompositionRectangleClip> for ::windows::runtime::IUnknown {
2878     fn from(value: &IDCompositionRectangleClip) -> Self {
2879         ::std::convert::From::from(::std::clone::Clone::clone(value))
2880     }
2881 }
2882 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionRectangleClip {
2883     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2884         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2885     }
2886 }
2887 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionRectangleClip {
2888     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2889         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2890     }
2891 }
2892 impl ::std::convert::From<IDCompositionRectangleClip> for IDCompositionClip {
2893     fn from(value: IDCompositionRectangleClip) -> Self {
2894         unsafe { ::std::mem::transmute(value) }
2895     }
2896 }
2897 impl ::std::convert::From<&IDCompositionRectangleClip> for IDCompositionClip {
2898     fn from(value: &IDCompositionRectangleClip) -> Self {
2899         ::std::convert::From::from(::std::clone::Clone::clone(value))
2900     }
2901 }
2902 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionClip> for IDCompositionRectangleClip {
2903     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionClip> {
2904         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionClip>::into(self))
2905     }
2906 }
2907 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionClip> for &IDCompositionRectangleClip {
2908     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionClip> {
2909         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionClip>::into(::std::clone::Clone::clone(self)))
2910     }
2911 }
2912 #[repr(C)]
2913 #[doc(hidden)]
2914 pub struct IDCompositionRectangleClip_abi(
2915     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2916     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2917     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2918     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2919     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, left: f32) -> ::windows::runtime::HRESULT,
2920     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2921     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, top: f32) -> ::windows::runtime::HRESULT,
2922     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2923     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, right: f32) -> ::windows::runtime::HRESULT,
2924     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2925     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, bottom: f32) -> ::windows::runtime::HRESULT,
2926     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2927     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, radius: f32) -> ::windows::runtime::HRESULT,
2928     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2929     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, radius: f32) -> ::windows::runtime::HRESULT,
2930     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2931     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, radius: f32) -> ::windows::runtime::HRESULT,
2932     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2933     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, radius: f32) -> ::windows::runtime::HRESULT,
2934     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2935     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, radius: f32) -> ::windows::runtime::HRESULT,
2936     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2937     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, radius: f32) -> ::windows::runtime::HRESULT,
2938     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2939     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, radius: f32) -> ::windows::runtime::HRESULT,
2940     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2941     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, radius: f32) -> ::windows::runtime::HRESULT,
2942 );
2943 #[repr(transparent)]
2944 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2945 pub struct IDCompositionRotateTransform(::windows::runtime::IUnknown);
2946 impl IDCompositionRotateTransform {
2947     pub unsafe fn SetAngle<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
2948         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
2949     }
2950     pub unsafe fn SetAngle2(&self, angle: f32) -> ::windows::runtime::Result<()> {
2951         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(angle)).ok()
2952     }
2953     pub unsafe fn SetCenterX<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
2954         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
2955     }
2956     pub unsafe fn SetCenterX2(&self, centerx: f32) -> ::windows::runtime::Result<()> {
2957         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(centerx)).ok()
2958     }
2959     pub unsafe fn SetCenterY<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
2960         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
2961     }
2962     pub unsafe fn SetCenterY2(&self, centery: f32) -> ::windows::runtime::Result<()> {
2963         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(centery)).ok()
2964     }
2965 }
2966 unsafe impl ::windows::runtime::Interface for IDCompositionRotateTransform {
2967     type Vtable = IDCompositionRotateTransform_abi;
2968     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1679743036, 44694, 18117, [144, 220, 50, 119, 76, 197, 198, 213]);
2969 }
2970 impl ::std::convert::From<IDCompositionRotateTransform> for ::windows::runtime::IUnknown {
2971     fn from(value: IDCompositionRotateTransform) -> Self {
2972         unsafe { ::std::mem::transmute(value) }
2973     }
2974 }
2975 impl ::std::convert::From<&IDCompositionRotateTransform> for ::windows::runtime::IUnknown {
2976     fn from(value: &IDCompositionRotateTransform) -> Self {
2977         ::std::convert::From::from(::std::clone::Clone::clone(value))
2978     }
2979 }
2980 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionRotateTransform {
2981     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2982         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2983     }
2984 }
2985 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionRotateTransform {
2986     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2987         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2988     }
2989 }
2990 impl ::std::convert::From<IDCompositionRotateTransform> for IDCompositionTransform {
2991     fn from(value: IDCompositionRotateTransform) -> Self {
2992         unsafe { ::std::mem::transmute(value) }
2993     }
2994 }
2995 impl ::std::convert::From<&IDCompositionRotateTransform> for IDCompositionTransform {
2996     fn from(value: &IDCompositionRotateTransform) -> Self {
2997         ::std::convert::From::from(::std::clone::Clone::clone(value))
2998     }
2999 }
3000 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionTransform> for IDCompositionRotateTransform {
3001     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionTransform> {
3002         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionTransform>::into(self))
3003     }
3004 }
3005 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionTransform> for &IDCompositionRotateTransform {
3006     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionTransform> {
3007         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionTransform>::into(::std::clone::Clone::clone(self)))
3008     }
3009 }
3010 impl ::std::convert::From<IDCompositionRotateTransform> for IDCompositionTransform3D {
3011     fn from(value: IDCompositionRotateTransform) -> Self {
3012         unsafe { ::std::mem::transmute(value) }
3013     }
3014 }
3015 impl ::std::convert::From<&IDCompositionRotateTransform> for IDCompositionTransform3D {
3016     fn from(value: &IDCompositionRotateTransform) -> Self {
3017         ::std::convert::From::from(::std::clone::Clone::clone(value))
3018     }
3019 }
3020 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionTransform3D> for IDCompositionRotateTransform {
3021     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionTransform3D> {
3022         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionTransform3D>::into(self))
3023     }
3024 }
3025 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionTransform3D> for &IDCompositionRotateTransform {
3026     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionTransform3D> {
3027         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionTransform3D>::into(::std::clone::Clone::clone(self)))
3028     }
3029 }
3030 impl ::std::convert::From<IDCompositionRotateTransform> for IDCompositionEffect {
3031     fn from(value: IDCompositionRotateTransform) -> Self {
3032         unsafe { ::std::mem::transmute(value) }
3033     }
3034 }
3035 impl ::std::convert::From<&IDCompositionRotateTransform> for IDCompositionEffect {
3036     fn from(value: &IDCompositionRotateTransform) -> Self {
3037         ::std::convert::From::from(::std::clone::Clone::clone(value))
3038     }
3039 }
3040 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for IDCompositionRotateTransform {
3041     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
3042         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(self))
3043     }
3044 }
3045 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for &IDCompositionRotateTransform {
3046     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
3047         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(::std::clone::Clone::clone(self)))
3048     }
3049 }
3050 #[repr(C)]
3051 #[doc(hidden)]
3052 pub struct IDCompositionRotateTransform_abi(
3053     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3054     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3055     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3056     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3057     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, angle: f32) -> ::windows::runtime::HRESULT,
3058     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3059     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, centerx: f32) -> ::windows::runtime::HRESULT,
3060     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3061     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, centery: f32) -> ::windows::runtime::HRESULT,
3062 );
3063 #[repr(transparent)]
3064 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3065 pub struct IDCompositionRotateTransform3D(::windows::runtime::IUnknown);
3066 impl IDCompositionRotateTransform3D {
3067     pub unsafe fn SetAngle<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
3068         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
3069     }
3070     pub unsafe fn SetAngle2(&self, angle: f32) -> ::windows::runtime::Result<()> {
3071         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(angle)).ok()
3072     }
3073     pub unsafe fn SetAxisX<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
3074         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
3075     }
3076     pub unsafe fn SetAxisX2(&self, axisx: f32) -> ::windows::runtime::Result<()> {
3077         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(axisx)).ok()
3078     }
3079     pub unsafe fn SetAxisY<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
3080         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
3081     }
3082     pub unsafe fn SetAxisY2(&self, axisy: f32) -> ::windows::runtime::Result<()> {
3083         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(axisy)).ok()
3084     }
3085     pub unsafe fn SetAxisZ<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
3086         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
3087     }
3088     pub unsafe fn SetAxisZ2(&self, axisz: f32) -> ::windows::runtime::Result<()> {
3089         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(axisz)).ok()
3090     }
3091     pub unsafe fn SetCenterX<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
3092         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
3093     }
3094     pub unsafe fn SetCenterX2(&self, centerx: f32) -> ::windows::runtime::Result<()> {
3095         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(centerx)).ok()
3096     }
3097     pub unsafe fn SetCenterY<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
3098         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
3099     }
3100     pub unsafe fn SetCenterY2(&self, centery: f32) -> ::windows::runtime::Result<()> {
3101         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(centery)).ok()
3102     }
3103     pub unsafe fn SetCenterZ<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
3104         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
3105     }
3106     pub unsafe fn SetCenterZ2(&self, centerz: f32) -> ::windows::runtime::Result<()> {
3107         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), ::std::mem::transmute(centerz)).ok()
3108     }
3109 }
3110 unsafe impl ::windows::runtime::Interface for IDCompositionRotateTransform3D {
3111     type Vtable = IDCompositionRotateTransform3D_abi;
3112     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3639980607, 54313, 19089, [181, 90, 210, 244, 95, 215, 91, 24]);
3113 }
3114 impl ::std::convert::From<IDCompositionRotateTransform3D> for ::windows::runtime::IUnknown {
3115     fn from(value: IDCompositionRotateTransform3D) -> Self {
3116         unsafe { ::std::mem::transmute(value) }
3117     }
3118 }
3119 impl ::std::convert::From<&IDCompositionRotateTransform3D> for ::windows::runtime::IUnknown {
3120     fn from(value: &IDCompositionRotateTransform3D) -> Self {
3121         ::std::convert::From::from(::std::clone::Clone::clone(value))
3122     }
3123 }
3124 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionRotateTransform3D {
3125     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3126         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3127     }
3128 }
3129 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionRotateTransform3D {
3130     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3131         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3132     }
3133 }
3134 impl ::std::convert::From<IDCompositionRotateTransform3D> for IDCompositionTransform3D {
3135     fn from(value: IDCompositionRotateTransform3D) -> Self {
3136         unsafe { ::std::mem::transmute(value) }
3137     }
3138 }
3139 impl ::std::convert::From<&IDCompositionRotateTransform3D> for IDCompositionTransform3D {
3140     fn from(value: &IDCompositionRotateTransform3D) -> Self {
3141         ::std::convert::From::from(::std::clone::Clone::clone(value))
3142     }
3143 }
3144 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionTransform3D> for IDCompositionRotateTransform3D {
3145     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionTransform3D> {
3146         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionTransform3D>::into(self))
3147     }
3148 }
3149 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionTransform3D> for &IDCompositionRotateTransform3D {
3150     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionTransform3D> {
3151         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionTransform3D>::into(::std::clone::Clone::clone(self)))
3152     }
3153 }
3154 impl ::std::convert::From<IDCompositionRotateTransform3D> for IDCompositionEffect {
3155     fn from(value: IDCompositionRotateTransform3D) -> Self {
3156         unsafe { ::std::mem::transmute(value) }
3157     }
3158 }
3159 impl ::std::convert::From<&IDCompositionRotateTransform3D> for IDCompositionEffect {
3160     fn from(value: &IDCompositionRotateTransform3D) -> Self {
3161         ::std::convert::From::from(::std::clone::Clone::clone(value))
3162     }
3163 }
3164 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for IDCompositionRotateTransform3D {
3165     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
3166         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(self))
3167     }
3168 }
3169 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for &IDCompositionRotateTransform3D {
3170     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
3171         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(::std::clone::Clone::clone(self)))
3172     }
3173 }
3174 #[repr(C)]
3175 #[doc(hidden)]
3176 pub struct IDCompositionRotateTransform3D_abi(
3177     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3178     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3179     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3180     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3181     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, angle: f32) -> ::windows::runtime::HRESULT,
3182     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3183     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, axisx: f32) -> ::windows::runtime::HRESULT,
3184     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3185     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, axisy: f32) -> ::windows::runtime::HRESULT,
3186     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3187     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, axisz: f32) -> ::windows::runtime::HRESULT,
3188     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3189     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, centerx: f32) -> ::windows::runtime::HRESULT,
3190     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3191     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, centery: f32) -> ::windows::runtime::HRESULT,
3192     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3193     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, centerz: f32) -> ::windows::runtime::HRESULT,
3194 );
3195 #[repr(transparent)]
3196 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3197 pub struct IDCompositionSaturationEffect(::windows::runtime::IUnknown);
3198 impl IDCompositionSaturationEffect {
3199     pub unsafe fn SetInput<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, index: u32, input: Param1, flags: u32) -> ::windows::runtime::Result<()> {
3200         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), input.into_param().abi(), ::std::mem::transmute(flags)).ok()
3201     }
3202     pub unsafe fn SetSaturation<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
3203         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
3204     }
3205     pub unsafe fn SetSaturation2(&self, ratio: f32) -> ::windows::runtime::Result<()> {
3206         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(ratio)).ok()
3207     }
3208 }
3209 unsafe impl ::windows::runtime::Interface for IDCompositionSaturationEffect {
3210     type Vtable = IDCompositionSaturationEffect_abi;
3211     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2693655514, 12888, 20388, [159, 22, 145, 116, 211, 254, 147, 177]);
3212 }
3213 impl ::std::convert::From<IDCompositionSaturationEffect> for ::windows::runtime::IUnknown {
3214     fn from(value: IDCompositionSaturationEffect) -> Self {
3215         unsafe { ::std::mem::transmute(value) }
3216     }
3217 }
3218 impl ::std::convert::From<&IDCompositionSaturationEffect> for ::windows::runtime::IUnknown {
3219     fn from(value: &IDCompositionSaturationEffect) -> Self {
3220         ::std::convert::From::from(::std::clone::Clone::clone(value))
3221     }
3222 }
3223 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionSaturationEffect {
3224     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3225         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3226     }
3227 }
3228 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionSaturationEffect {
3229     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3230         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3231     }
3232 }
3233 impl ::std::convert::From<IDCompositionSaturationEffect> for IDCompositionFilterEffect {
3234     fn from(value: IDCompositionSaturationEffect) -> Self {
3235         unsafe { ::std::mem::transmute(value) }
3236     }
3237 }
3238 impl ::std::convert::From<&IDCompositionSaturationEffect> for IDCompositionFilterEffect {
3239     fn from(value: &IDCompositionSaturationEffect) -> Self {
3240         ::std::convert::From::from(::std::clone::Clone::clone(value))
3241     }
3242 }
3243 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionFilterEffect> for IDCompositionSaturationEffect {
3244     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionFilterEffect> {
3245         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionFilterEffect>::into(self))
3246     }
3247 }
3248 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionFilterEffect> for &IDCompositionSaturationEffect {
3249     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionFilterEffect> {
3250         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionFilterEffect>::into(::std::clone::Clone::clone(self)))
3251     }
3252 }
3253 impl ::std::convert::From<IDCompositionSaturationEffect> for IDCompositionEffect {
3254     fn from(value: IDCompositionSaturationEffect) -> Self {
3255         unsafe { ::std::mem::transmute(value) }
3256     }
3257 }
3258 impl ::std::convert::From<&IDCompositionSaturationEffect> for IDCompositionEffect {
3259     fn from(value: &IDCompositionSaturationEffect) -> Self {
3260         ::std::convert::From::from(::std::clone::Clone::clone(value))
3261     }
3262 }
3263 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for IDCompositionSaturationEffect {
3264     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
3265         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(self))
3266     }
3267 }
3268 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for &IDCompositionSaturationEffect {
3269     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
3270         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(::std::clone::Clone::clone(self)))
3271     }
3272 }
3273 #[repr(C)]
3274 #[doc(hidden)]
3275 pub struct IDCompositionSaturationEffect_abi(
3276     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3277     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3278     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3279     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, input: ::windows::runtime::RawPtr, flags: u32) -> ::windows::runtime::HRESULT,
3280     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3281     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ratio: f32) -> ::windows::runtime::HRESULT,
3282 );
3283 #[repr(transparent)]
3284 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3285 pub struct IDCompositionScaleTransform(::windows::runtime::IUnknown);
3286 impl IDCompositionScaleTransform {
3287     pub unsafe fn SetScaleX<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
3288         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
3289     }
3290     pub unsafe fn SetScaleX2(&self, scalex: f32) -> ::windows::runtime::Result<()> {
3291         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(scalex)).ok()
3292     }
3293     pub unsafe fn SetScaleY<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
3294         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
3295     }
3296     pub unsafe fn SetScaleY2(&self, scaley: f32) -> ::windows::runtime::Result<()> {
3297         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(scaley)).ok()
3298     }
3299     pub unsafe fn SetCenterX<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
3300         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
3301     }
3302     pub unsafe fn SetCenterX2(&self, centerx: f32) -> ::windows::runtime::Result<()> {
3303         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(centerx)).ok()
3304     }
3305     pub unsafe fn SetCenterY<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
3306         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
3307     }
3308     pub unsafe fn SetCenterY2(&self, centery: f32) -> ::windows::runtime::Result<()> {
3309         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(centery)).ok()
3310     }
3311 }
3312 unsafe impl ::windows::runtime::Interface for IDCompositionScaleTransform {
3313     type Vtable = IDCompositionScaleTransform_abi;
3314     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1912465684, 16623, 17903, [189, 81, 104, 176, 55, 195, 57, 249]);
3315 }
3316 impl ::std::convert::From<IDCompositionScaleTransform> for ::windows::runtime::IUnknown {
3317     fn from(value: IDCompositionScaleTransform) -> Self {
3318         unsafe { ::std::mem::transmute(value) }
3319     }
3320 }
3321 impl ::std::convert::From<&IDCompositionScaleTransform> for ::windows::runtime::IUnknown {
3322     fn from(value: &IDCompositionScaleTransform) -> Self {
3323         ::std::convert::From::from(::std::clone::Clone::clone(value))
3324     }
3325 }
3326 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionScaleTransform {
3327     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3328         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3329     }
3330 }
3331 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionScaleTransform {
3332     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3333         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3334     }
3335 }
3336 impl ::std::convert::From<IDCompositionScaleTransform> for IDCompositionTransform {
3337     fn from(value: IDCompositionScaleTransform) -> Self {
3338         unsafe { ::std::mem::transmute(value) }
3339     }
3340 }
3341 impl ::std::convert::From<&IDCompositionScaleTransform> for IDCompositionTransform {
3342     fn from(value: &IDCompositionScaleTransform) -> Self {
3343         ::std::convert::From::from(::std::clone::Clone::clone(value))
3344     }
3345 }
3346 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionTransform> for IDCompositionScaleTransform {
3347     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionTransform> {
3348         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionTransform>::into(self))
3349     }
3350 }
3351 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionTransform> for &IDCompositionScaleTransform {
3352     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionTransform> {
3353         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionTransform>::into(::std::clone::Clone::clone(self)))
3354     }
3355 }
3356 impl ::std::convert::From<IDCompositionScaleTransform> for IDCompositionTransform3D {
3357     fn from(value: IDCompositionScaleTransform) -> Self {
3358         unsafe { ::std::mem::transmute(value) }
3359     }
3360 }
3361 impl ::std::convert::From<&IDCompositionScaleTransform> for IDCompositionTransform3D {
3362     fn from(value: &IDCompositionScaleTransform) -> Self {
3363         ::std::convert::From::from(::std::clone::Clone::clone(value))
3364     }
3365 }
3366 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionTransform3D> for IDCompositionScaleTransform {
3367     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionTransform3D> {
3368         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionTransform3D>::into(self))
3369     }
3370 }
3371 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionTransform3D> for &IDCompositionScaleTransform {
3372     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionTransform3D> {
3373         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionTransform3D>::into(::std::clone::Clone::clone(self)))
3374     }
3375 }
3376 impl ::std::convert::From<IDCompositionScaleTransform> for IDCompositionEffect {
3377     fn from(value: IDCompositionScaleTransform) -> Self {
3378         unsafe { ::std::mem::transmute(value) }
3379     }
3380 }
3381 impl ::std::convert::From<&IDCompositionScaleTransform> for IDCompositionEffect {
3382     fn from(value: &IDCompositionScaleTransform) -> Self {
3383         ::std::convert::From::from(::std::clone::Clone::clone(value))
3384     }
3385 }
3386 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for IDCompositionScaleTransform {
3387     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
3388         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(self))
3389     }
3390 }
3391 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for &IDCompositionScaleTransform {
3392     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
3393         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(::std::clone::Clone::clone(self)))
3394     }
3395 }
3396 #[repr(C)]
3397 #[doc(hidden)]
3398 pub struct IDCompositionScaleTransform_abi(
3399     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3400     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3401     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3402     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3403     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, scalex: f32) -> ::windows::runtime::HRESULT,
3404     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3405     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, scaley: f32) -> ::windows::runtime::HRESULT,
3406     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3407     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, centerx: f32) -> ::windows::runtime::HRESULT,
3408     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3409     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, centery: f32) -> ::windows::runtime::HRESULT,
3410 );
3411 #[repr(transparent)]
3412 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3413 pub struct IDCompositionScaleTransform3D(::windows::runtime::IUnknown);
3414 impl IDCompositionScaleTransform3D {
3415     pub unsafe fn SetScaleX<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
3416         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
3417     }
3418     pub unsafe fn SetScaleX2(&self, scalex: f32) -> ::windows::runtime::Result<()> {
3419         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(scalex)).ok()
3420     }
3421     pub unsafe fn SetScaleY<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
3422         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
3423     }
3424     pub unsafe fn SetScaleY2(&self, scaley: f32) -> ::windows::runtime::Result<()> {
3425         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(scaley)).ok()
3426     }
3427     pub unsafe fn SetScaleZ<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
3428         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
3429     }
3430     pub unsafe fn SetScaleZ2(&self, scalez: f32) -> ::windows::runtime::Result<()> {
3431         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(scalez)).ok()
3432     }
3433     pub unsafe fn SetCenterX<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
3434         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
3435     }
3436     pub unsafe fn SetCenterX2(&self, centerx: f32) -> ::windows::runtime::Result<()> {
3437         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(centerx)).ok()
3438     }
3439     pub unsafe fn SetCenterY<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
3440         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
3441     }
3442     pub unsafe fn SetCenterY2(&self, centery: f32) -> ::windows::runtime::Result<()> {
3443         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(centery)).ok()
3444     }
3445     pub unsafe fn SetCenterZ<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
3446         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
3447     }
3448     pub unsafe fn SetCenterZ2(&self, centerz: f32) -> ::windows::runtime::Result<()> {
3449         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(centerz)).ok()
3450     }
3451 }
3452 unsafe impl ::windows::runtime::Interface for IDCompositionScaleTransform3D {
3453     type Vtable = IDCompositionScaleTransform3D_abi;
3454     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(715038381, 13899, 19221, [167, 196, 161, 153, 127, 120, 179, 137]);
3455 }
3456 impl ::std::convert::From<IDCompositionScaleTransform3D> for ::windows::runtime::IUnknown {
3457     fn from(value: IDCompositionScaleTransform3D) -> Self {
3458         unsafe { ::std::mem::transmute(value) }
3459     }
3460 }
3461 impl ::std::convert::From<&IDCompositionScaleTransform3D> for ::windows::runtime::IUnknown {
3462     fn from(value: &IDCompositionScaleTransform3D) -> Self {
3463         ::std::convert::From::from(::std::clone::Clone::clone(value))
3464     }
3465 }
3466 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionScaleTransform3D {
3467     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3468         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3469     }
3470 }
3471 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionScaleTransform3D {
3472     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3473         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3474     }
3475 }
3476 impl ::std::convert::From<IDCompositionScaleTransform3D> for IDCompositionTransform3D {
3477     fn from(value: IDCompositionScaleTransform3D) -> Self {
3478         unsafe { ::std::mem::transmute(value) }
3479     }
3480 }
3481 impl ::std::convert::From<&IDCompositionScaleTransform3D> for IDCompositionTransform3D {
3482     fn from(value: &IDCompositionScaleTransform3D) -> Self {
3483         ::std::convert::From::from(::std::clone::Clone::clone(value))
3484     }
3485 }
3486 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionTransform3D> for IDCompositionScaleTransform3D {
3487     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionTransform3D> {
3488         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionTransform3D>::into(self))
3489     }
3490 }
3491 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionTransform3D> for &IDCompositionScaleTransform3D {
3492     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionTransform3D> {
3493         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionTransform3D>::into(::std::clone::Clone::clone(self)))
3494     }
3495 }
3496 impl ::std::convert::From<IDCompositionScaleTransform3D> for IDCompositionEffect {
3497     fn from(value: IDCompositionScaleTransform3D) -> Self {
3498         unsafe { ::std::mem::transmute(value) }
3499     }
3500 }
3501 impl ::std::convert::From<&IDCompositionScaleTransform3D> for IDCompositionEffect {
3502     fn from(value: &IDCompositionScaleTransform3D) -> Self {
3503         ::std::convert::From::from(::std::clone::Clone::clone(value))
3504     }
3505 }
3506 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for IDCompositionScaleTransform3D {
3507     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
3508         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(self))
3509     }
3510 }
3511 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for &IDCompositionScaleTransform3D {
3512     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
3513         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(::std::clone::Clone::clone(self)))
3514     }
3515 }
3516 #[repr(C)]
3517 #[doc(hidden)]
3518 pub struct IDCompositionScaleTransform3D_abi(
3519     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3520     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3521     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3522     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3523     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, scalex: f32) -> ::windows::runtime::HRESULT,
3524     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3525     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, scaley: f32) -> ::windows::runtime::HRESULT,
3526     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3527     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, scalez: f32) -> ::windows::runtime::HRESULT,
3528     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3529     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, centerx: f32) -> ::windows::runtime::HRESULT,
3530     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3531     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, centery: f32) -> ::windows::runtime::HRESULT,
3532     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3533     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, centerz: f32) -> ::windows::runtime::HRESULT,
3534 );
3535 #[repr(transparent)]
3536 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3537 pub struct IDCompositionShadowEffect(::windows::runtime::IUnknown);
3538 impl IDCompositionShadowEffect {
3539     pub unsafe fn SetInput<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, index: u32, input: Param1, flags: u32) -> ::windows::runtime::Result<()> {
3540         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), input.into_param().abi(), ::std::mem::transmute(flags)).ok()
3541     }
3542     pub unsafe fn SetStandardDeviation<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
3543         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
3544     }
3545     pub unsafe fn SetStandardDeviation2(&self, amount: f32) -> ::windows::runtime::Result<()> {
3546         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(amount)).ok()
3547     }
3548     #[cfg(feature = "Win32_Graphics_Direct2D")]
3549     pub unsafe fn SetColor(&self, color: *const super::Direct2D::D2D_VECTOR_4F) -> ::windows::runtime::Result<()> {
3550         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(color)).ok()
3551     }
3552     pub unsafe fn SetRed<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
3553         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
3554     }
3555     pub unsafe fn SetRed2(&self, amount: f32) -> ::windows::runtime::Result<()> {
3556         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(amount)).ok()
3557     }
3558     pub unsafe fn SetGreen<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
3559         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
3560     }
3561     pub unsafe fn SetGreen2(&self, amount: f32) -> ::windows::runtime::Result<()> {
3562         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(amount)).ok()
3563     }
3564     pub unsafe fn SetBlue<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
3565         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
3566     }
3567     pub unsafe fn SetBlue2(&self, amount: f32) -> ::windows::runtime::Result<()> {
3568         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(amount)).ok()
3569     }
3570     pub unsafe fn SetAlpha<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
3571         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
3572     }
3573     pub unsafe fn SetAlpha2(&self, amount: f32) -> ::windows::runtime::Result<()> {
3574         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(amount)).ok()
3575     }
3576 }
3577 unsafe impl ::windows::runtime::Interface for IDCompositionShadowEffect {
3578     type Vtable = IDCompositionShadowEffect_abi;
3579     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1255246528, 53202, 19503, [187, 98, 150, 229, 79, 219, 104, 121]);
3580 }
3581 impl ::std::convert::From<IDCompositionShadowEffect> for ::windows::runtime::IUnknown {
3582     fn from(value: IDCompositionShadowEffect) -> Self {
3583         unsafe { ::std::mem::transmute(value) }
3584     }
3585 }
3586 impl ::std::convert::From<&IDCompositionShadowEffect> for ::windows::runtime::IUnknown {
3587     fn from(value: &IDCompositionShadowEffect) -> Self {
3588         ::std::convert::From::from(::std::clone::Clone::clone(value))
3589     }
3590 }
3591 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionShadowEffect {
3592     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3593         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3594     }
3595 }
3596 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionShadowEffect {
3597     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3598         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3599     }
3600 }
3601 impl ::std::convert::From<IDCompositionShadowEffect> for IDCompositionFilterEffect {
3602     fn from(value: IDCompositionShadowEffect) -> Self {
3603         unsafe { ::std::mem::transmute(value) }
3604     }
3605 }
3606 impl ::std::convert::From<&IDCompositionShadowEffect> for IDCompositionFilterEffect {
3607     fn from(value: &IDCompositionShadowEffect) -> Self {
3608         ::std::convert::From::from(::std::clone::Clone::clone(value))
3609     }
3610 }
3611 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionFilterEffect> for IDCompositionShadowEffect {
3612     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionFilterEffect> {
3613         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionFilterEffect>::into(self))
3614     }
3615 }
3616 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionFilterEffect> for &IDCompositionShadowEffect {
3617     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionFilterEffect> {
3618         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionFilterEffect>::into(::std::clone::Clone::clone(self)))
3619     }
3620 }
3621 impl ::std::convert::From<IDCompositionShadowEffect> for IDCompositionEffect {
3622     fn from(value: IDCompositionShadowEffect) -> Self {
3623         unsafe { ::std::mem::transmute(value) }
3624     }
3625 }
3626 impl ::std::convert::From<&IDCompositionShadowEffect> for IDCompositionEffect {
3627     fn from(value: &IDCompositionShadowEffect) -> Self {
3628         ::std::convert::From::from(::std::clone::Clone::clone(value))
3629     }
3630 }
3631 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for IDCompositionShadowEffect {
3632     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
3633         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(self))
3634     }
3635 }
3636 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for &IDCompositionShadowEffect {
3637     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
3638         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(::std::clone::Clone::clone(self)))
3639     }
3640 }
3641 #[repr(C)]
3642 #[doc(hidden)]
3643 pub struct IDCompositionShadowEffect_abi(
3644     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3645     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3646     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3647     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, input: ::windows::runtime::RawPtr, flags: u32) -> ::windows::runtime::HRESULT,
3648     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3649     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, amount: f32) -> ::windows::runtime::HRESULT,
3650     #[cfg(feature = "Win32_Graphics_Direct2D")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, color: *const super::Direct2D::D2D_VECTOR_4F) -> ::windows::runtime::HRESULT,
3651     #[cfg(not(feature = "Win32_Graphics_Direct2D"))] usize,
3652     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3653     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, amount: f32) -> ::windows::runtime::HRESULT,
3654     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3655     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, amount: f32) -> ::windows::runtime::HRESULT,
3656     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3657     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, amount: f32) -> ::windows::runtime::HRESULT,
3658     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3659     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, amount: f32) -> ::windows::runtime::HRESULT,
3660 );
3661 #[repr(transparent)]
3662 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3663 pub struct IDCompositionSkewTransform(::windows::runtime::IUnknown);
3664 impl IDCompositionSkewTransform {
3665     pub unsafe fn SetAngleX<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
3666         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
3667     }
3668     pub unsafe fn SetAngleX2(&self, anglex: f32) -> ::windows::runtime::Result<()> {
3669         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(anglex)).ok()
3670     }
3671     pub unsafe fn SetAngleY<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
3672         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
3673     }
3674     pub unsafe fn SetAngleY2(&self, angley: f32) -> ::windows::runtime::Result<()> {
3675         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(angley)).ok()
3676     }
3677     pub unsafe fn SetCenterX<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
3678         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
3679     }
3680     pub unsafe fn SetCenterX2(&self, centerx: f32) -> ::windows::runtime::Result<()> {
3681         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(centerx)).ok()
3682     }
3683     pub unsafe fn SetCenterY<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
3684         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
3685     }
3686     pub unsafe fn SetCenterY2(&self, centery: f32) -> ::windows::runtime::Result<()> {
3687         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(centery)).ok()
3688     }
3689 }
3690 unsafe impl ::windows::runtime::Interface for IDCompositionSkewTransform {
3691     type Vtable = IDCompositionSkewTransform_abi;
3692     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3850020661, 56539, 19570, [156, 97, 5, 145, 245, 136, 137, 238]);
3693 }
3694 impl ::std::convert::From<IDCompositionSkewTransform> for ::windows::runtime::IUnknown {
3695     fn from(value: IDCompositionSkewTransform) -> Self {
3696         unsafe { ::std::mem::transmute(value) }
3697     }
3698 }
3699 impl ::std::convert::From<&IDCompositionSkewTransform> for ::windows::runtime::IUnknown {
3700     fn from(value: &IDCompositionSkewTransform) -> Self {
3701         ::std::convert::From::from(::std::clone::Clone::clone(value))
3702     }
3703 }
3704 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionSkewTransform {
3705     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3706         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3707     }
3708 }
3709 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionSkewTransform {
3710     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3711         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3712     }
3713 }
3714 impl ::std::convert::From<IDCompositionSkewTransform> for IDCompositionTransform {
3715     fn from(value: IDCompositionSkewTransform) -> Self {
3716         unsafe { ::std::mem::transmute(value) }
3717     }
3718 }
3719 impl ::std::convert::From<&IDCompositionSkewTransform> for IDCompositionTransform {
3720     fn from(value: &IDCompositionSkewTransform) -> Self {
3721         ::std::convert::From::from(::std::clone::Clone::clone(value))
3722     }
3723 }
3724 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionTransform> for IDCompositionSkewTransform {
3725     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionTransform> {
3726         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionTransform>::into(self))
3727     }
3728 }
3729 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionTransform> for &IDCompositionSkewTransform {
3730     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionTransform> {
3731         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionTransform>::into(::std::clone::Clone::clone(self)))
3732     }
3733 }
3734 impl ::std::convert::From<IDCompositionSkewTransform> for IDCompositionTransform3D {
3735     fn from(value: IDCompositionSkewTransform) -> Self {
3736         unsafe { ::std::mem::transmute(value) }
3737     }
3738 }
3739 impl ::std::convert::From<&IDCompositionSkewTransform> for IDCompositionTransform3D {
3740     fn from(value: &IDCompositionSkewTransform) -> Self {
3741         ::std::convert::From::from(::std::clone::Clone::clone(value))
3742     }
3743 }
3744 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionTransform3D> for IDCompositionSkewTransform {
3745     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionTransform3D> {
3746         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionTransform3D>::into(self))
3747     }
3748 }
3749 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionTransform3D> for &IDCompositionSkewTransform {
3750     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionTransform3D> {
3751         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionTransform3D>::into(::std::clone::Clone::clone(self)))
3752     }
3753 }
3754 impl ::std::convert::From<IDCompositionSkewTransform> for IDCompositionEffect {
3755     fn from(value: IDCompositionSkewTransform) -> Self {
3756         unsafe { ::std::mem::transmute(value) }
3757     }
3758 }
3759 impl ::std::convert::From<&IDCompositionSkewTransform> for IDCompositionEffect {
3760     fn from(value: &IDCompositionSkewTransform) -> Self {
3761         ::std::convert::From::from(::std::clone::Clone::clone(value))
3762     }
3763 }
3764 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for IDCompositionSkewTransform {
3765     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
3766         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(self))
3767     }
3768 }
3769 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for &IDCompositionSkewTransform {
3770     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
3771         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(::std::clone::Clone::clone(self)))
3772     }
3773 }
3774 #[repr(C)]
3775 #[doc(hidden)]
3776 pub struct IDCompositionSkewTransform_abi(
3777     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3778     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3779     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3780     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3781     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, anglex: f32) -> ::windows::runtime::HRESULT,
3782     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3783     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, angley: f32) -> ::windows::runtime::HRESULT,
3784     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3785     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, centerx: f32) -> ::windows::runtime::HRESULT,
3786     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3787     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, centery: f32) -> ::windows::runtime::HRESULT,
3788 );
3789 #[repr(transparent)]
3790 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3791 pub struct IDCompositionSurface(::windows::runtime::IUnknown);
3792 impl IDCompositionSurface {
3793     #[cfg(feature = "Win32_Foundation")]
3794     pub unsafe fn BeginDraw(&self, updaterect: *const super::super::Foundation::RECT, iid: *const ::windows::runtime::GUID, updateobject: *mut *mut ::std::ffi::c_void, updateoffset: *mut super::super::Foundation::POINT) -> ::windows::runtime::Result<()> {
3795         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(updaterect), ::std::mem::transmute(iid), ::std::mem::transmute(updateobject), ::std::mem::transmute(updateoffset)).ok()
3796     }
3797     pub unsafe fn EndDraw(&self) -> ::windows::runtime::Result<()> {
3798         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)).ok()
3799     }
3800     pub unsafe fn SuspendDraw(&self) -> ::windows::runtime::Result<()> {
3801         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)).ok()
3802     }
3803     pub unsafe fn ResumeDraw(&self) -> ::windows::runtime::Result<()> {
3804         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self)).ok()
3805     }
3806     #[cfg(feature = "Win32_Foundation")]
3807     pub unsafe fn Scroll(&self, scrollrect: *const super::super::Foundation::RECT, cliprect: *const super::super::Foundation::RECT, offsetx: i32, offsety: i32) -> ::windows::runtime::Result<()> {
3808         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(scrollrect), ::std::mem::transmute(cliprect), ::std::mem::transmute(offsetx), ::std::mem::transmute(offsety)).ok()
3809     }
3810 }
3811 unsafe impl ::windows::runtime::Interface for IDCompositionSurface {
3812     type Vtable = IDCompositionSurface_abi;
3813     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3146402131, 11417, 20314, [150, 245, 72, 25, 2, 127, 163, 172]);
3814 }
3815 impl ::std::convert::From<IDCompositionSurface> for ::windows::runtime::IUnknown {
3816     fn from(value: IDCompositionSurface) -> Self {
3817         unsafe { ::std::mem::transmute(value) }
3818     }
3819 }
3820 impl ::std::convert::From<&IDCompositionSurface> for ::windows::runtime::IUnknown {
3821     fn from(value: &IDCompositionSurface) -> Self {
3822         ::std::convert::From::from(::std::clone::Clone::clone(value))
3823     }
3824 }
3825 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionSurface {
3826     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3827         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3828     }
3829 }
3830 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionSurface {
3831     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3832         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3833     }
3834 }
3835 #[repr(C)]
3836 #[doc(hidden)]
3837 pub struct IDCompositionSurface_abi(
3838     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3839     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3840     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3841     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, updaterect: *const super::super::Foundation::RECT, iid: *const ::windows::runtime::GUID, updateobject: *mut *mut ::std::ffi::c_void, updateoffset: *mut super::super::Foundation::POINT) -> ::windows::runtime::HRESULT,
3842     #[cfg(not(feature = "Win32_Foundation"))] usize,
3843     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3844     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3845     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3846     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, scrollrect: *const super::super::Foundation::RECT, cliprect: *const super::super::Foundation::RECT, offsetx: i32, offsety: i32) -> ::windows::runtime::HRESULT,
3847     #[cfg(not(feature = "Win32_Foundation"))] usize,
3848 );
3849 #[repr(transparent)]
3850 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3851 pub struct IDCompositionSurfaceFactory(::windows::runtime::IUnknown);
3852 impl IDCompositionSurfaceFactory {
3853     #[cfg(feature = "Win32_Graphics_Dxgi")]
3854     pub unsafe fn CreateSurface(&self, width: u32, height: u32, pixelformat: super::Dxgi::DXGI_FORMAT, alphamode: super::Dxgi::DXGI_ALPHA_MODE) -> ::windows::runtime::Result<IDCompositionSurface> {
3855         let mut result__: <IDCompositionSurface as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3856         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(width), ::std::mem::transmute(height), ::std::mem::transmute(pixelformat), ::std::mem::transmute(alphamode), &mut result__).from_abi::<IDCompositionSurface>(result__)
3857     }
3858     #[cfg(feature = "Win32_Graphics_Dxgi")]
3859     pub unsafe fn CreateVirtualSurface(&self, initialwidth: u32, initialheight: u32, pixelformat: super::Dxgi::DXGI_FORMAT, alphamode: super::Dxgi::DXGI_ALPHA_MODE) -> ::windows::runtime::Result<IDCompositionVirtualSurface> {
3860         let mut result__: <IDCompositionVirtualSurface as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3861         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(initialwidth), ::std::mem::transmute(initialheight), ::std::mem::transmute(pixelformat), ::std::mem::transmute(alphamode), &mut result__).from_abi::<IDCompositionVirtualSurface>(result__)
3862     }
3863 }
3864 unsafe impl ::windows::runtime::Interface for IDCompositionSurfaceFactory {
3865     type Vtable = IDCompositionSurfaceFactory_abi;
3866     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3811884050, 14647, 19970, [133, 235, 252, 244, 235, 48, 210, 200]);
3867 }
3868 impl ::std::convert::From<IDCompositionSurfaceFactory> for ::windows::runtime::IUnknown {
3869     fn from(value: IDCompositionSurfaceFactory) -> Self {
3870         unsafe { ::std::mem::transmute(value) }
3871     }
3872 }
3873 impl ::std::convert::From<&IDCompositionSurfaceFactory> for ::windows::runtime::IUnknown {
3874     fn from(value: &IDCompositionSurfaceFactory) -> Self {
3875         ::std::convert::From::from(::std::clone::Clone::clone(value))
3876     }
3877 }
3878 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionSurfaceFactory {
3879     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3880         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3881     }
3882 }
3883 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionSurfaceFactory {
3884     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3885         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3886     }
3887 }
3888 #[repr(C)]
3889 #[doc(hidden)]
3890 pub struct IDCompositionSurfaceFactory_abi(
3891     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3892     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3893     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3894     #[cfg(feature = "Win32_Graphics_Dxgi")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, width: u32, height: u32, pixelformat: super::Dxgi::DXGI_FORMAT, alphamode: super::Dxgi::DXGI_ALPHA_MODE, surface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3895     #[cfg(not(feature = "Win32_Graphics_Dxgi"))] usize,
3896     #[cfg(feature = "Win32_Graphics_Dxgi")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, initialwidth: u32, initialheight: u32, pixelformat: super::Dxgi::DXGI_FORMAT, alphamode: super::Dxgi::DXGI_ALPHA_MODE, virtualsurface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3897     #[cfg(not(feature = "Win32_Graphics_Dxgi"))] usize,
3898 );
3899 #[repr(transparent)]
3900 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3901 pub struct IDCompositionTableTransferEffect(::windows::runtime::IUnknown);
3902 impl IDCompositionTableTransferEffect {
3903     pub unsafe fn SetInput<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, index: u32, input: Param1, flags: u32) -> ::windows::runtime::Result<()> {
3904         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), input.into_param().abi(), ::std::mem::transmute(flags)).ok()
3905     }
3906     pub unsafe fn SetRedTable(&self, tablevalues: *const f32, count: u32) -> ::windows::runtime::Result<()> {
3907         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(tablevalues), ::std::mem::transmute(count)).ok()
3908     }
3909     pub unsafe fn SetGreenTable(&self, tablevalues: *const f32, count: u32) -> ::windows::runtime::Result<()> {
3910         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(tablevalues), ::std::mem::transmute(count)).ok()
3911     }
3912     pub unsafe fn SetBlueTable(&self, tablevalues: *const f32, count: u32) -> ::windows::runtime::Result<()> {
3913         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(tablevalues), ::std::mem::transmute(count)).ok()
3914     }
3915     pub unsafe fn SetAlphaTable(&self, tablevalues: *const f32, count: u32) -> ::windows::runtime::Result<()> {
3916         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(tablevalues), ::std::mem::transmute(count)).ok()
3917     }
3918     #[cfg(feature = "Win32_Foundation")]
3919     pub unsafe fn SetRedDisable<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, reddisable: Param0) -> ::windows::runtime::Result<()> {
3920         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), reddisable.into_param().abi()).ok()
3921     }
3922     #[cfg(feature = "Win32_Foundation")]
3923     pub unsafe fn SetGreenDisable<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, greendisable: Param0) -> ::windows::runtime::Result<()> {
3924         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), greendisable.into_param().abi()).ok()
3925     }
3926     #[cfg(feature = "Win32_Foundation")]
3927     pub unsafe fn SetBlueDisable<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, bluedisable: Param0) -> ::windows::runtime::Result<()> {
3928         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), bluedisable.into_param().abi()).ok()
3929     }
3930     #[cfg(feature = "Win32_Foundation")]
3931     pub unsafe fn SetAlphaDisable<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, alphadisable: Param0) -> ::windows::runtime::Result<()> {
3932         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), alphadisable.into_param().abi()).ok()
3933     }
3934     #[cfg(feature = "Win32_Foundation")]
3935     pub unsafe fn SetClampOutput<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, clampoutput: Param0) -> ::windows::runtime::Result<()> {
3936         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), clampoutput.into_param().abi()).ok()
3937     }
3938     pub unsafe fn SetRedTableValue<'a, Param1: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, index: u32, animation: Param1) -> ::windows::runtime::Result<()> {
3939         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), animation.into_param().abi()).ok()
3940     }
3941     pub unsafe fn SetRedTableValue2(&self, index: u32, value: f32) -> ::windows::runtime::Result<()> {
3942         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), ::std::mem::transmute(value)).ok()
3943     }
3944     pub unsafe fn SetGreenTableValue<'a, Param1: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, index: u32, animation: Param1) -> ::windows::runtime::Result<()> {
3945         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), animation.into_param().abi()).ok()
3946     }
3947     pub unsafe fn SetGreenTableValue2(&self, index: u32, value: f32) -> ::windows::runtime::Result<()> {
3948         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), ::std::mem::transmute(value)).ok()
3949     }
3950     pub unsafe fn SetBlueTableValue<'a, Param1: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, index: u32, animation: Param1) -> ::windows::runtime::Result<()> {
3951         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), animation.into_param().abi()).ok()
3952     }
3953     pub unsafe fn SetBlueTableValue2(&self, index: u32, value: f32) -> ::windows::runtime::Result<()> {
3954         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), ::std::mem::transmute(value)).ok()
3955     }
3956     pub unsafe fn SetAlphaTableValue<'a, Param1: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, index: u32, animation: Param1) -> ::windows::runtime::Result<()> {
3957         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), animation.into_param().abi()).ok()
3958     }
3959     pub unsafe fn SetAlphaTableValue2(&self, index: u32, value: f32) -> ::windows::runtime::Result<()> {
3960         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), ::std::mem::transmute(value)).ok()
3961     }
3962 }
3963 unsafe impl ::windows::runtime::Interface for IDCompositionTableTransferEffect {
3964     type Vtable = IDCompositionTableTransferEffect_abi;
3965     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2608759522, 27077, 20148, [165, 245, 167, 3, 63, 81, 50, 205]);
3966 }
3967 impl ::std::convert::From<IDCompositionTableTransferEffect> for ::windows::runtime::IUnknown {
3968     fn from(value: IDCompositionTableTransferEffect) -> Self {
3969         unsafe { ::std::mem::transmute(value) }
3970     }
3971 }
3972 impl ::std::convert::From<&IDCompositionTableTransferEffect> for ::windows::runtime::IUnknown {
3973     fn from(value: &IDCompositionTableTransferEffect) -> Self {
3974         ::std::convert::From::from(::std::clone::Clone::clone(value))
3975     }
3976 }
3977 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionTableTransferEffect {
3978     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3979         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3980     }
3981 }
3982 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionTableTransferEffect {
3983     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3984         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3985     }
3986 }
3987 impl ::std::convert::From<IDCompositionTableTransferEffect> for IDCompositionFilterEffect {
3988     fn from(value: IDCompositionTableTransferEffect) -> Self {
3989         unsafe { ::std::mem::transmute(value) }
3990     }
3991 }
3992 impl ::std::convert::From<&IDCompositionTableTransferEffect> for IDCompositionFilterEffect {
3993     fn from(value: &IDCompositionTableTransferEffect) -> Self {
3994         ::std::convert::From::from(::std::clone::Clone::clone(value))
3995     }
3996 }
3997 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionFilterEffect> for IDCompositionTableTransferEffect {
3998     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionFilterEffect> {
3999         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionFilterEffect>::into(self))
4000     }
4001 }
4002 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionFilterEffect> for &IDCompositionTableTransferEffect {
4003     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionFilterEffect> {
4004         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionFilterEffect>::into(::std::clone::Clone::clone(self)))
4005     }
4006 }
4007 impl ::std::convert::From<IDCompositionTableTransferEffect> for IDCompositionEffect {
4008     fn from(value: IDCompositionTableTransferEffect) -> Self {
4009         unsafe { ::std::mem::transmute(value) }
4010     }
4011 }
4012 impl ::std::convert::From<&IDCompositionTableTransferEffect> for IDCompositionEffect {
4013     fn from(value: &IDCompositionTableTransferEffect) -> Self {
4014         ::std::convert::From::from(::std::clone::Clone::clone(value))
4015     }
4016 }
4017 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for IDCompositionTableTransferEffect {
4018     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
4019         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(self))
4020     }
4021 }
4022 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for &IDCompositionTableTransferEffect {
4023     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
4024         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(::std::clone::Clone::clone(self)))
4025     }
4026 }
4027 #[repr(C)]
4028 #[doc(hidden)]
4029 pub struct IDCompositionTableTransferEffect_abi(
4030     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4031     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4032     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4033     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, input: ::windows::runtime::RawPtr, flags: u32) -> ::windows::runtime::HRESULT,
4034     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, tablevalues: *const f32, count: u32) -> ::windows::runtime::HRESULT,
4035     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, tablevalues: *const f32, count: u32) -> ::windows::runtime::HRESULT,
4036     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, tablevalues: *const f32, count: u32) -> ::windows::runtime::HRESULT,
4037     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, tablevalues: *const f32, count: u32) -> ::windows::runtime::HRESULT,
4038     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, reddisable: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
4039     #[cfg(not(feature = "Win32_Foundation"))] usize,
4040     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, greendisable: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
4041     #[cfg(not(feature = "Win32_Foundation"))] usize,
4042     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, bluedisable: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
4043     #[cfg(not(feature = "Win32_Foundation"))] usize,
4044     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, alphadisable: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
4045     #[cfg(not(feature = "Win32_Foundation"))] usize,
4046     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clampoutput: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
4047     #[cfg(not(feature = "Win32_Foundation"))] usize,
4048     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4049     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, value: f32) -> ::windows::runtime::HRESULT,
4050     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4051     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, value: f32) -> ::windows::runtime::HRESULT,
4052     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4053     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, value: f32) -> ::windows::runtime::HRESULT,
4054     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4055     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, value: f32) -> ::windows::runtime::HRESULT,
4056 );
4057 #[repr(transparent)]
4058 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4059 pub struct IDCompositionTarget(::windows::runtime::IUnknown);
4060 impl IDCompositionTarget {
4061     pub unsafe fn SetRoot<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionVisual>>(&self, visual: Param0) -> ::windows::runtime::Result<()> {
4062         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), visual.into_param().abi()).ok()
4063     }
4064 }
4065 unsafe impl ::windows::runtime::Interface for IDCompositionTarget {
4066     type Vtable = IDCompositionTarget_abi;
4067     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3939356748, 4478, 19991, [136, 244, 209, 177, 43, 14, 61, 137]);
4068 }
4069 impl ::std::convert::From<IDCompositionTarget> for ::windows::runtime::IUnknown {
4070     fn from(value: IDCompositionTarget) -> Self {
4071         unsafe { ::std::mem::transmute(value) }
4072     }
4073 }
4074 impl ::std::convert::From<&IDCompositionTarget> for ::windows::runtime::IUnknown {
4075     fn from(value: &IDCompositionTarget) -> Self {
4076         ::std::convert::From::from(::std::clone::Clone::clone(value))
4077     }
4078 }
4079 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionTarget {
4080     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4081         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4082     }
4083 }
4084 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionTarget {
4085     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4086         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4087     }
4088 }
4089 #[repr(C)]
4090 #[doc(hidden)]
4091 pub struct IDCompositionTarget_abi(
4092     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4093     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4094     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4095     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, visual: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4096 );
4097 #[repr(transparent)]
4098 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4099 pub struct IDCompositionTransform(::windows::runtime::IUnknown);
4100 impl IDCompositionTransform {}
4101 unsafe impl ::windows::runtime::Interface for IDCompositionTransform {
4102     type Vtable = IDCompositionTransform_abi;
4103     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4250270375, 14304, 19488, [149, 210, 155, 228, 91, 195, 63, 85]);
4104 }
4105 impl ::std::convert::From<IDCompositionTransform> for ::windows::runtime::IUnknown {
4106     fn from(value: IDCompositionTransform) -> Self {
4107         unsafe { ::std::mem::transmute(value) }
4108     }
4109 }
4110 impl ::std::convert::From<&IDCompositionTransform> for ::windows::runtime::IUnknown {
4111     fn from(value: &IDCompositionTransform) -> Self {
4112         ::std::convert::From::from(::std::clone::Clone::clone(value))
4113     }
4114 }
4115 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionTransform {
4116     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4117         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4118     }
4119 }
4120 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionTransform {
4121     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4122         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4123     }
4124 }
4125 impl ::std::convert::From<IDCompositionTransform> for IDCompositionTransform3D {
4126     fn from(value: IDCompositionTransform) -> Self {
4127         unsafe { ::std::mem::transmute(value) }
4128     }
4129 }
4130 impl ::std::convert::From<&IDCompositionTransform> for IDCompositionTransform3D {
4131     fn from(value: &IDCompositionTransform) -> Self {
4132         ::std::convert::From::from(::std::clone::Clone::clone(value))
4133     }
4134 }
4135 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionTransform3D> for IDCompositionTransform {
4136     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionTransform3D> {
4137         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionTransform3D>::into(self))
4138     }
4139 }
4140 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionTransform3D> for &IDCompositionTransform {
4141     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionTransform3D> {
4142         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionTransform3D>::into(::std::clone::Clone::clone(self)))
4143     }
4144 }
4145 impl ::std::convert::From<IDCompositionTransform> for IDCompositionEffect {
4146     fn from(value: IDCompositionTransform) -> Self {
4147         unsafe { ::std::mem::transmute(value) }
4148     }
4149 }
4150 impl ::std::convert::From<&IDCompositionTransform> for IDCompositionEffect {
4151     fn from(value: &IDCompositionTransform) -> Self {
4152         ::std::convert::From::from(::std::clone::Clone::clone(value))
4153     }
4154 }
4155 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for IDCompositionTransform {
4156     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
4157         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(self))
4158     }
4159 }
4160 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for &IDCompositionTransform {
4161     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
4162         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(::std::clone::Clone::clone(self)))
4163     }
4164 }
4165 #[repr(C)]
4166 #[doc(hidden)]
4167 pub struct IDCompositionTransform_abi(
4168     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4169     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4170     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4171 );
4172 #[repr(transparent)]
4173 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4174 pub struct IDCompositionTransform3D(::windows::runtime::IUnknown);
4175 impl IDCompositionTransform3D {}
4176 unsafe impl ::windows::runtime::Interface for IDCompositionTransform3D {
4177     type Vtable = IDCompositionTransform3D_abi;
4178     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1897420578, 9323, 16882, [170, 209, 4, 67, 247, 244, 191, 194]);
4179 }
4180 impl ::std::convert::From<IDCompositionTransform3D> for ::windows::runtime::IUnknown {
4181     fn from(value: IDCompositionTransform3D) -> Self {
4182         unsafe { ::std::mem::transmute(value) }
4183     }
4184 }
4185 impl ::std::convert::From<&IDCompositionTransform3D> for ::windows::runtime::IUnknown {
4186     fn from(value: &IDCompositionTransform3D) -> Self {
4187         ::std::convert::From::from(::std::clone::Clone::clone(value))
4188     }
4189 }
4190 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionTransform3D {
4191     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4192         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4193     }
4194 }
4195 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionTransform3D {
4196     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4197         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4198     }
4199 }
4200 impl ::std::convert::From<IDCompositionTransform3D> for IDCompositionEffect {
4201     fn from(value: IDCompositionTransform3D) -> Self {
4202         unsafe { ::std::mem::transmute(value) }
4203     }
4204 }
4205 impl ::std::convert::From<&IDCompositionTransform3D> for IDCompositionEffect {
4206     fn from(value: &IDCompositionTransform3D) -> Self {
4207         ::std::convert::From::from(::std::clone::Clone::clone(value))
4208     }
4209 }
4210 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for IDCompositionTransform3D {
4211     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
4212         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(self))
4213     }
4214 }
4215 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for &IDCompositionTransform3D {
4216     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
4217         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(::std::clone::Clone::clone(self)))
4218     }
4219 }
4220 #[repr(C)]
4221 #[doc(hidden)]
4222 pub struct IDCompositionTransform3D_abi(
4223     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4224     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4225     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4226 );
4227 #[repr(transparent)]
4228 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4229 pub struct IDCompositionTranslateTransform(::windows::runtime::IUnknown);
4230 impl IDCompositionTranslateTransform {
4231     pub unsafe fn SetOffsetX<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
4232         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
4233     }
4234     pub unsafe fn SetOffsetX2(&self, offsetx: f32) -> ::windows::runtime::Result<()> {
4235         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(offsetx)).ok()
4236     }
4237     pub unsafe fn SetOffsetY<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
4238         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
4239     }
4240     pub unsafe fn SetOffsetY2(&self, offsety: f32) -> ::windows::runtime::Result<()> {
4241         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(offsety)).ok()
4242     }
4243 }
4244 unsafe impl ::windows::runtime::Interface for IDCompositionTranslateTransform {
4245     type Vtable = IDCompositionTranslateTransform_abi;
4246     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(108597538, 50928, 16765, [131, 35, 38, 158, 152, 127, 89, 84]);
4247 }
4248 impl ::std::convert::From<IDCompositionTranslateTransform> for ::windows::runtime::IUnknown {
4249     fn from(value: IDCompositionTranslateTransform) -> Self {
4250         unsafe { ::std::mem::transmute(value) }
4251     }
4252 }
4253 impl ::std::convert::From<&IDCompositionTranslateTransform> for ::windows::runtime::IUnknown {
4254     fn from(value: &IDCompositionTranslateTransform) -> Self {
4255         ::std::convert::From::from(::std::clone::Clone::clone(value))
4256     }
4257 }
4258 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionTranslateTransform {
4259     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4260         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4261     }
4262 }
4263 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionTranslateTransform {
4264     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4265         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4266     }
4267 }
4268 impl ::std::convert::From<IDCompositionTranslateTransform> for IDCompositionTransform {
4269     fn from(value: IDCompositionTranslateTransform) -> Self {
4270         unsafe { ::std::mem::transmute(value) }
4271     }
4272 }
4273 impl ::std::convert::From<&IDCompositionTranslateTransform> for IDCompositionTransform {
4274     fn from(value: &IDCompositionTranslateTransform) -> Self {
4275         ::std::convert::From::from(::std::clone::Clone::clone(value))
4276     }
4277 }
4278 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionTransform> for IDCompositionTranslateTransform {
4279     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionTransform> {
4280         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionTransform>::into(self))
4281     }
4282 }
4283 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionTransform> for &IDCompositionTranslateTransform {
4284     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionTransform> {
4285         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionTransform>::into(::std::clone::Clone::clone(self)))
4286     }
4287 }
4288 impl ::std::convert::From<IDCompositionTranslateTransform> for IDCompositionTransform3D {
4289     fn from(value: IDCompositionTranslateTransform) -> Self {
4290         unsafe { ::std::mem::transmute(value) }
4291     }
4292 }
4293 impl ::std::convert::From<&IDCompositionTranslateTransform> for IDCompositionTransform3D {
4294     fn from(value: &IDCompositionTranslateTransform) -> Self {
4295         ::std::convert::From::from(::std::clone::Clone::clone(value))
4296     }
4297 }
4298 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionTransform3D> for IDCompositionTranslateTransform {
4299     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionTransform3D> {
4300         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionTransform3D>::into(self))
4301     }
4302 }
4303 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionTransform3D> for &IDCompositionTranslateTransform {
4304     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionTransform3D> {
4305         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionTransform3D>::into(::std::clone::Clone::clone(self)))
4306     }
4307 }
4308 impl ::std::convert::From<IDCompositionTranslateTransform> for IDCompositionEffect {
4309     fn from(value: IDCompositionTranslateTransform) -> Self {
4310         unsafe { ::std::mem::transmute(value) }
4311     }
4312 }
4313 impl ::std::convert::From<&IDCompositionTranslateTransform> for IDCompositionEffect {
4314     fn from(value: &IDCompositionTranslateTransform) -> Self {
4315         ::std::convert::From::from(::std::clone::Clone::clone(value))
4316     }
4317 }
4318 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for IDCompositionTranslateTransform {
4319     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
4320         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(self))
4321     }
4322 }
4323 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for &IDCompositionTranslateTransform {
4324     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
4325         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(::std::clone::Clone::clone(self)))
4326     }
4327 }
4328 #[repr(C)]
4329 #[doc(hidden)]
4330 pub struct IDCompositionTranslateTransform_abi(
4331     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4332     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4333     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4334     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4335     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, offsetx: f32) -> ::windows::runtime::HRESULT,
4336     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4337     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, offsety: f32) -> ::windows::runtime::HRESULT,
4338 );
4339 #[repr(transparent)]
4340 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4341 pub struct IDCompositionTranslateTransform3D(::windows::runtime::IUnknown);
4342 impl IDCompositionTranslateTransform3D {
4343     pub unsafe fn SetOffsetX<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
4344         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
4345     }
4346     pub unsafe fn SetOffsetX2(&self, offsetx: f32) -> ::windows::runtime::Result<()> {
4347         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(offsetx)).ok()
4348     }
4349     pub unsafe fn SetOffsetY<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
4350         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
4351     }
4352     pub unsafe fn SetOffsetY2(&self, offsety: f32) -> ::windows::runtime::Result<()> {
4353         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(offsety)).ok()
4354     }
4355     pub unsafe fn SetOffsetZ<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
4356         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
4357     }
4358     pub unsafe fn SetOffsetZ2(&self, offsetz: f32) -> ::windows::runtime::Result<()> {
4359         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(offsetz)).ok()
4360     }
4361 }
4362 unsafe impl ::windows::runtime::Interface for IDCompositionTranslateTransform3D {
4363     type Vtable = IDCompositionTranslateTransform3D_abi;
4364     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2439212363, 39841, 17714, [170, 247, 227, 52, 73, 148, 215, 136]);
4365 }
4366 impl ::std::convert::From<IDCompositionTranslateTransform3D> for ::windows::runtime::IUnknown {
4367     fn from(value: IDCompositionTranslateTransform3D) -> Self {
4368         unsafe { ::std::mem::transmute(value) }
4369     }
4370 }
4371 impl ::std::convert::From<&IDCompositionTranslateTransform3D> for ::windows::runtime::IUnknown {
4372     fn from(value: &IDCompositionTranslateTransform3D) -> Self {
4373         ::std::convert::From::from(::std::clone::Clone::clone(value))
4374     }
4375 }
4376 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionTranslateTransform3D {
4377     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4378         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4379     }
4380 }
4381 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionTranslateTransform3D {
4382     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4383         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4384     }
4385 }
4386 impl ::std::convert::From<IDCompositionTranslateTransform3D> for IDCompositionTransform3D {
4387     fn from(value: IDCompositionTranslateTransform3D) -> Self {
4388         unsafe { ::std::mem::transmute(value) }
4389     }
4390 }
4391 impl ::std::convert::From<&IDCompositionTranslateTransform3D> for IDCompositionTransform3D {
4392     fn from(value: &IDCompositionTranslateTransform3D) -> Self {
4393         ::std::convert::From::from(::std::clone::Clone::clone(value))
4394     }
4395 }
4396 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionTransform3D> for IDCompositionTranslateTransform3D {
4397     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionTransform3D> {
4398         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionTransform3D>::into(self))
4399     }
4400 }
4401 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionTransform3D> for &IDCompositionTranslateTransform3D {
4402     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionTransform3D> {
4403         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionTransform3D>::into(::std::clone::Clone::clone(self)))
4404     }
4405 }
4406 impl ::std::convert::From<IDCompositionTranslateTransform3D> for IDCompositionEffect {
4407     fn from(value: IDCompositionTranslateTransform3D) -> Self {
4408         unsafe { ::std::mem::transmute(value) }
4409     }
4410 }
4411 impl ::std::convert::From<&IDCompositionTranslateTransform3D> for IDCompositionEffect {
4412     fn from(value: &IDCompositionTranslateTransform3D) -> Self {
4413         ::std::convert::From::from(::std::clone::Clone::clone(value))
4414     }
4415 }
4416 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for IDCompositionTranslateTransform3D {
4417     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
4418         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(self))
4419     }
4420 }
4421 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for &IDCompositionTranslateTransform3D {
4422     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
4423         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(::std::clone::Clone::clone(self)))
4424     }
4425 }
4426 #[repr(C)]
4427 #[doc(hidden)]
4428 pub struct IDCompositionTranslateTransform3D_abi(
4429     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4430     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4431     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4432     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4433     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, offsetx: f32) -> ::windows::runtime::HRESULT,
4434     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4435     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, offsety: f32) -> ::windows::runtime::HRESULT,
4436     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4437     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, offsetz: f32) -> ::windows::runtime::HRESULT,
4438 );
4439 #[repr(transparent)]
4440 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4441 pub struct IDCompositionTurbulenceEffect(::windows::runtime::IUnknown);
4442 impl IDCompositionTurbulenceEffect {
4443     pub unsafe fn SetInput<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, index: u32, input: Param1, flags: u32) -> ::windows::runtime::Result<()> {
4444         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), input.into_param().abi(), ::std::mem::transmute(flags)).ok()
4445     }
4446     #[cfg(feature = "Win32_Graphics_Direct2D")]
4447     pub unsafe fn SetOffset(&self, offset: *const super::Direct2D::D2D_VECTOR_2F) -> ::windows::runtime::Result<()> {
4448         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(offset)).ok()
4449     }
4450     #[cfg(feature = "Win32_Graphics_Direct2D")]
4451     pub unsafe fn SetBaseFrequency(&self, frequency: *const super::Direct2D::D2D_VECTOR_2F) -> ::windows::runtime::Result<()> {
4452         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(frequency)).ok()
4453     }
4454     #[cfg(feature = "Win32_Graphics_Direct2D")]
4455     pub unsafe fn SetSize(&self, size: *const super::Direct2D::D2D_VECTOR_2F) -> ::windows::runtime::Result<()> {
4456         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(size)).ok()
4457     }
4458     pub unsafe fn SetNumOctaves(&self, numoctaves: u32) -> ::windows::runtime::Result<()> {
4459         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(numoctaves)).ok()
4460     }
4461     pub unsafe fn SetSeed(&self, seed: u32) -> ::windows::runtime::Result<()> {
4462         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(seed)).ok()
4463     }
4464     #[cfg(feature = "Win32_Graphics_Direct2D")]
4465     pub unsafe fn SetNoise(&self, noise: super::Direct2D::D2D1_TURBULENCE_NOISE) -> ::windows::runtime::Result<()> {
4466         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(noise)).ok()
4467     }
4468     #[cfg(feature = "Win32_Foundation")]
4469     pub unsafe fn SetStitchable<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, stitchable: Param0) -> ::windows::runtime::Result<()> {
4470         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), stitchable.into_param().abi()).ok()
4471     }
4472 }
4473 unsafe impl ::windows::runtime::Interface for IDCompositionTurbulenceEffect {
4474     type Vtable = IDCompositionTurbulenceEffect_abi;
4475     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2795854810, 49308, 18931, [145, 147, 164, 25, 34, 200, 151, 21]);
4476 }
4477 impl ::std::convert::From<IDCompositionTurbulenceEffect> for ::windows::runtime::IUnknown {
4478     fn from(value: IDCompositionTurbulenceEffect) -> Self {
4479         unsafe { ::std::mem::transmute(value) }
4480     }
4481 }
4482 impl ::std::convert::From<&IDCompositionTurbulenceEffect> for ::windows::runtime::IUnknown {
4483     fn from(value: &IDCompositionTurbulenceEffect) -> Self {
4484         ::std::convert::From::from(::std::clone::Clone::clone(value))
4485     }
4486 }
4487 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionTurbulenceEffect {
4488     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4489         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4490     }
4491 }
4492 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionTurbulenceEffect {
4493     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4494         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4495     }
4496 }
4497 impl ::std::convert::From<IDCompositionTurbulenceEffect> for IDCompositionFilterEffect {
4498     fn from(value: IDCompositionTurbulenceEffect) -> Self {
4499         unsafe { ::std::mem::transmute(value) }
4500     }
4501 }
4502 impl ::std::convert::From<&IDCompositionTurbulenceEffect> for IDCompositionFilterEffect {
4503     fn from(value: &IDCompositionTurbulenceEffect) -> Self {
4504         ::std::convert::From::from(::std::clone::Clone::clone(value))
4505     }
4506 }
4507 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionFilterEffect> for IDCompositionTurbulenceEffect {
4508     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionFilterEffect> {
4509         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionFilterEffect>::into(self))
4510     }
4511 }
4512 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionFilterEffect> for &IDCompositionTurbulenceEffect {
4513     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionFilterEffect> {
4514         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionFilterEffect>::into(::std::clone::Clone::clone(self)))
4515     }
4516 }
4517 impl ::std::convert::From<IDCompositionTurbulenceEffect> for IDCompositionEffect {
4518     fn from(value: IDCompositionTurbulenceEffect) -> Self {
4519         unsafe { ::std::mem::transmute(value) }
4520     }
4521 }
4522 impl ::std::convert::From<&IDCompositionTurbulenceEffect> for IDCompositionEffect {
4523     fn from(value: &IDCompositionTurbulenceEffect) -> Self {
4524         ::std::convert::From::from(::std::clone::Clone::clone(value))
4525     }
4526 }
4527 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for IDCompositionTurbulenceEffect {
4528     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
4529         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(self))
4530     }
4531 }
4532 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionEffect> for &IDCompositionTurbulenceEffect {
4533     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionEffect> {
4534         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionEffect>::into(::std::clone::Clone::clone(self)))
4535     }
4536 }
4537 #[repr(C)]
4538 #[doc(hidden)]
4539 pub struct IDCompositionTurbulenceEffect_abi(
4540     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4541     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4542     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4543     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, input: ::windows::runtime::RawPtr, flags: u32) -> ::windows::runtime::HRESULT,
4544     #[cfg(feature = "Win32_Graphics_Direct2D")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, offset: *const super::Direct2D::D2D_VECTOR_2F) -> ::windows::runtime::HRESULT,
4545     #[cfg(not(feature = "Win32_Graphics_Direct2D"))] usize,
4546     #[cfg(feature = "Win32_Graphics_Direct2D")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, frequency: *const super::Direct2D::D2D_VECTOR_2F) -> ::windows::runtime::HRESULT,
4547     #[cfg(not(feature = "Win32_Graphics_Direct2D"))] usize,
4548     #[cfg(feature = "Win32_Graphics_Direct2D")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, size: *const super::Direct2D::D2D_VECTOR_2F) -> ::windows::runtime::HRESULT,
4549     #[cfg(not(feature = "Win32_Graphics_Direct2D"))] usize,
4550     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, numoctaves: u32) -> ::windows::runtime::HRESULT,
4551     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, seed: u32) -> ::windows::runtime::HRESULT,
4552     #[cfg(feature = "Win32_Graphics_Direct2D")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, noise: super::Direct2D::D2D1_TURBULENCE_NOISE) -> ::windows::runtime::HRESULT,
4553     #[cfg(not(feature = "Win32_Graphics_Direct2D"))] usize,
4554     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, stitchable: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
4555     #[cfg(not(feature = "Win32_Foundation"))] usize,
4556 );
4557 #[repr(transparent)]
4558 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4559 pub struct IDCompositionVirtualSurface(::windows::runtime::IUnknown);
4560 impl IDCompositionVirtualSurface {
4561     #[cfg(feature = "Win32_Foundation")]
4562     pub unsafe fn BeginDraw(&self, updaterect: *const super::super::Foundation::RECT, iid: *const ::windows::runtime::GUID, updateobject: *mut *mut ::std::ffi::c_void, updateoffset: *mut super::super::Foundation::POINT) -> ::windows::runtime::Result<()> {
4563         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(updaterect), ::std::mem::transmute(iid), ::std::mem::transmute(updateobject), ::std::mem::transmute(updateoffset)).ok()
4564     }
4565     pub unsafe fn EndDraw(&self) -> ::windows::runtime::Result<()> {
4566         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)).ok()
4567     }
4568     pub unsafe fn SuspendDraw(&self) -> ::windows::runtime::Result<()> {
4569         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)).ok()
4570     }
4571     pub unsafe fn ResumeDraw(&self) -> ::windows::runtime::Result<()> {
4572         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self)).ok()
4573     }
4574     #[cfg(feature = "Win32_Foundation")]
4575     pub unsafe fn Scroll(&self, scrollrect: *const super::super::Foundation::RECT, cliprect: *const super::super::Foundation::RECT, offsetx: i32, offsety: i32) -> ::windows::runtime::Result<()> {
4576         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(scrollrect), ::std::mem::transmute(cliprect), ::std::mem::transmute(offsetx), ::std::mem::transmute(offsety)).ok()
4577     }
4578     pub unsafe fn Resize(&self, width: u32, height: u32) -> ::windows::runtime::Result<()> {
4579         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(width), ::std::mem::transmute(height)).ok()
4580     }
4581     #[cfg(feature = "Win32_Foundation")]
4582     pub unsafe fn Trim(&self, rectangles: *const super::super::Foundation::RECT, count: u32) -> ::windows::runtime::Result<()> {
4583         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(rectangles), ::std::mem::transmute(count)).ok()
4584     }
4585 }
4586 unsafe impl ::windows::runtime::Interface for IDCompositionVirtualSurface {
4587     type Vtable = IDCompositionVirtualSurface_abi;
4588     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2923895889, 24403, 18980, [141, 62, 208, 195, 156, 48, 179, 240]);
4589 }
4590 impl ::std::convert::From<IDCompositionVirtualSurface> for ::windows::runtime::IUnknown {
4591     fn from(value: IDCompositionVirtualSurface) -> Self {
4592         unsafe { ::std::mem::transmute(value) }
4593     }
4594 }
4595 impl ::std::convert::From<&IDCompositionVirtualSurface> for ::windows::runtime::IUnknown {
4596     fn from(value: &IDCompositionVirtualSurface) -> Self {
4597         ::std::convert::From::from(::std::clone::Clone::clone(value))
4598     }
4599 }
4600 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionVirtualSurface {
4601     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4602         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4603     }
4604 }
4605 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionVirtualSurface {
4606     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4607         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4608     }
4609 }
4610 impl ::std::convert::From<IDCompositionVirtualSurface> for IDCompositionSurface {
4611     fn from(value: IDCompositionVirtualSurface) -> Self {
4612         unsafe { ::std::mem::transmute(value) }
4613     }
4614 }
4615 impl ::std::convert::From<&IDCompositionVirtualSurface> for IDCompositionSurface {
4616     fn from(value: &IDCompositionVirtualSurface) -> Self {
4617         ::std::convert::From::from(::std::clone::Clone::clone(value))
4618     }
4619 }
4620 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionSurface> for IDCompositionVirtualSurface {
4621     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionSurface> {
4622         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionSurface>::into(self))
4623     }
4624 }
4625 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionSurface> for &IDCompositionVirtualSurface {
4626     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionSurface> {
4627         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionSurface>::into(::std::clone::Clone::clone(self)))
4628     }
4629 }
4630 #[repr(C)]
4631 #[doc(hidden)]
4632 pub struct IDCompositionVirtualSurface_abi(
4633     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4634     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4635     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4636     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, updaterect: *const super::super::Foundation::RECT, iid: *const ::windows::runtime::GUID, updateobject: *mut *mut ::std::ffi::c_void, updateoffset: *mut super::super::Foundation::POINT) -> ::windows::runtime::HRESULT,
4637     #[cfg(not(feature = "Win32_Foundation"))] usize,
4638     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4639     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4640     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4641     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, scrollrect: *const super::super::Foundation::RECT, cliprect: *const super::super::Foundation::RECT, offsetx: i32, offsety: i32) -> ::windows::runtime::HRESULT,
4642     #[cfg(not(feature = "Win32_Foundation"))] usize,
4643     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, width: u32, height: u32) -> ::windows::runtime::HRESULT,
4644     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, rectangles: *const super::super::Foundation::RECT, count: u32) -> ::windows::runtime::HRESULT,
4645     #[cfg(not(feature = "Win32_Foundation"))] usize,
4646 );
4647 #[repr(transparent)]
4648 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4649 pub struct IDCompositionVisual(::windows::runtime::IUnknown);
4650 impl IDCompositionVisual {
4651     pub unsafe fn SetOffsetX<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
4652         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
4653     }
4654     pub unsafe fn SetOffsetX2(&self, offsetx: f32) -> ::windows::runtime::Result<()> {
4655         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(offsetx)).ok()
4656     }
4657     pub unsafe fn SetOffsetY<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
4658         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
4659     }
4660     pub unsafe fn SetOffsetY2(&self, offsety: f32) -> ::windows::runtime::Result<()> {
4661         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(offsety)).ok()
4662     }
4663     pub unsafe fn SetTransform<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionTransform>>(&self, transform: Param0) -> ::windows::runtime::Result<()> {
4664         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), transform.into_param().abi()).ok()
4665     }
4666     #[cfg(feature = "Foundation_Numerics")]
4667     pub unsafe fn SetTransform2(&self, matrix: *const super::super::super::Foundation::Numerics::Matrix3x2) -> ::windows::runtime::Result<()> {
4668         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(matrix)).ok()
4669     }
4670     pub unsafe fn SetTransformParent<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionVisual>>(&self, visual: Param0) -> ::windows::runtime::Result<()> {
4671         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), visual.into_param().abi()).ok()
4672     }
4673     pub unsafe fn SetEffect<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionEffect>>(&self, effect: Param0) -> ::windows::runtime::Result<()> {
4674         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), effect.into_param().abi()).ok()
4675     }
4676     pub unsafe fn SetBitmapInterpolationMode(&self, interpolationmode: DCOMPOSITION_BITMAP_INTERPOLATION_MODE) -> ::windows::runtime::Result<()> {
4677         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(interpolationmode)).ok()
4678     }
4679     pub unsafe fn SetBorderMode(&self, bordermode: DCOMPOSITION_BORDER_MODE) -> ::windows::runtime::Result<()> {
4680         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(bordermode)).ok()
4681     }
4682     pub unsafe fn SetClip<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionClip>>(&self, clip: Param0) -> ::windows::runtime::Result<()> {
4683         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), clip.into_param().abi()).ok()
4684     }
4685     #[cfg(feature = "Win32_Graphics_Direct2D")]
4686     pub unsafe fn SetClip2(&self, rect: *const super::Direct2D::D2D_RECT_F) -> ::windows::runtime::Result<()> {
4687         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(rect)).ok()
4688     }
4689     pub unsafe fn SetContent<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, content: Param0) -> ::windows::runtime::Result<()> {
4690         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), content.into_param().abi()).ok()
4691     }
4692     #[cfg(feature = "Win32_Foundation")]
4693     pub unsafe fn AddVisual<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionVisual>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param2: ::windows::runtime::IntoParam<'a, IDCompositionVisual>>(&self, visual: Param0, insertabove: Param1, referencevisual: Param2) -> ::windows::runtime::Result<()> {
4694         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), visual.into_param().abi(), insertabove.into_param().abi(), referencevisual.into_param().abi()).ok()
4695     }
4696     pub unsafe fn RemoveVisual<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionVisual>>(&self, visual: Param0) -> ::windows::runtime::Result<()> {
4697         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), visual.into_param().abi()).ok()
4698     }
4699     pub unsafe fn RemoveAllVisuals(&self) -> ::windows::runtime::Result<()> {
4700         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self)).ok()
4701     }
4702     pub unsafe fn SetCompositeMode(&self, compositemode: DCOMPOSITION_COMPOSITE_MODE) -> ::windows::runtime::Result<()> {
4703         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), ::std::mem::transmute(compositemode)).ok()
4704     }
4705 }
4706 unsafe impl ::windows::runtime::Interface for IDCompositionVisual {
4707     type Vtable = IDCompositionVisual_abi;
4708     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1301480861, 2427, 18001, [154, 96, 240, 242, 81, 22, 226, 243]);
4709 }
4710 impl ::std::convert::From<IDCompositionVisual> for ::windows::runtime::IUnknown {
4711     fn from(value: IDCompositionVisual) -> Self {
4712         unsafe { ::std::mem::transmute(value) }
4713     }
4714 }
4715 impl ::std::convert::From<&IDCompositionVisual> for ::windows::runtime::IUnknown {
4716     fn from(value: &IDCompositionVisual) -> Self {
4717         ::std::convert::From::from(::std::clone::Clone::clone(value))
4718     }
4719 }
4720 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionVisual {
4721     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4722         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4723     }
4724 }
4725 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionVisual {
4726     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4727         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4728     }
4729 }
4730 #[repr(C)]
4731 #[doc(hidden)]
4732 pub struct IDCompositionVisual_abi(
4733     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4734     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4735     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4736     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4737     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, offsetx: f32) -> ::windows::runtime::HRESULT,
4738     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4739     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, offsety: f32) -> ::windows::runtime::HRESULT,
4740     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, transform: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4741     #[cfg(feature = "Foundation_Numerics")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, matrix: *const super::super::super::Foundation::Numerics::Matrix3x2) -> ::windows::runtime::HRESULT,
4742     #[cfg(not(feature = "Foundation_Numerics"))] usize,
4743     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, visual: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4744     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, effect: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4745     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, interpolationmode: DCOMPOSITION_BITMAP_INTERPOLATION_MODE) -> ::windows::runtime::HRESULT,
4746     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, bordermode: DCOMPOSITION_BORDER_MODE) -> ::windows::runtime::HRESULT,
4747     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clip: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4748     #[cfg(feature = "Win32_Graphics_Direct2D")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, rect: *const super::Direct2D::D2D_RECT_F) -> ::windows::runtime::HRESULT,
4749     #[cfg(not(feature = "Win32_Graphics_Direct2D"))] usize,
4750     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, content: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4751     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, visual: ::windows::runtime::RawPtr, insertabove: super::super::Foundation::BOOL, referencevisual: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4752     #[cfg(not(feature = "Win32_Foundation"))] usize,
4753     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, visual: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4754     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4755     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, compositemode: DCOMPOSITION_COMPOSITE_MODE) -> ::windows::runtime::HRESULT,
4756 );
4757 #[repr(transparent)]
4758 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4759 pub struct IDCompositionVisual2(::windows::runtime::IUnknown);
4760 impl IDCompositionVisual2 {
4761     pub unsafe fn SetOffsetX<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
4762         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
4763     }
4764     pub unsafe fn SetOffsetX2(&self, offsetx: f32) -> ::windows::runtime::Result<()> {
4765         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(offsetx)).ok()
4766     }
4767     pub unsafe fn SetOffsetY<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
4768         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
4769     }
4770     pub unsafe fn SetOffsetY2(&self, offsety: f32) -> ::windows::runtime::Result<()> {
4771         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(offsety)).ok()
4772     }
4773     pub unsafe fn SetTransform<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionTransform>>(&self, transform: Param0) -> ::windows::runtime::Result<()> {
4774         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), transform.into_param().abi()).ok()
4775     }
4776     #[cfg(feature = "Foundation_Numerics")]
4777     pub unsafe fn SetTransform2(&self, matrix: *const super::super::super::Foundation::Numerics::Matrix3x2) -> ::windows::runtime::Result<()> {
4778         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(matrix)).ok()
4779     }
4780     pub unsafe fn SetTransformParent<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionVisual>>(&self, visual: Param0) -> ::windows::runtime::Result<()> {
4781         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), visual.into_param().abi()).ok()
4782     }
4783     pub unsafe fn SetEffect<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionEffect>>(&self, effect: Param0) -> ::windows::runtime::Result<()> {
4784         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), effect.into_param().abi()).ok()
4785     }
4786     pub unsafe fn SetBitmapInterpolationMode(&self, interpolationmode: DCOMPOSITION_BITMAP_INTERPOLATION_MODE) -> ::windows::runtime::Result<()> {
4787         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(interpolationmode)).ok()
4788     }
4789     pub unsafe fn SetBorderMode(&self, bordermode: DCOMPOSITION_BORDER_MODE) -> ::windows::runtime::Result<()> {
4790         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(bordermode)).ok()
4791     }
4792     pub unsafe fn SetClip<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionClip>>(&self, clip: Param0) -> ::windows::runtime::Result<()> {
4793         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), clip.into_param().abi()).ok()
4794     }
4795     #[cfg(feature = "Win32_Graphics_Direct2D")]
4796     pub unsafe fn SetClip2(&self, rect: *const super::Direct2D::D2D_RECT_F) -> ::windows::runtime::Result<()> {
4797         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(rect)).ok()
4798     }
4799     pub unsafe fn SetContent<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, content: Param0) -> ::windows::runtime::Result<()> {
4800         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), content.into_param().abi()).ok()
4801     }
4802     #[cfg(feature = "Win32_Foundation")]
4803     pub unsafe fn AddVisual<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionVisual>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param2: ::windows::runtime::IntoParam<'a, IDCompositionVisual>>(&self, visual: Param0, insertabove: Param1, referencevisual: Param2) -> ::windows::runtime::Result<()> {
4804         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), visual.into_param().abi(), insertabove.into_param().abi(), referencevisual.into_param().abi()).ok()
4805     }
4806     pub unsafe fn RemoveVisual<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionVisual>>(&self, visual: Param0) -> ::windows::runtime::Result<()> {
4807         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), visual.into_param().abi()).ok()
4808     }
4809     pub unsafe fn RemoveAllVisuals(&self) -> ::windows::runtime::Result<()> {
4810         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self)).ok()
4811     }
4812     pub unsafe fn SetCompositeMode(&self, compositemode: DCOMPOSITION_COMPOSITE_MODE) -> ::windows::runtime::Result<()> {
4813         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), ::std::mem::transmute(compositemode)).ok()
4814     }
4815     pub unsafe fn SetOpacityMode(&self, mode: DCOMPOSITION_OPACITY_MODE) -> ::windows::runtime::Result<()> {
4816         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(mode)).ok()
4817     }
4818     pub unsafe fn SetBackFaceVisibility(&self, visibility: DCOMPOSITION_BACKFACE_VISIBILITY) -> ::windows::runtime::Result<()> {
4819         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), ::std::mem::transmute(visibility)).ok()
4820     }
4821 }
4822 unsafe impl ::windows::runtime::Interface for IDCompositionVisual2 {
4823     type Vtable = IDCompositionVisual2_abi;
4824     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3906868793, 17201, 19238, [188, 95, 106, 50, 29, 52, 122, 133]);
4825 }
4826 impl ::std::convert::From<IDCompositionVisual2> for ::windows::runtime::IUnknown {
4827     fn from(value: IDCompositionVisual2) -> Self {
4828         unsafe { ::std::mem::transmute(value) }
4829     }
4830 }
4831 impl ::std::convert::From<&IDCompositionVisual2> for ::windows::runtime::IUnknown {
4832     fn from(value: &IDCompositionVisual2) -> Self {
4833         ::std::convert::From::from(::std::clone::Clone::clone(value))
4834     }
4835 }
4836 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionVisual2 {
4837     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4838         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4839     }
4840 }
4841 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionVisual2 {
4842     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4843         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4844     }
4845 }
4846 impl ::std::convert::From<IDCompositionVisual2> for IDCompositionVisual {
4847     fn from(value: IDCompositionVisual2) -> Self {
4848         unsafe { ::std::mem::transmute(value) }
4849     }
4850 }
4851 impl ::std::convert::From<&IDCompositionVisual2> for IDCompositionVisual {
4852     fn from(value: &IDCompositionVisual2) -> Self {
4853         ::std::convert::From::from(::std::clone::Clone::clone(value))
4854     }
4855 }
4856 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionVisual> for IDCompositionVisual2 {
4857     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionVisual> {
4858         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionVisual>::into(self))
4859     }
4860 }
4861 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionVisual> for &IDCompositionVisual2 {
4862     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionVisual> {
4863         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionVisual>::into(::std::clone::Clone::clone(self)))
4864     }
4865 }
4866 #[repr(C)]
4867 #[doc(hidden)]
4868 pub struct IDCompositionVisual2_abi(
4869     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4870     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4871     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4872     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4873     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, offsetx: f32) -> ::windows::runtime::HRESULT,
4874     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4875     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, offsety: f32) -> ::windows::runtime::HRESULT,
4876     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, transform: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4877     #[cfg(feature = "Foundation_Numerics")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, matrix: *const super::super::super::Foundation::Numerics::Matrix3x2) -> ::windows::runtime::HRESULT,
4878     #[cfg(not(feature = "Foundation_Numerics"))] usize,
4879     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, visual: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4880     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, effect: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4881     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, interpolationmode: DCOMPOSITION_BITMAP_INTERPOLATION_MODE) -> ::windows::runtime::HRESULT,
4882     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, bordermode: DCOMPOSITION_BORDER_MODE) -> ::windows::runtime::HRESULT,
4883     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clip: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4884     #[cfg(feature = "Win32_Graphics_Direct2D")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, rect: *const super::Direct2D::D2D_RECT_F) -> ::windows::runtime::HRESULT,
4885     #[cfg(not(feature = "Win32_Graphics_Direct2D"))] usize,
4886     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, content: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4887     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, visual: ::windows::runtime::RawPtr, insertabove: super::super::Foundation::BOOL, referencevisual: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4888     #[cfg(not(feature = "Win32_Foundation"))] usize,
4889     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, visual: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4890     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4891     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, compositemode: DCOMPOSITION_COMPOSITE_MODE) -> ::windows::runtime::HRESULT,
4892     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, mode: DCOMPOSITION_OPACITY_MODE) -> ::windows::runtime::HRESULT,
4893     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, visibility: DCOMPOSITION_BACKFACE_VISIBILITY) -> ::windows::runtime::HRESULT,
4894 );
4895 #[repr(transparent)]
4896 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4897 pub struct IDCompositionVisual3(::windows::runtime::IUnknown);
4898 impl IDCompositionVisual3 {
4899     pub unsafe fn SetOffsetX<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
4900         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
4901     }
4902     pub unsafe fn SetOffsetX2(&self, offsetx: f32) -> ::windows::runtime::Result<()> {
4903         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(offsetx)).ok()
4904     }
4905     pub unsafe fn SetOffsetY<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
4906         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
4907     }
4908     pub unsafe fn SetOffsetY2(&self, offsety: f32) -> ::windows::runtime::Result<()> {
4909         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(offsety)).ok()
4910     }
4911     pub unsafe fn SetTransform<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionTransform>>(&self, transform: Param0) -> ::windows::runtime::Result<()> {
4912         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), transform.into_param().abi()).ok()
4913     }
4914     #[cfg(feature = "Foundation_Numerics")]
4915     pub unsafe fn SetTransform2(&self, matrix: *const super::super::super::Foundation::Numerics::Matrix3x2) -> ::windows::runtime::Result<()> {
4916         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(matrix)).ok()
4917     }
4918     pub unsafe fn SetTransformParent<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionVisual>>(&self, visual: Param0) -> ::windows::runtime::Result<()> {
4919         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), visual.into_param().abi()).ok()
4920     }
4921     pub unsafe fn SetEffect<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionEffect>>(&self, effect: Param0) -> ::windows::runtime::Result<()> {
4922         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), effect.into_param().abi()).ok()
4923     }
4924     pub unsafe fn SetBitmapInterpolationMode(&self, interpolationmode: DCOMPOSITION_BITMAP_INTERPOLATION_MODE) -> ::windows::runtime::Result<()> {
4925         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(interpolationmode)).ok()
4926     }
4927     pub unsafe fn SetBorderMode(&self, bordermode: DCOMPOSITION_BORDER_MODE) -> ::windows::runtime::Result<()> {
4928         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(bordermode)).ok()
4929     }
4930     pub unsafe fn SetClip<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionClip>>(&self, clip: Param0) -> ::windows::runtime::Result<()> {
4931         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), clip.into_param().abi()).ok()
4932     }
4933     #[cfg(feature = "Win32_Graphics_Direct2D")]
4934     pub unsafe fn SetClip2(&self, rect: *const super::Direct2D::D2D_RECT_F) -> ::windows::runtime::Result<()> {
4935         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(rect)).ok()
4936     }
4937     pub unsafe fn SetContent<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, content: Param0) -> ::windows::runtime::Result<()> {
4938         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), content.into_param().abi()).ok()
4939     }
4940     #[cfg(feature = "Win32_Foundation")]
4941     pub unsafe fn AddVisual<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionVisual>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param2: ::windows::runtime::IntoParam<'a, IDCompositionVisual>>(&self, visual: Param0, insertabove: Param1, referencevisual: Param2) -> ::windows::runtime::Result<()> {
4942         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), visual.into_param().abi(), insertabove.into_param().abi(), referencevisual.into_param().abi()).ok()
4943     }
4944     pub unsafe fn RemoveVisual<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionVisual>>(&self, visual: Param0) -> ::windows::runtime::Result<()> {
4945         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), visual.into_param().abi()).ok()
4946     }
4947     pub unsafe fn RemoveAllVisuals(&self) -> ::windows::runtime::Result<()> {
4948         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self)).ok()
4949     }
4950     pub unsafe fn SetCompositeMode(&self, compositemode: DCOMPOSITION_COMPOSITE_MODE) -> ::windows::runtime::Result<()> {
4951         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), ::std::mem::transmute(compositemode)).ok()
4952     }
4953     pub unsafe fn SetOpacityMode(&self, mode: DCOMPOSITION_OPACITY_MODE) -> ::windows::runtime::Result<()> {
4954         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(mode)).ok()
4955     }
4956     pub unsafe fn SetBackFaceVisibility(&self, visibility: DCOMPOSITION_BACKFACE_VISIBILITY) -> ::windows::runtime::Result<()> {
4957         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), ::std::mem::transmute(visibility)).ok()
4958     }
4959     #[cfg(feature = "Win32_Graphics_Direct2D")]
4960     pub unsafe fn EnableHeatMap(&self, color: *const super::Direct2D::D2D1_COLOR_F) -> ::windows::runtime::Result<()> {
4961         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), ::std::mem::transmute(color)).ok()
4962     }
4963     pub unsafe fn DisableHeatMap(&self) -> ::windows::runtime::Result<()> {
4964         (::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self)).ok()
4965     }
4966     pub unsafe fn EnableRedrawRegions(&self) -> ::windows::runtime::Result<()> {
4967         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self)).ok()
4968     }
4969     pub unsafe fn DisableRedrawRegions(&self) -> ::windows::runtime::Result<()> {
4970         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self)).ok()
4971     }
4972     pub unsafe fn SetDepthMode(&self, mode: DCOMPOSITION_DEPTH_MODE) -> ::windows::runtime::Result<()> {
4973         (::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self), ::std::mem::transmute(mode)).ok()
4974     }
4975     pub unsafe fn SetOffsetZ<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
4976         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
4977     }
4978     pub unsafe fn SetOffsetZ2(&self, offsetz: f32) -> ::windows::runtime::Result<()> {
4979         (::windows::runtime::Interface::vtable(self).28)(::std::mem::transmute_copy(self), ::std::mem::transmute(offsetz)).ok()
4980     }
4981     pub unsafe fn SetOpacity<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
4982         (::windows::runtime::Interface::vtable(self).29)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
4983     }
4984     pub unsafe fn SetOpacity2(&self, opacity: f32) -> ::windows::runtime::Result<()> {
4985         (::windows::runtime::Interface::vtable(self).30)(::std::mem::transmute_copy(self), ::std::mem::transmute(opacity)).ok()
4986     }
4987     pub unsafe fn SetTransform3<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionTransform3D>>(&self, transform: Param0) -> ::windows::runtime::Result<()> {
4988         (::windows::runtime::Interface::vtable(self).31)(::std::mem::transmute_copy(self), transform.into_param().abi()).ok()
4989     }
4990     #[cfg(feature = "Win32_Graphics_Direct2D")]
4991     pub unsafe fn SetTransform4(&self, matrix: *const super::Direct2D::D2D_MATRIX_4X4_F) -> ::windows::runtime::Result<()> {
4992         (::windows::runtime::Interface::vtable(self).32)(::std::mem::transmute_copy(self), ::std::mem::transmute(matrix)).ok()
4993     }
4994     #[cfg(feature = "Win32_Foundation")]
4995     pub unsafe fn SetVisible<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, visible: Param0) -> ::windows::runtime::Result<()> {
4996         (::windows::runtime::Interface::vtable(self).33)(::std::mem::transmute_copy(self), visible.into_param().abi()).ok()
4997     }
4998 }
4999 unsafe impl ::windows::runtime::Interface for IDCompositionVisual3 {
5000     type Vtable = IDCompositionVisual3_abi;
5001     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(662041698, 46785, 16405, [176, 190, 179, 231, 214, 164, 151, 109]);
5002 }
5003 impl ::std::convert::From<IDCompositionVisual3> for ::windows::runtime::IUnknown {
5004     fn from(value: IDCompositionVisual3) -> Self {
5005         unsafe { ::std::mem::transmute(value) }
5006     }
5007 }
5008 impl ::std::convert::From<&IDCompositionVisual3> for ::windows::runtime::IUnknown {
5009     fn from(value: &IDCompositionVisual3) -> Self {
5010         ::std::convert::From::from(::std::clone::Clone::clone(value))
5011     }
5012 }
5013 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionVisual3 {
5014     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5015         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
5016     }
5017 }
5018 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionVisual3 {
5019     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5020         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
5021     }
5022 }
5023 impl ::std::convert::From<IDCompositionVisual3> for IDCompositionVisualDebug {
5024     fn from(value: IDCompositionVisual3) -> Self {
5025         unsafe { ::std::mem::transmute(value) }
5026     }
5027 }
5028 impl ::std::convert::From<&IDCompositionVisual3> for IDCompositionVisualDebug {
5029     fn from(value: &IDCompositionVisual3) -> Self {
5030         ::std::convert::From::from(::std::clone::Clone::clone(value))
5031     }
5032 }
5033 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionVisualDebug> for IDCompositionVisual3 {
5034     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionVisualDebug> {
5035         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionVisualDebug>::into(self))
5036     }
5037 }
5038 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionVisualDebug> for &IDCompositionVisual3 {
5039     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionVisualDebug> {
5040         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionVisualDebug>::into(::std::clone::Clone::clone(self)))
5041     }
5042 }
5043 impl ::std::convert::From<IDCompositionVisual3> for IDCompositionVisual2 {
5044     fn from(value: IDCompositionVisual3) -> Self {
5045         unsafe { ::std::mem::transmute(value) }
5046     }
5047 }
5048 impl ::std::convert::From<&IDCompositionVisual3> for IDCompositionVisual2 {
5049     fn from(value: &IDCompositionVisual3) -> Self {
5050         ::std::convert::From::from(::std::clone::Clone::clone(value))
5051     }
5052 }
5053 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionVisual2> for IDCompositionVisual3 {
5054     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionVisual2> {
5055         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionVisual2>::into(self))
5056     }
5057 }
5058 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionVisual2> for &IDCompositionVisual3 {
5059     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionVisual2> {
5060         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionVisual2>::into(::std::clone::Clone::clone(self)))
5061     }
5062 }
5063 impl ::std::convert::From<IDCompositionVisual3> for IDCompositionVisual {
5064     fn from(value: IDCompositionVisual3) -> Self {
5065         unsafe { ::std::mem::transmute(value) }
5066     }
5067 }
5068 impl ::std::convert::From<&IDCompositionVisual3> for IDCompositionVisual {
5069     fn from(value: &IDCompositionVisual3) -> Self {
5070         ::std::convert::From::from(::std::clone::Clone::clone(value))
5071     }
5072 }
5073 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionVisual> for IDCompositionVisual3 {
5074     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionVisual> {
5075         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionVisual>::into(self))
5076     }
5077 }
5078 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionVisual> for &IDCompositionVisual3 {
5079     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionVisual> {
5080         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionVisual>::into(::std::clone::Clone::clone(self)))
5081     }
5082 }
5083 #[repr(C)]
5084 #[doc(hidden)]
5085 pub struct IDCompositionVisual3_abi(
5086     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5087     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5088     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5089     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5090     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, offsetx: f32) -> ::windows::runtime::HRESULT,
5091     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5092     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, offsety: f32) -> ::windows::runtime::HRESULT,
5093     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, transform: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5094     #[cfg(feature = "Foundation_Numerics")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, matrix: *const super::super::super::Foundation::Numerics::Matrix3x2) -> ::windows::runtime::HRESULT,
5095     #[cfg(not(feature = "Foundation_Numerics"))] usize,
5096     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, visual: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5097     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, effect: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5098     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, interpolationmode: DCOMPOSITION_BITMAP_INTERPOLATION_MODE) -> ::windows::runtime::HRESULT,
5099     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, bordermode: DCOMPOSITION_BORDER_MODE) -> ::windows::runtime::HRESULT,
5100     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clip: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5101     #[cfg(feature = "Win32_Graphics_Direct2D")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, rect: *const super::Direct2D::D2D_RECT_F) -> ::windows::runtime::HRESULT,
5102     #[cfg(not(feature = "Win32_Graphics_Direct2D"))] usize,
5103     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, content: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5104     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, visual: ::windows::runtime::RawPtr, insertabove: super::super::Foundation::BOOL, referencevisual: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5105     #[cfg(not(feature = "Win32_Foundation"))] usize,
5106     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, visual: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5107     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5108     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, compositemode: DCOMPOSITION_COMPOSITE_MODE) -> ::windows::runtime::HRESULT,
5109     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, mode: DCOMPOSITION_OPACITY_MODE) -> ::windows::runtime::HRESULT,
5110     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, visibility: DCOMPOSITION_BACKFACE_VISIBILITY) -> ::windows::runtime::HRESULT,
5111     #[cfg(feature = "Win32_Graphics_Direct2D")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, color: *const super::Direct2D::D2D1_COLOR_F) -> ::windows::runtime::HRESULT,
5112     #[cfg(not(feature = "Win32_Graphics_Direct2D"))] usize,
5113     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5114     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5115     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5116     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, mode: DCOMPOSITION_DEPTH_MODE) -> ::windows::runtime::HRESULT,
5117     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5118     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, offsetz: f32) -> ::windows::runtime::HRESULT,
5119     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5120     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, opacity: f32) -> ::windows::runtime::HRESULT,
5121     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, transform: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5122     #[cfg(feature = "Win32_Graphics_Direct2D")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, matrix: *const super::Direct2D::D2D_MATRIX_4X4_F) -> ::windows::runtime::HRESULT,
5123     #[cfg(not(feature = "Win32_Graphics_Direct2D"))] usize,
5124     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, visible: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
5125     #[cfg(not(feature = "Win32_Foundation"))] usize,
5126 );
5127 #[repr(transparent)]
5128 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
5129 pub struct IDCompositionVisualDebug(::windows::runtime::IUnknown);
5130 impl IDCompositionVisualDebug {
5131     pub unsafe fn SetOffsetX<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
5132         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
5133     }
5134     pub unsafe fn SetOffsetX2(&self, offsetx: f32) -> ::windows::runtime::Result<()> {
5135         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(offsetx)).ok()
5136     }
5137     pub unsafe fn SetOffsetY<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionAnimation>>(&self, animation: Param0) -> ::windows::runtime::Result<()> {
5138         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), animation.into_param().abi()).ok()
5139     }
5140     pub unsafe fn SetOffsetY2(&self, offsety: f32) -> ::windows::runtime::Result<()> {
5141         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(offsety)).ok()
5142     }
5143     pub unsafe fn SetTransform<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionTransform>>(&self, transform: Param0) -> ::windows::runtime::Result<()> {
5144         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), transform.into_param().abi()).ok()
5145     }
5146     #[cfg(feature = "Foundation_Numerics")]
5147     pub unsafe fn SetTransform2(&self, matrix: *const super::super::super::Foundation::Numerics::Matrix3x2) -> ::windows::runtime::Result<()> {
5148         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(matrix)).ok()
5149     }
5150     pub unsafe fn SetTransformParent<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionVisual>>(&self, visual: Param0) -> ::windows::runtime::Result<()> {
5151         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), visual.into_param().abi()).ok()
5152     }
5153     pub unsafe fn SetEffect<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionEffect>>(&self, effect: Param0) -> ::windows::runtime::Result<()> {
5154         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), effect.into_param().abi()).ok()
5155     }
5156     pub unsafe fn SetBitmapInterpolationMode(&self, interpolationmode: DCOMPOSITION_BITMAP_INTERPOLATION_MODE) -> ::windows::runtime::Result<()> {
5157         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(interpolationmode)).ok()
5158     }
5159     pub unsafe fn SetBorderMode(&self, bordermode: DCOMPOSITION_BORDER_MODE) -> ::windows::runtime::Result<()> {
5160         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(bordermode)).ok()
5161     }
5162     pub unsafe fn SetClip<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionClip>>(&self, clip: Param0) -> ::windows::runtime::Result<()> {
5163         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), clip.into_param().abi()).ok()
5164     }
5165     #[cfg(feature = "Win32_Graphics_Direct2D")]
5166     pub unsafe fn SetClip2(&self, rect: *const super::Direct2D::D2D_RECT_F) -> ::windows::runtime::Result<()> {
5167         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(rect)).ok()
5168     }
5169     pub unsafe fn SetContent<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, content: Param0) -> ::windows::runtime::Result<()> {
5170         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), content.into_param().abi()).ok()
5171     }
5172     #[cfg(feature = "Win32_Foundation")]
5173     pub unsafe fn AddVisual<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionVisual>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param2: ::windows::runtime::IntoParam<'a, IDCompositionVisual>>(&self, visual: Param0, insertabove: Param1, referencevisual: Param2) -> ::windows::runtime::Result<()> {
5174         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), visual.into_param().abi(), insertabove.into_param().abi(), referencevisual.into_param().abi()).ok()
5175     }
5176     pub unsafe fn RemoveVisual<'a, Param0: ::windows::runtime::IntoParam<'a, IDCompositionVisual>>(&self, visual: Param0) -> ::windows::runtime::Result<()> {
5177         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), visual.into_param().abi()).ok()
5178     }
5179     pub unsafe fn RemoveAllVisuals(&self) -> ::windows::runtime::Result<()> {
5180         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self)).ok()
5181     }
5182     pub unsafe fn SetCompositeMode(&self, compositemode: DCOMPOSITION_COMPOSITE_MODE) -> ::windows::runtime::Result<()> {
5183         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), ::std::mem::transmute(compositemode)).ok()
5184     }
5185     pub unsafe fn SetOpacityMode(&self, mode: DCOMPOSITION_OPACITY_MODE) -> ::windows::runtime::Result<()> {
5186         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(mode)).ok()
5187     }
5188     pub unsafe fn SetBackFaceVisibility(&self, visibility: DCOMPOSITION_BACKFACE_VISIBILITY) -> ::windows::runtime::Result<()> {
5189         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), ::std::mem::transmute(visibility)).ok()
5190     }
5191     #[cfg(feature = "Win32_Graphics_Direct2D")]
5192     pub unsafe fn EnableHeatMap(&self, color: *const super::Direct2D::D2D1_COLOR_F) -> ::windows::runtime::Result<()> {
5193         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), ::std::mem::transmute(color)).ok()
5194     }
5195     pub unsafe fn DisableHeatMap(&self) -> ::windows::runtime::Result<()> {
5196         (::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self)).ok()
5197     }
5198     pub unsafe fn EnableRedrawRegions(&self) -> ::windows::runtime::Result<()> {
5199         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self)).ok()
5200     }
5201     pub unsafe fn DisableRedrawRegions(&self) -> ::windows::runtime::Result<()> {
5202         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self)).ok()
5203     }
5204 }
5205 unsafe impl ::windows::runtime::Interface for IDCompositionVisualDebug {
5206     type Vtable = IDCompositionVisualDebug_abi;
5207     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4275222536, 24244, 17312, [174, 163, 53, 246, 82, 128, 249, 27]);
5208 }
5209 impl ::std::convert::From<IDCompositionVisualDebug> for ::windows::runtime::IUnknown {
5210     fn from(value: IDCompositionVisualDebug) -> Self {
5211         unsafe { ::std::mem::transmute(value) }
5212     }
5213 }
5214 impl ::std::convert::From<&IDCompositionVisualDebug> for ::windows::runtime::IUnknown {
5215     fn from(value: &IDCompositionVisualDebug) -> Self {
5216         ::std::convert::From::from(::std::clone::Clone::clone(value))
5217     }
5218 }
5219 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDCompositionVisualDebug {
5220     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5221         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
5222     }
5223 }
5224 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDCompositionVisualDebug {
5225     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5226         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
5227     }
5228 }
5229 impl ::std::convert::From<IDCompositionVisualDebug> for IDCompositionVisual2 {
5230     fn from(value: IDCompositionVisualDebug) -> Self {
5231         unsafe { ::std::mem::transmute(value) }
5232     }
5233 }
5234 impl ::std::convert::From<&IDCompositionVisualDebug> for IDCompositionVisual2 {
5235     fn from(value: &IDCompositionVisualDebug) -> Self {
5236         ::std::convert::From::from(::std::clone::Clone::clone(value))
5237     }
5238 }
5239 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionVisual2> for IDCompositionVisualDebug {
5240     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionVisual2> {
5241         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionVisual2>::into(self))
5242     }
5243 }
5244 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionVisual2> for &IDCompositionVisualDebug {
5245     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionVisual2> {
5246         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionVisual2>::into(::std::clone::Clone::clone(self)))
5247     }
5248 }
5249 impl ::std::convert::From<IDCompositionVisualDebug> for IDCompositionVisual {
5250     fn from(value: IDCompositionVisualDebug) -> Self {
5251         unsafe { ::std::mem::transmute(value) }
5252     }
5253 }
5254 impl ::std::convert::From<&IDCompositionVisualDebug> for IDCompositionVisual {
5255     fn from(value: &IDCompositionVisualDebug) -> Self {
5256         ::std::convert::From::from(::std::clone::Clone::clone(value))
5257     }
5258 }
5259 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionVisual> for IDCompositionVisualDebug {
5260     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionVisual> {
5261         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionVisual>::into(self))
5262     }
5263 }
5264 impl<'a> ::windows::runtime::IntoParam<'a, IDCompositionVisual> for &IDCompositionVisualDebug {
5265     fn into_param(self) -> ::windows::runtime::Param<'a, IDCompositionVisual> {
5266         ::windows::runtime::Param::Owned(::std::convert::Into::<IDCompositionVisual>::into(::std::clone::Clone::clone(self)))
5267     }
5268 }
5269 #[repr(C)]
5270 #[doc(hidden)]
5271 pub struct IDCompositionVisualDebug_abi(
5272     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5273     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5274     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5275     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5276     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, offsetx: f32) -> ::windows::runtime::HRESULT,
5277     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, animation: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5278     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, offsety: f32) -> ::windows::runtime::HRESULT,
5279     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, transform: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5280     #[cfg(feature = "Foundation_Numerics")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, matrix: *const super::super::super::Foundation::Numerics::Matrix3x2) -> ::windows::runtime::HRESULT,
5281     #[cfg(not(feature = "Foundation_Numerics"))] usize,
5282     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, visual: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5283     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, effect: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5284     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, interpolationmode: DCOMPOSITION_BITMAP_INTERPOLATION_MODE) -> ::windows::runtime::HRESULT,
5285     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, bordermode: DCOMPOSITION_BORDER_MODE) -> ::windows::runtime::HRESULT,
5286     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clip: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5287     #[cfg(feature = "Win32_Graphics_Direct2D")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, rect: *const super::Direct2D::D2D_RECT_F) -> ::windows::runtime::HRESULT,
5288     #[cfg(not(feature = "Win32_Graphics_Direct2D"))] usize,
5289     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, content: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5290     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, visual: ::windows::runtime::RawPtr, insertabove: super::super::Foundation::BOOL, referencevisual: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5291     #[cfg(not(feature = "Win32_Foundation"))] usize,
5292     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, visual: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5293     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5294     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, compositemode: DCOMPOSITION_COMPOSITE_MODE) -> ::windows::runtime::HRESULT,
5295     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, mode: DCOMPOSITION_OPACITY_MODE) -> ::windows::runtime::HRESULT,
5296     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, visibility: DCOMPOSITION_BACKFACE_VISIBILITY) -> ::windows::runtime::HRESULT,
5297     #[cfg(feature = "Win32_Graphics_Direct2D")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, color: *const super::Direct2D::D2D1_COLOR_F) -> ::windows::runtime::HRESULT,
5298     #[cfg(not(feature = "Win32_Graphics_Direct2D"))] usize,
5299     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5300     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5301     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5302 );
5303