1 #![allow(unused_variables, non_upper_case_globals, non_snake_case, unused_unsafe, non_camel_case_types, dead_code, clippy::all)]
2 #[inline]
CreateDXGIFactory<T: ::windows::runtime::Interface>() -> ::windows::runtime::Result<T>3 pub unsafe fn CreateDXGIFactory<T: ::windows::runtime::Interface>() -> ::windows::runtime::Result<T> {
4     #[cfg(windows)]
5     {
6         #[link(name = "windows")]
7         extern "system" {
8             fn CreateDXGIFactory(riid: *const ::windows::runtime::GUID, ppfactory: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT;
9         }
10         let mut result__ = ::std::option::Option::None;
11         CreateDXGIFactory(&<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
12     }
13     #[cfg(not(windows))]
14     unimplemented!("Unsupported target OS");
15 }
16 #[inline]
CreateDXGIFactory1<T: ::windows::runtime::Interface>() -> ::windows::runtime::Result<T>17 pub unsafe fn CreateDXGIFactory1<T: ::windows::runtime::Interface>() -> ::windows::runtime::Result<T> {
18     #[cfg(windows)]
19     {
20         #[link(name = "windows")]
21         extern "system" {
22             fn CreateDXGIFactory1(riid: *const ::windows::runtime::GUID, ppfactory: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT;
23         }
24         let mut result__ = ::std::option::Option::None;
25         CreateDXGIFactory1(&<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
26     }
27     #[cfg(not(windows))]
28     unimplemented!("Unsupported target OS");
29 }
30 #[inline]
CreateDXGIFactory2<T: ::windows::runtime::Interface>(flags: u32) -> ::windows::runtime::Result<T>31 pub unsafe fn CreateDXGIFactory2<T: ::windows::runtime::Interface>(flags: u32) -> ::windows::runtime::Result<T> {
32     #[cfg(windows)]
33     {
34         #[link(name = "windows")]
35         extern "system" {
36             fn CreateDXGIFactory2(flags: u32, riid: *const ::windows::runtime::GUID, ppfactory: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT;
37         }
38         let mut result__ = ::std::option::Option::None;
39         CreateDXGIFactory2(::std::mem::transmute(flags), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
40     }
41     #[cfg(not(windows))]
42     unimplemented!("Unsupported target OS");
43 }
44 #[inline]
DXGIDeclareAdapterRemovalSupport() -> ::windows::runtime::Result<()>45 pub unsafe fn DXGIDeclareAdapterRemovalSupport() -> ::windows::runtime::Result<()> {
46     #[cfg(windows)]
47     {
48         #[link(name = "windows")]
49         extern "system" {
50             fn DXGIDeclareAdapterRemovalSupport() -> ::windows::runtime::HRESULT;
51         }
52         DXGIDeclareAdapterRemovalSupport().ok()
53     }
54     #[cfg(not(windows))]
55     unimplemented!("Unsupported target OS");
56 }
57 #[inline]
DXGIGetDebugInterface1<T: ::windows::runtime::Interface>(flags: u32) -> ::windows::runtime::Result<T>58 pub unsafe fn DXGIGetDebugInterface1<T: ::windows::runtime::Interface>(flags: u32) -> ::windows::runtime::Result<T> {
59     #[cfg(windows)]
60     {
61         #[link(name = "windows")]
62         extern "system" {
63             fn DXGIGetDebugInterface1(flags: u32, riid: *const ::windows::runtime::GUID, pdebug: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT;
64         }
65         let mut result__ = ::std::option::Option::None;
66         DXGIGetDebugInterface1(::std::mem::transmute(flags), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
67     }
68     #[cfg(not(windows))]
69     unimplemented!("Unsupported target OS");
70 }
71 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
72 #[repr(C)]
73 #[cfg(feature = "Win32_Foundation")]
74 pub struct DXGI_ADAPTER_DESC {
75     pub Description: [u16; 128],
76     pub VendorId: u32,
77     pub DeviceId: u32,
78     pub SubSysId: u32,
79     pub Revision: u32,
80     pub DedicatedVideoMemory: usize,
81     pub DedicatedSystemMemory: usize,
82     pub SharedSystemMemory: usize,
83     pub AdapterLuid: super::super::Foundation::LUID,
84 }
85 #[cfg(feature = "Win32_Foundation")]
86 impl DXGI_ADAPTER_DESC {}
87 #[cfg(feature = "Win32_Foundation")]
88 impl ::std::default::Default for DXGI_ADAPTER_DESC {
default() -> Self89     fn default() -> Self {
90         unsafe { ::std::mem::zeroed() }
91     }
92 }
93 #[cfg(feature = "Win32_Foundation")]
94 impl ::std::fmt::Debug for DXGI_ADAPTER_DESC {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result95     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
96         fmt.debug_struct("DXGI_ADAPTER_DESC")
97             .field("Description", &self.Description)
98             .field("VendorId", &self.VendorId)
99             .field("DeviceId", &self.DeviceId)
100             .field("SubSysId", &self.SubSysId)
101             .field("Revision", &self.Revision)
102             .field("DedicatedVideoMemory", &self.DedicatedVideoMemory)
103             .field("DedicatedSystemMemory", &self.DedicatedSystemMemory)
104             .field("SharedSystemMemory", &self.SharedSystemMemory)
105             .field("AdapterLuid", &self.AdapterLuid)
106             .finish()
107     }
108 }
109 #[cfg(feature = "Win32_Foundation")]
110 impl ::std::cmp::PartialEq for DXGI_ADAPTER_DESC {
eq(&self, other: &Self) -> bool111     fn eq(&self, other: &Self) -> bool {
112         self.Description == other.Description && self.VendorId == other.VendorId && self.DeviceId == other.DeviceId && self.SubSysId == other.SubSysId && self.Revision == other.Revision && self.DedicatedVideoMemory == other.DedicatedVideoMemory && self.DedicatedSystemMemory == other.DedicatedSystemMemory && self.SharedSystemMemory == other.SharedSystemMemory && self.AdapterLuid == other.AdapterLuid
113     }
114 }
115 #[cfg(feature = "Win32_Foundation")]
116 impl ::std::cmp::Eq for DXGI_ADAPTER_DESC {}
117 #[cfg(feature = "Win32_Foundation")]
118 unsafe impl ::windows::runtime::Abi for DXGI_ADAPTER_DESC {
119     type Abi = Self;
120     type DefaultType = Self;
121 }
122 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
123 #[repr(C)]
124 #[cfg(feature = "Win32_Foundation")]
125 pub struct DXGI_ADAPTER_DESC1 {
126     pub Description: [u16; 128],
127     pub VendorId: u32,
128     pub DeviceId: u32,
129     pub SubSysId: u32,
130     pub Revision: u32,
131     pub DedicatedVideoMemory: usize,
132     pub DedicatedSystemMemory: usize,
133     pub SharedSystemMemory: usize,
134     pub AdapterLuid: super::super::Foundation::LUID,
135     pub Flags: u32,
136 }
137 #[cfg(feature = "Win32_Foundation")]
138 impl DXGI_ADAPTER_DESC1 {}
139 #[cfg(feature = "Win32_Foundation")]
140 impl ::std::default::Default for DXGI_ADAPTER_DESC1 {
default() -> Self141     fn default() -> Self {
142         unsafe { ::std::mem::zeroed() }
143     }
144 }
145 #[cfg(feature = "Win32_Foundation")]
146 impl ::std::fmt::Debug for DXGI_ADAPTER_DESC1 {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result147     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
148         fmt.debug_struct("DXGI_ADAPTER_DESC1")
149             .field("Description", &self.Description)
150             .field("VendorId", &self.VendorId)
151             .field("DeviceId", &self.DeviceId)
152             .field("SubSysId", &self.SubSysId)
153             .field("Revision", &self.Revision)
154             .field("DedicatedVideoMemory", &self.DedicatedVideoMemory)
155             .field("DedicatedSystemMemory", &self.DedicatedSystemMemory)
156             .field("SharedSystemMemory", &self.SharedSystemMemory)
157             .field("AdapterLuid", &self.AdapterLuid)
158             .field("Flags", &self.Flags)
159             .finish()
160     }
161 }
162 #[cfg(feature = "Win32_Foundation")]
163 impl ::std::cmp::PartialEq for DXGI_ADAPTER_DESC1 {
eq(&self, other: &Self) -> bool164     fn eq(&self, other: &Self) -> bool {
165         self.Description == other.Description && self.VendorId == other.VendorId && self.DeviceId == other.DeviceId && self.SubSysId == other.SubSysId && self.Revision == other.Revision && self.DedicatedVideoMemory == other.DedicatedVideoMemory && self.DedicatedSystemMemory == other.DedicatedSystemMemory && self.SharedSystemMemory == other.SharedSystemMemory && self.AdapterLuid == other.AdapterLuid && self.Flags == other.Flags
166     }
167 }
168 #[cfg(feature = "Win32_Foundation")]
169 impl ::std::cmp::Eq for DXGI_ADAPTER_DESC1 {}
170 #[cfg(feature = "Win32_Foundation")]
171 unsafe impl ::windows::runtime::Abi for DXGI_ADAPTER_DESC1 {
172     type Abi = Self;
173     type DefaultType = Self;
174 }
175 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
176 #[repr(C)]
177 #[cfg(feature = "Win32_Foundation")]
178 pub struct DXGI_ADAPTER_DESC2 {
179     pub Description: [u16; 128],
180     pub VendorId: u32,
181     pub DeviceId: u32,
182     pub SubSysId: u32,
183     pub Revision: u32,
184     pub DedicatedVideoMemory: usize,
185     pub DedicatedSystemMemory: usize,
186     pub SharedSystemMemory: usize,
187     pub AdapterLuid: super::super::Foundation::LUID,
188     pub Flags: u32,
189     pub GraphicsPreemptionGranularity: DXGI_GRAPHICS_PREEMPTION_GRANULARITY,
190     pub ComputePreemptionGranularity: DXGI_COMPUTE_PREEMPTION_GRANULARITY,
191 }
192 #[cfg(feature = "Win32_Foundation")]
193 impl DXGI_ADAPTER_DESC2 {}
194 #[cfg(feature = "Win32_Foundation")]
195 impl ::std::default::Default for DXGI_ADAPTER_DESC2 {
default() -> Self196     fn default() -> Self {
197         unsafe { ::std::mem::zeroed() }
198     }
199 }
200 #[cfg(feature = "Win32_Foundation")]
201 impl ::std::fmt::Debug for DXGI_ADAPTER_DESC2 {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result202     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
203         fmt.debug_struct("DXGI_ADAPTER_DESC2")
204             .field("Description", &self.Description)
205             .field("VendorId", &self.VendorId)
206             .field("DeviceId", &self.DeviceId)
207             .field("SubSysId", &self.SubSysId)
208             .field("Revision", &self.Revision)
209             .field("DedicatedVideoMemory", &self.DedicatedVideoMemory)
210             .field("DedicatedSystemMemory", &self.DedicatedSystemMemory)
211             .field("SharedSystemMemory", &self.SharedSystemMemory)
212             .field("AdapterLuid", &self.AdapterLuid)
213             .field("Flags", &self.Flags)
214             .field("GraphicsPreemptionGranularity", &self.GraphicsPreemptionGranularity)
215             .field("ComputePreemptionGranularity", &self.ComputePreemptionGranularity)
216             .finish()
217     }
218 }
219 #[cfg(feature = "Win32_Foundation")]
220 impl ::std::cmp::PartialEq for DXGI_ADAPTER_DESC2 {
eq(&self, other: &Self) -> bool221     fn eq(&self, other: &Self) -> bool {
222         self.Description == other.Description
223             && self.VendorId == other.VendorId
224             && self.DeviceId == other.DeviceId
225             && self.SubSysId == other.SubSysId
226             && self.Revision == other.Revision
227             && self.DedicatedVideoMemory == other.DedicatedVideoMemory
228             && self.DedicatedSystemMemory == other.DedicatedSystemMemory
229             && self.SharedSystemMemory == other.SharedSystemMemory
230             && self.AdapterLuid == other.AdapterLuid
231             && self.Flags == other.Flags
232             && self.GraphicsPreemptionGranularity == other.GraphicsPreemptionGranularity
233             && self.ComputePreemptionGranularity == other.ComputePreemptionGranularity
234     }
235 }
236 #[cfg(feature = "Win32_Foundation")]
237 impl ::std::cmp::Eq for DXGI_ADAPTER_DESC2 {}
238 #[cfg(feature = "Win32_Foundation")]
239 unsafe impl ::windows::runtime::Abi for DXGI_ADAPTER_DESC2 {
240     type Abi = Self;
241     type DefaultType = Self;
242 }
243 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
244 #[repr(C)]
245 #[cfg(feature = "Win32_Foundation")]
246 pub struct DXGI_ADAPTER_DESC3 {
247     pub Description: [u16; 128],
248     pub VendorId: u32,
249     pub DeviceId: u32,
250     pub SubSysId: u32,
251     pub Revision: u32,
252     pub DedicatedVideoMemory: usize,
253     pub DedicatedSystemMemory: usize,
254     pub SharedSystemMemory: usize,
255     pub AdapterLuid: super::super::Foundation::LUID,
256     pub Flags: DXGI_ADAPTER_FLAG3,
257     pub GraphicsPreemptionGranularity: DXGI_GRAPHICS_PREEMPTION_GRANULARITY,
258     pub ComputePreemptionGranularity: DXGI_COMPUTE_PREEMPTION_GRANULARITY,
259 }
260 #[cfg(feature = "Win32_Foundation")]
261 impl DXGI_ADAPTER_DESC3 {}
262 #[cfg(feature = "Win32_Foundation")]
263 impl ::std::default::Default for DXGI_ADAPTER_DESC3 {
default() -> Self264     fn default() -> Self {
265         unsafe { ::std::mem::zeroed() }
266     }
267 }
268 #[cfg(feature = "Win32_Foundation")]
269 impl ::std::fmt::Debug for DXGI_ADAPTER_DESC3 {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result270     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
271         fmt.debug_struct("DXGI_ADAPTER_DESC3")
272             .field("Description", &self.Description)
273             .field("VendorId", &self.VendorId)
274             .field("DeviceId", &self.DeviceId)
275             .field("SubSysId", &self.SubSysId)
276             .field("Revision", &self.Revision)
277             .field("DedicatedVideoMemory", &self.DedicatedVideoMemory)
278             .field("DedicatedSystemMemory", &self.DedicatedSystemMemory)
279             .field("SharedSystemMemory", &self.SharedSystemMemory)
280             .field("AdapterLuid", &self.AdapterLuid)
281             .field("Flags", &self.Flags)
282             .field("GraphicsPreemptionGranularity", &self.GraphicsPreemptionGranularity)
283             .field("ComputePreemptionGranularity", &self.ComputePreemptionGranularity)
284             .finish()
285     }
286 }
287 #[cfg(feature = "Win32_Foundation")]
288 impl ::std::cmp::PartialEq for DXGI_ADAPTER_DESC3 {
eq(&self, other: &Self) -> bool289     fn eq(&self, other: &Self) -> bool {
290         self.Description == other.Description
291             && self.VendorId == other.VendorId
292             && self.DeviceId == other.DeviceId
293             && self.SubSysId == other.SubSysId
294             && self.Revision == other.Revision
295             && self.DedicatedVideoMemory == other.DedicatedVideoMemory
296             && self.DedicatedSystemMemory == other.DedicatedSystemMemory
297             && self.SharedSystemMemory == other.SharedSystemMemory
298             && self.AdapterLuid == other.AdapterLuid
299             && self.Flags == other.Flags
300             && self.GraphicsPreemptionGranularity == other.GraphicsPreemptionGranularity
301             && self.ComputePreemptionGranularity == other.ComputePreemptionGranularity
302     }
303 }
304 #[cfg(feature = "Win32_Foundation")]
305 impl ::std::cmp::Eq for DXGI_ADAPTER_DESC3 {}
306 #[cfg(feature = "Win32_Foundation")]
307 unsafe impl ::windows::runtime::Abi for DXGI_ADAPTER_DESC3 {
308     type Abi = Self;
309     type DefaultType = Self;
310 }
311 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
312 #[repr(transparent)]
313 pub struct DXGI_ADAPTER_FLAG(pub u32);
314 pub const DXGI_ADAPTER_FLAG_NONE: DXGI_ADAPTER_FLAG = DXGI_ADAPTER_FLAG(0u32);
315 pub const DXGI_ADAPTER_FLAG_REMOTE: DXGI_ADAPTER_FLAG = DXGI_ADAPTER_FLAG(1u32);
316 pub const DXGI_ADAPTER_FLAG_SOFTWARE: DXGI_ADAPTER_FLAG = DXGI_ADAPTER_FLAG(2u32);
317 impl ::std::convert::From<u32> for DXGI_ADAPTER_FLAG {
from(value: u32) -> Self318     fn from(value: u32) -> Self {
319         Self(value)
320     }
321 }
322 unsafe impl ::windows::runtime::Abi for DXGI_ADAPTER_FLAG {
323     type Abi = Self;
324     type DefaultType = Self;
325 }
326 impl ::std::ops::BitOr for DXGI_ADAPTER_FLAG {
327     type Output = Self;
bitor(self, rhs: Self) -> Self328     fn bitor(self, rhs: Self) -> Self {
329         Self(self.0 | rhs.0)
330     }
331 }
332 impl ::std::ops::BitAnd for DXGI_ADAPTER_FLAG {
333     type Output = Self;
bitand(self, rhs: Self) -> Self334     fn bitand(self, rhs: Self) -> Self {
335         Self(self.0 & rhs.0)
336     }
337 }
338 impl ::std::ops::BitOrAssign for DXGI_ADAPTER_FLAG {
bitor_assign(&mut self, rhs: Self)339     fn bitor_assign(&mut self, rhs: Self) {
340         self.0.bitor_assign(rhs.0)
341     }
342 }
343 impl ::std::ops::BitAndAssign for DXGI_ADAPTER_FLAG {
bitand_assign(&mut self, rhs: Self)344     fn bitand_assign(&mut self, rhs: Self) {
345         self.0.bitand_assign(rhs.0)
346     }
347 }
348 impl ::std::ops::Not for DXGI_ADAPTER_FLAG {
349     type Output = Self;
not(self) -> Self350     fn not(self) -> Self {
351         Self(self.0.not())
352     }
353 }
354 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
355 #[repr(transparent)]
356 pub struct DXGI_ADAPTER_FLAG3(pub u32);
357 pub const DXGI_ADAPTER_FLAG3_NONE: DXGI_ADAPTER_FLAG3 = DXGI_ADAPTER_FLAG3(0u32);
358 pub const DXGI_ADAPTER_FLAG3_REMOTE: DXGI_ADAPTER_FLAG3 = DXGI_ADAPTER_FLAG3(1u32);
359 pub const DXGI_ADAPTER_FLAG3_SOFTWARE: DXGI_ADAPTER_FLAG3 = DXGI_ADAPTER_FLAG3(2u32);
360 pub const DXGI_ADAPTER_FLAG3_ACG_COMPATIBLE: DXGI_ADAPTER_FLAG3 = DXGI_ADAPTER_FLAG3(4u32);
361 pub const DXGI_ADAPTER_FLAG3_SUPPORT_MONITORED_FENCES: DXGI_ADAPTER_FLAG3 = DXGI_ADAPTER_FLAG3(8u32);
362 pub const DXGI_ADAPTER_FLAG3_SUPPORT_NON_MONITORED_FENCES: DXGI_ADAPTER_FLAG3 = DXGI_ADAPTER_FLAG3(16u32);
363 pub const DXGI_ADAPTER_FLAG3_KEYED_MUTEX_CONFORMANCE: DXGI_ADAPTER_FLAG3 = DXGI_ADAPTER_FLAG3(32u32);
364 pub const DXGI_ADAPTER_FLAG3_FORCE_DWORD: DXGI_ADAPTER_FLAG3 = DXGI_ADAPTER_FLAG3(4294967295u32);
365 impl ::std::convert::From<u32> for DXGI_ADAPTER_FLAG3 {
from(value: u32) -> Self366     fn from(value: u32) -> Self {
367         Self(value)
368     }
369 }
370 unsafe impl ::windows::runtime::Abi for DXGI_ADAPTER_FLAG3 {
371     type Abi = Self;
372     type DefaultType = Self;
373 }
374 impl ::std::ops::BitOr for DXGI_ADAPTER_FLAG3 {
375     type Output = Self;
bitor(self, rhs: Self) -> Self376     fn bitor(self, rhs: Self) -> Self {
377         Self(self.0 | rhs.0)
378     }
379 }
380 impl ::std::ops::BitAnd for DXGI_ADAPTER_FLAG3 {
381     type Output = Self;
bitand(self, rhs: Self) -> Self382     fn bitand(self, rhs: Self) -> Self {
383         Self(self.0 & rhs.0)
384     }
385 }
386 impl ::std::ops::BitOrAssign for DXGI_ADAPTER_FLAG3 {
bitor_assign(&mut self, rhs: Self)387     fn bitor_assign(&mut self, rhs: Self) {
388         self.0.bitor_assign(rhs.0)
389     }
390 }
391 impl ::std::ops::BitAndAssign for DXGI_ADAPTER_FLAG3 {
bitand_assign(&mut self, rhs: Self)392     fn bitand_assign(&mut self, rhs: Self) {
393         self.0.bitand_assign(rhs.0)
394     }
395 }
396 impl ::std::ops::Not for DXGI_ADAPTER_FLAG3 {
397     type Output = Self;
not(self) -> Self398     fn not(self) -> Self {
399         Self(self.0.not())
400     }
401 }
402 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
403 #[repr(transparent)]
404 pub struct DXGI_ALPHA_MODE(pub u32);
405 pub const DXGI_ALPHA_MODE_UNSPECIFIED: DXGI_ALPHA_MODE = DXGI_ALPHA_MODE(0u32);
406 pub const DXGI_ALPHA_MODE_PREMULTIPLIED: DXGI_ALPHA_MODE = DXGI_ALPHA_MODE(1u32);
407 pub const DXGI_ALPHA_MODE_STRAIGHT: DXGI_ALPHA_MODE = DXGI_ALPHA_MODE(2u32);
408 pub const DXGI_ALPHA_MODE_IGNORE: DXGI_ALPHA_MODE = DXGI_ALPHA_MODE(3u32);
409 pub const DXGI_ALPHA_MODE_FORCE_DWORD: DXGI_ALPHA_MODE = DXGI_ALPHA_MODE(4294967295u32);
410 impl ::std::convert::From<u32> for DXGI_ALPHA_MODE {
from(value: u32) -> Self411     fn from(value: u32) -> Self {
412         Self(value)
413     }
414 }
415 unsafe impl ::windows::runtime::Abi for DXGI_ALPHA_MODE {
416     type Abi = Self;
417     type DefaultType = Self;
418 }
419 impl ::std::ops::BitOr for DXGI_ALPHA_MODE {
420     type Output = Self;
bitor(self, rhs: Self) -> Self421     fn bitor(self, rhs: Self) -> Self {
422         Self(self.0 | rhs.0)
423     }
424 }
425 impl ::std::ops::BitAnd for DXGI_ALPHA_MODE {
426     type Output = Self;
bitand(self, rhs: Self) -> Self427     fn bitand(self, rhs: Self) -> Self {
428         Self(self.0 & rhs.0)
429     }
430 }
431 impl ::std::ops::BitOrAssign for DXGI_ALPHA_MODE {
bitor_assign(&mut self, rhs: Self)432     fn bitor_assign(&mut self, rhs: Self) {
433         self.0.bitor_assign(rhs.0)
434     }
435 }
436 impl ::std::ops::BitAndAssign for DXGI_ALPHA_MODE {
bitand_assign(&mut self, rhs: Self)437     fn bitand_assign(&mut self, rhs: Self) {
438         self.0.bitand_assign(rhs.0)
439     }
440 }
441 impl ::std::ops::Not for DXGI_ALPHA_MODE {
442     type Output = Self;
not(self) -> Self443     fn not(self) -> Self {
444         Self(self.0.not())
445     }
446 }
447 pub const DXGI_CENTER_MULTISAMPLE_QUALITY_PATTERN: u32 = 4294967294u32;
448 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
449 #[repr(transparent)]
450 pub struct DXGI_COLOR_SPACE_TYPE(pub i32);
451 pub const DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709: DXGI_COLOR_SPACE_TYPE = DXGI_COLOR_SPACE_TYPE(0i32);
452 pub const DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709: DXGI_COLOR_SPACE_TYPE = DXGI_COLOR_SPACE_TYPE(1i32);
453 pub const DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P709: DXGI_COLOR_SPACE_TYPE = DXGI_COLOR_SPACE_TYPE(2i32);
454 pub const DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P2020: DXGI_COLOR_SPACE_TYPE = DXGI_COLOR_SPACE_TYPE(3i32);
455 pub const DXGI_COLOR_SPACE_RESERVED: DXGI_COLOR_SPACE_TYPE = DXGI_COLOR_SPACE_TYPE(4i32);
456 pub const DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601: DXGI_COLOR_SPACE_TYPE = DXGI_COLOR_SPACE_TYPE(5i32);
457 pub const DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601: DXGI_COLOR_SPACE_TYPE = DXGI_COLOR_SPACE_TYPE(6i32);
458 pub const DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P601: DXGI_COLOR_SPACE_TYPE = DXGI_COLOR_SPACE_TYPE(7i32);
459 pub const DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709: DXGI_COLOR_SPACE_TYPE = DXGI_COLOR_SPACE_TYPE(8i32);
460 pub const DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P709: DXGI_COLOR_SPACE_TYPE = DXGI_COLOR_SPACE_TYPE(9i32);
461 pub const DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020: DXGI_COLOR_SPACE_TYPE = DXGI_COLOR_SPACE_TYPE(10i32);
462 pub const DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020: DXGI_COLOR_SPACE_TYPE = DXGI_COLOR_SPACE_TYPE(11i32);
463 pub const DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020: DXGI_COLOR_SPACE_TYPE = DXGI_COLOR_SPACE_TYPE(12i32);
464 pub const DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_LEFT_P2020: DXGI_COLOR_SPACE_TYPE = DXGI_COLOR_SPACE_TYPE(13i32);
465 pub const DXGI_COLOR_SPACE_RGB_STUDIO_G2084_NONE_P2020: DXGI_COLOR_SPACE_TYPE = DXGI_COLOR_SPACE_TYPE(14i32);
466 pub const DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_TOPLEFT_P2020: DXGI_COLOR_SPACE_TYPE = DXGI_COLOR_SPACE_TYPE(15i32);
467 pub const DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_TOPLEFT_P2020: DXGI_COLOR_SPACE_TYPE = DXGI_COLOR_SPACE_TYPE(16i32);
468 pub const DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P2020: DXGI_COLOR_SPACE_TYPE = DXGI_COLOR_SPACE_TYPE(17i32);
469 pub const DXGI_COLOR_SPACE_YCBCR_STUDIO_GHLG_TOPLEFT_P2020: DXGI_COLOR_SPACE_TYPE = DXGI_COLOR_SPACE_TYPE(18i32);
470 pub const DXGI_COLOR_SPACE_YCBCR_FULL_GHLG_TOPLEFT_P2020: DXGI_COLOR_SPACE_TYPE = DXGI_COLOR_SPACE_TYPE(19i32);
471 pub const DXGI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P709: DXGI_COLOR_SPACE_TYPE = DXGI_COLOR_SPACE_TYPE(20i32);
472 pub const DXGI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P2020: DXGI_COLOR_SPACE_TYPE = DXGI_COLOR_SPACE_TYPE(21i32);
473 pub const DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P709: DXGI_COLOR_SPACE_TYPE = DXGI_COLOR_SPACE_TYPE(22i32);
474 pub const DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P2020: DXGI_COLOR_SPACE_TYPE = DXGI_COLOR_SPACE_TYPE(23i32);
475 pub const DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_TOPLEFT_P2020: DXGI_COLOR_SPACE_TYPE = DXGI_COLOR_SPACE_TYPE(24i32);
476 pub const DXGI_COLOR_SPACE_CUSTOM: DXGI_COLOR_SPACE_TYPE = DXGI_COLOR_SPACE_TYPE(-1i32);
477 impl ::std::convert::From<i32> for DXGI_COLOR_SPACE_TYPE {
from(value: i32) -> Self478     fn from(value: i32) -> Self {
479         Self(value)
480     }
481 }
482 unsafe impl ::windows::runtime::Abi for DXGI_COLOR_SPACE_TYPE {
483     type Abi = Self;
484     type DefaultType = Self;
485 }
486 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
487 #[repr(transparent)]
488 pub struct DXGI_COMPUTE_PREEMPTION_GRANULARITY(pub i32);
489 pub const DXGI_COMPUTE_PREEMPTION_DMA_BUFFER_BOUNDARY: DXGI_COMPUTE_PREEMPTION_GRANULARITY = DXGI_COMPUTE_PREEMPTION_GRANULARITY(0i32);
490 pub const DXGI_COMPUTE_PREEMPTION_DISPATCH_BOUNDARY: DXGI_COMPUTE_PREEMPTION_GRANULARITY = DXGI_COMPUTE_PREEMPTION_GRANULARITY(1i32);
491 pub const DXGI_COMPUTE_PREEMPTION_THREAD_GROUP_BOUNDARY: DXGI_COMPUTE_PREEMPTION_GRANULARITY = DXGI_COMPUTE_PREEMPTION_GRANULARITY(2i32);
492 pub const DXGI_COMPUTE_PREEMPTION_THREAD_BOUNDARY: DXGI_COMPUTE_PREEMPTION_GRANULARITY = DXGI_COMPUTE_PREEMPTION_GRANULARITY(3i32);
493 pub const DXGI_COMPUTE_PREEMPTION_INSTRUCTION_BOUNDARY: DXGI_COMPUTE_PREEMPTION_GRANULARITY = DXGI_COMPUTE_PREEMPTION_GRANULARITY(4i32);
494 impl ::std::convert::From<i32> for DXGI_COMPUTE_PREEMPTION_GRANULARITY {
from(value: i32) -> Self495     fn from(value: i32) -> Self {
496         Self(value)
497     }
498 }
499 unsafe impl ::windows::runtime::Abi for DXGI_COMPUTE_PREEMPTION_GRANULARITY {
500     type Abi = Self;
501     type DefaultType = Self;
502 }
503 pub const DXGI_CPU_ACCESS_DYNAMIC: u32 = 1u32;
504 pub const DXGI_CPU_ACCESS_FIELD: u32 = 15u32;
505 pub const DXGI_CPU_ACCESS_NONE: u32 = 0u32;
506 pub const DXGI_CPU_ACCESS_READ_WRITE: u32 = 2u32;
507 pub const DXGI_CPU_ACCESS_SCRATCH: u32 = 3u32;
508 pub const DXGI_CREATE_FACTORY_DEBUG: u32 = 1u32;
509 pub const DXGI_DEBUG_ALL: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3834307203, 55936, 18699, [135, 230, 67, 233, 169, 207, 218, 8]);
510 pub const DXGI_DEBUG_APP: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(114126337, 16921, 20157, [135, 9, 39, 237, 35, 54, 12, 98]);
511 pub const DXGI_DEBUG_BINARY_VERSION: u32 = 1u32;
512 pub const DXGI_DEBUG_DX: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(902682620, 5042, 16925, [165, 215, 126, 68, 81, 40, 125, 100]);
513 pub const DXGI_DEBUG_DXGI: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(634247844, 45510, 18401, [172, 62, 152, 135, 91, 90, 46, 42]);
514 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
515 #[repr(transparent)]
516 pub struct DXGI_DEBUG_RLO_FLAGS(pub u32);
517 pub const DXGI_DEBUG_RLO_SUMMARY: DXGI_DEBUG_RLO_FLAGS = DXGI_DEBUG_RLO_FLAGS(1u32);
518 pub const DXGI_DEBUG_RLO_DETAIL: DXGI_DEBUG_RLO_FLAGS = DXGI_DEBUG_RLO_FLAGS(2u32);
519 pub const DXGI_DEBUG_RLO_IGNORE_INTERNAL: DXGI_DEBUG_RLO_FLAGS = DXGI_DEBUG_RLO_FLAGS(4u32);
520 pub const DXGI_DEBUG_RLO_ALL: DXGI_DEBUG_RLO_FLAGS = DXGI_DEBUG_RLO_FLAGS(7u32);
521 impl ::std::convert::From<u32> for DXGI_DEBUG_RLO_FLAGS {
from(value: u32) -> Self522     fn from(value: u32) -> Self {
523         Self(value)
524     }
525 }
526 unsafe impl ::windows::runtime::Abi for DXGI_DEBUG_RLO_FLAGS {
527     type Abi = Self;
528     type DefaultType = Self;
529 }
530 impl ::std::ops::BitOr for DXGI_DEBUG_RLO_FLAGS {
531     type Output = Self;
bitor(self, rhs: Self) -> Self532     fn bitor(self, rhs: Self) -> Self {
533         Self(self.0 | rhs.0)
534     }
535 }
536 impl ::std::ops::BitAnd for DXGI_DEBUG_RLO_FLAGS {
537     type Output = Self;
bitand(self, rhs: Self) -> Self538     fn bitand(self, rhs: Self) -> Self {
539         Self(self.0 & rhs.0)
540     }
541 }
542 impl ::std::ops::BitOrAssign for DXGI_DEBUG_RLO_FLAGS {
bitor_assign(&mut self, rhs: Self)543     fn bitor_assign(&mut self, rhs: Self) {
544         self.0.bitor_assign(rhs.0)
545     }
546 }
547 impl ::std::ops::BitAndAssign for DXGI_DEBUG_RLO_FLAGS {
bitand_assign(&mut self, rhs: Self)548     fn bitand_assign(&mut self, rhs: Self) {
549         self.0.bitand_assign(rhs.0)
550     }
551 }
552 impl ::std::ops::Not for DXGI_DEBUG_RLO_FLAGS {
553     type Output = Self;
not(self) -> Self554     fn not(self) -> Self {
555         Self(self.0.not())
556     }
557 }
558 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
559 #[repr(C)]
560 pub struct DXGI_DECODE_SWAP_CHAIN_DESC {
561     pub Flags: u32,
562 }
563 impl DXGI_DECODE_SWAP_CHAIN_DESC {}
564 impl ::std::default::Default for DXGI_DECODE_SWAP_CHAIN_DESC {
default() -> Self565     fn default() -> Self {
566         unsafe { ::std::mem::zeroed() }
567     }
568 }
569 impl ::std::fmt::Debug for DXGI_DECODE_SWAP_CHAIN_DESC {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result570     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
571         fmt.debug_struct("DXGI_DECODE_SWAP_CHAIN_DESC").field("Flags", &self.Flags).finish()
572     }
573 }
574 impl ::std::cmp::PartialEq for DXGI_DECODE_SWAP_CHAIN_DESC {
eq(&self, other: &Self) -> bool575     fn eq(&self, other: &Self) -> bool {
576         self.Flags == other.Flags
577     }
578 }
579 impl ::std::cmp::Eq for DXGI_DECODE_SWAP_CHAIN_DESC {}
580 unsafe impl ::windows::runtime::Abi for DXGI_DECODE_SWAP_CHAIN_DESC {
581     type Abi = Self;
582     type DefaultType = Self;
583 }
584 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
585 #[repr(C)]
586 pub struct DXGI_DISPLAY_COLOR_SPACE {
587     pub PrimaryCoordinates: [f32; 16],
588     pub WhitePoints: [f32; 32],
589 }
590 impl DXGI_DISPLAY_COLOR_SPACE {}
591 impl ::std::default::Default for DXGI_DISPLAY_COLOR_SPACE {
default() -> Self592     fn default() -> Self {
593         unsafe { ::std::mem::zeroed() }
594     }
595 }
596 impl ::std::fmt::Debug for DXGI_DISPLAY_COLOR_SPACE {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result597     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
598         fmt.debug_struct("DXGI_DISPLAY_COLOR_SPACE").field("PrimaryCoordinates", &self.PrimaryCoordinates).field("WhitePoints", &self.WhitePoints).finish()
599     }
600 }
601 impl ::std::cmp::PartialEq for DXGI_DISPLAY_COLOR_SPACE {
eq(&self, other: &Self) -> bool602     fn eq(&self, other: &Self) -> bool {
603         self.PrimaryCoordinates == other.PrimaryCoordinates && self.WhitePoints == other.WhitePoints
604     }
605 }
606 impl ::std::cmp::Eq for DXGI_DISPLAY_COLOR_SPACE {}
607 unsafe impl ::windows::runtime::Abi for DXGI_DISPLAY_COLOR_SPACE {
608     type Abi = Self;
609     type DefaultType = Self;
610 }
611 pub const DXGI_ENUM_MODES_DISABLED_STEREO: u32 = 8u32;
612 pub const DXGI_ENUM_MODES_INTERLACED: u32 = 1u32;
613 pub const DXGI_ENUM_MODES_SCALING: u32 = 2u32;
614 pub const DXGI_ENUM_MODES_STEREO: u32 = 4u32;
615 pub const DXGI_ERROR_ACCESS_DENIED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2005270485i32 as _);
616 pub const DXGI_ERROR_ACCESS_LOST: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2005270490i32 as _);
617 pub const DXGI_ERROR_ALREADY_EXISTS: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2005270474i32 as _);
618 pub const DXGI_ERROR_CACHE_CORRUPT: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2005270477i32 as _);
619 pub const DXGI_ERROR_CACHE_FULL: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2005270476i32 as _);
620 pub const DXGI_ERROR_CACHE_HASH_COLLISION: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2005270475i32 as _);
621 pub const DXGI_ERROR_CANNOT_PROTECT_CONTENT: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2005270486i32 as _);
622 pub const DXGI_ERROR_DEVICE_HUNG: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2005270522i32 as _);
623 pub const DXGI_ERROR_DEVICE_REMOVED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2005270523i32 as _);
624 pub const DXGI_ERROR_DEVICE_RESET: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2005270521i32 as _);
625 pub const DXGI_ERROR_DRIVER_INTERNAL_ERROR: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2005270496i32 as _);
626 pub const DXGI_ERROR_DYNAMIC_CODE_POLICY_VIOLATION: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2005270479i32 as _);
627 pub const DXGI_ERROR_FRAME_STATISTICS_DISJOINT: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2005270517i32 as _);
628 pub const DXGI_ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2005270516i32 as _);
629 pub const DXGI_ERROR_HW_PROTECTION_OUTOFMEMORY: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2005270480i32 as _);
630 pub const DXGI_ERROR_INVALID_CALL: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2005270527i32 as _);
631 pub const DXGI_ERROR_MODE_CHANGE_IN_PROGRESS: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2005270491i32 as _);
632 pub const DXGI_ERROR_MORE_DATA: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2005270525i32 as _);
633 pub const DXGI_ERROR_NAME_ALREADY_EXISTS: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2005270484i32 as _);
634 pub const DXGI_ERROR_NONEXCLUSIVE: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2005270495i32 as _);
635 pub const DXGI_ERROR_NON_COMPOSITED_UI: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2005270478i32 as _);
636 pub const DXGI_ERROR_NOT_CURRENT: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2005270482i32 as _);
637 pub const DXGI_ERROR_NOT_CURRENTLY_AVAILABLE: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2005270494i32 as _);
638 pub const DXGI_ERROR_NOT_FOUND: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2005270526i32 as _);
639 pub const DXGI_ERROR_REMOTE_CLIENT_DISCONNECTED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2005270493i32 as _);
640 pub const DXGI_ERROR_REMOTE_OUTOFMEMORY: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2005270492i32 as _);
641 pub const DXGI_ERROR_RESTRICT_TO_OUTPUT_STALE: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2005270487i32 as _);
642 pub const DXGI_ERROR_SDK_COMPONENT_MISSING: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2005270483i32 as _);
643 pub const DXGI_ERROR_SESSION_DISCONNECTED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2005270488i32 as _);
644 pub const DXGI_ERROR_UNSUPPORTED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2005270524i32 as _);
645 pub const DXGI_ERROR_WAIT_TIMEOUT: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2005270489i32 as _);
646 pub const DXGI_ERROR_WAS_STILL_DRAWING: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2005270518i32 as _);
647 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
648 #[repr(transparent)]
649 pub struct DXGI_FEATURE(pub i32);
650 pub const DXGI_FEATURE_PRESENT_ALLOW_TEARING: DXGI_FEATURE = DXGI_FEATURE(0i32);
651 impl ::std::convert::From<i32> for DXGI_FEATURE {
from(value: i32) -> Self652     fn from(value: i32) -> Self {
653         Self(value)
654     }
655 }
656 unsafe impl ::windows::runtime::Abi for DXGI_FEATURE {
657     type Abi = Self;
658     type DefaultType = Self;
659 }
660 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
661 #[repr(transparent)]
662 pub struct DXGI_FORMAT(pub u32);
663 pub const DXGI_FORMAT_UNKNOWN: DXGI_FORMAT = DXGI_FORMAT(0u32);
664 pub const DXGI_FORMAT_R32G32B32A32_TYPELESS: DXGI_FORMAT = DXGI_FORMAT(1u32);
665 pub const DXGI_FORMAT_R32G32B32A32_FLOAT: DXGI_FORMAT = DXGI_FORMAT(2u32);
666 pub const DXGI_FORMAT_R32G32B32A32_UINT: DXGI_FORMAT = DXGI_FORMAT(3u32);
667 pub const DXGI_FORMAT_R32G32B32A32_SINT: DXGI_FORMAT = DXGI_FORMAT(4u32);
668 pub const DXGI_FORMAT_R32G32B32_TYPELESS: DXGI_FORMAT = DXGI_FORMAT(5u32);
669 pub const DXGI_FORMAT_R32G32B32_FLOAT: DXGI_FORMAT = DXGI_FORMAT(6u32);
670 pub const DXGI_FORMAT_R32G32B32_UINT: DXGI_FORMAT = DXGI_FORMAT(7u32);
671 pub const DXGI_FORMAT_R32G32B32_SINT: DXGI_FORMAT = DXGI_FORMAT(8u32);
672 pub const DXGI_FORMAT_R16G16B16A16_TYPELESS: DXGI_FORMAT = DXGI_FORMAT(9u32);
673 pub const DXGI_FORMAT_R16G16B16A16_FLOAT: DXGI_FORMAT = DXGI_FORMAT(10u32);
674 pub const DXGI_FORMAT_R16G16B16A16_UNORM: DXGI_FORMAT = DXGI_FORMAT(11u32);
675 pub const DXGI_FORMAT_R16G16B16A16_UINT: DXGI_FORMAT = DXGI_FORMAT(12u32);
676 pub const DXGI_FORMAT_R16G16B16A16_SNORM: DXGI_FORMAT = DXGI_FORMAT(13u32);
677 pub const DXGI_FORMAT_R16G16B16A16_SINT: DXGI_FORMAT = DXGI_FORMAT(14u32);
678 pub const DXGI_FORMAT_R32G32_TYPELESS: DXGI_FORMAT = DXGI_FORMAT(15u32);
679 pub const DXGI_FORMAT_R32G32_FLOAT: DXGI_FORMAT = DXGI_FORMAT(16u32);
680 pub const DXGI_FORMAT_R32G32_UINT: DXGI_FORMAT = DXGI_FORMAT(17u32);
681 pub const DXGI_FORMAT_R32G32_SINT: DXGI_FORMAT = DXGI_FORMAT(18u32);
682 pub const DXGI_FORMAT_R32G8X24_TYPELESS: DXGI_FORMAT = DXGI_FORMAT(19u32);
683 pub const DXGI_FORMAT_D32_FLOAT_S8X24_UINT: DXGI_FORMAT = DXGI_FORMAT(20u32);
684 pub const DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS: DXGI_FORMAT = DXGI_FORMAT(21u32);
685 pub const DXGI_FORMAT_X32_TYPELESS_G8X24_UINT: DXGI_FORMAT = DXGI_FORMAT(22u32);
686 pub const DXGI_FORMAT_R10G10B10A2_TYPELESS: DXGI_FORMAT = DXGI_FORMAT(23u32);
687 pub const DXGI_FORMAT_R10G10B10A2_UNORM: DXGI_FORMAT = DXGI_FORMAT(24u32);
688 pub const DXGI_FORMAT_R10G10B10A2_UINT: DXGI_FORMAT = DXGI_FORMAT(25u32);
689 pub const DXGI_FORMAT_R11G11B10_FLOAT: DXGI_FORMAT = DXGI_FORMAT(26u32);
690 pub const DXGI_FORMAT_R8G8B8A8_TYPELESS: DXGI_FORMAT = DXGI_FORMAT(27u32);
691 pub const DXGI_FORMAT_R8G8B8A8_UNORM: DXGI_FORMAT = DXGI_FORMAT(28u32);
692 pub const DXGI_FORMAT_R8G8B8A8_UNORM_SRGB: DXGI_FORMAT = DXGI_FORMAT(29u32);
693 pub const DXGI_FORMAT_R8G8B8A8_UINT: DXGI_FORMAT = DXGI_FORMAT(30u32);
694 pub const DXGI_FORMAT_R8G8B8A8_SNORM: DXGI_FORMAT = DXGI_FORMAT(31u32);
695 pub const DXGI_FORMAT_R8G8B8A8_SINT: DXGI_FORMAT = DXGI_FORMAT(32u32);
696 pub const DXGI_FORMAT_R16G16_TYPELESS: DXGI_FORMAT = DXGI_FORMAT(33u32);
697 pub const DXGI_FORMAT_R16G16_FLOAT: DXGI_FORMAT = DXGI_FORMAT(34u32);
698 pub const DXGI_FORMAT_R16G16_UNORM: DXGI_FORMAT = DXGI_FORMAT(35u32);
699 pub const DXGI_FORMAT_R16G16_UINT: DXGI_FORMAT = DXGI_FORMAT(36u32);
700 pub const DXGI_FORMAT_R16G16_SNORM: DXGI_FORMAT = DXGI_FORMAT(37u32);
701 pub const DXGI_FORMAT_R16G16_SINT: DXGI_FORMAT = DXGI_FORMAT(38u32);
702 pub const DXGI_FORMAT_R32_TYPELESS: DXGI_FORMAT = DXGI_FORMAT(39u32);
703 pub const DXGI_FORMAT_D32_FLOAT: DXGI_FORMAT = DXGI_FORMAT(40u32);
704 pub const DXGI_FORMAT_R32_FLOAT: DXGI_FORMAT = DXGI_FORMAT(41u32);
705 pub const DXGI_FORMAT_R32_UINT: DXGI_FORMAT = DXGI_FORMAT(42u32);
706 pub const DXGI_FORMAT_R32_SINT: DXGI_FORMAT = DXGI_FORMAT(43u32);
707 pub const DXGI_FORMAT_R24G8_TYPELESS: DXGI_FORMAT = DXGI_FORMAT(44u32);
708 pub const DXGI_FORMAT_D24_UNORM_S8_UINT: DXGI_FORMAT = DXGI_FORMAT(45u32);
709 pub const DXGI_FORMAT_R24_UNORM_X8_TYPELESS: DXGI_FORMAT = DXGI_FORMAT(46u32);
710 pub const DXGI_FORMAT_X24_TYPELESS_G8_UINT: DXGI_FORMAT = DXGI_FORMAT(47u32);
711 pub const DXGI_FORMAT_R8G8_TYPELESS: DXGI_FORMAT = DXGI_FORMAT(48u32);
712 pub const DXGI_FORMAT_R8G8_UNORM: DXGI_FORMAT = DXGI_FORMAT(49u32);
713 pub const DXGI_FORMAT_R8G8_UINT: DXGI_FORMAT = DXGI_FORMAT(50u32);
714 pub const DXGI_FORMAT_R8G8_SNORM: DXGI_FORMAT = DXGI_FORMAT(51u32);
715 pub const DXGI_FORMAT_R8G8_SINT: DXGI_FORMAT = DXGI_FORMAT(52u32);
716 pub const DXGI_FORMAT_R16_TYPELESS: DXGI_FORMAT = DXGI_FORMAT(53u32);
717 pub const DXGI_FORMAT_R16_FLOAT: DXGI_FORMAT = DXGI_FORMAT(54u32);
718 pub const DXGI_FORMAT_D16_UNORM: DXGI_FORMAT = DXGI_FORMAT(55u32);
719 pub const DXGI_FORMAT_R16_UNORM: DXGI_FORMAT = DXGI_FORMAT(56u32);
720 pub const DXGI_FORMAT_R16_UINT: DXGI_FORMAT = DXGI_FORMAT(57u32);
721 pub const DXGI_FORMAT_R16_SNORM: DXGI_FORMAT = DXGI_FORMAT(58u32);
722 pub const DXGI_FORMAT_R16_SINT: DXGI_FORMAT = DXGI_FORMAT(59u32);
723 pub const DXGI_FORMAT_R8_TYPELESS: DXGI_FORMAT = DXGI_FORMAT(60u32);
724 pub const DXGI_FORMAT_R8_UNORM: DXGI_FORMAT = DXGI_FORMAT(61u32);
725 pub const DXGI_FORMAT_R8_UINT: DXGI_FORMAT = DXGI_FORMAT(62u32);
726 pub const DXGI_FORMAT_R8_SNORM: DXGI_FORMAT = DXGI_FORMAT(63u32);
727 pub const DXGI_FORMAT_R8_SINT: DXGI_FORMAT = DXGI_FORMAT(64u32);
728 pub const DXGI_FORMAT_A8_UNORM: DXGI_FORMAT = DXGI_FORMAT(65u32);
729 pub const DXGI_FORMAT_R1_UNORM: DXGI_FORMAT = DXGI_FORMAT(66u32);
730 pub const DXGI_FORMAT_R9G9B9E5_SHAREDEXP: DXGI_FORMAT = DXGI_FORMAT(67u32);
731 pub const DXGI_FORMAT_R8G8_B8G8_UNORM: DXGI_FORMAT = DXGI_FORMAT(68u32);
732 pub const DXGI_FORMAT_G8R8_G8B8_UNORM: DXGI_FORMAT = DXGI_FORMAT(69u32);
733 pub const DXGI_FORMAT_BC1_TYPELESS: DXGI_FORMAT = DXGI_FORMAT(70u32);
734 pub const DXGI_FORMAT_BC1_UNORM: DXGI_FORMAT = DXGI_FORMAT(71u32);
735 pub const DXGI_FORMAT_BC1_UNORM_SRGB: DXGI_FORMAT = DXGI_FORMAT(72u32);
736 pub const DXGI_FORMAT_BC2_TYPELESS: DXGI_FORMAT = DXGI_FORMAT(73u32);
737 pub const DXGI_FORMAT_BC2_UNORM: DXGI_FORMAT = DXGI_FORMAT(74u32);
738 pub const DXGI_FORMAT_BC2_UNORM_SRGB: DXGI_FORMAT = DXGI_FORMAT(75u32);
739 pub const DXGI_FORMAT_BC3_TYPELESS: DXGI_FORMAT = DXGI_FORMAT(76u32);
740 pub const DXGI_FORMAT_BC3_UNORM: DXGI_FORMAT = DXGI_FORMAT(77u32);
741 pub const DXGI_FORMAT_BC3_UNORM_SRGB: DXGI_FORMAT = DXGI_FORMAT(78u32);
742 pub const DXGI_FORMAT_BC4_TYPELESS: DXGI_FORMAT = DXGI_FORMAT(79u32);
743 pub const DXGI_FORMAT_BC4_UNORM: DXGI_FORMAT = DXGI_FORMAT(80u32);
744 pub const DXGI_FORMAT_BC4_SNORM: DXGI_FORMAT = DXGI_FORMAT(81u32);
745 pub const DXGI_FORMAT_BC5_TYPELESS: DXGI_FORMAT = DXGI_FORMAT(82u32);
746 pub const DXGI_FORMAT_BC5_UNORM: DXGI_FORMAT = DXGI_FORMAT(83u32);
747 pub const DXGI_FORMAT_BC5_SNORM: DXGI_FORMAT = DXGI_FORMAT(84u32);
748 pub const DXGI_FORMAT_B5G6R5_UNORM: DXGI_FORMAT = DXGI_FORMAT(85u32);
749 pub const DXGI_FORMAT_B5G5R5A1_UNORM: DXGI_FORMAT = DXGI_FORMAT(86u32);
750 pub const DXGI_FORMAT_B8G8R8A8_UNORM: DXGI_FORMAT = DXGI_FORMAT(87u32);
751 pub const DXGI_FORMAT_B8G8R8X8_UNORM: DXGI_FORMAT = DXGI_FORMAT(88u32);
752 pub const DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM: DXGI_FORMAT = DXGI_FORMAT(89u32);
753 pub const DXGI_FORMAT_B8G8R8A8_TYPELESS: DXGI_FORMAT = DXGI_FORMAT(90u32);
754 pub const DXGI_FORMAT_B8G8R8A8_UNORM_SRGB: DXGI_FORMAT = DXGI_FORMAT(91u32);
755 pub const DXGI_FORMAT_B8G8R8X8_TYPELESS: DXGI_FORMAT = DXGI_FORMAT(92u32);
756 pub const DXGI_FORMAT_B8G8R8X8_UNORM_SRGB: DXGI_FORMAT = DXGI_FORMAT(93u32);
757 pub const DXGI_FORMAT_BC6H_TYPELESS: DXGI_FORMAT = DXGI_FORMAT(94u32);
758 pub const DXGI_FORMAT_BC6H_UF16: DXGI_FORMAT = DXGI_FORMAT(95u32);
759 pub const DXGI_FORMAT_BC6H_SF16: DXGI_FORMAT = DXGI_FORMAT(96u32);
760 pub const DXGI_FORMAT_BC7_TYPELESS: DXGI_FORMAT = DXGI_FORMAT(97u32);
761 pub const DXGI_FORMAT_BC7_UNORM: DXGI_FORMAT = DXGI_FORMAT(98u32);
762 pub const DXGI_FORMAT_BC7_UNORM_SRGB: DXGI_FORMAT = DXGI_FORMAT(99u32);
763 pub const DXGI_FORMAT_AYUV: DXGI_FORMAT = DXGI_FORMAT(100u32);
764 pub const DXGI_FORMAT_Y410: DXGI_FORMAT = DXGI_FORMAT(101u32);
765 pub const DXGI_FORMAT_Y416: DXGI_FORMAT = DXGI_FORMAT(102u32);
766 pub const DXGI_FORMAT_NV12: DXGI_FORMAT = DXGI_FORMAT(103u32);
767 pub const DXGI_FORMAT_P010: DXGI_FORMAT = DXGI_FORMAT(104u32);
768 pub const DXGI_FORMAT_P016: DXGI_FORMAT = DXGI_FORMAT(105u32);
769 pub const DXGI_FORMAT_420_OPAQUE: DXGI_FORMAT = DXGI_FORMAT(106u32);
770 pub const DXGI_FORMAT_YUY2: DXGI_FORMAT = DXGI_FORMAT(107u32);
771 pub const DXGI_FORMAT_Y210: DXGI_FORMAT = DXGI_FORMAT(108u32);
772 pub const DXGI_FORMAT_Y216: DXGI_FORMAT = DXGI_FORMAT(109u32);
773 pub const DXGI_FORMAT_NV11: DXGI_FORMAT = DXGI_FORMAT(110u32);
774 pub const DXGI_FORMAT_AI44: DXGI_FORMAT = DXGI_FORMAT(111u32);
775 pub const DXGI_FORMAT_IA44: DXGI_FORMAT = DXGI_FORMAT(112u32);
776 pub const DXGI_FORMAT_P8: DXGI_FORMAT = DXGI_FORMAT(113u32);
777 pub const DXGI_FORMAT_A8P8: DXGI_FORMAT = DXGI_FORMAT(114u32);
778 pub const DXGI_FORMAT_B4G4R4A4_UNORM: DXGI_FORMAT = DXGI_FORMAT(115u32);
779 pub const DXGI_FORMAT_P208: DXGI_FORMAT = DXGI_FORMAT(130u32);
780 pub const DXGI_FORMAT_V208: DXGI_FORMAT = DXGI_FORMAT(131u32);
781 pub const DXGI_FORMAT_V408: DXGI_FORMAT = DXGI_FORMAT(132u32);
782 pub const DXGI_FORMAT_SAMPLER_FEEDBACK_MIN_MIP_OPAQUE: DXGI_FORMAT = DXGI_FORMAT(189u32);
783 pub const DXGI_FORMAT_SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUE: DXGI_FORMAT = DXGI_FORMAT(190u32);
784 pub const DXGI_FORMAT_FORCE_UINT: DXGI_FORMAT = DXGI_FORMAT(4294967295u32);
785 impl ::std::convert::From<u32> for DXGI_FORMAT {
from(value: u32) -> Self786     fn from(value: u32) -> Self {
787         Self(value)
788     }
789 }
790 unsafe impl ::windows::runtime::Abi for DXGI_FORMAT {
791     type Abi = Self;
792     type DefaultType = Self;
793 }
794 impl ::std::ops::BitOr for DXGI_FORMAT {
795     type Output = Self;
bitor(self, rhs: Self) -> Self796     fn bitor(self, rhs: Self) -> Self {
797         Self(self.0 | rhs.0)
798     }
799 }
800 impl ::std::ops::BitAnd for DXGI_FORMAT {
801     type Output = Self;
bitand(self, rhs: Self) -> Self802     fn bitand(self, rhs: Self) -> Self {
803         Self(self.0 & rhs.0)
804     }
805 }
806 impl ::std::ops::BitOrAssign for DXGI_FORMAT {
bitor_assign(&mut self, rhs: Self)807     fn bitor_assign(&mut self, rhs: Self) {
808         self.0.bitor_assign(rhs.0)
809     }
810 }
811 impl ::std::ops::BitAndAssign for DXGI_FORMAT {
bitand_assign(&mut self, rhs: Self)812     fn bitand_assign(&mut self, rhs: Self) {
813         self.0.bitand_assign(rhs.0)
814     }
815 }
816 impl ::std::ops::Not for DXGI_FORMAT {
817     type Output = Self;
not(self) -> Self818     fn not(self) -> Self {
819         Self(self.0.not())
820     }
821 }
822 pub const DXGI_FORMAT_DEFINED: u32 = 1u32;
823 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
824 #[repr(transparent)]
825 pub struct DXGI_FRAME_PRESENTATION_MODE(pub i32);
826 pub const DXGI_FRAME_PRESENTATION_MODE_COMPOSED: DXGI_FRAME_PRESENTATION_MODE = DXGI_FRAME_PRESENTATION_MODE(0i32);
827 pub const DXGI_FRAME_PRESENTATION_MODE_OVERLAY: DXGI_FRAME_PRESENTATION_MODE = DXGI_FRAME_PRESENTATION_MODE(1i32);
828 pub const DXGI_FRAME_PRESENTATION_MODE_NONE: DXGI_FRAME_PRESENTATION_MODE = DXGI_FRAME_PRESENTATION_MODE(2i32);
829 pub const DXGI_FRAME_PRESENTATION_MODE_COMPOSITION_FAILURE: DXGI_FRAME_PRESENTATION_MODE = DXGI_FRAME_PRESENTATION_MODE(3i32);
830 impl ::std::convert::From<i32> for DXGI_FRAME_PRESENTATION_MODE {
from(value: i32) -> Self831     fn from(value: i32) -> Self {
832         Self(value)
833     }
834 }
835 unsafe impl ::windows::runtime::Abi for DXGI_FRAME_PRESENTATION_MODE {
836     type Abi = Self;
837     type DefaultType = Self;
838 }
839 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
840 #[repr(C)]
841 pub struct DXGI_FRAME_STATISTICS {
842     pub PresentCount: u32,
843     pub PresentRefreshCount: u32,
844     pub SyncRefreshCount: u32,
845     pub SyncQPCTime: i64,
846     pub SyncGPUTime: i64,
847 }
848 impl DXGI_FRAME_STATISTICS {}
849 impl ::std::default::Default for DXGI_FRAME_STATISTICS {
default() -> Self850     fn default() -> Self {
851         unsafe { ::std::mem::zeroed() }
852     }
853 }
854 impl ::std::fmt::Debug for DXGI_FRAME_STATISTICS {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result855     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
856         fmt.debug_struct("DXGI_FRAME_STATISTICS").field("PresentCount", &self.PresentCount).field("PresentRefreshCount", &self.PresentRefreshCount).field("SyncRefreshCount", &self.SyncRefreshCount).field("SyncQPCTime", &self.SyncQPCTime).field("SyncGPUTime", &self.SyncGPUTime).finish()
857     }
858 }
859 impl ::std::cmp::PartialEq for DXGI_FRAME_STATISTICS {
eq(&self, other: &Self) -> bool860     fn eq(&self, other: &Self) -> bool {
861         self.PresentCount == other.PresentCount && self.PresentRefreshCount == other.PresentRefreshCount && self.SyncRefreshCount == other.SyncRefreshCount && self.SyncQPCTime == other.SyncQPCTime && self.SyncGPUTime == other.SyncGPUTime
862     }
863 }
864 impl ::std::cmp::Eq for DXGI_FRAME_STATISTICS {}
865 unsafe impl ::windows::runtime::Abi for DXGI_FRAME_STATISTICS {
866     type Abi = Self;
867     type DefaultType = Self;
868 }
869 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
870 #[repr(C)]
871 pub struct DXGI_FRAME_STATISTICS_MEDIA {
872     pub PresentCount: u32,
873     pub PresentRefreshCount: u32,
874     pub SyncRefreshCount: u32,
875     pub SyncQPCTime: i64,
876     pub SyncGPUTime: i64,
877     pub CompositionMode: DXGI_FRAME_PRESENTATION_MODE,
878     pub ApprovedPresentDuration: u32,
879 }
880 impl DXGI_FRAME_STATISTICS_MEDIA {}
881 impl ::std::default::Default for DXGI_FRAME_STATISTICS_MEDIA {
default() -> Self882     fn default() -> Self {
883         unsafe { ::std::mem::zeroed() }
884     }
885 }
886 impl ::std::fmt::Debug for DXGI_FRAME_STATISTICS_MEDIA {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result887     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
888         fmt.debug_struct("DXGI_FRAME_STATISTICS_MEDIA")
889             .field("PresentCount", &self.PresentCount)
890             .field("PresentRefreshCount", &self.PresentRefreshCount)
891             .field("SyncRefreshCount", &self.SyncRefreshCount)
892             .field("SyncQPCTime", &self.SyncQPCTime)
893             .field("SyncGPUTime", &self.SyncGPUTime)
894             .field("CompositionMode", &self.CompositionMode)
895             .field("ApprovedPresentDuration", &self.ApprovedPresentDuration)
896             .finish()
897     }
898 }
899 impl ::std::cmp::PartialEq for DXGI_FRAME_STATISTICS_MEDIA {
eq(&self, other: &Self) -> bool900     fn eq(&self, other: &Self) -> bool {
901         self.PresentCount == other.PresentCount && self.PresentRefreshCount == other.PresentRefreshCount && self.SyncRefreshCount == other.SyncRefreshCount && self.SyncQPCTime == other.SyncQPCTime && self.SyncGPUTime == other.SyncGPUTime && self.CompositionMode == other.CompositionMode && self.ApprovedPresentDuration == other.ApprovedPresentDuration
902     }
903 }
904 impl ::std::cmp::Eq for DXGI_FRAME_STATISTICS_MEDIA {}
905 unsafe impl ::windows::runtime::Abi for DXGI_FRAME_STATISTICS_MEDIA {
906     type Abi = Self;
907     type DefaultType = Self;
908 }
909 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
910 #[repr(C)]
911 pub struct DXGI_GAMMA_CONTROL {
912     pub Scale: DXGI_RGB,
913     pub Offset: DXGI_RGB,
914     pub GammaCurve: [DXGI_RGB; 1025],
915 }
916 impl DXGI_GAMMA_CONTROL {}
917 impl ::std::default::Default for DXGI_GAMMA_CONTROL {
default() -> Self918     fn default() -> Self {
919         unsafe { ::std::mem::zeroed() }
920     }
921 }
922 impl ::std::fmt::Debug for DXGI_GAMMA_CONTROL {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result923     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
924         fmt.debug_struct("DXGI_GAMMA_CONTROL").field("Scale", &self.Scale).field("Offset", &self.Offset).field("GammaCurve", &self.GammaCurve).finish()
925     }
926 }
927 impl ::std::cmp::PartialEq for DXGI_GAMMA_CONTROL {
eq(&self, other: &Self) -> bool928     fn eq(&self, other: &Self) -> bool {
929         self.Scale == other.Scale && self.Offset == other.Offset && self.GammaCurve == other.GammaCurve
930     }
931 }
932 impl ::std::cmp::Eq for DXGI_GAMMA_CONTROL {}
933 unsafe impl ::windows::runtime::Abi for DXGI_GAMMA_CONTROL {
934     type Abi = Self;
935     type DefaultType = Self;
936 }
937 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
938 #[repr(C)]
939 #[cfg(feature = "Win32_Foundation")]
940 pub struct DXGI_GAMMA_CONTROL_CAPABILITIES {
941     pub ScaleAndOffsetSupported: super::super::Foundation::BOOL,
942     pub MaxConvertedValue: f32,
943     pub MinConvertedValue: f32,
944     pub NumGammaControlPoints: u32,
945     pub ControlPointPositions: [f32; 1025],
946 }
947 #[cfg(feature = "Win32_Foundation")]
948 impl DXGI_GAMMA_CONTROL_CAPABILITIES {}
949 #[cfg(feature = "Win32_Foundation")]
950 impl ::std::default::Default for DXGI_GAMMA_CONTROL_CAPABILITIES {
default() -> Self951     fn default() -> Self {
952         unsafe { ::std::mem::zeroed() }
953     }
954 }
955 #[cfg(feature = "Win32_Foundation")]
956 impl ::std::fmt::Debug for DXGI_GAMMA_CONTROL_CAPABILITIES {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result957     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
958         fmt.debug_struct("DXGI_GAMMA_CONTROL_CAPABILITIES")
959             .field("ScaleAndOffsetSupported", &self.ScaleAndOffsetSupported)
960             .field("MaxConvertedValue", &self.MaxConvertedValue)
961             .field("MinConvertedValue", &self.MinConvertedValue)
962             .field("NumGammaControlPoints", &self.NumGammaControlPoints)
963             .field("ControlPointPositions", &self.ControlPointPositions)
964             .finish()
965     }
966 }
967 #[cfg(feature = "Win32_Foundation")]
968 impl ::std::cmp::PartialEq for DXGI_GAMMA_CONTROL_CAPABILITIES {
eq(&self, other: &Self) -> bool969     fn eq(&self, other: &Self) -> bool {
970         self.ScaleAndOffsetSupported == other.ScaleAndOffsetSupported && self.MaxConvertedValue == other.MaxConvertedValue && self.MinConvertedValue == other.MinConvertedValue && self.NumGammaControlPoints == other.NumGammaControlPoints && self.ControlPointPositions == other.ControlPointPositions
971     }
972 }
973 #[cfg(feature = "Win32_Foundation")]
974 impl ::std::cmp::Eq for DXGI_GAMMA_CONTROL_CAPABILITIES {}
975 #[cfg(feature = "Win32_Foundation")]
976 unsafe impl ::windows::runtime::Abi for DXGI_GAMMA_CONTROL_CAPABILITIES {
977     type Abi = Self;
978     type DefaultType = Self;
979 }
980 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
981 #[repr(transparent)]
982 pub struct DXGI_GPU_PREFERENCE(pub i32);
983 pub const DXGI_GPU_PREFERENCE_UNSPECIFIED: DXGI_GPU_PREFERENCE = DXGI_GPU_PREFERENCE(0i32);
984 pub const DXGI_GPU_PREFERENCE_MINIMUM_POWER: DXGI_GPU_PREFERENCE = DXGI_GPU_PREFERENCE(1i32);
985 pub const DXGI_GPU_PREFERENCE_HIGH_PERFORMANCE: DXGI_GPU_PREFERENCE = DXGI_GPU_PREFERENCE(2i32);
986 impl ::std::convert::From<i32> for DXGI_GPU_PREFERENCE {
from(value: i32) -> Self987     fn from(value: i32) -> Self {
988         Self(value)
989     }
990 }
991 unsafe impl ::windows::runtime::Abi for DXGI_GPU_PREFERENCE {
992     type Abi = Self;
993     type DefaultType = Self;
994 }
995 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
996 #[repr(transparent)]
997 pub struct DXGI_GRAPHICS_PREEMPTION_GRANULARITY(pub i32);
998 pub const DXGI_GRAPHICS_PREEMPTION_DMA_BUFFER_BOUNDARY: DXGI_GRAPHICS_PREEMPTION_GRANULARITY = DXGI_GRAPHICS_PREEMPTION_GRANULARITY(0i32);
999 pub const DXGI_GRAPHICS_PREEMPTION_PRIMITIVE_BOUNDARY: DXGI_GRAPHICS_PREEMPTION_GRANULARITY = DXGI_GRAPHICS_PREEMPTION_GRANULARITY(1i32);
1000 pub const DXGI_GRAPHICS_PREEMPTION_TRIANGLE_BOUNDARY: DXGI_GRAPHICS_PREEMPTION_GRANULARITY = DXGI_GRAPHICS_PREEMPTION_GRANULARITY(2i32);
1001 pub const DXGI_GRAPHICS_PREEMPTION_PIXEL_BOUNDARY: DXGI_GRAPHICS_PREEMPTION_GRANULARITY = DXGI_GRAPHICS_PREEMPTION_GRANULARITY(3i32);
1002 pub const DXGI_GRAPHICS_PREEMPTION_INSTRUCTION_BOUNDARY: DXGI_GRAPHICS_PREEMPTION_GRANULARITY = DXGI_GRAPHICS_PREEMPTION_GRANULARITY(4i32);
1003 impl ::std::convert::From<i32> for DXGI_GRAPHICS_PREEMPTION_GRANULARITY {
from(value: i32) -> Self1004     fn from(value: i32) -> Self {
1005         Self(value)
1006     }
1007 }
1008 unsafe impl ::windows::runtime::Abi for DXGI_GRAPHICS_PREEMPTION_GRANULARITY {
1009     type Abi = Self;
1010     type DefaultType = Self;
1011 }
1012 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1013 #[repr(transparent)]
1014 pub struct DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS(pub u32);
1015 pub const DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_FULLSCREEN: DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS = DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS(1u32);
1016 pub const DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_WINDOWED: DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS = DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS(2u32);
1017 pub const DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_CURSOR_STRETCHED: DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS = DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS(4u32);
1018 impl ::std::convert::From<u32> for DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS {
from(value: u32) -> Self1019     fn from(value: u32) -> Self {
1020         Self(value)
1021     }
1022 }
1023 unsafe impl ::windows::runtime::Abi for DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS {
1024     type Abi = Self;
1025     type DefaultType = Self;
1026 }
1027 impl ::std::ops::BitOr for DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS {
1028     type Output = Self;
bitor(self, rhs: Self) -> Self1029     fn bitor(self, rhs: Self) -> Self {
1030         Self(self.0 | rhs.0)
1031     }
1032 }
1033 impl ::std::ops::BitAnd for DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS {
1034     type Output = Self;
bitand(self, rhs: Self) -> Self1035     fn bitand(self, rhs: Self) -> Self {
1036         Self(self.0 & rhs.0)
1037     }
1038 }
1039 impl ::std::ops::BitOrAssign for DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS {
bitor_assign(&mut self, rhs: Self)1040     fn bitor_assign(&mut self, rhs: Self) {
1041         self.0.bitor_assign(rhs.0)
1042     }
1043 }
1044 impl ::std::ops::BitAndAssign for DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS {
bitand_assign(&mut self, rhs: Self)1045     fn bitand_assign(&mut self, rhs: Self) {
1046         self.0.bitand_assign(rhs.0)
1047     }
1048 }
1049 impl ::std::ops::Not for DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS {
1050     type Output = Self;
not(self) -> Self1051     fn not(self) -> Self {
1052         Self(self.0.not())
1053     }
1054 }
1055 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
1056 #[repr(C)]
1057 pub struct DXGI_HDR_METADATA_HDR10 {
1058     pub RedPrimary: [u16; 2],
1059     pub GreenPrimary: [u16; 2],
1060     pub BluePrimary: [u16; 2],
1061     pub WhitePoint: [u16; 2],
1062     pub MaxMasteringLuminance: u32,
1063     pub MinMasteringLuminance: u32,
1064     pub MaxContentLightLevel: u16,
1065     pub MaxFrameAverageLightLevel: u16,
1066 }
1067 impl DXGI_HDR_METADATA_HDR10 {}
1068 impl ::std::default::Default for DXGI_HDR_METADATA_HDR10 {
default() -> Self1069     fn default() -> Self {
1070         unsafe { ::std::mem::zeroed() }
1071     }
1072 }
1073 impl ::std::fmt::Debug for DXGI_HDR_METADATA_HDR10 {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1074     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1075         fmt.debug_struct("DXGI_HDR_METADATA_HDR10")
1076             .field("RedPrimary", &self.RedPrimary)
1077             .field("GreenPrimary", &self.GreenPrimary)
1078             .field("BluePrimary", &self.BluePrimary)
1079             .field("WhitePoint", &self.WhitePoint)
1080             .field("MaxMasteringLuminance", &self.MaxMasteringLuminance)
1081             .field("MinMasteringLuminance", &self.MinMasteringLuminance)
1082             .field("MaxContentLightLevel", &self.MaxContentLightLevel)
1083             .field("MaxFrameAverageLightLevel", &self.MaxFrameAverageLightLevel)
1084             .finish()
1085     }
1086 }
1087 impl ::std::cmp::PartialEq for DXGI_HDR_METADATA_HDR10 {
eq(&self, other: &Self) -> bool1088     fn eq(&self, other: &Self) -> bool {
1089         self.RedPrimary == other.RedPrimary && self.GreenPrimary == other.GreenPrimary && self.BluePrimary == other.BluePrimary && self.WhitePoint == other.WhitePoint && self.MaxMasteringLuminance == other.MaxMasteringLuminance && self.MinMasteringLuminance == other.MinMasteringLuminance && self.MaxContentLightLevel == other.MaxContentLightLevel && self.MaxFrameAverageLightLevel == other.MaxFrameAverageLightLevel
1090     }
1091 }
1092 impl ::std::cmp::Eq for DXGI_HDR_METADATA_HDR10 {}
1093 unsafe impl ::windows::runtime::Abi for DXGI_HDR_METADATA_HDR10 {
1094     type Abi = Self;
1095     type DefaultType = Self;
1096 }
1097 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
1098 #[repr(C)]
1099 pub struct DXGI_HDR_METADATA_HDR10PLUS {
1100     pub Data: [u8; 72],
1101 }
1102 impl DXGI_HDR_METADATA_HDR10PLUS {}
1103 impl ::std::default::Default for DXGI_HDR_METADATA_HDR10PLUS {
default() -> Self1104     fn default() -> Self {
1105         unsafe { ::std::mem::zeroed() }
1106     }
1107 }
1108 impl ::std::fmt::Debug for DXGI_HDR_METADATA_HDR10PLUS {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1109     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1110         fmt.debug_struct("DXGI_HDR_METADATA_HDR10PLUS").field("Data", &self.Data).finish()
1111     }
1112 }
1113 impl ::std::cmp::PartialEq for DXGI_HDR_METADATA_HDR10PLUS {
eq(&self, other: &Self) -> bool1114     fn eq(&self, other: &Self) -> bool {
1115         self.Data == other.Data
1116     }
1117 }
1118 impl ::std::cmp::Eq for DXGI_HDR_METADATA_HDR10PLUS {}
1119 unsafe impl ::windows::runtime::Abi for DXGI_HDR_METADATA_HDR10PLUS {
1120     type Abi = Self;
1121     type DefaultType = Self;
1122 }
1123 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1124 #[repr(transparent)]
1125 pub struct DXGI_HDR_METADATA_TYPE(pub i32);
1126 pub const DXGI_HDR_METADATA_TYPE_NONE: DXGI_HDR_METADATA_TYPE = DXGI_HDR_METADATA_TYPE(0i32);
1127 pub const DXGI_HDR_METADATA_TYPE_HDR10: DXGI_HDR_METADATA_TYPE = DXGI_HDR_METADATA_TYPE(1i32);
1128 pub const DXGI_HDR_METADATA_TYPE_HDR10PLUS: DXGI_HDR_METADATA_TYPE = DXGI_HDR_METADATA_TYPE(2i32);
1129 impl ::std::convert::From<i32> for DXGI_HDR_METADATA_TYPE {
from(value: i32) -> Self1130     fn from(value: i32) -> Self {
1131         Self(value)
1132     }
1133 }
1134 unsafe impl ::windows::runtime::Abi for DXGI_HDR_METADATA_TYPE {
1135     type Abi = Self;
1136     type DefaultType = Self;
1137 }
1138 pub const DXGI_INFO_QUEUE_DEFAULT_MESSAGE_COUNT_LIMIT: u32 = 1024u32;
1139 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
1140 #[repr(C)]
1141 pub struct DXGI_INFO_QUEUE_FILTER {
1142     pub AllowList: DXGI_INFO_QUEUE_FILTER_DESC,
1143     pub DenyList: DXGI_INFO_QUEUE_FILTER_DESC,
1144 }
1145 impl DXGI_INFO_QUEUE_FILTER {}
1146 impl ::std::default::Default for DXGI_INFO_QUEUE_FILTER {
default() -> Self1147     fn default() -> Self {
1148         unsafe { ::std::mem::zeroed() }
1149     }
1150 }
1151 impl ::std::fmt::Debug for DXGI_INFO_QUEUE_FILTER {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1152     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1153         fmt.debug_struct("DXGI_INFO_QUEUE_FILTER").field("AllowList", &self.AllowList).field("DenyList", &self.DenyList).finish()
1154     }
1155 }
1156 impl ::std::cmp::PartialEq for DXGI_INFO_QUEUE_FILTER {
eq(&self, other: &Self) -> bool1157     fn eq(&self, other: &Self) -> bool {
1158         self.AllowList == other.AllowList && self.DenyList == other.DenyList
1159     }
1160 }
1161 impl ::std::cmp::Eq for DXGI_INFO_QUEUE_FILTER {}
1162 unsafe impl ::windows::runtime::Abi for DXGI_INFO_QUEUE_FILTER {
1163     type Abi = Self;
1164     type DefaultType = Self;
1165 }
1166 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
1167 #[repr(C)]
1168 pub struct DXGI_INFO_QUEUE_FILTER_DESC {
1169     pub NumCategories: u32,
1170     pub pCategoryList: *mut DXGI_INFO_QUEUE_MESSAGE_CATEGORY,
1171     pub NumSeverities: u32,
1172     pub pSeverityList: *mut DXGI_INFO_QUEUE_MESSAGE_SEVERITY,
1173     pub NumIDs: u32,
1174     pub pIDList: *mut i32,
1175 }
1176 impl DXGI_INFO_QUEUE_FILTER_DESC {}
1177 impl ::std::default::Default for DXGI_INFO_QUEUE_FILTER_DESC {
default() -> Self1178     fn default() -> Self {
1179         unsafe { ::std::mem::zeroed() }
1180     }
1181 }
1182 impl ::std::fmt::Debug for DXGI_INFO_QUEUE_FILTER_DESC {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1183     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1184         fmt.debug_struct("DXGI_INFO_QUEUE_FILTER_DESC").field("NumCategories", &self.NumCategories).field("pCategoryList", &self.pCategoryList).field("NumSeverities", &self.NumSeverities).field("pSeverityList", &self.pSeverityList).field("NumIDs", &self.NumIDs).field("pIDList", &self.pIDList).finish()
1185     }
1186 }
1187 impl ::std::cmp::PartialEq for DXGI_INFO_QUEUE_FILTER_DESC {
eq(&self, other: &Self) -> bool1188     fn eq(&self, other: &Self) -> bool {
1189         self.NumCategories == other.NumCategories && self.pCategoryList == other.pCategoryList && self.NumSeverities == other.NumSeverities && self.pSeverityList == other.pSeverityList && self.NumIDs == other.NumIDs && self.pIDList == other.pIDList
1190     }
1191 }
1192 impl ::std::cmp::Eq for DXGI_INFO_QUEUE_FILTER_DESC {}
1193 unsafe impl ::windows::runtime::Abi for DXGI_INFO_QUEUE_FILTER_DESC {
1194     type Abi = Self;
1195     type DefaultType = Self;
1196 }
1197 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
1198 #[repr(C)]
1199 pub struct DXGI_INFO_QUEUE_MESSAGE {
1200     pub Producer: ::windows::runtime::GUID,
1201     pub Category: DXGI_INFO_QUEUE_MESSAGE_CATEGORY,
1202     pub Severity: DXGI_INFO_QUEUE_MESSAGE_SEVERITY,
1203     pub ID: i32,
1204     pub pDescription: *mut u8,
1205     pub DescriptionByteLength: usize,
1206 }
1207 impl DXGI_INFO_QUEUE_MESSAGE {}
1208 impl ::std::default::Default for DXGI_INFO_QUEUE_MESSAGE {
default() -> Self1209     fn default() -> Self {
1210         unsafe { ::std::mem::zeroed() }
1211     }
1212 }
1213 impl ::std::fmt::Debug for DXGI_INFO_QUEUE_MESSAGE {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1214     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1215         fmt.debug_struct("DXGI_INFO_QUEUE_MESSAGE").field("Producer", &self.Producer).field("Category", &self.Category).field("Severity", &self.Severity).field("ID", &self.ID).field("pDescription", &self.pDescription).field("DescriptionByteLength", &self.DescriptionByteLength).finish()
1216     }
1217 }
1218 impl ::std::cmp::PartialEq for DXGI_INFO_QUEUE_MESSAGE {
eq(&self, other: &Self) -> bool1219     fn eq(&self, other: &Self) -> bool {
1220         self.Producer == other.Producer && self.Category == other.Category && self.Severity == other.Severity && self.ID == other.ID && self.pDescription == other.pDescription && self.DescriptionByteLength == other.DescriptionByteLength
1221     }
1222 }
1223 impl ::std::cmp::Eq for DXGI_INFO_QUEUE_MESSAGE {}
1224 unsafe impl ::windows::runtime::Abi for DXGI_INFO_QUEUE_MESSAGE {
1225     type Abi = Self;
1226     type DefaultType = Self;
1227 }
1228 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1229 #[repr(transparent)]
1230 pub struct DXGI_INFO_QUEUE_MESSAGE_CATEGORY(pub i32);
1231 pub const DXGI_INFO_QUEUE_MESSAGE_CATEGORY_UNKNOWN: DXGI_INFO_QUEUE_MESSAGE_CATEGORY = DXGI_INFO_QUEUE_MESSAGE_CATEGORY(0i32);
1232 pub const DXGI_INFO_QUEUE_MESSAGE_CATEGORY_MISCELLANEOUS: DXGI_INFO_QUEUE_MESSAGE_CATEGORY = DXGI_INFO_QUEUE_MESSAGE_CATEGORY(1i32);
1233 pub const DXGI_INFO_QUEUE_MESSAGE_CATEGORY_INITIALIZATION: DXGI_INFO_QUEUE_MESSAGE_CATEGORY = DXGI_INFO_QUEUE_MESSAGE_CATEGORY(2i32);
1234 pub const DXGI_INFO_QUEUE_MESSAGE_CATEGORY_CLEANUP: DXGI_INFO_QUEUE_MESSAGE_CATEGORY = DXGI_INFO_QUEUE_MESSAGE_CATEGORY(3i32);
1235 pub const DXGI_INFO_QUEUE_MESSAGE_CATEGORY_COMPILATION: DXGI_INFO_QUEUE_MESSAGE_CATEGORY = DXGI_INFO_QUEUE_MESSAGE_CATEGORY(4i32);
1236 pub const DXGI_INFO_QUEUE_MESSAGE_CATEGORY_STATE_CREATION: DXGI_INFO_QUEUE_MESSAGE_CATEGORY = DXGI_INFO_QUEUE_MESSAGE_CATEGORY(5i32);
1237 pub const DXGI_INFO_QUEUE_MESSAGE_CATEGORY_STATE_SETTING: DXGI_INFO_QUEUE_MESSAGE_CATEGORY = DXGI_INFO_QUEUE_MESSAGE_CATEGORY(6i32);
1238 pub const DXGI_INFO_QUEUE_MESSAGE_CATEGORY_STATE_GETTING: DXGI_INFO_QUEUE_MESSAGE_CATEGORY = DXGI_INFO_QUEUE_MESSAGE_CATEGORY(7i32);
1239 pub const DXGI_INFO_QUEUE_MESSAGE_CATEGORY_RESOURCE_MANIPULATION: DXGI_INFO_QUEUE_MESSAGE_CATEGORY = DXGI_INFO_QUEUE_MESSAGE_CATEGORY(8i32);
1240 pub const DXGI_INFO_QUEUE_MESSAGE_CATEGORY_EXECUTION: DXGI_INFO_QUEUE_MESSAGE_CATEGORY = DXGI_INFO_QUEUE_MESSAGE_CATEGORY(9i32);
1241 pub const DXGI_INFO_QUEUE_MESSAGE_CATEGORY_SHADER: DXGI_INFO_QUEUE_MESSAGE_CATEGORY = DXGI_INFO_QUEUE_MESSAGE_CATEGORY(10i32);
1242 impl ::std::convert::From<i32> for DXGI_INFO_QUEUE_MESSAGE_CATEGORY {
from(value: i32) -> Self1243     fn from(value: i32) -> Self {
1244         Self(value)
1245     }
1246 }
1247 unsafe impl ::windows::runtime::Abi for DXGI_INFO_QUEUE_MESSAGE_CATEGORY {
1248     type Abi = Self;
1249     type DefaultType = Self;
1250 }
1251 pub const DXGI_INFO_QUEUE_MESSAGE_ID_STRING_FROM_APPLICATION: u32 = 0u32;
1252 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1253 #[repr(transparent)]
1254 pub struct DXGI_INFO_QUEUE_MESSAGE_SEVERITY(pub i32);
1255 pub const DXGI_INFO_QUEUE_MESSAGE_SEVERITY_CORRUPTION: DXGI_INFO_QUEUE_MESSAGE_SEVERITY = DXGI_INFO_QUEUE_MESSAGE_SEVERITY(0i32);
1256 pub const DXGI_INFO_QUEUE_MESSAGE_SEVERITY_ERROR: DXGI_INFO_QUEUE_MESSAGE_SEVERITY = DXGI_INFO_QUEUE_MESSAGE_SEVERITY(1i32);
1257 pub const DXGI_INFO_QUEUE_MESSAGE_SEVERITY_WARNING: DXGI_INFO_QUEUE_MESSAGE_SEVERITY = DXGI_INFO_QUEUE_MESSAGE_SEVERITY(2i32);
1258 pub const DXGI_INFO_QUEUE_MESSAGE_SEVERITY_INFO: DXGI_INFO_QUEUE_MESSAGE_SEVERITY = DXGI_INFO_QUEUE_MESSAGE_SEVERITY(3i32);
1259 pub const DXGI_INFO_QUEUE_MESSAGE_SEVERITY_MESSAGE: DXGI_INFO_QUEUE_MESSAGE_SEVERITY = DXGI_INFO_QUEUE_MESSAGE_SEVERITY(4i32);
1260 impl ::std::convert::From<i32> for DXGI_INFO_QUEUE_MESSAGE_SEVERITY {
from(value: i32) -> Self1261     fn from(value: i32) -> Self {
1262         Self(value)
1263     }
1264 }
1265 unsafe impl ::windows::runtime::Abi for DXGI_INFO_QUEUE_MESSAGE_SEVERITY {
1266     type Abi = Self;
1267     type DefaultType = Self;
1268 }
1269 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
1270 #[repr(C)]
1271 pub struct DXGI_JPEG_AC_HUFFMAN_TABLE {
1272     pub CodeCounts: [u8; 16],
1273     pub CodeValues: [u8; 162],
1274 }
1275 impl DXGI_JPEG_AC_HUFFMAN_TABLE {}
1276 impl ::std::default::Default for DXGI_JPEG_AC_HUFFMAN_TABLE {
default() -> Self1277     fn default() -> Self {
1278         unsafe { ::std::mem::zeroed() }
1279     }
1280 }
1281 impl ::std::fmt::Debug for DXGI_JPEG_AC_HUFFMAN_TABLE {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1282     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1283         fmt.debug_struct("DXGI_JPEG_AC_HUFFMAN_TABLE").field("CodeCounts", &self.CodeCounts).field("CodeValues", &self.CodeValues).finish()
1284     }
1285 }
1286 impl ::std::cmp::PartialEq for DXGI_JPEG_AC_HUFFMAN_TABLE {
eq(&self, other: &Self) -> bool1287     fn eq(&self, other: &Self) -> bool {
1288         self.CodeCounts == other.CodeCounts && self.CodeValues == other.CodeValues
1289     }
1290 }
1291 impl ::std::cmp::Eq for DXGI_JPEG_AC_HUFFMAN_TABLE {}
1292 unsafe impl ::windows::runtime::Abi for DXGI_JPEG_AC_HUFFMAN_TABLE {
1293     type Abi = Self;
1294     type DefaultType = Self;
1295 }
1296 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
1297 #[repr(C)]
1298 pub struct DXGI_JPEG_DC_HUFFMAN_TABLE {
1299     pub CodeCounts: [u8; 12],
1300     pub CodeValues: [u8; 12],
1301 }
1302 impl DXGI_JPEG_DC_HUFFMAN_TABLE {}
1303 impl ::std::default::Default for DXGI_JPEG_DC_HUFFMAN_TABLE {
default() -> Self1304     fn default() -> Self {
1305         unsafe { ::std::mem::zeroed() }
1306     }
1307 }
1308 impl ::std::fmt::Debug for DXGI_JPEG_DC_HUFFMAN_TABLE {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1309     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1310         fmt.debug_struct("DXGI_JPEG_DC_HUFFMAN_TABLE").field("CodeCounts", &self.CodeCounts).field("CodeValues", &self.CodeValues).finish()
1311     }
1312 }
1313 impl ::std::cmp::PartialEq for DXGI_JPEG_DC_HUFFMAN_TABLE {
eq(&self, other: &Self) -> bool1314     fn eq(&self, other: &Self) -> bool {
1315         self.CodeCounts == other.CodeCounts && self.CodeValues == other.CodeValues
1316     }
1317 }
1318 impl ::std::cmp::Eq for DXGI_JPEG_DC_HUFFMAN_TABLE {}
1319 unsafe impl ::windows::runtime::Abi for DXGI_JPEG_DC_HUFFMAN_TABLE {
1320     type Abi = Self;
1321     type DefaultType = Self;
1322 }
1323 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
1324 #[repr(C)]
1325 pub struct DXGI_JPEG_QUANTIZATION_TABLE {
1326     pub Elements: [u8; 64],
1327 }
1328 impl DXGI_JPEG_QUANTIZATION_TABLE {}
1329 impl ::std::default::Default for DXGI_JPEG_QUANTIZATION_TABLE {
default() -> Self1330     fn default() -> Self {
1331         unsafe { ::std::mem::zeroed() }
1332     }
1333 }
1334 impl ::std::fmt::Debug for DXGI_JPEG_QUANTIZATION_TABLE {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1335     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1336         fmt.debug_struct("DXGI_JPEG_QUANTIZATION_TABLE").field("Elements", &self.Elements).finish()
1337     }
1338 }
1339 impl ::std::cmp::PartialEq for DXGI_JPEG_QUANTIZATION_TABLE {
eq(&self, other: &Self) -> bool1340     fn eq(&self, other: &Self) -> bool {
1341         self.Elements == other.Elements
1342     }
1343 }
1344 impl ::std::cmp::Eq for DXGI_JPEG_QUANTIZATION_TABLE {}
1345 unsafe impl ::windows::runtime::Abi for DXGI_JPEG_QUANTIZATION_TABLE {
1346     type Abi = Self;
1347     type DefaultType = Self;
1348 }
1349 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
1350 #[repr(C)]
1351 pub struct DXGI_MAPPED_RECT {
1352     pub Pitch: i32,
1353     pub pBits: *mut u8,
1354 }
1355 impl DXGI_MAPPED_RECT {}
1356 impl ::std::default::Default for DXGI_MAPPED_RECT {
default() -> Self1357     fn default() -> Self {
1358         unsafe { ::std::mem::zeroed() }
1359     }
1360 }
1361 impl ::std::fmt::Debug for DXGI_MAPPED_RECT {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1362     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1363         fmt.debug_struct("DXGI_MAPPED_RECT").field("Pitch", &self.Pitch).field("pBits", &self.pBits).finish()
1364     }
1365 }
1366 impl ::std::cmp::PartialEq for DXGI_MAPPED_RECT {
eq(&self, other: &Self) -> bool1367     fn eq(&self, other: &Self) -> bool {
1368         self.Pitch == other.Pitch && self.pBits == other.pBits
1369     }
1370 }
1371 impl ::std::cmp::Eq for DXGI_MAPPED_RECT {}
1372 unsafe impl ::windows::runtime::Abi for DXGI_MAPPED_RECT {
1373     type Abi = Self;
1374     type DefaultType = Self;
1375 }
1376 pub const DXGI_MAP_DISCARD: u32 = 4u32;
1377 pub const DXGI_MAP_READ: u32 = 1u32;
1378 pub const DXGI_MAP_WRITE: u32 = 2u32;
1379 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
1380 #[repr(C)]
1381 pub struct DXGI_MATRIX_3X2_F {
1382     pub _11: f32,
1383     pub _12: f32,
1384     pub _21: f32,
1385     pub _22: f32,
1386     pub _31: f32,
1387     pub _32: f32,
1388 }
1389 impl DXGI_MATRIX_3X2_F {}
1390 impl ::std::default::Default for DXGI_MATRIX_3X2_F {
default() -> Self1391     fn default() -> Self {
1392         unsafe { ::std::mem::zeroed() }
1393     }
1394 }
1395 impl ::std::fmt::Debug for DXGI_MATRIX_3X2_F {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1396     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1397         fmt.debug_struct("DXGI_MATRIX_3X2_F").field("_11", &self._11).field("_12", &self._12).field("_21", &self._21).field("_22", &self._22).field("_31", &self._31).field("_32", &self._32).finish()
1398     }
1399 }
1400 impl ::std::cmp::PartialEq for DXGI_MATRIX_3X2_F {
eq(&self, other: &Self) -> bool1401     fn eq(&self, other: &Self) -> bool {
1402         self._11 == other._11 && self._12 == other._12 && self._21 == other._21 && self._22 == other._22 && self._31 == other._31 && self._32 == other._32
1403     }
1404 }
1405 impl ::std::cmp::Eq for DXGI_MATRIX_3X2_F {}
1406 unsafe impl ::windows::runtime::Abi for DXGI_MATRIX_3X2_F {
1407     type Abi = Self;
1408     type DefaultType = Self;
1409 }
1410 pub const DXGI_MAX_SWAP_CHAIN_BUFFERS: u32 = 16u32;
1411 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1412 #[repr(transparent)]
1413 pub struct DXGI_MEMORY_SEGMENT_GROUP(pub i32);
1414 pub const DXGI_MEMORY_SEGMENT_GROUP_LOCAL: DXGI_MEMORY_SEGMENT_GROUP = DXGI_MEMORY_SEGMENT_GROUP(0i32);
1415 pub const DXGI_MEMORY_SEGMENT_GROUP_NON_LOCAL: DXGI_MEMORY_SEGMENT_GROUP = DXGI_MEMORY_SEGMENT_GROUP(1i32);
1416 impl ::std::convert::From<i32> for DXGI_MEMORY_SEGMENT_GROUP {
from(value: i32) -> Self1417     fn from(value: i32) -> Self {
1418         Self(value)
1419     }
1420 }
1421 unsafe impl ::windows::runtime::Abi for DXGI_MEMORY_SEGMENT_GROUP {
1422     type Abi = Self;
1423     type DefaultType = Self;
1424 }
1425 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
1426 #[repr(C)]
1427 pub struct DXGI_MODE_DESC {
1428     pub Width: u32,
1429     pub Height: u32,
1430     pub RefreshRate: DXGI_RATIONAL,
1431     pub Format: DXGI_FORMAT,
1432     pub ScanlineOrdering: DXGI_MODE_SCANLINE_ORDER,
1433     pub Scaling: DXGI_MODE_SCALING,
1434 }
1435 impl DXGI_MODE_DESC {}
1436 impl ::std::default::Default for DXGI_MODE_DESC {
default() -> Self1437     fn default() -> Self {
1438         unsafe { ::std::mem::zeroed() }
1439     }
1440 }
1441 impl ::std::fmt::Debug for DXGI_MODE_DESC {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1442     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1443         fmt.debug_struct("DXGI_MODE_DESC").field("Width", &self.Width).field("Height", &self.Height).field("RefreshRate", &self.RefreshRate).field("Format", &self.Format).field("ScanlineOrdering", &self.ScanlineOrdering).field("Scaling", &self.Scaling).finish()
1444     }
1445 }
1446 impl ::std::cmp::PartialEq for DXGI_MODE_DESC {
eq(&self, other: &Self) -> bool1447     fn eq(&self, other: &Self) -> bool {
1448         self.Width == other.Width && self.Height == other.Height && self.RefreshRate == other.RefreshRate && self.Format == other.Format && self.ScanlineOrdering == other.ScanlineOrdering && self.Scaling == other.Scaling
1449     }
1450 }
1451 impl ::std::cmp::Eq for DXGI_MODE_DESC {}
1452 unsafe impl ::windows::runtime::Abi for DXGI_MODE_DESC {
1453     type Abi = Self;
1454     type DefaultType = Self;
1455 }
1456 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
1457 #[repr(C)]
1458 #[cfg(feature = "Win32_Foundation")]
1459 pub struct DXGI_MODE_DESC1 {
1460     pub Width: u32,
1461     pub Height: u32,
1462     pub RefreshRate: DXGI_RATIONAL,
1463     pub Format: DXGI_FORMAT,
1464     pub ScanlineOrdering: DXGI_MODE_SCANLINE_ORDER,
1465     pub Scaling: DXGI_MODE_SCALING,
1466     pub Stereo: super::super::Foundation::BOOL,
1467 }
1468 #[cfg(feature = "Win32_Foundation")]
1469 impl DXGI_MODE_DESC1 {}
1470 #[cfg(feature = "Win32_Foundation")]
1471 impl ::std::default::Default for DXGI_MODE_DESC1 {
default() -> Self1472     fn default() -> Self {
1473         unsafe { ::std::mem::zeroed() }
1474     }
1475 }
1476 #[cfg(feature = "Win32_Foundation")]
1477 impl ::std::fmt::Debug for DXGI_MODE_DESC1 {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1478     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1479         fmt.debug_struct("DXGI_MODE_DESC1").field("Width", &self.Width).field("Height", &self.Height).field("RefreshRate", &self.RefreshRate).field("Format", &self.Format).field("ScanlineOrdering", &self.ScanlineOrdering).field("Scaling", &self.Scaling).field("Stereo", &self.Stereo).finish()
1480     }
1481 }
1482 #[cfg(feature = "Win32_Foundation")]
1483 impl ::std::cmp::PartialEq for DXGI_MODE_DESC1 {
eq(&self, other: &Self) -> bool1484     fn eq(&self, other: &Self) -> bool {
1485         self.Width == other.Width && self.Height == other.Height && self.RefreshRate == other.RefreshRate && self.Format == other.Format && self.ScanlineOrdering == other.ScanlineOrdering && self.Scaling == other.Scaling && self.Stereo == other.Stereo
1486     }
1487 }
1488 #[cfg(feature = "Win32_Foundation")]
1489 impl ::std::cmp::Eq for DXGI_MODE_DESC1 {}
1490 #[cfg(feature = "Win32_Foundation")]
1491 unsafe impl ::windows::runtime::Abi for DXGI_MODE_DESC1 {
1492     type Abi = Self;
1493     type DefaultType = Self;
1494 }
1495 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1496 #[repr(transparent)]
1497 pub struct DXGI_MODE_ROTATION(pub i32);
1498 pub const DXGI_MODE_ROTATION_UNSPECIFIED: DXGI_MODE_ROTATION = DXGI_MODE_ROTATION(0i32);
1499 pub const DXGI_MODE_ROTATION_IDENTITY: DXGI_MODE_ROTATION = DXGI_MODE_ROTATION(1i32);
1500 pub const DXGI_MODE_ROTATION_ROTATE90: DXGI_MODE_ROTATION = DXGI_MODE_ROTATION(2i32);
1501 pub const DXGI_MODE_ROTATION_ROTATE180: DXGI_MODE_ROTATION = DXGI_MODE_ROTATION(3i32);
1502 pub const DXGI_MODE_ROTATION_ROTATE270: DXGI_MODE_ROTATION = DXGI_MODE_ROTATION(4i32);
1503 impl ::std::convert::From<i32> for DXGI_MODE_ROTATION {
from(value: i32) -> Self1504     fn from(value: i32) -> Self {
1505         Self(value)
1506     }
1507 }
1508 unsafe impl ::windows::runtime::Abi for DXGI_MODE_ROTATION {
1509     type Abi = Self;
1510     type DefaultType = Self;
1511 }
1512 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1513 #[repr(transparent)]
1514 pub struct DXGI_MODE_SCALING(pub i32);
1515 pub const DXGI_MODE_SCALING_UNSPECIFIED: DXGI_MODE_SCALING = DXGI_MODE_SCALING(0i32);
1516 pub const DXGI_MODE_SCALING_CENTERED: DXGI_MODE_SCALING = DXGI_MODE_SCALING(1i32);
1517 pub const DXGI_MODE_SCALING_STRETCHED: DXGI_MODE_SCALING = DXGI_MODE_SCALING(2i32);
1518 impl ::std::convert::From<i32> for DXGI_MODE_SCALING {
from(value: i32) -> Self1519     fn from(value: i32) -> Self {
1520         Self(value)
1521     }
1522 }
1523 unsafe impl ::windows::runtime::Abi for DXGI_MODE_SCALING {
1524     type Abi = Self;
1525     type DefaultType = Self;
1526 }
1527 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1528 #[repr(transparent)]
1529 pub struct DXGI_MODE_SCANLINE_ORDER(pub i32);
1530 pub const DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED: DXGI_MODE_SCANLINE_ORDER = DXGI_MODE_SCANLINE_ORDER(0i32);
1531 pub const DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE: DXGI_MODE_SCANLINE_ORDER = DXGI_MODE_SCANLINE_ORDER(1i32);
1532 pub const DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST: DXGI_MODE_SCANLINE_ORDER = DXGI_MODE_SCANLINE_ORDER(2i32);
1533 pub const DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST: DXGI_MODE_SCANLINE_ORDER = DXGI_MODE_SCANLINE_ORDER(3i32);
1534 impl ::std::convert::From<i32> for DXGI_MODE_SCANLINE_ORDER {
from(value: i32) -> Self1535     fn from(value: i32) -> Self {
1536         Self(value)
1537     }
1538 }
1539 unsafe impl ::windows::runtime::Abi for DXGI_MODE_SCANLINE_ORDER {
1540     type Abi = Self;
1541     type DefaultType = Self;
1542 }
1543 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1544 #[repr(transparent)]
1545 pub struct DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS(pub i32);
1546 pub const DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_NOMINAL_RANGE: DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS = DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS(1i32);
1547 pub const DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_BT709: DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS = DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS(2i32);
1548 pub const DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_xvYCC: DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS = DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS(4i32);
1549 impl ::std::convert::From<i32> for DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS {
from(value: i32) -> Self1550     fn from(value: i32) -> Self {
1551         Self(value)
1552     }
1553 }
1554 unsafe impl ::windows::runtime::Abi for DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS {
1555     type Abi = Self;
1556     type DefaultType = Self;
1557 }
1558 pub const DXGI_MWA_NO_ALT_ENTER: u32 = 2u32;
1559 pub const DXGI_MWA_NO_PRINT_SCREEN: u32 = 4u32;
1560 pub const DXGI_MWA_NO_WINDOW_CHANGES: u32 = 1u32;
1561 pub const DXGI_MWA_VALID: u32 = 7u32;
1562 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1563 #[repr(transparent)]
1564 pub struct DXGI_Message_Id(pub i32);
1565 pub const DXGI_MSG_IDXGISwapChain_CreationOrResizeBuffers_InvalidOutputWindow: DXGI_Message_Id = DXGI_Message_Id(0i32);
1566 pub const DXGI_MSG_IDXGISwapChain_CreationOrResizeBuffers_BufferWidthInferred: DXGI_Message_Id = DXGI_Message_Id(1i32);
1567 pub const DXGI_MSG_IDXGISwapChain_CreationOrResizeBuffers_BufferHeightInferred: DXGI_Message_Id = DXGI_Message_Id(2i32);
1568 pub const DXGI_MSG_IDXGISwapChain_CreationOrResizeBuffers_NoScanoutFlagChanged: DXGI_Message_Id = DXGI_Message_Id(3i32);
1569 pub const DXGI_MSG_IDXGISwapChain_Creation_MaxBufferCountExceeded: DXGI_Message_Id = DXGI_Message_Id(4i32);
1570 pub const DXGI_MSG_IDXGISwapChain_Creation_TooFewBuffers: DXGI_Message_Id = DXGI_Message_Id(5i32);
1571 pub const DXGI_MSG_IDXGISwapChain_Creation_NoOutputWindow: DXGI_Message_Id = DXGI_Message_Id(6i32);
1572 pub const DXGI_MSG_IDXGISwapChain_Destruction_OtherMethodsCalled: DXGI_Message_Id = DXGI_Message_Id(7i32);
1573 pub const DXGI_MSG_IDXGISwapChain_GetDesc_pDescIsNULL: DXGI_Message_Id = DXGI_Message_Id(8i32);
1574 pub const DXGI_MSG_IDXGISwapChain_GetBuffer_ppSurfaceIsNULL: DXGI_Message_Id = DXGI_Message_Id(9i32);
1575 pub const DXGI_MSG_IDXGISwapChain_GetBuffer_NoAllocatedBuffers: DXGI_Message_Id = DXGI_Message_Id(10i32);
1576 pub const DXGI_MSG_IDXGISwapChain_GetBuffer_iBufferMustBeZero: DXGI_Message_Id = DXGI_Message_Id(11i32);
1577 pub const DXGI_MSG_IDXGISwapChain_GetBuffer_iBufferOOB: DXGI_Message_Id = DXGI_Message_Id(12i32);
1578 pub const DXGI_MSG_IDXGISwapChain_GetContainingOutput_ppOutputIsNULL: DXGI_Message_Id = DXGI_Message_Id(13i32);
1579 pub const DXGI_MSG_IDXGISwapChain_Present_SyncIntervalOOB: DXGI_Message_Id = DXGI_Message_Id(14i32);
1580 pub const DXGI_MSG_IDXGISwapChain_Present_InvalidNonPreRotatedFlag: DXGI_Message_Id = DXGI_Message_Id(15i32);
1581 pub const DXGI_MSG_IDXGISwapChain_Present_NoAllocatedBuffers: DXGI_Message_Id = DXGI_Message_Id(16i32);
1582 pub const DXGI_MSG_IDXGISwapChain_Present_GetDXGIAdapterFailed: DXGI_Message_Id = DXGI_Message_Id(17i32);
1583 pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_BufferCountOOB: DXGI_Message_Id = DXGI_Message_Id(18i32);
1584 pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_UnreleasedReferences: DXGI_Message_Id = DXGI_Message_Id(19i32);
1585 pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_InvalidSwapChainFlag: DXGI_Message_Id = DXGI_Message_Id(20i32);
1586 pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_InvalidNonPreRotatedFlag: DXGI_Message_Id = DXGI_Message_Id(21i32);
1587 pub const DXGI_MSG_IDXGISwapChain_ResizeTarget_RefreshRateDivideByZero: DXGI_Message_Id = DXGI_Message_Id(22i32);
1588 pub const DXGI_MSG_IDXGISwapChain_SetFullscreenState_InvalidTarget: DXGI_Message_Id = DXGI_Message_Id(23i32);
1589 pub const DXGI_MSG_IDXGISwapChain_GetFrameStatistics_pStatsIsNULL: DXGI_Message_Id = DXGI_Message_Id(24i32);
1590 pub const DXGI_MSG_IDXGISwapChain_GetLastPresentCount_pLastPresentCountIsNULL: DXGI_Message_Id = DXGI_Message_Id(25i32);
1591 pub const DXGI_MSG_IDXGISwapChain_SetFullscreenState_RemoteNotSupported: DXGI_Message_Id = DXGI_Message_Id(26i32);
1592 pub const DXGI_MSG_IDXGIOutput_TakeOwnership_FailedToAcquireFullscreenMutex: DXGI_Message_Id = DXGI_Message_Id(27i32);
1593 pub const DXGI_MSG_IDXGIFactory_CreateSoftwareAdapter_ppAdapterInterfaceIsNULL: DXGI_Message_Id = DXGI_Message_Id(28i32);
1594 pub const DXGI_MSG_IDXGIFactory_EnumAdapters_ppAdapterInterfaceIsNULL: DXGI_Message_Id = DXGI_Message_Id(29i32);
1595 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_ppSwapChainIsNULL: DXGI_Message_Id = DXGI_Message_Id(30i32);
1596 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_pDescIsNULL: DXGI_Message_Id = DXGI_Message_Id(31i32);
1597 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_UnknownSwapEffect: DXGI_Message_Id = DXGI_Message_Id(32i32);
1598 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_InvalidFlags: DXGI_Message_Id = DXGI_Message_Id(33i32);
1599 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_NonPreRotatedFlagAndWindowed: DXGI_Message_Id = DXGI_Message_Id(34i32);
1600 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_NullDeviceInterface: DXGI_Message_Id = DXGI_Message_Id(35i32);
1601 pub const DXGI_MSG_IDXGIFactory_GetWindowAssociation_phWndIsNULL: DXGI_Message_Id = DXGI_Message_Id(36i32);
1602 pub const DXGI_MSG_IDXGIFactory_MakeWindowAssociation_InvalidFlags: DXGI_Message_Id = DXGI_Message_Id(37i32);
1603 pub const DXGI_MSG_IDXGISurface_Map_InvalidSurface: DXGI_Message_Id = DXGI_Message_Id(38i32);
1604 pub const DXGI_MSG_IDXGISurface_Map_FlagsSetToZero: DXGI_Message_Id = DXGI_Message_Id(39i32);
1605 pub const DXGI_MSG_IDXGISurface_Map_DiscardAndReadFlagSet: DXGI_Message_Id = DXGI_Message_Id(40i32);
1606 pub const DXGI_MSG_IDXGISurface_Map_DiscardButNotWriteFlagSet: DXGI_Message_Id = DXGI_Message_Id(41i32);
1607 pub const DXGI_MSG_IDXGISurface_Map_NoCPUAccess: DXGI_Message_Id = DXGI_Message_Id(42i32);
1608 pub const DXGI_MSG_IDXGISurface_Map_ReadFlagSetButCPUAccessIsDynamic: DXGI_Message_Id = DXGI_Message_Id(43i32);
1609 pub const DXGI_MSG_IDXGISurface_Map_DiscardFlagSetButCPUAccessIsNotDynamic: DXGI_Message_Id = DXGI_Message_Id(44i32);
1610 pub const DXGI_MSG_IDXGIOutput_GetDisplayModeList_pNumModesIsNULL: DXGI_Message_Id = DXGI_Message_Id(45i32);
1611 pub const DXGI_MSG_IDXGIOutput_FindClosestMatchingMode_ModeHasInvalidWidthOrHeight: DXGI_Message_Id = DXGI_Message_Id(46i32);
1612 pub const DXGI_MSG_IDXGIOutput_GetCammaControlCapabilities_NoOwnerDevice: DXGI_Message_Id = DXGI_Message_Id(47i32);
1613 pub const DXGI_MSG_IDXGIOutput_TakeOwnership_pDeviceIsNULL: DXGI_Message_Id = DXGI_Message_Id(48i32);
1614 pub const DXGI_MSG_IDXGIOutput_GetDisplaySurfaceData_NoOwnerDevice: DXGI_Message_Id = DXGI_Message_Id(49i32);
1615 pub const DXGI_MSG_IDXGIOutput_GetDisplaySurfaceData_pDestinationIsNULL: DXGI_Message_Id = DXGI_Message_Id(50i32);
1616 pub const DXGI_MSG_IDXGIOutput_GetDisplaySurfaceData_MapOfDestinationFailed: DXGI_Message_Id = DXGI_Message_Id(51i32);
1617 pub const DXGI_MSG_IDXGIOutput_GetFrameStatistics_NoOwnerDevice: DXGI_Message_Id = DXGI_Message_Id(52i32);
1618 pub const DXGI_MSG_IDXGIOutput_GetFrameStatistics_pStatsIsNULL: DXGI_Message_Id = DXGI_Message_Id(53i32);
1619 pub const DXGI_MSG_IDXGIOutput_SetGammaControl_NoOwnerDevice: DXGI_Message_Id = DXGI_Message_Id(54i32);
1620 pub const DXGI_MSG_IDXGIOutput_GetGammaControl_NoOwnerDevice: DXGI_Message_Id = DXGI_Message_Id(55i32);
1621 pub const DXGI_MSG_IDXGIOutput_GetGammaControl_NoGammaControls: DXGI_Message_Id = DXGI_Message_Id(56i32);
1622 pub const DXGI_MSG_IDXGIOutput_SetDisplaySurface_IDXGIResourceNotSupportedBypPrimary: DXGI_Message_Id = DXGI_Message_Id(57i32);
1623 pub const DXGI_MSG_IDXGIOutput_SetDisplaySurface_pPrimaryIsInvalid: DXGI_Message_Id = DXGI_Message_Id(58i32);
1624 pub const DXGI_MSG_IDXGIOutput_SetDisplaySurface_NoOwnerDevice: DXGI_Message_Id = DXGI_Message_Id(59i32);
1625 pub const DXGI_MSG_IDXGIOutput_TakeOwnership_RemoteDeviceNotSupported: DXGI_Message_Id = DXGI_Message_Id(60i32);
1626 pub const DXGI_MSG_IDXGIOutput_GetDisplayModeList_RemoteDeviceNotSupported: DXGI_Message_Id = DXGI_Message_Id(61i32);
1627 pub const DXGI_MSG_IDXGIOutput_FindClosestMatchingMode_RemoteDeviceNotSupported: DXGI_Message_Id = DXGI_Message_Id(62i32);
1628 pub const DXGI_MSG_IDXGIDevice_CreateSurface_InvalidParametersWithpSharedResource: DXGI_Message_Id = DXGI_Message_Id(63i32);
1629 pub const DXGI_MSG_IDXGIObject_GetPrivateData_puiDataSizeIsNULL: DXGI_Message_Id = DXGI_Message_Id(64i32);
1630 pub const DXGI_MSG_IDXGISwapChain_Creation_InvalidOutputWindow: DXGI_Message_Id = DXGI_Message_Id(65i32);
1631 pub const DXGI_MSG_IDXGISwapChain_Release_SwapChainIsFullscreen: DXGI_Message_Id = DXGI_Message_Id(66i32);
1632 pub const DXGI_MSG_IDXGIOutput_GetDisplaySurfaceData_InvalidTargetSurfaceFormat: DXGI_Message_Id = DXGI_Message_Id(67i32);
1633 pub const DXGI_MSG_IDXGIFactory_CreateSoftwareAdapter_ModuleIsNULL: DXGI_Message_Id = DXGI_Message_Id(68i32);
1634 pub const DXGI_MSG_IDXGIOutput_FindClosestMatchingMode_IDXGIDeviceNotSupportedBypConcernedDevice: DXGI_Message_Id = DXGI_Message_Id(69i32);
1635 pub const DXGI_MSG_IDXGIOutput_FindClosestMatchingMode_pModeToMatchOrpClosestMatchIsNULL: DXGI_Message_Id = DXGI_Message_Id(70i32);
1636 pub const DXGI_MSG_IDXGIOutput_FindClosestMatchingMode_ModeHasRefreshRateDenominatorZero: DXGI_Message_Id = DXGI_Message_Id(71i32);
1637 pub const DXGI_MSG_IDXGIOutput_FindClosestMatchingMode_UnknownFormatIsInvalidForConfiguration: DXGI_Message_Id = DXGI_Message_Id(72i32);
1638 pub const DXGI_MSG_IDXGIOutput_FindClosestMatchingMode_InvalidDisplayModeScanlineOrdering: DXGI_Message_Id = DXGI_Message_Id(73i32);
1639 pub const DXGI_MSG_IDXGIOutput_FindClosestMatchingMode_InvalidDisplayModeScaling: DXGI_Message_Id = DXGI_Message_Id(74i32);
1640 pub const DXGI_MSG_IDXGIOutput_FindClosestMatchingMode_InvalidDisplayModeFormatAndDeviceCombination: DXGI_Message_Id = DXGI_Message_Id(75i32);
1641 pub const DXGI_MSG_IDXGIFactory_Creation_CalledFromDllMain: DXGI_Message_Id = DXGI_Message_Id(76i32);
1642 pub const DXGI_MSG_IDXGISwapChain_SetFullscreenState_OutputNotOwnedBySwapChainDevice: DXGI_Message_Id = DXGI_Message_Id(77i32);
1643 pub const DXGI_MSG_IDXGISwapChain_Creation_InvalidWindowStyle: DXGI_Message_Id = DXGI_Message_Id(78i32);
1644 pub const DXGI_MSG_IDXGISwapChain_GetFrameStatistics_UnsupportedStatistics: DXGI_Message_Id = DXGI_Message_Id(79i32);
1645 pub const DXGI_MSG_IDXGISwapChain_GetContainingOutput_SwapchainAdapterDoesNotControlOutput: DXGI_Message_Id = DXGI_Message_Id(80i32);
1646 pub const DXGI_MSG_IDXGIOutput_SetOrGetGammaControl_pArrayIsNULL: DXGI_Message_Id = DXGI_Message_Id(81i32);
1647 pub const DXGI_MSG_IDXGISwapChain_SetFullscreenState_FullscreenInvalidForChildWindows: DXGI_Message_Id = DXGI_Message_Id(82i32);
1648 pub const DXGI_MSG_IDXGIFactory_Release_CalledFromDllMain: DXGI_Message_Id = DXGI_Message_Id(83i32);
1649 pub const DXGI_MSG_IDXGISwapChain_Present_UnreleasedHDC: DXGI_Message_Id = DXGI_Message_Id(84i32);
1650 pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_NonPreRotatedAndGDICompatibleFlags: DXGI_Message_Id = DXGI_Message_Id(85i32);
1651 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_NonPreRotatedAndGDICompatibleFlags: DXGI_Message_Id = DXGI_Message_Id(86i32);
1652 pub const DXGI_MSG_IDXGISurface1_GetDC_pHdcIsNULL: DXGI_Message_Id = DXGI_Message_Id(87i32);
1653 pub const DXGI_MSG_IDXGISurface1_GetDC_SurfaceNotTexture2D: DXGI_Message_Id = DXGI_Message_Id(88i32);
1654 pub const DXGI_MSG_IDXGISurface1_GetDC_GDICompatibleFlagNotSet: DXGI_Message_Id = DXGI_Message_Id(89i32);
1655 pub const DXGI_MSG_IDXGISurface1_GetDC_UnreleasedHDC: DXGI_Message_Id = DXGI_Message_Id(90i32);
1656 pub const DXGI_MSG_IDXGISurface_Map_NoCPUAccess2: DXGI_Message_Id = DXGI_Message_Id(91i32);
1657 pub const DXGI_MSG_IDXGISurface1_ReleaseDC_GetDCNotCalled: DXGI_Message_Id = DXGI_Message_Id(92i32);
1658 pub const DXGI_MSG_IDXGISurface1_ReleaseDC_InvalidRectangleDimensions: DXGI_Message_Id = DXGI_Message_Id(93i32);
1659 pub const DXGI_MSG_IDXGIOutput_TakeOwnership_RemoteOutputNotSupported: DXGI_Message_Id = DXGI_Message_Id(94i32);
1660 pub const DXGI_MSG_IDXGIOutput_FindClosestMatchingMode_RemoteOutputNotSupported: DXGI_Message_Id = DXGI_Message_Id(95i32);
1661 pub const DXGI_MSG_IDXGIOutput_GetDisplayModeList_RemoteOutputNotSupported: DXGI_Message_Id = DXGI_Message_Id(96i32);
1662 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_pDeviceHasMismatchedDXGIFactory: DXGI_Message_Id = DXGI_Message_Id(97i32);
1663 pub const DXGI_MSG_IDXGISwapChain_Present_NonOptimalFSConfiguration: DXGI_Message_Id = DXGI_Message_Id(98i32);
1664 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_FlipSequentialNotSupportedOnD3D10: DXGI_Message_Id = DXGI_Message_Id(99i32);
1665 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_BufferCountOOBForFlipSequential: DXGI_Message_Id = DXGI_Message_Id(100i32);
1666 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_InvalidFormatForFlipSequential: DXGI_Message_Id = DXGI_Message_Id(101i32);
1667 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_MultiSamplingNotSupportedForFlipSequential: DXGI_Message_Id = DXGI_Message_Id(102i32);
1668 pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_BufferCountOOBForFlipSequential: DXGI_Message_Id = DXGI_Message_Id(103i32);
1669 pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_InvalidFormatForFlipSequential: DXGI_Message_Id = DXGI_Message_Id(104i32);
1670 pub const DXGI_MSG_IDXGISwapChain_Present_PartialPresentationBeforeStandardPresentation: DXGI_Message_Id = DXGI_Message_Id(105i32);
1671 pub const DXGI_MSG_IDXGISwapChain_Present_FullscreenPartialPresentIsInvalid: DXGI_Message_Id = DXGI_Message_Id(106i32);
1672 pub const DXGI_MSG_IDXGISwapChain_Present_InvalidPresentTestOrDoNotSequenceFlag: DXGI_Message_Id = DXGI_Message_Id(107i32);
1673 pub const DXGI_MSG_IDXGISwapChain_Present_ScrollInfoWithNoDirtyRectsSpecified: DXGI_Message_Id = DXGI_Message_Id(108i32);
1674 pub const DXGI_MSG_IDXGISwapChain_Present_EmptyScrollRect: DXGI_Message_Id = DXGI_Message_Id(109i32);
1675 pub const DXGI_MSG_IDXGISwapChain_Present_ScrollRectOutOfBackbufferBounds: DXGI_Message_Id = DXGI_Message_Id(110i32);
1676 pub const DXGI_MSG_IDXGISwapChain_Present_ScrollRectOutOfBackbufferBoundsWithOffset: DXGI_Message_Id = DXGI_Message_Id(111i32);
1677 pub const DXGI_MSG_IDXGISwapChain_Present_EmptyDirtyRect: DXGI_Message_Id = DXGI_Message_Id(112i32);
1678 pub const DXGI_MSG_IDXGISwapChain_Present_DirtyRectOutOfBackbufferBounds: DXGI_Message_Id = DXGI_Message_Id(113i32);
1679 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_UnsupportedBufferUsageFlags: DXGI_Message_Id = DXGI_Message_Id(114i32);
1680 pub const DXGI_MSG_IDXGISwapChain_Present_DoNotSequenceFlagSetButPreviousBufferIsUndefined: DXGI_Message_Id = DXGI_Message_Id(115i32);
1681 pub const DXGI_MSG_IDXGISwapChain_Present_UnsupportedFlags: DXGI_Message_Id = DXGI_Message_Id(116i32);
1682 pub const DXGI_MSG_IDXGISwapChain_Present_FlipModelChainMustResizeOrCreateOnFSTransition: DXGI_Message_Id = DXGI_Message_Id(117i32);
1683 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_pRestrictToOutputFromOtherIDXGIFactory: DXGI_Message_Id = DXGI_Message_Id(118i32);
1684 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_RestrictOutputNotSupportedOnAdapter: DXGI_Message_Id = DXGI_Message_Id(119i32);
1685 pub const DXGI_MSG_IDXGISwapChain_Present_RestrictToOutputFlagSetButInvalidpRestrictToOutput: DXGI_Message_Id = DXGI_Message_Id(120i32);
1686 pub const DXGI_MSG_IDXGISwapChain_Present_RestrictToOutputFlagdWithFullscreen: DXGI_Message_Id = DXGI_Message_Id(121i32);
1687 pub const DXGI_MSG_IDXGISwapChain_Present_RestrictOutputFlagWithStaleSwapChain: DXGI_Message_Id = DXGI_Message_Id(122i32);
1688 pub const DXGI_MSG_IDXGISwapChain_Present_OtherFlagsCausingInvalidPresentTestFlag: DXGI_Message_Id = DXGI_Message_Id(123i32);
1689 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_UnavailableInSession0: DXGI_Message_Id = DXGI_Message_Id(124i32);
1690 pub const DXGI_MSG_IDXGIFactory_MakeWindowAssociation_UnavailableInSession0: DXGI_Message_Id = DXGI_Message_Id(125i32);
1691 pub const DXGI_MSG_IDXGIFactory_GetWindowAssociation_UnavailableInSession0: DXGI_Message_Id = DXGI_Message_Id(126i32);
1692 pub const DXGI_MSG_IDXGIAdapter_EnumOutputs_UnavailableInSession0: DXGI_Message_Id = DXGI_Message_Id(127i32);
1693 pub const DXGI_MSG_IDXGISwapChain_CreationOrSetFullscreenState_StereoDisabled: DXGI_Message_Id = DXGI_Message_Id(128i32);
1694 pub const DXGI_MSG_IDXGIFactory2_UnregisterStatus_CookieNotFound: DXGI_Message_Id = DXGI_Message_Id(129i32);
1695 pub const DXGI_MSG_IDXGISwapChain_Present_ProtectedContentInWindowedModeWithoutFSOrOverlay: DXGI_Message_Id = DXGI_Message_Id(130i32);
1696 pub const DXGI_MSG_IDXGISwapChain_Present_ProtectedContentInWindowedModeWithoutFlipSequential: DXGI_Message_Id = DXGI_Message_Id(131i32);
1697 pub const DXGI_MSG_IDXGISwapChain_Present_ProtectedContentWithRDPDriver: DXGI_Message_Id = DXGI_Message_Id(132i32);
1698 pub const DXGI_MSG_IDXGISwapChain_Present_ProtectedContentInWindowedModeWithDWMOffOrInvalidDisplayAffinity: DXGI_Message_Id = DXGI_Message_Id(133i32);
1699 pub const DXGI_MSG_IDXGIFactory_CreateSwapChainForComposition_WidthOrHeightIsZero: DXGI_Message_Id = DXGI_Message_Id(134i32);
1700 pub const DXGI_MSG_IDXGIFactory_CreateSwapChainForComposition_OnlyFlipSequentialSupported: DXGI_Message_Id = DXGI_Message_Id(135i32);
1701 pub const DXGI_MSG_IDXGIFactory_CreateSwapChainForComposition_UnsupportedOnAdapter: DXGI_Message_Id = DXGI_Message_Id(136i32);
1702 pub const DXGI_MSG_IDXGIFactory_CreateSwapChainForComposition_UnsupportedOnWindows7: DXGI_Message_Id = DXGI_Message_Id(137i32);
1703 pub const DXGI_MSG_IDXGISwapChain_SetFullscreenState_FSTransitionWithCompositionSwapChain: DXGI_Message_Id = DXGI_Message_Id(138i32);
1704 pub const DXGI_MSG_IDXGISwapChain_ResizeTarget_InvalidWithCompositionSwapChain: DXGI_Message_Id = DXGI_Message_Id(139i32);
1705 pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_WidthOrHeightIsZero: DXGI_Message_Id = DXGI_Message_Id(140i32);
1706 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_ScalingNoneIsFlipModelOnly: DXGI_Message_Id = DXGI_Message_Id(141i32);
1707 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_ScalingUnrecognized: DXGI_Message_Id = DXGI_Message_Id(142i32);
1708 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_DisplayOnlyFullscreenUnsupported: DXGI_Message_Id = DXGI_Message_Id(143i32);
1709 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_DisplayOnlyUnsupported: DXGI_Message_Id = DXGI_Message_Id(144i32);
1710 pub const DXGI_MSG_IDXGISwapChain_Present_RestartIsFullscreenOnly: DXGI_Message_Id = DXGI_Message_Id(145i32);
1711 pub const DXGI_MSG_IDXGISwapChain_Present_ProtectedWindowlessPresentationRequiresDisplayOnly: DXGI_Message_Id = DXGI_Message_Id(146i32);
1712 pub const DXGI_MSG_IDXGISwapChain_SetFullscreenState_DisplayOnlyUnsupported: DXGI_Message_Id = DXGI_Message_Id(147i32);
1713 pub const DXGI_MSG_IDXGISwapChain1_SetBackgroundColor_OutOfRange: DXGI_Message_Id = DXGI_Message_Id(148i32);
1714 pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_DisplayOnlyFullscreenUnsupported: DXGI_Message_Id = DXGI_Message_Id(149i32);
1715 pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_DisplayOnlyUnsupported: DXGI_Message_Id = DXGI_Message_Id(150i32);
1716 pub const DXGI_MSG_IDXGISwapchain_Present_ScrollUnsupported: DXGI_Message_Id = DXGI_Message_Id(151i32);
1717 pub const DXGI_MSG_IDXGISwapChain1_SetRotation_UnsupportedOS: DXGI_Message_Id = DXGI_Message_Id(152i32);
1718 pub const DXGI_MSG_IDXGISwapChain1_GetRotation_UnsupportedOS: DXGI_Message_Id = DXGI_Message_Id(153i32);
1719 pub const DXGI_MSG_IDXGISwapchain_Present_FullscreenRotation: DXGI_Message_Id = DXGI_Message_Id(154i32);
1720 pub const DXGI_MSG_IDXGISwapChain_Present_PartialPresentationWithMSAABuffers: DXGI_Message_Id = DXGI_Message_Id(155i32);
1721 pub const DXGI_MSG_IDXGISwapChain1_SetRotation_FlipSequentialRequired: DXGI_Message_Id = DXGI_Message_Id(156i32);
1722 pub const DXGI_MSG_IDXGISwapChain1_SetRotation_InvalidRotation: DXGI_Message_Id = DXGI_Message_Id(157i32);
1723 pub const DXGI_MSG_IDXGISwapChain1_GetRotation_FlipSequentialRequired: DXGI_Message_Id = DXGI_Message_Id(158i32);
1724 pub const DXGI_MSG_IDXGISwapChain_GetHwnd_WrongType: DXGI_Message_Id = DXGI_Message_Id(159i32);
1725 pub const DXGI_MSG_IDXGISwapChain_GetCompositionSurface_WrongType: DXGI_Message_Id = DXGI_Message_Id(160i32);
1726 pub const DXGI_MSG_IDXGISwapChain_GetCoreWindow_WrongType: DXGI_Message_Id = DXGI_Message_Id(161i32);
1727 pub const DXGI_MSG_IDXGISwapChain_GetFullscreenDesc_NonHwnd: DXGI_Message_Id = DXGI_Message_Id(162i32);
1728 pub const DXGI_MSG_IDXGISwapChain_SetFullscreenState_CoreWindow: DXGI_Message_Id = DXGI_Message_Id(163i32);
1729 pub const DXGI_MSG_IDXGIFactory2_CreateSwapChainForCoreWindow_UnsupportedOnWindows7: DXGI_Message_Id = DXGI_Message_Id(164i32);
1730 pub const DXGI_MSG_IDXGIFactory2_CreateSwapChainForCoreWindow_pWindowIsNULL: DXGI_Message_Id = DXGI_Message_Id(165i32);
1731 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_FSUnsupportedForModernApps: DXGI_Message_Id = DXGI_Message_Id(166i32);
1732 pub const DXGI_MSG_IDXGIFactory_MakeWindowAssociation_ModernApp: DXGI_Message_Id = DXGI_Message_Id(167i32);
1733 pub const DXGI_MSG_IDXGISwapChain_ResizeTarget_ModernApp: DXGI_Message_Id = DXGI_Message_Id(168i32);
1734 pub const DXGI_MSG_IDXGISwapChain_ResizeTarget_pNewTargetParametersIsNULL: DXGI_Message_Id = DXGI_Message_Id(169i32);
1735 pub const DXGI_MSG_IDXGIOutput_SetDisplaySurface_ModernApp: DXGI_Message_Id = DXGI_Message_Id(170i32);
1736 pub const DXGI_MSG_IDXGIOutput_TakeOwnership_ModernApp: DXGI_Message_Id = DXGI_Message_Id(171i32);
1737 pub const DXGI_MSG_IDXGIFactory2_CreateSwapChainForCoreWindow_pWindowIsInvalid: DXGI_Message_Id = DXGI_Message_Id(172i32);
1738 pub const DXGI_MSG_IDXGIFactory2_CreateSwapChainForCompositionSurface_InvalidHandle: DXGI_Message_Id = DXGI_Message_Id(173i32);
1739 pub const DXGI_MSG_IDXGISurface1_GetDC_ModernApp: DXGI_Message_Id = DXGI_Message_Id(174i32);
1740 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_ScalingNoneRequiresWindows8OrNewer: DXGI_Message_Id = DXGI_Message_Id(175i32);
1741 pub const DXGI_MSG_IDXGISwapChain_Present_TemporaryMonoAndPreferRight: DXGI_Message_Id = DXGI_Message_Id(176i32);
1742 pub const DXGI_MSG_IDXGISwapChain_Present_TemporaryMonoOrPreferRightWithDoNotSequence: DXGI_Message_Id = DXGI_Message_Id(177i32);
1743 pub const DXGI_MSG_IDXGISwapChain_Present_TemporaryMonoOrPreferRightWithoutStereo: DXGI_Message_Id = DXGI_Message_Id(178i32);
1744 pub const DXGI_MSG_IDXGISwapChain_Present_TemporaryMonoUnsupported: DXGI_Message_Id = DXGI_Message_Id(179i32);
1745 pub const DXGI_MSG_IDXGIOutput_GetDisplaySurfaceData_ArraySizeMismatch: DXGI_Message_Id = DXGI_Message_Id(180i32);
1746 pub const DXGI_MSG_IDXGISwapChain_Present_PartialPresentationWithSwapEffectDiscard: DXGI_Message_Id = DXGI_Message_Id(181i32);
1747 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_AlphaUnrecognized: DXGI_Message_Id = DXGI_Message_Id(182i32);
1748 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_AlphaIsWindowlessOnly: DXGI_Message_Id = DXGI_Message_Id(183i32);
1749 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_AlphaIsFlipModelOnly: DXGI_Message_Id = DXGI_Message_Id(184i32);
1750 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_RestrictToOutputAdapterMismatch: DXGI_Message_Id = DXGI_Message_Id(185i32);
1751 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_DisplayOnlyOnLegacy: DXGI_Message_Id = DXGI_Message_Id(186i32);
1752 pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_DisplayOnlyOnLegacy: DXGI_Message_Id = DXGI_Message_Id(187i32);
1753 pub const DXGI_MSG_IDXGIResource1_CreateSubresourceSurface_InvalidIndex: DXGI_Message_Id = DXGI_Message_Id(188i32);
1754 pub const DXGI_MSG_IDXGIFactory_CreateSwapChainForComposition_InvalidScaling: DXGI_Message_Id = DXGI_Message_Id(189i32);
1755 pub const DXGI_MSG_IDXGIFactory_CreateSwapChainForCoreWindow_InvalidSwapEffect: DXGI_Message_Id = DXGI_Message_Id(190i32);
1756 pub const DXGI_MSG_IDXGIResource1_CreateSharedHandle_UnsupportedOS: DXGI_Message_Id = DXGI_Message_Id(191i32);
1757 pub const DXGI_MSG_IDXGIFactory2_RegisterOcclusionStatusWindow_UnsupportedOS: DXGI_Message_Id = DXGI_Message_Id(192i32);
1758 pub const DXGI_MSG_IDXGIFactory2_RegisterOcclusionStatusEvent_UnsupportedOS: DXGI_Message_Id = DXGI_Message_Id(193i32);
1759 pub const DXGI_MSG_IDXGIOutput1_DuplicateOutput_UnsupportedOS: DXGI_Message_Id = DXGI_Message_Id(194i32);
1760 pub const DXGI_MSG_IDXGIDisplayControl_IsStereoEnabled_UnsupportedOS: DXGI_Message_Id = DXGI_Message_Id(195i32);
1761 pub const DXGI_MSG_IDXGIFactory_CreateSwapChainForComposition_InvalidAlphaMode: DXGI_Message_Id = DXGI_Message_Id(196i32);
1762 pub const DXGI_MSG_IDXGIFactory_GetSharedResourceAdapterLuid_InvalidResource: DXGI_Message_Id = DXGI_Message_Id(197i32);
1763 pub const DXGI_MSG_IDXGIFactory_GetSharedResourceAdapterLuid_InvalidLUID: DXGI_Message_Id = DXGI_Message_Id(198i32);
1764 pub const DXGI_MSG_IDXGIFactory_GetSharedResourceAdapterLuid_UnsupportedOS: DXGI_Message_Id = DXGI_Message_Id(199i32);
1765 pub const DXGI_MSG_IDXGIOutput1_GetDisplaySurfaceData1_2DOnly: DXGI_Message_Id = DXGI_Message_Id(200i32);
1766 pub const DXGI_MSG_IDXGIOutput1_GetDisplaySurfaceData1_StagingOnly: DXGI_Message_Id = DXGI_Message_Id(201i32);
1767 pub const DXGI_MSG_IDXGIOutput1_GetDisplaySurfaceData1_NeedCPUAccessWrite: DXGI_Message_Id = DXGI_Message_Id(202i32);
1768 pub const DXGI_MSG_IDXGIOutput1_GetDisplaySurfaceData1_NoShared: DXGI_Message_Id = DXGI_Message_Id(203i32);
1769 pub const DXGI_MSG_IDXGIOutput1_GetDisplaySurfaceData1_OnlyMipLevels1: DXGI_Message_Id = DXGI_Message_Id(204i32);
1770 pub const DXGI_MSG_IDXGIOutput1_GetDisplaySurfaceData1_MappedOrOfferedResource: DXGI_Message_Id = DXGI_Message_Id(205i32);
1771 pub const DXGI_MSG_IDXGISwapChain_SetFullscreenState_FSUnsupportedForModernApps: DXGI_Message_Id = DXGI_Message_Id(206i32);
1772 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_FailedToGoFSButNonPreRotated: DXGI_Message_Id = DXGI_Message_Id(207i32);
1773 pub const DXGI_MSG_IDXGIFactory_CreateSwapChainOrRegisterOcclusionStatus_BlitModelUsedWhileRegisteredForOcclusionStatusEvents: DXGI_Message_Id = DXGI_Message_Id(208i32);
1774 pub const DXGI_MSG_IDXGISwapChain_Present_BlitModelUsedWhileRegisteredForOcclusionStatusEvents: DXGI_Message_Id = DXGI_Message_Id(209i32);
1775 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_WaitableSwapChainsAreFlipModelOnly: DXGI_Message_Id = DXGI_Message_Id(210i32);
1776 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_WaitableSwapChainsAreNotFullscreen: DXGI_Message_Id = DXGI_Message_Id(211i32);
1777 pub const DXGI_MSG_IDXGISwapChain_SetFullscreenState_Waitable: DXGI_Message_Id = DXGI_Message_Id(212i32);
1778 pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_CannotAddOrRemoveWaitableFlag: DXGI_Message_Id = DXGI_Message_Id(213i32);
1779 pub const DXGI_MSG_IDXGISwapChain_GetFrameLatencyWaitableObject_OnlyWaitable: DXGI_Message_Id = DXGI_Message_Id(214i32);
1780 pub const DXGI_MSG_IDXGISwapChain_GetMaximumFrameLatency_OnlyWaitable: DXGI_Message_Id = DXGI_Message_Id(215i32);
1781 pub const DXGI_MSG_IDXGISwapChain_GetMaximumFrameLatency_pMaxLatencyIsNULL: DXGI_Message_Id = DXGI_Message_Id(216i32);
1782 pub const DXGI_MSG_IDXGISwapChain_SetMaximumFrameLatency_OnlyWaitable: DXGI_Message_Id = DXGI_Message_Id(217i32);
1783 pub const DXGI_MSG_IDXGISwapChain_SetMaximumFrameLatency_MaxLatencyIsOutOfBounds: DXGI_Message_Id = DXGI_Message_Id(218i32);
1784 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_ForegroundIsCoreWindowOnly: DXGI_Message_Id = DXGI_Message_Id(219i32);
1785 pub const DXGI_MSG_IDXGIFactory2_CreateSwapChainForCoreWindow_ForegroundUnsupportedOnAdapter: DXGI_Message_Id = DXGI_Message_Id(220i32);
1786 pub const DXGI_MSG_IDXGIFactory2_CreateSwapChainForCoreWindow_InvalidScaling: DXGI_Message_Id = DXGI_Message_Id(221i32);
1787 pub const DXGI_MSG_IDXGIFactory2_CreateSwapChainForCoreWindow_InvalidAlphaMode: DXGI_Message_Id = DXGI_Message_Id(222i32);
1788 pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_CannotAddOrRemoveForegroundFlag: DXGI_Message_Id = DXGI_Message_Id(223i32);
1789 pub const DXGI_MSG_IDXGISwapChain_SetMatrixTransform_MatrixPointerCannotBeNull: DXGI_Message_Id = DXGI_Message_Id(224i32);
1790 pub const DXGI_MSG_IDXGISwapChain_SetMatrixTransform_RequiresCompositionSwapChain: DXGI_Message_Id = DXGI_Message_Id(225i32);
1791 pub const DXGI_MSG_IDXGISwapChain_SetMatrixTransform_MatrixMustBeFinite: DXGI_Message_Id = DXGI_Message_Id(226i32);
1792 pub const DXGI_MSG_IDXGISwapChain_SetMatrixTransform_MatrixMustBeTranslateAndOrScale: DXGI_Message_Id = DXGI_Message_Id(227i32);
1793 pub const DXGI_MSG_IDXGISwapChain_GetMatrixTransform_MatrixPointerCannotBeNull: DXGI_Message_Id = DXGI_Message_Id(228i32);
1794 pub const DXGI_MSG_IDXGISwapChain_GetMatrixTransform_RequiresCompositionSwapChain: DXGI_Message_Id = DXGI_Message_Id(229i32);
1795 pub const DXGI_MSG_DXGIGetDebugInterface1_NULL_ppDebug: DXGI_Message_Id = DXGI_Message_Id(230i32);
1796 pub const DXGI_MSG_DXGIGetDebugInterface1_InvalidFlags: DXGI_Message_Id = DXGI_Message_Id(231i32);
1797 pub const DXGI_MSG_IDXGISwapChain_Present_Decode: DXGI_Message_Id = DXGI_Message_Id(232i32);
1798 pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_Decode: DXGI_Message_Id = DXGI_Message_Id(233i32);
1799 pub const DXGI_MSG_IDXGISwapChain_SetSourceSize_FlipModel: DXGI_Message_Id = DXGI_Message_Id(234i32);
1800 pub const DXGI_MSG_IDXGISwapChain_SetSourceSize_Decode: DXGI_Message_Id = DXGI_Message_Id(235i32);
1801 pub const DXGI_MSG_IDXGISwapChain_SetSourceSize_WidthHeight: DXGI_Message_Id = DXGI_Message_Id(236i32);
1802 pub const DXGI_MSG_IDXGISwapChain_GetSourceSize_NullPointers: DXGI_Message_Id = DXGI_Message_Id(237i32);
1803 pub const DXGI_MSG_IDXGISwapChain_GetSourceSize_Decode: DXGI_Message_Id = DXGI_Message_Id(238i32);
1804 pub const DXGI_MSG_IDXGIDecodeSwapChain_SetColorSpace_InvalidFlags: DXGI_Message_Id = DXGI_Message_Id(239i32);
1805 pub const DXGI_MSG_IDXGIDecodeSwapChain_SetSourceRect_InvalidRect: DXGI_Message_Id = DXGI_Message_Id(240i32);
1806 pub const DXGI_MSG_IDXGIDecodeSwapChain_SetTargetRect_InvalidRect: DXGI_Message_Id = DXGI_Message_Id(241i32);
1807 pub const DXGI_MSG_IDXGIDecodeSwapChain_SetDestSize_InvalidSize: DXGI_Message_Id = DXGI_Message_Id(242i32);
1808 pub const DXGI_MSG_IDXGIDecodeSwapChain_GetSourceRect_InvalidPointer: DXGI_Message_Id = DXGI_Message_Id(243i32);
1809 pub const DXGI_MSG_IDXGIDecodeSwapChain_GetTargetRect_InvalidPointer: DXGI_Message_Id = DXGI_Message_Id(244i32);
1810 pub const DXGI_MSG_IDXGIDecodeSwapChain_GetDestSize_InvalidPointer: DXGI_Message_Id = DXGI_Message_Id(245i32);
1811 pub const DXGI_MSG_IDXGISwapChain_PresentBuffer_YUV: DXGI_Message_Id = DXGI_Message_Id(246i32);
1812 pub const DXGI_MSG_IDXGISwapChain_SetSourceSize_YUV: DXGI_Message_Id = DXGI_Message_Id(247i32);
1813 pub const DXGI_MSG_IDXGISwapChain_GetSourceSize_YUV: DXGI_Message_Id = DXGI_Message_Id(248i32);
1814 pub const DXGI_MSG_IDXGISwapChain_SetMatrixTransform_YUV: DXGI_Message_Id = DXGI_Message_Id(249i32);
1815 pub const DXGI_MSG_IDXGISwapChain_GetMatrixTransform_YUV: DXGI_Message_Id = DXGI_Message_Id(250i32);
1816 pub const DXGI_MSG_IDXGISwapChain_Present_PartialPresentation_YUV: DXGI_Message_Id = DXGI_Message_Id(251i32);
1817 pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_CannotAddOrRemoveFlag_YUV: DXGI_Message_Id = DXGI_Message_Id(252i32);
1818 pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_Alignment_YUV: DXGI_Message_Id = DXGI_Message_Id(253i32);
1819 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_ShaderInputUnsupported_YUV: DXGI_Message_Id = DXGI_Message_Id(254i32);
1820 pub const DXGI_MSG_IDXGIOutput3_CheckOverlaySupport_NullPointers: DXGI_Message_Id = DXGI_Message_Id(255i32);
1821 pub const DXGI_MSG_IDXGIOutput3_CheckOverlaySupport_IDXGIDeviceNotSupportedBypConcernedDevice: DXGI_Message_Id = DXGI_Message_Id(256i32);
1822 pub const DXGI_MSG_IDXGIAdapter_EnumOutputs2_InvalidEnumOutputs2Flag: DXGI_Message_Id = DXGI_Message_Id(257i32);
1823 pub const DXGI_MSG_IDXGISwapChain_CreationOrSetFullscreenState_FSUnsupportedForFlipDiscard: DXGI_Message_Id = DXGI_Message_Id(258i32);
1824 pub const DXGI_MSG_IDXGIOutput4_CheckOverlayColorSpaceSupport_NullPointers: DXGI_Message_Id = DXGI_Message_Id(259i32);
1825 pub const DXGI_MSG_IDXGIOutput4_CheckOverlayColorSpaceSupport_IDXGIDeviceNotSupportedBypConcernedDevice: DXGI_Message_Id = DXGI_Message_Id(260i32);
1826 pub const DXGI_MSG_IDXGISwapChain3_CheckColorSpaceSupport_NullPointers: DXGI_Message_Id = DXGI_Message_Id(261i32);
1827 pub const DXGI_MSG_IDXGISwapChain3_SetColorSpace1_InvalidColorSpace: DXGI_Message_Id = DXGI_Message_Id(262i32);
1828 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_InvalidHwProtect: DXGI_Message_Id = DXGI_Message_Id(263i32);
1829 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_HwProtectUnsupported: DXGI_Message_Id = DXGI_Message_Id(264i32);
1830 pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_InvalidHwProtect: DXGI_Message_Id = DXGI_Message_Id(265i32);
1831 pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_HwProtectUnsupported: DXGI_Message_Id = DXGI_Message_Id(266i32);
1832 pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers1_D3D12Only: DXGI_Message_Id = DXGI_Message_Id(267i32);
1833 pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers1_FlipModel: DXGI_Message_Id = DXGI_Message_Id(268i32);
1834 pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers1_NodeMaskAndQueueRequired: DXGI_Message_Id = DXGI_Message_Id(269i32);
1835 pub const DXGI_MSG_IDXGISwapChain_CreateSwapChain_InvalidHwProtectGdiFlag: DXGI_Message_Id = DXGI_Message_Id(270i32);
1836 pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_InvalidHwProtectGdiFlag: DXGI_Message_Id = DXGI_Message_Id(271i32);
1837 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_10BitFormatNotSupported: DXGI_Message_Id = DXGI_Message_Id(272i32);
1838 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_FlipSwapEffectRequired: DXGI_Message_Id = DXGI_Message_Id(273i32);
1839 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_InvalidDevice: DXGI_Message_Id = DXGI_Message_Id(274i32);
1840 pub const DXGI_MSG_IDXGIOutput_TakeOwnership_Unsupported: DXGI_Message_Id = DXGI_Message_Id(275i32);
1841 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_InvalidQueue: DXGI_Message_Id = DXGI_Message_Id(276i32);
1842 pub const DXGI_MSG_IDXGISwapChain3_ResizeBuffers1_InvalidQueue: DXGI_Message_Id = DXGI_Message_Id(277i32);
1843 pub const DXGI_MSG_IDXGIFactory_CreateSwapChainForHwnd_InvalidScaling: DXGI_Message_Id = DXGI_Message_Id(278i32);
1844 pub const DXGI_MSG_IDXGISwapChain3_SetHDRMetaData_InvalidSize: DXGI_Message_Id = DXGI_Message_Id(279i32);
1845 pub const DXGI_MSG_IDXGISwapChain3_SetHDRMetaData_InvalidPointer: DXGI_Message_Id = DXGI_Message_Id(280i32);
1846 pub const DXGI_MSG_IDXGISwapChain3_SetHDRMetaData_InvalidType: DXGI_Message_Id = DXGI_Message_Id(281i32);
1847 pub const DXGI_MSG_IDXGISwapChain_Present_FullscreenAllowTearingIsInvalid: DXGI_Message_Id = DXGI_Message_Id(282i32);
1848 pub const DXGI_MSG_IDXGISwapChain_Present_AllowTearingRequiresPresentIntervalZero: DXGI_Message_Id = DXGI_Message_Id(283i32);
1849 pub const DXGI_MSG_IDXGISwapChain_Present_AllowTearingRequiresCreationFlag: DXGI_Message_Id = DXGI_Message_Id(284i32);
1850 pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_CannotAddOrRemoveAllowTearingFlag: DXGI_Message_Id = DXGI_Message_Id(285i32);
1851 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_AllowTearingFlagIsFlipModelOnly: DXGI_Message_Id = DXGI_Message_Id(286i32);
1852 pub const DXGI_MSG_IDXGIFactory_CheckFeatureSupport_InvalidFeature: DXGI_Message_Id = DXGI_Message_Id(287i32);
1853 pub const DXGI_MSG_IDXGIFactory_CheckFeatureSupport_InvalidSize: DXGI_Message_Id = DXGI_Message_Id(288i32);
1854 pub const DXGI_MSG_IDXGIOutput6_CheckHardwareCompositionSupport_NullPointer: DXGI_Message_Id = DXGI_Message_Id(289i32);
1855 pub const DXGI_MSG_IDXGISwapChain_SetFullscreenState_PerMonitorDpiShimApplied: DXGI_Message_Id = DXGI_Message_Id(290i32);
1856 pub const DXGI_MSG_IDXGIOutput_DuplicateOutput_PerMonitorDpiShimApplied: DXGI_Message_Id = DXGI_Message_Id(291i32);
1857 pub const DXGI_MSG_IDXGIOutput_DuplicateOutput1_PerMonitorDpiRequired: DXGI_Message_Id = DXGI_Message_Id(292i32);
1858 pub const DXGI_MSG_IDXGIFactory7_UnregisterAdaptersChangedEvent_CookieNotFound: DXGI_Message_Id = DXGI_Message_Id(293i32);
1859 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_LegacyBltModelSwapEffect: DXGI_Message_Id = DXGI_Message_Id(294i32);
1860 pub const DXGI_MSG_IDXGISwapChain4_SetHDRMetaData_MetadataUnchanged: DXGI_Message_Id = DXGI_Message_Id(295i32);
1861 pub const DXGI_MSG_IDXGISwapChain_Present_11On12_Released_Resource: DXGI_Message_Id = DXGI_Message_Id(296i32);
1862 pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_MultipleSwapchainRefToSurface_DeferredDtr: DXGI_Message_Id = DXGI_Message_Id(297i32);
1863 pub const DXGI_MSG_IDXGIFactory_MakeWindowAssociation_NoOpBehavior: DXGI_Message_Id = DXGI_Message_Id(298i32);
1864 pub const DXGI_MSG_Phone_IDXGIFactory_CreateSwapChain_NotForegroundWindow: DXGI_Message_Id = DXGI_Message_Id(1000i32);
1865 pub const DXGI_MSG_Phone_IDXGIFactory_CreateSwapChain_DISCARD_BufferCount: DXGI_Message_Id = DXGI_Message_Id(1001i32);
1866 pub const DXGI_MSG_Phone_IDXGISwapChain_SetFullscreenState_NotAvailable: DXGI_Message_Id = DXGI_Message_Id(1002i32);
1867 pub const DXGI_MSG_Phone_IDXGISwapChain_ResizeBuffers_NotAvailable: DXGI_Message_Id = DXGI_Message_Id(1003i32);
1868 pub const DXGI_MSG_Phone_IDXGISwapChain_ResizeTarget_NotAvailable: DXGI_Message_Id = DXGI_Message_Id(1004i32);
1869 pub const DXGI_MSG_Phone_IDXGISwapChain_Present_InvalidLayerIndex: DXGI_Message_Id = DXGI_Message_Id(1005i32);
1870 pub const DXGI_MSG_Phone_IDXGISwapChain_Present_MultipleLayerIndex: DXGI_Message_Id = DXGI_Message_Id(1006i32);
1871 pub const DXGI_MSG_Phone_IDXGISwapChain_Present_InvalidLayerFlag: DXGI_Message_Id = DXGI_Message_Id(1007i32);
1872 pub const DXGI_MSG_Phone_IDXGISwapChain_Present_InvalidRotation: DXGI_Message_Id = DXGI_Message_Id(1008i32);
1873 pub const DXGI_MSG_Phone_IDXGISwapChain_Present_InvalidBlend: DXGI_Message_Id = DXGI_Message_Id(1009i32);
1874 pub const DXGI_MSG_Phone_IDXGISwapChain_Present_InvalidResource: DXGI_Message_Id = DXGI_Message_Id(1010i32);
1875 pub const DXGI_MSG_Phone_IDXGISwapChain_Present_InvalidMultiPlaneOverlayResource: DXGI_Message_Id = DXGI_Message_Id(1011i32);
1876 pub const DXGI_MSG_Phone_IDXGISwapChain_Present_InvalidIndexForPrimary: DXGI_Message_Id = DXGI_Message_Id(1012i32);
1877 pub const DXGI_MSG_Phone_IDXGISwapChain_Present_InvalidIndexForOverlay: DXGI_Message_Id = DXGI_Message_Id(1013i32);
1878 pub const DXGI_MSG_Phone_IDXGISwapChain_Present_InvalidSubResourceIndex: DXGI_Message_Id = DXGI_Message_Id(1014i32);
1879 pub const DXGI_MSG_Phone_IDXGISwapChain_Present_InvalidSourceRect: DXGI_Message_Id = DXGI_Message_Id(1015i32);
1880 pub const DXGI_MSG_Phone_IDXGISwapChain_Present_InvalidDestinationRect: DXGI_Message_Id = DXGI_Message_Id(1016i32);
1881 pub const DXGI_MSG_Phone_IDXGISwapChain_Present_MultipleResource: DXGI_Message_Id = DXGI_Message_Id(1017i32);
1882 pub const DXGI_MSG_Phone_IDXGISwapChain_Present_NotSharedResource: DXGI_Message_Id = DXGI_Message_Id(1018i32);
1883 pub const DXGI_MSG_Phone_IDXGISwapChain_Present_InvalidFlag: DXGI_Message_Id = DXGI_Message_Id(1019i32);
1884 pub const DXGI_MSG_Phone_IDXGISwapChain_Present_InvalidInterval: DXGI_Message_Id = DXGI_Message_Id(1020i32);
1885 pub const DXGI_MSG_Phone_IDXGIFactory_CreateSwapChain_MSAA_NotSupported: DXGI_Message_Id = DXGI_Message_Id(1021i32);
1886 pub const DXGI_MSG_Phone_IDXGIFactory_CreateSwapChain_ScalingAspectRatioStretch_Supported_ModernApp: DXGI_Message_Id = DXGI_Message_Id(1022i32);
1887 pub const DXGI_MSG_Phone_IDXGISwapChain_GetFrameStatistics_NotAvailable_ModernApp: DXGI_Message_Id = DXGI_Message_Id(1023i32);
1888 pub const DXGI_MSG_Phone_IDXGISwapChain_Present_ReplaceInterval0With1: DXGI_Message_Id = DXGI_Message_Id(1024i32);
1889 pub const DXGI_MSG_Phone_IDXGIFactory_CreateSwapChain_FailedRegisterWithCompositor: DXGI_Message_Id = DXGI_Message_Id(1025i32);
1890 pub const DXGI_MSG_Phone_IDXGIFactory_CreateSwapChain_NotForegroundWindow_AtRendering: DXGI_Message_Id = DXGI_Message_Id(1026i32);
1891 pub const DXGI_MSG_Phone_IDXGIFactory_CreateSwapChain_FLIP_SEQUENTIAL_BufferCount: DXGI_Message_Id = DXGI_Message_Id(1027i32);
1892 pub const DXGI_MSG_Phone_IDXGIFactory_CreateSwapChain_FLIP_Modern_CoreWindow_Only: DXGI_Message_Id = DXGI_Message_Id(1028i32);
1893 pub const DXGI_MSG_Phone_IDXGISwapChain_Present1_RequiresOverlays: DXGI_Message_Id = DXGI_Message_Id(1029i32);
1894 pub const DXGI_MSG_Phone_IDXGISwapChain_SetBackgroundColor_FlipSequentialRequired: DXGI_Message_Id = DXGI_Message_Id(1030i32);
1895 pub const DXGI_MSG_Phone_IDXGISwapChain_GetBackgroundColor_FlipSequentialRequired: DXGI_Message_Id = DXGI_Message_Id(1031i32);
1896 impl ::std::convert::From<i32> for DXGI_Message_Id {
from(value: i32) -> Self1897     fn from(value: i32) -> Self {
1898         Self(value)
1899     }
1900 }
1901 unsafe impl ::windows::runtime::Abi for DXGI_Message_Id {
1902     type Abi = Self;
1903     type DefaultType = Self;
1904 }
1905 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1906 #[repr(transparent)]
1907 pub struct DXGI_OFFER_RESOURCE_FLAGS(pub i32);
1908 pub const DXGI_OFFER_RESOURCE_FLAG_ALLOW_DECOMMIT: DXGI_OFFER_RESOURCE_FLAGS = DXGI_OFFER_RESOURCE_FLAGS(1i32);
1909 impl ::std::convert::From<i32> for DXGI_OFFER_RESOURCE_FLAGS {
from(value: i32) -> Self1910     fn from(value: i32) -> Self {
1911         Self(value)
1912     }
1913 }
1914 unsafe impl ::windows::runtime::Abi for DXGI_OFFER_RESOURCE_FLAGS {
1915     type Abi = Self;
1916     type DefaultType = Self;
1917 }
1918 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1919 #[repr(transparent)]
1920 pub struct DXGI_OFFER_RESOURCE_PRIORITY(pub i32);
1921 pub const DXGI_OFFER_RESOURCE_PRIORITY_LOW: DXGI_OFFER_RESOURCE_PRIORITY = DXGI_OFFER_RESOURCE_PRIORITY(1i32);
1922 pub const DXGI_OFFER_RESOURCE_PRIORITY_NORMAL: DXGI_OFFER_RESOURCE_PRIORITY = DXGI_OFFER_RESOURCE_PRIORITY(2i32);
1923 pub const DXGI_OFFER_RESOURCE_PRIORITY_HIGH: DXGI_OFFER_RESOURCE_PRIORITY = DXGI_OFFER_RESOURCE_PRIORITY(3i32);
1924 impl ::std::convert::From<i32> for DXGI_OFFER_RESOURCE_PRIORITY {
from(value: i32) -> Self1925     fn from(value: i32) -> Self {
1926         Self(value)
1927     }
1928 }
1929 unsafe impl ::windows::runtime::Abi for DXGI_OFFER_RESOURCE_PRIORITY {
1930     type Abi = Self;
1931     type DefaultType = Self;
1932 }
1933 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
1934 #[repr(C)]
1935 #[cfg(feature = "Win32_Foundation")]
1936 pub struct DXGI_OUTDUPL_DESC {
1937     pub ModeDesc: DXGI_MODE_DESC,
1938     pub Rotation: DXGI_MODE_ROTATION,
1939     pub DesktopImageInSystemMemory: super::super::Foundation::BOOL,
1940 }
1941 #[cfg(feature = "Win32_Foundation")]
1942 impl DXGI_OUTDUPL_DESC {}
1943 #[cfg(feature = "Win32_Foundation")]
1944 impl ::std::default::Default for DXGI_OUTDUPL_DESC {
default() -> Self1945     fn default() -> Self {
1946         unsafe { ::std::mem::zeroed() }
1947     }
1948 }
1949 #[cfg(feature = "Win32_Foundation")]
1950 impl ::std::fmt::Debug for DXGI_OUTDUPL_DESC {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1951     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1952         fmt.debug_struct("DXGI_OUTDUPL_DESC").field("ModeDesc", &self.ModeDesc).field("Rotation", &self.Rotation).field("DesktopImageInSystemMemory", &self.DesktopImageInSystemMemory).finish()
1953     }
1954 }
1955 #[cfg(feature = "Win32_Foundation")]
1956 impl ::std::cmp::PartialEq for DXGI_OUTDUPL_DESC {
eq(&self, other: &Self) -> bool1957     fn eq(&self, other: &Self) -> bool {
1958         self.ModeDesc == other.ModeDesc && self.Rotation == other.Rotation && self.DesktopImageInSystemMemory == other.DesktopImageInSystemMemory
1959     }
1960 }
1961 #[cfg(feature = "Win32_Foundation")]
1962 impl ::std::cmp::Eq for DXGI_OUTDUPL_DESC {}
1963 #[cfg(feature = "Win32_Foundation")]
1964 unsafe impl ::windows::runtime::Abi for DXGI_OUTDUPL_DESC {
1965     type Abi = Self;
1966     type DefaultType = Self;
1967 }
1968 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1969 #[repr(transparent)]
1970 pub struct DXGI_OUTDUPL_FLAG(pub i32);
1971 pub const DXGI_OUTDUPL_COMPOSITED_UI_CAPTURE_ONLY: DXGI_OUTDUPL_FLAG = DXGI_OUTDUPL_FLAG(1i32);
1972 impl ::std::convert::From<i32> for DXGI_OUTDUPL_FLAG {
from(value: i32) -> Self1973     fn from(value: i32) -> Self {
1974         Self(value)
1975     }
1976 }
1977 unsafe impl ::windows::runtime::Abi for DXGI_OUTDUPL_FLAG {
1978     type Abi = Self;
1979     type DefaultType = Self;
1980 }
1981 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
1982 #[repr(C)]
1983 #[cfg(feature = "Win32_Foundation")]
1984 pub struct DXGI_OUTDUPL_FRAME_INFO {
1985     pub LastPresentTime: i64,
1986     pub LastMouseUpdateTime: i64,
1987     pub AccumulatedFrames: u32,
1988     pub RectsCoalesced: super::super::Foundation::BOOL,
1989     pub ProtectedContentMaskedOut: super::super::Foundation::BOOL,
1990     pub PointerPosition: DXGI_OUTDUPL_POINTER_POSITION,
1991     pub TotalMetadataBufferSize: u32,
1992     pub PointerShapeBufferSize: u32,
1993 }
1994 #[cfg(feature = "Win32_Foundation")]
1995 impl DXGI_OUTDUPL_FRAME_INFO {}
1996 #[cfg(feature = "Win32_Foundation")]
1997 impl ::std::default::Default for DXGI_OUTDUPL_FRAME_INFO {
default() -> Self1998     fn default() -> Self {
1999         unsafe { ::std::mem::zeroed() }
2000     }
2001 }
2002 #[cfg(feature = "Win32_Foundation")]
2003 impl ::std::fmt::Debug for DXGI_OUTDUPL_FRAME_INFO {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result2004     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2005         fmt.debug_struct("DXGI_OUTDUPL_FRAME_INFO")
2006             .field("LastPresentTime", &self.LastPresentTime)
2007             .field("LastMouseUpdateTime", &self.LastMouseUpdateTime)
2008             .field("AccumulatedFrames", &self.AccumulatedFrames)
2009             .field("RectsCoalesced", &self.RectsCoalesced)
2010             .field("ProtectedContentMaskedOut", &self.ProtectedContentMaskedOut)
2011             .field("PointerPosition", &self.PointerPosition)
2012             .field("TotalMetadataBufferSize", &self.TotalMetadataBufferSize)
2013             .field("PointerShapeBufferSize", &self.PointerShapeBufferSize)
2014             .finish()
2015     }
2016 }
2017 #[cfg(feature = "Win32_Foundation")]
2018 impl ::std::cmp::PartialEq for DXGI_OUTDUPL_FRAME_INFO {
eq(&self, other: &Self) -> bool2019     fn eq(&self, other: &Self) -> bool {
2020         self.LastPresentTime == other.LastPresentTime && self.LastMouseUpdateTime == other.LastMouseUpdateTime && self.AccumulatedFrames == other.AccumulatedFrames && self.RectsCoalesced == other.RectsCoalesced && self.ProtectedContentMaskedOut == other.ProtectedContentMaskedOut && self.PointerPosition == other.PointerPosition && self.TotalMetadataBufferSize == other.TotalMetadataBufferSize && self.PointerShapeBufferSize == other.PointerShapeBufferSize
2021     }
2022 }
2023 #[cfg(feature = "Win32_Foundation")]
2024 impl ::std::cmp::Eq for DXGI_OUTDUPL_FRAME_INFO {}
2025 #[cfg(feature = "Win32_Foundation")]
2026 unsafe impl ::windows::runtime::Abi for DXGI_OUTDUPL_FRAME_INFO {
2027     type Abi = Self;
2028     type DefaultType = Self;
2029 }
2030 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
2031 #[repr(C)]
2032 #[cfg(feature = "Win32_Foundation")]
2033 pub struct DXGI_OUTDUPL_MOVE_RECT {
2034     pub SourcePoint: super::super::Foundation::POINT,
2035     pub DestinationRect: super::super::Foundation::RECT,
2036 }
2037 #[cfg(feature = "Win32_Foundation")]
2038 impl DXGI_OUTDUPL_MOVE_RECT {}
2039 #[cfg(feature = "Win32_Foundation")]
2040 impl ::std::default::Default for DXGI_OUTDUPL_MOVE_RECT {
default() -> Self2041     fn default() -> Self {
2042         unsafe { ::std::mem::zeroed() }
2043     }
2044 }
2045 #[cfg(feature = "Win32_Foundation")]
2046 impl ::std::fmt::Debug for DXGI_OUTDUPL_MOVE_RECT {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result2047     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2048         fmt.debug_struct("DXGI_OUTDUPL_MOVE_RECT").field("SourcePoint", &self.SourcePoint).field("DestinationRect", &self.DestinationRect).finish()
2049     }
2050 }
2051 #[cfg(feature = "Win32_Foundation")]
2052 impl ::std::cmp::PartialEq for DXGI_OUTDUPL_MOVE_RECT {
eq(&self, other: &Self) -> bool2053     fn eq(&self, other: &Self) -> bool {
2054         self.SourcePoint == other.SourcePoint && self.DestinationRect == other.DestinationRect
2055     }
2056 }
2057 #[cfg(feature = "Win32_Foundation")]
2058 impl ::std::cmp::Eq for DXGI_OUTDUPL_MOVE_RECT {}
2059 #[cfg(feature = "Win32_Foundation")]
2060 unsafe impl ::windows::runtime::Abi for DXGI_OUTDUPL_MOVE_RECT {
2061     type Abi = Self;
2062     type DefaultType = Self;
2063 }
2064 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
2065 #[repr(C)]
2066 #[cfg(feature = "Win32_Foundation")]
2067 pub struct DXGI_OUTDUPL_POINTER_POSITION {
2068     pub Position: super::super::Foundation::POINT,
2069     pub Visible: super::super::Foundation::BOOL,
2070 }
2071 #[cfg(feature = "Win32_Foundation")]
2072 impl DXGI_OUTDUPL_POINTER_POSITION {}
2073 #[cfg(feature = "Win32_Foundation")]
2074 impl ::std::default::Default for DXGI_OUTDUPL_POINTER_POSITION {
default() -> Self2075     fn default() -> Self {
2076         unsafe { ::std::mem::zeroed() }
2077     }
2078 }
2079 #[cfg(feature = "Win32_Foundation")]
2080 impl ::std::fmt::Debug for DXGI_OUTDUPL_POINTER_POSITION {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result2081     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2082         fmt.debug_struct("DXGI_OUTDUPL_POINTER_POSITION").field("Position", &self.Position).field("Visible", &self.Visible).finish()
2083     }
2084 }
2085 #[cfg(feature = "Win32_Foundation")]
2086 impl ::std::cmp::PartialEq for DXGI_OUTDUPL_POINTER_POSITION {
eq(&self, other: &Self) -> bool2087     fn eq(&self, other: &Self) -> bool {
2088         self.Position == other.Position && self.Visible == other.Visible
2089     }
2090 }
2091 #[cfg(feature = "Win32_Foundation")]
2092 impl ::std::cmp::Eq for DXGI_OUTDUPL_POINTER_POSITION {}
2093 #[cfg(feature = "Win32_Foundation")]
2094 unsafe impl ::windows::runtime::Abi for DXGI_OUTDUPL_POINTER_POSITION {
2095     type Abi = Self;
2096     type DefaultType = Self;
2097 }
2098 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
2099 #[repr(C)]
2100 #[cfg(feature = "Win32_Foundation")]
2101 pub struct DXGI_OUTDUPL_POINTER_SHAPE_INFO {
2102     pub Type: u32,
2103     pub Width: u32,
2104     pub Height: u32,
2105     pub Pitch: u32,
2106     pub HotSpot: super::super::Foundation::POINT,
2107 }
2108 #[cfg(feature = "Win32_Foundation")]
2109 impl DXGI_OUTDUPL_POINTER_SHAPE_INFO {}
2110 #[cfg(feature = "Win32_Foundation")]
2111 impl ::std::default::Default for DXGI_OUTDUPL_POINTER_SHAPE_INFO {
default() -> Self2112     fn default() -> Self {
2113         unsafe { ::std::mem::zeroed() }
2114     }
2115 }
2116 #[cfg(feature = "Win32_Foundation")]
2117 impl ::std::fmt::Debug for DXGI_OUTDUPL_POINTER_SHAPE_INFO {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result2118     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2119         fmt.debug_struct("DXGI_OUTDUPL_POINTER_SHAPE_INFO").field("Type", &self.Type).field("Width", &self.Width).field("Height", &self.Height).field("Pitch", &self.Pitch).field("HotSpot", &self.HotSpot).finish()
2120     }
2121 }
2122 #[cfg(feature = "Win32_Foundation")]
2123 impl ::std::cmp::PartialEq for DXGI_OUTDUPL_POINTER_SHAPE_INFO {
eq(&self, other: &Self) -> bool2124     fn eq(&self, other: &Self) -> bool {
2125         self.Type == other.Type && self.Width == other.Width && self.Height == other.Height && self.Pitch == other.Pitch && self.HotSpot == other.HotSpot
2126     }
2127 }
2128 #[cfg(feature = "Win32_Foundation")]
2129 impl ::std::cmp::Eq for DXGI_OUTDUPL_POINTER_SHAPE_INFO {}
2130 #[cfg(feature = "Win32_Foundation")]
2131 unsafe impl ::windows::runtime::Abi for DXGI_OUTDUPL_POINTER_SHAPE_INFO {
2132     type Abi = Self;
2133     type DefaultType = Self;
2134 }
2135 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2136 #[repr(transparent)]
2137 pub struct DXGI_OUTDUPL_POINTER_SHAPE_TYPE(pub i32);
2138 pub const DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MONOCHROME: DXGI_OUTDUPL_POINTER_SHAPE_TYPE = DXGI_OUTDUPL_POINTER_SHAPE_TYPE(1i32);
2139 pub const DXGI_OUTDUPL_POINTER_SHAPE_TYPE_COLOR: DXGI_OUTDUPL_POINTER_SHAPE_TYPE = DXGI_OUTDUPL_POINTER_SHAPE_TYPE(2i32);
2140 pub const DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MASKED_COLOR: DXGI_OUTDUPL_POINTER_SHAPE_TYPE = DXGI_OUTDUPL_POINTER_SHAPE_TYPE(4i32);
2141 impl ::std::convert::From<i32> for DXGI_OUTDUPL_POINTER_SHAPE_TYPE {
from(value: i32) -> Self2142     fn from(value: i32) -> Self {
2143         Self(value)
2144     }
2145 }
2146 unsafe impl ::windows::runtime::Abi for DXGI_OUTDUPL_POINTER_SHAPE_TYPE {
2147     type Abi = Self;
2148     type DefaultType = Self;
2149 }
2150 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
2151 #[repr(C)]
2152 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
2153 pub struct DXGI_OUTPUT_DESC {
2154     pub DeviceName: [u16; 32],
2155     pub DesktopCoordinates: super::super::Foundation::RECT,
2156     pub AttachedToDesktop: super::super::Foundation::BOOL,
2157     pub Rotation: DXGI_MODE_ROTATION,
2158     pub Monitor: super::Gdi::HMONITOR,
2159 }
2160 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
2161 impl DXGI_OUTPUT_DESC {}
2162 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
2163 impl ::std::default::Default for DXGI_OUTPUT_DESC {
default() -> Self2164     fn default() -> Self {
2165         unsafe { ::std::mem::zeroed() }
2166     }
2167 }
2168 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
2169 impl ::std::fmt::Debug for DXGI_OUTPUT_DESC {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result2170     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2171         fmt.debug_struct("DXGI_OUTPUT_DESC").field("DeviceName", &self.DeviceName).field("DesktopCoordinates", &self.DesktopCoordinates).field("AttachedToDesktop", &self.AttachedToDesktop).field("Rotation", &self.Rotation).field("Monitor", &self.Monitor).finish()
2172     }
2173 }
2174 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
2175 impl ::std::cmp::PartialEq for DXGI_OUTPUT_DESC {
eq(&self, other: &Self) -> bool2176     fn eq(&self, other: &Self) -> bool {
2177         self.DeviceName == other.DeviceName && self.DesktopCoordinates == other.DesktopCoordinates && self.AttachedToDesktop == other.AttachedToDesktop && self.Rotation == other.Rotation && self.Monitor == other.Monitor
2178     }
2179 }
2180 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
2181 impl ::std::cmp::Eq for DXGI_OUTPUT_DESC {}
2182 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
2183 unsafe impl ::windows::runtime::Abi for DXGI_OUTPUT_DESC {
2184     type Abi = Self;
2185     type DefaultType = Self;
2186 }
2187 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
2188 #[repr(C)]
2189 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
2190 pub struct DXGI_OUTPUT_DESC1 {
2191     pub DeviceName: [u16; 32],
2192     pub DesktopCoordinates: super::super::Foundation::RECT,
2193     pub AttachedToDesktop: super::super::Foundation::BOOL,
2194     pub Rotation: DXGI_MODE_ROTATION,
2195     pub Monitor: super::Gdi::HMONITOR,
2196     pub BitsPerColor: u32,
2197     pub ColorSpace: DXGI_COLOR_SPACE_TYPE,
2198     pub RedPrimary: [f32; 2],
2199     pub GreenPrimary: [f32; 2],
2200     pub BluePrimary: [f32; 2],
2201     pub WhitePoint: [f32; 2],
2202     pub MinLuminance: f32,
2203     pub MaxLuminance: f32,
2204     pub MaxFullFrameLuminance: f32,
2205 }
2206 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
2207 impl DXGI_OUTPUT_DESC1 {}
2208 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
2209 impl ::std::default::Default for DXGI_OUTPUT_DESC1 {
default() -> Self2210     fn default() -> Self {
2211         unsafe { ::std::mem::zeroed() }
2212     }
2213 }
2214 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
2215 impl ::std::fmt::Debug for DXGI_OUTPUT_DESC1 {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result2216     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2217         fmt.debug_struct("DXGI_OUTPUT_DESC1")
2218             .field("DeviceName", &self.DeviceName)
2219             .field("DesktopCoordinates", &self.DesktopCoordinates)
2220             .field("AttachedToDesktop", &self.AttachedToDesktop)
2221             .field("Rotation", &self.Rotation)
2222             .field("Monitor", &self.Monitor)
2223             .field("BitsPerColor", &self.BitsPerColor)
2224             .field("ColorSpace", &self.ColorSpace)
2225             .field("RedPrimary", &self.RedPrimary)
2226             .field("GreenPrimary", &self.GreenPrimary)
2227             .field("BluePrimary", &self.BluePrimary)
2228             .field("WhitePoint", &self.WhitePoint)
2229             .field("MinLuminance", &self.MinLuminance)
2230             .field("MaxLuminance", &self.MaxLuminance)
2231             .field("MaxFullFrameLuminance", &self.MaxFullFrameLuminance)
2232             .finish()
2233     }
2234 }
2235 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
2236 impl ::std::cmp::PartialEq for DXGI_OUTPUT_DESC1 {
eq(&self, other: &Self) -> bool2237     fn eq(&self, other: &Self) -> bool {
2238         self.DeviceName == other.DeviceName
2239             && self.DesktopCoordinates == other.DesktopCoordinates
2240             && self.AttachedToDesktop == other.AttachedToDesktop
2241             && self.Rotation == other.Rotation
2242             && self.Monitor == other.Monitor
2243             && self.BitsPerColor == other.BitsPerColor
2244             && self.ColorSpace == other.ColorSpace
2245             && self.RedPrimary == other.RedPrimary
2246             && self.GreenPrimary == other.GreenPrimary
2247             && self.BluePrimary == other.BluePrimary
2248             && self.WhitePoint == other.WhitePoint
2249             && self.MinLuminance == other.MinLuminance
2250             && self.MaxLuminance == other.MaxLuminance
2251             && self.MaxFullFrameLuminance == other.MaxFullFrameLuminance
2252     }
2253 }
2254 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
2255 impl ::std::cmp::Eq for DXGI_OUTPUT_DESC1 {}
2256 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
2257 unsafe impl ::windows::runtime::Abi for DXGI_OUTPUT_DESC1 {
2258     type Abi = Self;
2259     type DefaultType = Self;
2260 }
2261 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2262 #[repr(transparent)]
2263 pub struct DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG(pub i32);
2264 pub const DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG_PRESENT: DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG = DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG(1i32);
2265 impl ::std::convert::From<i32> for DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG {
from(value: i32) -> Self2266     fn from(value: i32) -> Self {
2267         Self(value)
2268     }
2269 }
2270 unsafe impl ::windows::runtime::Abi for DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG {
2271     type Abi = Self;
2272     type DefaultType = Self;
2273 }
2274 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2275 #[repr(transparent)]
2276 pub struct DXGI_OVERLAY_SUPPORT_FLAG(pub i32);
2277 pub const DXGI_OVERLAY_SUPPORT_FLAG_DIRECT: DXGI_OVERLAY_SUPPORT_FLAG = DXGI_OVERLAY_SUPPORT_FLAG(1i32);
2278 pub const DXGI_OVERLAY_SUPPORT_FLAG_SCALING: DXGI_OVERLAY_SUPPORT_FLAG = DXGI_OVERLAY_SUPPORT_FLAG(2i32);
2279 impl ::std::convert::From<i32> for DXGI_OVERLAY_SUPPORT_FLAG {
from(value: i32) -> Self2280     fn from(value: i32) -> Self {
2281         Self(value)
2282     }
2283 }
2284 unsafe impl ::windows::runtime::Abi for DXGI_OVERLAY_SUPPORT_FLAG {
2285     type Abi = Self;
2286     type DefaultType = Self;
2287 }
2288 pub const DXGI_PRESENT_ALLOW_TEARING: u32 = 512u32;
2289 pub const DXGI_PRESENT_DO_NOT_SEQUENCE: u32 = 2u32;
2290 pub const DXGI_PRESENT_DO_NOT_WAIT: u32 = 8u32;
2291 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
2292 #[repr(C)]
2293 #[cfg(feature = "Win32_Foundation")]
2294 pub struct DXGI_PRESENT_PARAMETERS {
2295     pub DirtyRectsCount: u32,
2296     pub pDirtyRects: *mut super::super::Foundation::RECT,
2297     pub pScrollRect: *mut super::super::Foundation::RECT,
2298     pub pScrollOffset: *mut super::super::Foundation::POINT,
2299 }
2300 #[cfg(feature = "Win32_Foundation")]
2301 impl DXGI_PRESENT_PARAMETERS {}
2302 #[cfg(feature = "Win32_Foundation")]
2303 impl ::std::default::Default for DXGI_PRESENT_PARAMETERS {
default() -> Self2304     fn default() -> Self {
2305         unsafe { ::std::mem::zeroed() }
2306     }
2307 }
2308 #[cfg(feature = "Win32_Foundation")]
2309 impl ::std::fmt::Debug for DXGI_PRESENT_PARAMETERS {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result2310     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2311         fmt.debug_struct("DXGI_PRESENT_PARAMETERS").field("DirtyRectsCount", &self.DirtyRectsCount).field("pDirtyRects", &self.pDirtyRects).field("pScrollRect", &self.pScrollRect).field("pScrollOffset", &self.pScrollOffset).finish()
2312     }
2313 }
2314 #[cfg(feature = "Win32_Foundation")]
2315 impl ::std::cmp::PartialEq for DXGI_PRESENT_PARAMETERS {
eq(&self, other: &Self) -> bool2316     fn eq(&self, other: &Self) -> bool {
2317         self.DirtyRectsCount == other.DirtyRectsCount && self.pDirtyRects == other.pDirtyRects && self.pScrollRect == other.pScrollRect && self.pScrollOffset == other.pScrollOffset
2318     }
2319 }
2320 #[cfg(feature = "Win32_Foundation")]
2321 impl ::std::cmp::Eq for DXGI_PRESENT_PARAMETERS {}
2322 #[cfg(feature = "Win32_Foundation")]
2323 unsafe impl ::windows::runtime::Abi for DXGI_PRESENT_PARAMETERS {
2324     type Abi = Self;
2325     type DefaultType = Self;
2326 }
2327 pub const DXGI_PRESENT_RESTART: u32 = 4u32;
2328 pub const DXGI_PRESENT_RESTRICT_TO_OUTPUT: u32 = 64u32;
2329 pub const DXGI_PRESENT_STEREO_PREFER_RIGHT: u32 = 16u32;
2330 pub const DXGI_PRESENT_STEREO_TEMPORARY_MONO: u32 = 32u32;
2331 pub const DXGI_PRESENT_TEST: u32 = 1u32;
2332 pub const DXGI_PRESENT_USE_DURATION: u32 = 256u32;
2333 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
2334 #[repr(C)]
2335 pub struct DXGI_QUERY_VIDEO_MEMORY_INFO {
2336     pub Budget: u64,
2337     pub CurrentUsage: u64,
2338     pub AvailableForReservation: u64,
2339     pub CurrentReservation: u64,
2340 }
2341 impl DXGI_QUERY_VIDEO_MEMORY_INFO {}
2342 impl ::std::default::Default for DXGI_QUERY_VIDEO_MEMORY_INFO {
default() -> Self2343     fn default() -> Self {
2344         unsafe { ::std::mem::zeroed() }
2345     }
2346 }
2347 impl ::std::fmt::Debug for DXGI_QUERY_VIDEO_MEMORY_INFO {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result2348     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2349         fmt.debug_struct("DXGI_QUERY_VIDEO_MEMORY_INFO").field("Budget", &self.Budget).field("CurrentUsage", &self.CurrentUsage).field("AvailableForReservation", &self.AvailableForReservation).field("CurrentReservation", &self.CurrentReservation).finish()
2350     }
2351 }
2352 impl ::std::cmp::PartialEq for DXGI_QUERY_VIDEO_MEMORY_INFO {
eq(&self, other: &Self) -> bool2353     fn eq(&self, other: &Self) -> bool {
2354         self.Budget == other.Budget && self.CurrentUsage == other.CurrentUsage && self.AvailableForReservation == other.AvailableForReservation && self.CurrentReservation == other.CurrentReservation
2355     }
2356 }
2357 impl ::std::cmp::Eq for DXGI_QUERY_VIDEO_MEMORY_INFO {}
2358 unsafe impl ::windows::runtime::Abi for DXGI_QUERY_VIDEO_MEMORY_INFO {
2359     type Abi = Self;
2360     type DefaultType = Self;
2361 }
2362 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
2363 #[repr(C)]
2364 pub struct DXGI_RATIONAL {
2365     pub Numerator: u32,
2366     pub Denominator: u32,
2367 }
2368 impl DXGI_RATIONAL {}
2369 impl ::std::default::Default for DXGI_RATIONAL {
default() -> Self2370     fn default() -> Self {
2371         unsafe { ::std::mem::zeroed() }
2372     }
2373 }
2374 impl ::std::fmt::Debug for DXGI_RATIONAL {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result2375     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2376         fmt.debug_struct("DXGI_RATIONAL").field("Numerator", &self.Numerator).field("Denominator", &self.Denominator).finish()
2377     }
2378 }
2379 impl ::std::cmp::PartialEq for DXGI_RATIONAL {
eq(&self, other: &Self) -> bool2380     fn eq(&self, other: &Self) -> bool {
2381         self.Numerator == other.Numerator && self.Denominator == other.Denominator
2382     }
2383 }
2384 impl ::std::cmp::Eq for DXGI_RATIONAL {}
2385 unsafe impl ::windows::runtime::Abi for DXGI_RATIONAL {
2386     type Abi = Self;
2387     type DefaultType = Self;
2388 }
2389 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2390 #[repr(transparent)]
2391 pub struct DXGI_RECLAIM_RESOURCE_RESULTS(pub i32);
2392 pub const DXGI_RECLAIM_RESOURCE_RESULT_OK: DXGI_RECLAIM_RESOURCE_RESULTS = DXGI_RECLAIM_RESOURCE_RESULTS(0i32);
2393 pub const DXGI_RECLAIM_RESOURCE_RESULT_DISCARDED: DXGI_RECLAIM_RESOURCE_RESULTS = DXGI_RECLAIM_RESOURCE_RESULTS(1i32);
2394 pub const DXGI_RECLAIM_RESOURCE_RESULT_NOT_COMMITTED: DXGI_RECLAIM_RESOURCE_RESULTS = DXGI_RECLAIM_RESOURCE_RESULTS(2i32);
2395 impl ::std::convert::From<i32> for DXGI_RECLAIM_RESOURCE_RESULTS {
from(value: i32) -> Self2396     fn from(value: i32) -> Self {
2397         Self(value)
2398     }
2399 }
2400 unsafe impl ::windows::runtime::Abi for DXGI_RECLAIM_RESOURCE_RESULTS {
2401     type Abi = Self;
2402     type DefaultType = Self;
2403 }
2404 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2405 #[repr(transparent)]
2406 pub struct DXGI_RESIDENCY(pub i32);
2407 pub const DXGI_RESIDENCY_FULLY_RESIDENT: DXGI_RESIDENCY = DXGI_RESIDENCY(1i32);
2408 pub const DXGI_RESIDENCY_RESIDENT_IN_SHARED_MEMORY: DXGI_RESIDENCY = DXGI_RESIDENCY(2i32);
2409 pub const DXGI_RESIDENCY_EVICTED_TO_DISK: DXGI_RESIDENCY = DXGI_RESIDENCY(3i32);
2410 impl ::std::convert::From<i32> for DXGI_RESIDENCY {
from(value: i32) -> Self2411     fn from(value: i32) -> Self {
2412         Self(value)
2413     }
2414 }
2415 unsafe impl ::windows::runtime::Abi for DXGI_RESIDENCY {
2416     type Abi = Self;
2417     type DefaultType = Self;
2418 }
2419 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2420 #[repr(transparent)]
2421 pub struct DXGI_RESOURCE_PRIORITY(pub u32);
2422 pub const DXGI_RESOURCE_PRIORITY_MINIMUM: DXGI_RESOURCE_PRIORITY = DXGI_RESOURCE_PRIORITY(671088640u32);
2423 pub const DXGI_RESOURCE_PRIORITY_LOW: DXGI_RESOURCE_PRIORITY = DXGI_RESOURCE_PRIORITY(1342177280u32);
2424 pub const DXGI_RESOURCE_PRIORITY_NORMAL: DXGI_RESOURCE_PRIORITY = DXGI_RESOURCE_PRIORITY(2013265920u32);
2425 pub const DXGI_RESOURCE_PRIORITY_HIGH: DXGI_RESOURCE_PRIORITY = DXGI_RESOURCE_PRIORITY(2684354560u32);
2426 pub const DXGI_RESOURCE_PRIORITY_MAXIMUM: DXGI_RESOURCE_PRIORITY = DXGI_RESOURCE_PRIORITY(3355443200u32);
2427 impl ::std::convert::From<u32> for DXGI_RESOURCE_PRIORITY {
from(value: u32) -> Self2428     fn from(value: u32) -> Self {
2429         Self(value)
2430     }
2431 }
2432 unsafe impl ::windows::runtime::Abi for DXGI_RESOURCE_PRIORITY {
2433     type Abi = Self;
2434     type DefaultType = Self;
2435 }
2436 impl ::std::ops::BitOr for DXGI_RESOURCE_PRIORITY {
2437     type Output = Self;
bitor(self, rhs: Self) -> Self2438     fn bitor(self, rhs: Self) -> Self {
2439         Self(self.0 | rhs.0)
2440     }
2441 }
2442 impl ::std::ops::BitAnd for DXGI_RESOURCE_PRIORITY {
2443     type Output = Self;
bitand(self, rhs: Self) -> Self2444     fn bitand(self, rhs: Self) -> Self {
2445         Self(self.0 & rhs.0)
2446     }
2447 }
2448 impl ::std::ops::BitOrAssign for DXGI_RESOURCE_PRIORITY {
bitor_assign(&mut self, rhs: Self)2449     fn bitor_assign(&mut self, rhs: Self) {
2450         self.0.bitor_assign(rhs.0)
2451     }
2452 }
2453 impl ::std::ops::BitAndAssign for DXGI_RESOURCE_PRIORITY {
bitand_assign(&mut self, rhs: Self)2454     fn bitand_assign(&mut self, rhs: Self) {
2455         self.0.bitand_assign(rhs.0)
2456     }
2457 }
2458 impl ::std::ops::Not for DXGI_RESOURCE_PRIORITY {
2459     type Output = Self;
not(self) -> Self2460     fn not(self) -> Self {
2461         Self(self.0.not())
2462     }
2463 }
2464 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
2465 #[repr(C)]
2466 pub struct DXGI_RGB {
2467     pub Red: f32,
2468     pub Green: f32,
2469     pub Blue: f32,
2470 }
2471 impl DXGI_RGB {}
2472 impl ::std::default::Default for DXGI_RGB {
default() -> Self2473     fn default() -> Self {
2474         unsafe { ::std::mem::zeroed() }
2475     }
2476 }
2477 impl ::std::fmt::Debug for DXGI_RGB {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result2478     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2479         fmt.debug_struct("DXGI_RGB").field("Red", &self.Red).field("Green", &self.Green).field("Blue", &self.Blue).finish()
2480     }
2481 }
2482 impl ::std::cmp::PartialEq for DXGI_RGB {
eq(&self, other: &Self) -> bool2483     fn eq(&self, other: &Self) -> bool {
2484         self.Red == other.Red && self.Green == other.Green && self.Blue == other.Blue
2485     }
2486 }
2487 impl ::std::cmp::Eq for DXGI_RGB {}
2488 unsafe impl ::windows::runtime::Abi for DXGI_RGB {
2489     type Abi = Self;
2490     type DefaultType = Self;
2491 }
2492 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
2493 #[repr(C)]
2494 pub struct DXGI_RGBA {
2495     pub r: f32,
2496     pub g: f32,
2497     pub b: f32,
2498     pub a: f32,
2499 }
2500 impl DXGI_RGBA {}
2501 impl ::std::default::Default for DXGI_RGBA {
default() -> Self2502     fn default() -> Self {
2503         unsafe { ::std::mem::zeroed() }
2504     }
2505 }
2506 impl ::std::fmt::Debug for DXGI_RGBA {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result2507     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2508         fmt.debug_struct("DXGI_RGBA").field("r", &self.r).field("g", &self.g).field("b", &self.b).field("a", &self.a).finish()
2509     }
2510 }
2511 impl ::std::cmp::PartialEq for DXGI_RGBA {
eq(&self, other: &Self) -> bool2512     fn eq(&self, other: &Self) -> bool {
2513         self.r == other.r && self.g == other.g && self.b == other.b && self.a == other.a
2514     }
2515 }
2516 impl ::std::cmp::Eq for DXGI_RGBA {}
2517 unsafe impl ::windows::runtime::Abi for DXGI_RGBA {
2518     type Abi = Self;
2519     type DefaultType = Self;
2520 }
2521 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
2522 #[repr(C)]
2523 pub struct DXGI_SAMPLE_DESC {
2524     pub Count: u32,
2525     pub Quality: u32,
2526 }
2527 impl DXGI_SAMPLE_DESC {}
2528 impl ::std::default::Default for DXGI_SAMPLE_DESC {
default() -> Self2529     fn default() -> Self {
2530         unsafe { ::std::mem::zeroed() }
2531     }
2532 }
2533 impl ::std::fmt::Debug for DXGI_SAMPLE_DESC {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result2534     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2535         fmt.debug_struct("DXGI_SAMPLE_DESC").field("Count", &self.Count).field("Quality", &self.Quality).finish()
2536     }
2537 }
2538 impl ::std::cmp::PartialEq for DXGI_SAMPLE_DESC {
eq(&self, other: &Self) -> bool2539     fn eq(&self, other: &Self) -> bool {
2540         self.Count == other.Count && self.Quality == other.Quality
2541     }
2542 }
2543 impl ::std::cmp::Eq for DXGI_SAMPLE_DESC {}
2544 unsafe impl ::windows::runtime::Abi for DXGI_SAMPLE_DESC {
2545     type Abi = Self;
2546     type DefaultType = Self;
2547 }
2548 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2549 #[repr(transparent)]
2550 pub struct DXGI_SCALING(pub i32);
2551 pub const DXGI_SCALING_STRETCH: DXGI_SCALING = DXGI_SCALING(0i32);
2552 pub const DXGI_SCALING_NONE: DXGI_SCALING = DXGI_SCALING(1i32);
2553 pub const DXGI_SCALING_ASPECT_RATIO_STRETCH: DXGI_SCALING = DXGI_SCALING(2i32);
2554 impl ::std::convert::From<i32> for DXGI_SCALING {
from(value: i32) -> Self2555     fn from(value: i32) -> Self {
2556         Self(value)
2557     }
2558 }
2559 unsafe impl ::windows::runtime::Abi for DXGI_SCALING {
2560     type Abi = Self;
2561     type DefaultType = Self;
2562 }
2563 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
2564 #[repr(C)]
2565 #[cfg(feature = "Win32_Foundation")]
2566 pub struct DXGI_SHARED_RESOURCE {
2567     pub Handle: super::super::Foundation::HANDLE,
2568 }
2569 #[cfg(feature = "Win32_Foundation")]
2570 impl DXGI_SHARED_RESOURCE {}
2571 #[cfg(feature = "Win32_Foundation")]
2572 impl ::std::default::Default for DXGI_SHARED_RESOURCE {
default() -> Self2573     fn default() -> Self {
2574         unsafe { ::std::mem::zeroed() }
2575     }
2576 }
2577 #[cfg(feature = "Win32_Foundation")]
2578 impl ::std::fmt::Debug for DXGI_SHARED_RESOURCE {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result2579     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2580         fmt.debug_struct("DXGI_SHARED_RESOURCE").field("Handle", &self.Handle).finish()
2581     }
2582 }
2583 #[cfg(feature = "Win32_Foundation")]
2584 impl ::std::cmp::PartialEq for DXGI_SHARED_RESOURCE {
eq(&self, other: &Self) -> bool2585     fn eq(&self, other: &Self) -> bool {
2586         self.Handle == other.Handle
2587     }
2588 }
2589 #[cfg(feature = "Win32_Foundation")]
2590 impl ::std::cmp::Eq for DXGI_SHARED_RESOURCE {}
2591 #[cfg(feature = "Win32_Foundation")]
2592 unsafe impl ::windows::runtime::Abi for DXGI_SHARED_RESOURCE {
2593     type Abi = Self;
2594     type DefaultType = Self;
2595 }
2596 pub const DXGI_SHARED_RESOURCE_READ: u32 = 2147483648u32;
2597 pub const DXGI_SHARED_RESOURCE_WRITE: u32 = 1u32;
2598 pub const DXGI_STANDARD_MULTISAMPLE_QUALITY_PATTERN: u32 = 4294967295u32;
2599 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
2600 #[repr(C)]
2601 pub struct DXGI_SURFACE_DESC {
2602     pub Width: u32,
2603     pub Height: u32,
2604     pub Format: DXGI_FORMAT,
2605     pub SampleDesc: DXGI_SAMPLE_DESC,
2606 }
2607 impl DXGI_SURFACE_DESC {}
2608 impl ::std::default::Default for DXGI_SURFACE_DESC {
default() -> Self2609     fn default() -> Self {
2610         unsafe { ::std::mem::zeroed() }
2611     }
2612 }
2613 impl ::std::fmt::Debug for DXGI_SURFACE_DESC {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result2614     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2615         fmt.debug_struct("DXGI_SURFACE_DESC").field("Width", &self.Width).field("Height", &self.Height).field("Format", &self.Format).field("SampleDesc", &self.SampleDesc).finish()
2616     }
2617 }
2618 impl ::std::cmp::PartialEq for DXGI_SURFACE_DESC {
eq(&self, other: &Self) -> bool2619     fn eq(&self, other: &Self) -> bool {
2620         self.Width == other.Width && self.Height == other.Height && self.Format == other.Format && self.SampleDesc == other.SampleDesc
2621     }
2622 }
2623 impl ::std::cmp::Eq for DXGI_SURFACE_DESC {}
2624 unsafe impl ::windows::runtime::Abi for DXGI_SURFACE_DESC {
2625     type Abi = Self;
2626     type DefaultType = Self;
2627 }
2628 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2629 #[repr(transparent)]
2630 pub struct DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG(pub i32);
2631 pub const DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_PRESENT: DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG = DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG(1i32);
2632 pub const DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_OVERLAY_PRESENT: DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG = DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG(2i32);
2633 impl ::std::convert::From<i32> for DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG {
from(value: i32) -> Self2634     fn from(value: i32) -> Self {
2635         Self(value)
2636     }
2637 }
2638 unsafe impl ::windows::runtime::Abi for DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG {
2639     type Abi = Self;
2640     type DefaultType = Self;
2641 }
2642 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
2643 #[repr(C)]
2644 #[cfg(feature = "Win32_Foundation")]
2645 pub struct DXGI_SWAP_CHAIN_DESC {
2646     pub BufferDesc: DXGI_MODE_DESC,
2647     pub SampleDesc: DXGI_SAMPLE_DESC,
2648     pub BufferUsage: u32,
2649     pub BufferCount: u32,
2650     pub OutputWindow: super::super::Foundation::HWND,
2651     pub Windowed: super::super::Foundation::BOOL,
2652     pub SwapEffect: DXGI_SWAP_EFFECT,
2653     pub Flags: u32,
2654 }
2655 #[cfg(feature = "Win32_Foundation")]
2656 impl DXGI_SWAP_CHAIN_DESC {}
2657 #[cfg(feature = "Win32_Foundation")]
2658 impl ::std::default::Default for DXGI_SWAP_CHAIN_DESC {
default() -> Self2659     fn default() -> Self {
2660         unsafe { ::std::mem::zeroed() }
2661     }
2662 }
2663 #[cfg(feature = "Win32_Foundation")]
2664 impl ::std::fmt::Debug for DXGI_SWAP_CHAIN_DESC {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result2665     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2666         fmt.debug_struct("DXGI_SWAP_CHAIN_DESC")
2667             .field("BufferDesc", &self.BufferDesc)
2668             .field("SampleDesc", &self.SampleDesc)
2669             .field("BufferUsage", &self.BufferUsage)
2670             .field("BufferCount", &self.BufferCount)
2671             .field("OutputWindow", &self.OutputWindow)
2672             .field("Windowed", &self.Windowed)
2673             .field("SwapEffect", &self.SwapEffect)
2674             .field("Flags", &self.Flags)
2675             .finish()
2676     }
2677 }
2678 #[cfg(feature = "Win32_Foundation")]
2679 impl ::std::cmp::PartialEq for DXGI_SWAP_CHAIN_DESC {
eq(&self, other: &Self) -> bool2680     fn eq(&self, other: &Self) -> bool {
2681         self.BufferDesc == other.BufferDesc && self.SampleDesc == other.SampleDesc && self.BufferUsage == other.BufferUsage && self.BufferCount == other.BufferCount && self.OutputWindow == other.OutputWindow && self.Windowed == other.Windowed && self.SwapEffect == other.SwapEffect && self.Flags == other.Flags
2682     }
2683 }
2684 #[cfg(feature = "Win32_Foundation")]
2685 impl ::std::cmp::Eq for DXGI_SWAP_CHAIN_DESC {}
2686 #[cfg(feature = "Win32_Foundation")]
2687 unsafe impl ::windows::runtime::Abi for DXGI_SWAP_CHAIN_DESC {
2688     type Abi = Self;
2689     type DefaultType = Self;
2690 }
2691 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
2692 #[repr(C)]
2693 #[cfg(feature = "Win32_Foundation")]
2694 pub struct DXGI_SWAP_CHAIN_DESC1 {
2695     pub Width: u32,
2696     pub Height: u32,
2697     pub Format: DXGI_FORMAT,
2698     pub Stereo: super::super::Foundation::BOOL,
2699     pub SampleDesc: DXGI_SAMPLE_DESC,
2700     pub BufferUsage: u32,
2701     pub BufferCount: u32,
2702     pub Scaling: DXGI_SCALING,
2703     pub SwapEffect: DXGI_SWAP_EFFECT,
2704     pub AlphaMode: DXGI_ALPHA_MODE,
2705     pub Flags: u32,
2706 }
2707 #[cfg(feature = "Win32_Foundation")]
2708 impl DXGI_SWAP_CHAIN_DESC1 {}
2709 #[cfg(feature = "Win32_Foundation")]
2710 impl ::std::default::Default for DXGI_SWAP_CHAIN_DESC1 {
default() -> Self2711     fn default() -> Self {
2712         unsafe { ::std::mem::zeroed() }
2713     }
2714 }
2715 #[cfg(feature = "Win32_Foundation")]
2716 impl ::std::fmt::Debug for DXGI_SWAP_CHAIN_DESC1 {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result2717     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2718         fmt.debug_struct("DXGI_SWAP_CHAIN_DESC1")
2719             .field("Width", &self.Width)
2720             .field("Height", &self.Height)
2721             .field("Format", &self.Format)
2722             .field("Stereo", &self.Stereo)
2723             .field("SampleDesc", &self.SampleDesc)
2724             .field("BufferUsage", &self.BufferUsage)
2725             .field("BufferCount", &self.BufferCount)
2726             .field("Scaling", &self.Scaling)
2727             .field("SwapEffect", &self.SwapEffect)
2728             .field("AlphaMode", &self.AlphaMode)
2729             .field("Flags", &self.Flags)
2730             .finish()
2731     }
2732 }
2733 #[cfg(feature = "Win32_Foundation")]
2734 impl ::std::cmp::PartialEq for DXGI_SWAP_CHAIN_DESC1 {
eq(&self, other: &Self) -> bool2735     fn eq(&self, other: &Self) -> bool {
2736         self.Width == other.Width && self.Height == other.Height && self.Format == other.Format && self.Stereo == other.Stereo && self.SampleDesc == other.SampleDesc && self.BufferUsage == other.BufferUsage && self.BufferCount == other.BufferCount && self.Scaling == other.Scaling && self.SwapEffect == other.SwapEffect && self.AlphaMode == other.AlphaMode && self.Flags == other.Flags
2737     }
2738 }
2739 #[cfg(feature = "Win32_Foundation")]
2740 impl ::std::cmp::Eq for DXGI_SWAP_CHAIN_DESC1 {}
2741 #[cfg(feature = "Win32_Foundation")]
2742 unsafe impl ::windows::runtime::Abi for DXGI_SWAP_CHAIN_DESC1 {
2743     type Abi = Self;
2744     type DefaultType = Self;
2745 }
2746 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2747 #[repr(transparent)]
2748 pub struct DXGI_SWAP_CHAIN_FLAG(pub i32);
2749 pub const DXGI_SWAP_CHAIN_FLAG_NONPREROTATED: DXGI_SWAP_CHAIN_FLAG = DXGI_SWAP_CHAIN_FLAG(1i32);
2750 pub const DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH: DXGI_SWAP_CHAIN_FLAG = DXGI_SWAP_CHAIN_FLAG(2i32);
2751 pub const DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE: DXGI_SWAP_CHAIN_FLAG = DXGI_SWAP_CHAIN_FLAG(4i32);
2752 pub const DXGI_SWAP_CHAIN_FLAG_RESTRICTED_CONTENT: DXGI_SWAP_CHAIN_FLAG = DXGI_SWAP_CHAIN_FLAG(8i32);
2753 pub const DXGI_SWAP_CHAIN_FLAG_RESTRICT_SHARED_RESOURCE_DRIVER: DXGI_SWAP_CHAIN_FLAG = DXGI_SWAP_CHAIN_FLAG(16i32);
2754 pub const DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY: DXGI_SWAP_CHAIN_FLAG = DXGI_SWAP_CHAIN_FLAG(32i32);
2755 pub const DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT: DXGI_SWAP_CHAIN_FLAG = DXGI_SWAP_CHAIN_FLAG(64i32);
2756 pub const DXGI_SWAP_CHAIN_FLAG_FOREGROUND_LAYER: DXGI_SWAP_CHAIN_FLAG = DXGI_SWAP_CHAIN_FLAG(128i32);
2757 pub const DXGI_SWAP_CHAIN_FLAG_FULLSCREEN_VIDEO: DXGI_SWAP_CHAIN_FLAG = DXGI_SWAP_CHAIN_FLAG(256i32);
2758 pub const DXGI_SWAP_CHAIN_FLAG_YUV_VIDEO: DXGI_SWAP_CHAIN_FLAG = DXGI_SWAP_CHAIN_FLAG(512i32);
2759 pub const DXGI_SWAP_CHAIN_FLAG_HW_PROTECTED: DXGI_SWAP_CHAIN_FLAG = DXGI_SWAP_CHAIN_FLAG(1024i32);
2760 pub const DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING: DXGI_SWAP_CHAIN_FLAG = DXGI_SWAP_CHAIN_FLAG(2048i32);
2761 pub const DXGI_SWAP_CHAIN_FLAG_RESTRICTED_TO_ALL_HOLOGRAPHIC_DISPLAYS: DXGI_SWAP_CHAIN_FLAG = DXGI_SWAP_CHAIN_FLAG(4096i32);
2762 impl ::std::convert::From<i32> for DXGI_SWAP_CHAIN_FLAG {
from(value: i32) -> Self2763     fn from(value: i32) -> Self {
2764         Self(value)
2765     }
2766 }
2767 unsafe impl ::windows::runtime::Abi for DXGI_SWAP_CHAIN_FLAG {
2768     type Abi = Self;
2769     type DefaultType = Self;
2770 }
2771 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
2772 #[repr(C)]
2773 #[cfg(feature = "Win32_Foundation")]
2774 pub struct DXGI_SWAP_CHAIN_FULLSCREEN_DESC {
2775     pub RefreshRate: DXGI_RATIONAL,
2776     pub ScanlineOrdering: DXGI_MODE_SCANLINE_ORDER,
2777     pub Scaling: DXGI_MODE_SCALING,
2778     pub Windowed: super::super::Foundation::BOOL,
2779 }
2780 #[cfg(feature = "Win32_Foundation")]
2781 impl DXGI_SWAP_CHAIN_FULLSCREEN_DESC {}
2782 #[cfg(feature = "Win32_Foundation")]
2783 impl ::std::default::Default for DXGI_SWAP_CHAIN_FULLSCREEN_DESC {
default() -> Self2784     fn default() -> Self {
2785         unsafe { ::std::mem::zeroed() }
2786     }
2787 }
2788 #[cfg(feature = "Win32_Foundation")]
2789 impl ::std::fmt::Debug for DXGI_SWAP_CHAIN_FULLSCREEN_DESC {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result2790     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2791         fmt.debug_struct("DXGI_SWAP_CHAIN_FULLSCREEN_DESC").field("RefreshRate", &self.RefreshRate).field("ScanlineOrdering", &self.ScanlineOrdering).field("Scaling", &self.Scaling).field("Windowed", &self.Windowed).finish()
2792     }
2793 }
2794 #[cfg(feature = "Win32_Foundation")]
2795 impl ::std::cmp::PartialEq for DXGI_SWAP_CHAIN_FULLSCREEN_DESC {
eq(&self, other: &Self) -> bool2796     fn eq(&self, other: &Self) -> bool {
2797         self.RefreshRate == other.RefreshRate && self.ScanlineOrdering == other.ScanlineOrdering && self.Scaling == other.Scaling && self.Windowed == other.Windowed
2798     }
2799 }
2800 #[cfg(feature = "Win32_Foundation")]
2801 impl ::std::cmp::Eq for DXGI_SWAP_CHAIN_FULLSCREEN_DESC {}
2802 #[cfg(feature = "Win32_Foundation")]
2803 unsafe impl ::windows::runtime::Abi for DXGI_SWAP_CHAIN_FULLSCREEN_DESC {
2804     type Abi = Self;
2805     type DefaultType = Self;
2806 }
2807 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2808 #[repr(transparent)]
2809 pub struct DXGI_SWAP_EFFECT(pub i32);
2810 pub const DXGI_SWAP_EFFECT_DISCARD: DXGI_SWAP_EFFECT = DXGI_SWAP_EFFECT(0i32);
2811 pub const DXGI_SWAP_EFFECT_SEQUENTIAL: DXGI_SWAP_EFFECT = DXGI_SWAP_EFFECT(1i32);
2812 pub const DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL: DXGI_SWAP_EFFECT = DXGI_SWAP_EFFECT(3i32);
2813 pub const DXGI_SWAP_EFFECT_FLIP_DISCARD: DXGI_SWAP_EFFECT = DXGI_SWAP_EFFECT(4i32);
2814 impl ::std::convert::From<i32> for DXGI_SWAP_EFFECT {
from(value: i32) -> Self2815     fn from(value: i32) -> Self {
2816         Self(value)
2817     }
2818 }
2819 unsafe impl ::windows::runtime::Abi for DXGI_SWAP_EFFECT {
2820     type Abi = Self;
2821     type DefaultType = Self;
2822 }
2823 pub const DXGI_USAGE_BACK_BUFFER: u32 = 64u32;
2824 pub const DXGI_USAGE_DISCARD_ON_PRESENT: u32 = 512u32;
2825 pub const DXGI_USAGE_READ_ONLY: u32 = 256u32;
2826 pub const DXGI_USAGE_RENDER_TARGET_OUTPUT: u32 = 32u32;
2827 pub const DXGI_USAGE_SHADER_INPUT: u32 = 16u32;
2828 pub const DXGI_USAGE_SHARED: u32 = 128u32;
2829 pub const DXGI_USAGE_UNORDERED_ACCESS: u32 = 1024u32;
2830 #[repr(transparent)]
2831 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2832 pub struct IDXGIAdapter(::windows::runtime::IUnknown);
2833 impl IDXGIAdapter {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>2834     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
2835         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
2836     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>2837     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
2838         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
2839     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>2840     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
2841         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
2842     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>2843     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
2844         let mut result__ = ::std::option::Option::None;
2845         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
2846     }
EnumOutputs(&self, output: u32) -> ::windows::runtime::Result<IDXGIOutput>2847     pub unsafe fn EnumOutputs(&self, output: u32) -> ::windows::runtime::Result<IDXGIOutput> {
2848         let mut result__: <IDXGIOutput as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2849         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(output), &mut result__).from_abi::<IDXGIOutput>(result__)
2850     }
2851     #[cfg(feature = "Win32_Foundation")]
GetDesc(&self) -> ::windows::runtime::Result<DXGI_ADAPTER_DESC>2852     pub unsafe fn GetDesc(&self) -> ::windows::runtime::Result<DXGI_ADAPTER_DESC> {
2853         let mut result__: <DXGI_ADAPTER_DESC as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2854         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_ADAPTER_DESC>(result__)
2855     }
CheckInterfaceSupport(&self, interfacename: *const ::windows::runtime::GUID) -> ::windows::runtime::Result<i64>2856     pub unsafe fn CheckInterfaceSupport(&self, interfacename: *const ::windows::runtime::GUID) -> ::windows::runtime::Result<i64> {
2857         let mut result__: <i64 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2858         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(interfacename), &mut result__).from_abi::<i64>(result__)
2859     }
2860 }
2861 unsafe impl ::windows::runtime::Interface for IDXGIAdapter {
2862     type Vtable = IDXGIAdapter_abi;
2863     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(605153249, 4780, 19663, [189, 20, 151, 152, 232, 83, 77, 192]);
2864 }
2865 impl ::std::convert::From<IDXGIAdapter> for ::windows::runtime::IUnknown {
from(value: IDXGIAdapter) -> Self2866     fn from(value: IDXGIAdapter) -> Self {
2867         unsafe { ::std::mem::transmute(value) }
2868     }
2869 }
2870 impl ::std::convert::From<&IDXGIAdapter> for ::windows::runtime::IUnknown {
from(value: &IDXGIAdapter) -> Self2871     fn from(value: &IDXGIAdapter) -> Self {
2872         ::std::convert::From::from(::std::clone::Clone::clone(value))
2873     }
2874 }
2875 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIAdapter {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2876     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2877         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2878     }
2879 }
2880 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIAdapter {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2881     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2882         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2883     }
2884 }
2885 impl ::std::convert::From<IDXGIAdapter> for IDXGIObject {
from(value: IDXGIAdapter) -> Self2886     fn from(value: IDXGIAdapter) -> Self {
2887         unsafe { ::std::mem::transmute(value) }
2888     }
2889 }
2890 impl ::std::convert::From<&IDXGIAdapter> for IDXGIObject {
from(value: &IDXGIAdapter) -> Self2891     fn from(value: &IDXGIAdapter) -> Self {
2892         ::std::convert::From::from(::std::clone::Clone::clone(value))
2893     }
2894 }
2895 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGIAdapter {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>2896     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
2897         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
2898     }
2899 }
2900 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGIAdapter {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>2901     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
2902         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
2903     }
2904 }
2905 #[repr(C)]
2906 #[doc(hidden)]
2907 pub struct IDXGIAdapter_abi(
2908     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2909     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2910     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2911     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
2912     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2913     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
2914     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
2915     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, output: u32, ppoutput: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2916     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_ADAPTER_DESC) -> ::windows::runtime::HRESULT,
2917     #[cfg(not(feature = "Win32_Foundation"))] usize,
2918     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, interfacename: *const ::windows::runtime::GUID, pumdversion: *mut i64) -> ::windows::runtime::HRESULT,
2919 );
2920 #[repr(transparent)]
2921 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2922 pub struct IDXGIAdapter1(::windows::runtime::IUnknown);
2923 impl IDXGIAdapter1 {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>2924     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
2925         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
2926     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>2927     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
2928         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
2929     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>2930     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
2931         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
2932     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>2933     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
2934         let mut result__ = ::std::option::Option::None;
2935         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
2936     }
EnumOutputs(&self, output: u32) -> ::windows::runtime::Result<IDXGIOutput>2937     pub unsafe fn EnumOutputs(&self, output: u32) -> ::windows::runtime::Result<IDXGIOutput> {
2938         let mut result__: <IDXGIOutput as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2939         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(output), &mut result__).from_abi::<IDXGIOutput>(result__)
2940     }
2941     #[cfg(feature = "Win32_Foundation")]
GetDesc(&self) -> ::windows::runtime::Result<DXGI_ADAPTER_DESC>2942     pub unsafe fn GetDesc(&self) -> ::windows::runtime::Result<DXGI_ADAPTER_DESC> {
2943         let mut result__: <DXGI_ADAPTER_DESC as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2944         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_ADAPTER_DESC>(result__)
2945     }
CheckInterfaceSupport(&self, interfacename: *const ::windows::runtime::GUID) -> ::windows::runtime::Result<i64>2946     pub unsafe fn CheckInterfaceSupport(&self, interfacename: *const ::windows::runtime::GUID) -> ::windows::runtime::Result<i64> {
2947         let mut result__: <i64 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2948         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(interfacename), &mut result__).from_abi::<i64>(result__)
2949     }
2950     #[cfg(feature = "Win32_Foundation")]
GetDesc1(&self) -> ::windows::runtime::Result<DXGI_ADAPTER_DESC1>2951     pub unsafe fn GetDesc1(&self) -> ::windows::runtime::Result<DXGI_ADAPTER_DESC1> {
2952         let mut result__: <DXGI_ADAPTER_DESC1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2953         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_ADAPTER_DESC1>(result__)
2954     }
2955 }
2956 unsafe impl ::windows::runtime::Interface for IDXGIAdapter1 {
2957     type Vtable = IDXGIAdapter1_abi;
2958     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(688099169, 14393, 17958, [145, 253, 8, 104, 121, 1, 26, 5]);
2959 }
2960 impl ::std::convert::From<IDXGIAdapter1> for ::windows::runtime::IUnknown {
from(value: IDXGIAdapter1) -> Self2961     fn from(value: IDXGIAdapter1) -> Self {
2962         unsafe { ::std::mem::transmute(value) }
2963     }
2964 }
2965 impl ::std::convert::From<&IDXGIAdapter1> for ::windows::runtime::IUnknown {
from(value: &IDXGIAdapter1) -> Self2966     fn from(value: &IDXGIAdapter1) -> Self {
2967         ::std::convert::From::from(::std::clone::Clone::clone(value))
2968     }
2969 }
2970 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIAdapter1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2971     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2972         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2973     }
2974 }
2975 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIAdapter1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2976     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2977         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2978     }
2979 }
2980 impl ::std::convert::From<IDXGIAdapter1> for IDXGIAdapter {
from(value: IDXGIAdapter1) -> Self2981     fn from(value: IDXGIAdapter1) -> Self {
2982         unsafe { ::std::mem::transmute(value) }
2983     }
2984 }
2985 impl ::std::convert::From<&IDXGIAdapter1> for IDXGIAdapter {
from(value: &IDXGIAdapter1) -> Self2986     fn from(value: &IDXGIAdapter1) -> Self {
2987         ::std::convert::From::from(::std::clone::Clone::clone(value))
2988     }
2989 }
2990 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIAdapter> for IDXGIAdapter1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter>2991     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter> {
2992         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIAdapter>::into(self))
2993     }
2994 }
2995 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIAdapter> for &IDXGIAdapter1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter>2996     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter> {
2997         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIAdapter>::into(::std::clone::Clone::clone(self)))
2998     }
2999 }
3000 impl ::std::convert::From<IDXGIAdapter1> for IDXGIObject {
from(value: IDXGIAdapter1) -> Self3001     fn from(value: IDXGIAdapter1) -> Self {
3002         unsafe { ::std::mem::transmute(value) }
3003     }
3004 }
3005 impl ::std::convert::From<&IDXGIAdapter1> for IDXGIObject {
from(value: &IDXGIAdapter1) -> Self3006     fn from(value: &IDXGIAdapter1) -> Self {
3007         ::std::convert::From::from(::std::clone::Clone::clone(value))
3008     }
3009 }
3010 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGIAdapter1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>3011     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
3012         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
3013     }
3014 }
3015 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGIAdapter1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>3016     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
3017         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
3018     }
3019 }
3020 #[repr(C)]
3021 #[doc(hidden)]
3022 pub struct IDXGIAdapter1_abi(
3023     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3024     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3025     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3026     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
3027     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3028     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
3029     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
3030     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, output: u32, ppoutput: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3031     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_ADAPTER_DESC) -> ::windows::runtime::HRESULT,
3032     #[cfg(not(feature = "Win32_Foundation"))] usize,
3033     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, interfacename: *const ::windows::runtime::GUID, pumdversion: *mut i64) -> ::windows::runtime::HRESULT,
3034     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_ADAPTER_DESC1) -> ::windows::runtime::HRESULT,
3035     #[cfg(not(feature = "Win32_Foundation"))] usize,
3036 );
3037 #[repr(transparent)]
3038 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3039 pub struct IDXGIAdapter2(::windows::runtime::IUnknown);
3040 impl IDXGIAdapter2 {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>3041     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
3042         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
3043     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>3044     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
3045         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
3046     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>3047     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
3048         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
3049     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>3050     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
3051         let mut result__ = ::std::option::Option::None;
3052         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
3053     }
EnumOutputs(&self, output: u32) -> ::windows::runtime::Result<IDXGIOutput>3054     pub unsafe fn EnumOutputs(&self, output: u32) -> ::windows::runtime::Result<IDXGIOutput> {
3055         let mut result__: <IDXGIOutput as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3056         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(output), &mut result__).from_abi::<IDXGIOutput>(result__)
3057     }
3058     #[cfg(feature = "Win32_Foundation")]
GetDesc(&self) -> ::windows::runtime::Result<DXGI_ADAPTER_DESC>3059     pub unsafe fn GetDesc(&self) -> ::windows::runtime::Result<DXGI_ADAPTER_DESC> {
3060         let mut result__: <DXGI_ADAPTER_DESC as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3061         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_ADAPTER_DESC>(result__)
3062     }
CheckInterfaceSupport(&self, interfacename: *const ::windows::runtime::GUID) -> ::windows::runtime::Result<i64>3063     pub unsafe fn CheckInterfaceSupport(&self, interfacename: *const ::windows::runtime::GUID) -> ::windows::runtime::Result<i64> {
3064         let mut result__: <i64 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3065         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(interfacename), &mut result__).from_abi::<i64>(result__)
3066     }
3067     #[cfg(feature = "Win32_Foundation")]
GetDesc1(&self) -> ::windows::runtime::Result<DXGI_ADAPTER_DESC1>3068     pub unsafe fn GetDesc1(&self) -> ::windows::runtime::Result<DXGI_ADAPTER_DESC1> {
3069         let mut result__: <DXGI_ADAPTER_DESC1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3070         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_ADAPTER_DESC1>(result__)
3071     }
3072     #[cfg(feature = "Win32_Foundation")]
GetDesc2(&self) -> ::windows::runtime::Result<DXGI_ADAPTER_DESC2>3073     pub unsafe fn GetDesc2(&self) -> ::windows::runtime::Result<DXGI_ADAPTER_DESC2> {
3074         let mut result__: <DXGI_ADAPTER_DESC2 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3075         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_ADAPTER_DESC2>(result__)
3076     }
3077 }
3078 unsafe impl ::windows::runtime::Interface for IDXGIAdapter2 {
3079     type Vtable = IDXGIAdapter2_abi;
3080     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(178368010, 64014, 19332, [134, 68, 224, 95, 248, 229, 172, 181]);
3081 }
3082 impl ::std::convert::From<IDXGIAdapter2> for ::windows::runtime::IUnknown {
from(value: IDXGIAdapter2) -> Self3083     fn from(value: IDXGIAdapter2) -> Self {
3084         unsafe { ::std::mem::transmute(value) }
3085     }
3086 }
3087 impl ::std::convert::From<&IDXGIAdapter2> for ::windows::runtime::IUnknown {
from(value: &IDXGIAdapter2) -> Self3088     fn from(value: &IDXGIAdapter2) -> Self {
3089         ::std::convert::From::from(::std::clone::Clone::clone(value))
3090     }
3091 }
3092 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIAdapter2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3093     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3094         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3095     }
3096 }
3097 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIAdapter2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3098     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3099         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3100     }
3101 }
3102 impl ::std::convert::From<IDXGIAdapter2> for IDXGIAdapter1 {
from(value: IDXGIAdapter2) -> Self3103     fn from(value: IDXGIAdapter2) -> Self {
3104         unsafe { ::std::mem::transmute(value) }
3105     }
3106 }
3107 impl ::std::convert::From<&IDXGIAdapter2> for IDXGIAdapter1 {
from(value: &IDXGIAdapter2) -> Self3108     fn from(value: &IDXGIAdapter2) -> Self {
3109         ::std::convert::From::from(::std::clone::Clone::clone(value))
3110     }
3111 }
3112 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIAdapter1> for IDXGIAdapter2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter1>3113     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter1> {
3114         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIAdapter1>::into(self))
3115     }
3116 }
3117 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIAdapter1> for &IDXGIAdapter2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter1>3118     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter1> {
3119         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIAdapter1>::into(::std::clone::Clone::clone(self)))
3120     }
3121 }
3122 impl ::std::convert::From<IDXGIAdapter2> for IDXGIAdapter {
from(value: IDXGIAdapter2) -> Self3123     fn from(value: IDXGIAdapter2) -> Self {
3124         unsafe { ::std::mem::transmute(value) }
3125     }
3126 }
3127 impl ::std::convert::From<&IDXGIAdapter2> for IDXGIAdapter {
from(value: &IDXGIAdapter2) -> Self3128     fn from(value: &IDXGIAdapter2) -> Self {
3129         ::std::convert::From::from(::std::clone::Clone::clone(value))
3130     }
3131 }
3132 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIAdapter> for IDXGIAdapter2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter>3133     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter> {
3134         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIAdapter>::into(self))
3135     }
3136 }
3137 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIAdapter> for &IDXGIAdapter2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter>3138     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter> {
3139         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIAdapter>::into(::std::clone::Clone::clone(self)))
3140     }
3141 }
3142 impl ::std::convert::From<IDXGIAdapter2> for IDXGIObject {
from(value: IDXGIAdapter2) -> Self3143     fn from(value: IDXGIAdapter2) -> Self {
3144         unsafe { ::std::mem::transmute(value) }
3145     }
3146 }
3147 impl ::std::convert::From<&IDXGIAdapter2> for IDXGIObject {
from(value: &IDXGIAdapter2) -> Self3148     fn from(value: &IDXGIAdapter2) -> Self {
3149         ::std::convert::From::from(::std::clone::Clone::clone(value))
3150     }
3151 }
3152 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGIAdapter2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>3153     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
3154         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
3155     }
3156 }
3157 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGIAdapter2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>3158     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
3159         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
3160     }
3161 }
3162 #[repr(C)]
3163 #[doc(hidden)]
3164 pub struct IDXGIAdapter2_abi(
3165     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3166     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3167     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3168     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
3169     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3170     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
3171     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
3172     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, output: u32, ppoutput: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3173     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_ADAPTER_DESC) -> ::windows::runtime::HRESULT,
3174     #[cfg(not(feature = "Win32_Foundation"))] usize,
3175     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, interfacename: *const ::windows::runtime::GUID, pumdversion: *mut i64) -> ::windows::runtime::HRESULT,
3176     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_ADAPTER_DESC1) -> ::windows::runtime::HRESULT,
3177     #[cfg(not(feature = "Win32_Foundation"))] usize,
3178     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_ADAPTER_DESC2) -> ::windows::runtime::HRESULT,
3179     #[cfg(not(feature = "Win32_Foundation"))] usize,
3180 );
3181 #[repr(transparent)]
3182 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3183 pub struct IDXGIAdapter3(::windows::runtime::IUnknown);
3184 impl IDXGIAdapter3 {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>3185     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
3186         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
3187     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>3188     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
3189         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
3190     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>3191     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
3192         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
3193     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>3194     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
3195         let mut result__ = ::std::option::Option::None;
3196         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
3197     }
EnumOutputs(&self, output: u32) -> ::windows::runtime::Result<IDXGIOutput>3198     pub unsafe fn EnumOutputs(&self, output: u32) -> ::windows::runtime::Result<IDXGIOutput> {
3199         let mut result__: <IDXGIOutput as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3200         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(output), &mut result__).from_abi::<IDXGIOutput>(result__)
3201     }
3202     #[cfg(feature = "Win32_Foundation")]
GetDesc(&self) -> ::windows::runtime::Result<DXGI_ADAPTER_DESC>3203     pub unsafe fn GetDesc(&self) -> ::windows::runtime::Result<DXGI_ADAPTER_DESC> {
3204         let mut result__: <DXGI_ADAPTER_DESC as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3205         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_ADAPTER_DESC>(result__)
3206     }
CheckInterfaceSupport(&self, interfacename: *const ::windows::runtime::GUID) -> ::windows::runtime::Result<i64>3207     pub unsafe fn CheckInterfaceSupport(&self, interfacename: *const ::windows::runtime::GUID) -> ::windows::runtime::Result<i64> {
3208         let mut result__: <i64 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3209         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(interfacename), &mut result__).from_abi::<i64>(result__)
3210     }
3211     #[cfg(feature = "Win32_Foundation")]
GetDesc1(&self) -> ::windows::runtime::Result<DXGI_ADAPTER_DESC1>3212     pub unsafe fn GetDesc1(&self) -> ::windows::runtime::Result<DXGI_ADAPTER_DESC1> {
3213         let mut result__: <DXGI_ADAPTER_DESC1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3214         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_ADAPTER_DESC1>(result__)
3215     }
3216     #[cfg(feature = "Win32_Foundation")]
GetDesc2(&self) -> ::windows::runtime::Result<DXGI_ADAPTER_DESC2>3217     pub unsafe fn GetDesc2(&self) -> ::windows::runtime::Result<DXGI_ADAPTER_DESC2> {
3218         let mut result__: <DXGI_ADAPTER_DESC2 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3219         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_ADAPTER_DESC2>(result__)
3220     }
3221     #[cfg(feature = "Win32_Foundation")]
RegisterHardwareContentProtectionTeardownStatusEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32>3222     pub unsafe fn RegisterHardwareContentProtectionTeardownStatusEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32> {
3223         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3224         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), hevent.into_param().abi(), &mut result__).from_abi::<u32>(result__)
3225     }
UnregisterHardwareContentProtectionTeardownStatus(&self, dwcookie: u32)3226     pub unsafe fn UnregisterHardwareContentProtectionTeardownStatus(&self, dwcookie: u32) {
3227         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(dwcookie)))
3228     }
QueryVideoMemoryInfo(&self, nodeindex: u32, memorysegmentgroup: DXGI_MEMORY_SEGMENT_GROUP) -> ::windows::runtime::Result<DXGI_QUERY_VIDEO_MEMORY_INFO>3229     pub unsafe fn QueryVideoMemoryInfo(&self, nodeindex: u32, memorysegmentgroup: DXGI_MEMORY_SEGMENT_GROUP) -> ::windows::runtime::Result<DXGI_QUERY_VIDEO_MEMORY_INFO> {
3230         let mut result__: <DXGI_QUERY_VIDEO_MEMORY_INFO as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3231         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(nodeindex), ::std::mem::transmute(memorysegmentgroup), &mut result__).from_abi::<DXGI_QUERY_VIDEO_MEMORY_INFO>(result__)
3232     }
SetVideoMemoryReservation(&self, nodeindex: u32, memorysegmentgroup: DXGI_MEMORY_SEGMENT_GROUP, reservation: u64) -> ::windows::runtime::Result<()>3233     pub unsafe fn SetVideoMemoryReservation(&self, nodeindex: u32, memorysegmentgroup: DXGI_MEMORY_SEGMENT_GROUP, reservation: u64) -> ::windows::runtime::Result<()> {
3234         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(nodeindex), ::std::mem::transmute(memorysegmentgroup), ::std::mem::transmute(reservation)).ok()
3235     }
3236     #[cfg(feature = "Win32_Foundation")]
RegisterVideoMemoryBudgetChangeNotificationEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32>3237     pub unsafe fn RegisterVideoMemoryBudgetChangeNotificationEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32> {
3238         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3239         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), hevent.into_param().abi(), &mut result__).from_abi::<u32>(result__)
3240     }
UnregisterVideoMemoryBudgetChangeNotification(&self, dwcookie: u32)3241     pub unsafe fn UnregisterVideoMemoryBudgetChangeNotification(&self, dwcookie: u32) {
3242         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), ::std::mem::transmute(dwcookie)))
3243     }
3244 }
3245 unsafe impl ::windows::runtime::Interface for IDXGIAdapter3 {
3246     type Vtable = IDXGIAdapter3_abi;
3247     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1683580836, 5010, 17168, [167, 152, 128, 83, 206, 62, 147, 253]);
3248 }
3249 impl ::std::convert::From<IDXGIAdapter3> for ::windows::runtime::IUnknown {
from(value: IDXGIAdapter3) -> Self3250     fn from(value: IDXGIAdapter3) -> Self {
3251         unsafe { ::std::mem::transmute(value) }
3252     }
3253 }
3254 impl ::std::convert::From<&IDXGIAdapter3> for ::windows::runtime::IUnknown {
from(value: &IDXGIAdapter3) -> Self3255     fn from(value: &IDXGIAdapter3) -> Self {
3256         ::std::convert::From::from(::std::clone::Clone::clone(value))
3257     }
3258 }
3259 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIAdapter3 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3260     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3261         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3262     }
3263 }
3264 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIAdapter3 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3265     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3266         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3267     }
3268 }
3269 impl ::std::convert::From<IDXGIAdapter3> for IDXGIAdapter2 {
from(value: IDXGIAdapter3) -> Self3270     fn from(value: IDXGIAdapter3) -> Self {
3271         unsafe { ::std::mem::transmute(value) }
3272     }
3273 }
3274 impl ::std::convert::From<&IDXGIAdapter3> for IDXGIAdapter2 {
from(value: &IDXGIAdapter3) -> Self3275     fn from(value: &IDXGIAdapter3) -> Self {
3276         ::std::convert::From::from(::std::clone::Clone::clone(value))
3277     }
3278 }
3279 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIAdapter2> for IDXGIAdapter3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter2>3280     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter2> {
3281         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIAdapter2>::into(self))
3282     }
3283 }
3284 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIAdapter2> for &IDXGIAdapter3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter2>3285     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter2> {
3286         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIAdapter2>::into(::std::clone::Clone::clone(self)))
3287     }
3288 }
3289 impl ::std::convert::From<IDXGIAdapter3> for IDXGIAdapter1 {
from(value: IDXGIAdapter3) -> Self3290     fn from(value: IDXGIAdapter3) -> Self {
3291         unsafe { ::std::mem::transmute(value) }
3292     }
3293 }
3294 impl ::std::convert::From<&IDXGIAdapter3> for IDXGIAdapter1 {
from(value: &IDXGIAdapter3) -> Self3295     fn from(value: &IDXGIAdapter3) -> Self {
3296         ::std::convert::From::from(::std::clone::Clone::clone(value))
3297     }
3298 }
3299 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIAdapter1> for IDXGIAdapter3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter1>3300     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter1> {
3301         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIAdapter1>::into(self))
3302     }
3303 }
3304 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIAdapter1> for &IDXGIAdapter3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter1>3305     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter1> {
3306         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIAdapter1>::into(::std::clone::Clone::clone(self)))
3307     }
3308 }
3309 impl ::std::convert::From<IDXGIAdapter3> for IDXGIAdapter {
from(value: IDXGIAdapter3) -> Self3310     fn from(value: IDXGIAdapter3) -> Self {
3311         unsafe { ::std::mem::transmute(value) }
3312     }
3313 }
3314 impl ::std::convert::From<&IDXGIAdapter3> for IDXGIAdapter {
from(value: &IDXGIAdapter3) -> Self3315     fn from(value: &IDXGIAdapter3) -> Self {
3316         ::std::convert::From::from(::std::clone::Clone::clone(value))
3317     }
3318 }
3319 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIAdapter> for IDXGIAdapter3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter>3320     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter> {
3321         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIAdapter>::into(self))
3322     }
3323 }
3324 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIAdapter> for &IDXGIAdapter3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter>3325     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter> {
3326         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIAdapter>::into(::std::clone::Clone::clone(self)))
3327     }
3328 }
3329 impl ::std::convert::From<IDXGIAdapter3> for IDXGIObject {
from(value: IDXGIAdapter3) -> Self3330     fn from(value: IDXGIAdapter3) -> Self {
3331         unsafe { ::std::mem::transmute(value) }
3332     }
3333 }
3334 impl ::std::convert::From<&IDXGIAdapter3> for IDXGIObject {
from(value: &IDXGIAdapter3) -> Self3335     fn from(value: &IDXGIAdapter3) -> Self {
3336         ::std::convert::From::from(::std::clone::Clone::clone(value))
3337     }
3338 }
3339 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGIAdapter3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>3340     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
3341         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
3342     }
3343 }
3344 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGIAdapter3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>3345     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
3346         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
3347     }
3348 }
3349 #[repr(C)]
3350 #[doc(hidden)]
3351 pub struct IDXGIAdapter3_abi(
3352     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3353     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3354     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3355     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
3356     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3357     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
3358     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
3359     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, output: u32, ppoutput: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3360     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_ADAPTER_DESC) -> ::windows::runtime::HRESULT,
3361     #[cfg(not(feature = "Win32_Foundation"))] usize,
3362     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, interfacename: *const ::windows::runtime::GUID, pumdversion: *mut i64) -> ::windows::runtime::HRESULT,
3363     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_ADAPTER_DESC1) -> ::windows::runtime::HRESULT,
3364     #[cfg(not(feature = "Win32_Foundation"))] usize,
3365     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_ADAPTER_DESC2) -> ::windows::runtime::HRESULT,
3366     #[cfg(not(feature = "Win32_Foundation"))] usize,
3367     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hevent: super::super::Foundation::HANDLE, pdwcookie: *mut u32) -> ::windows::runtime::HRESULT,
3368     #[cfg(not(feature = "Win32_Foundation"))] usize,
3369     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dwcookie: u32),
3370     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, nodeindex: u32, memorysegmentgroup: DXGI_MEMORY_SEGMENT_GROUP, pvideomemoryinfo: *mut DXGI_QUERY_VIDEO_MEMORY_INFO) -> ::windows::runtime::HRESULT,
3371     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, nodeindex: u32, memorysegmentgroup: DXGI_MEMORY_SEGMENT_GROUP, reservation: u64) -> ::windows::runtime::HRESULT,
3372     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hevent: super::super::Foundation::HANDLE, pdwcookie: *mut u32) -> ::windows::runtime::HRESULT,
3373     #[cfg(not(feature = "Win32_Foundation"))] usize,
3374     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dwcookie: u32),
3375 );
3376 #[repr(transparent)]
3377 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3378 pub struct IDXGIAdapter4(::windows::runtime::IUnknown);
3379 impl IDXGIAdapter4 {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>3380     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
3381         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
3382     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>3383     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
3384         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
3385     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>3386     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
3387         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
3388     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>3389     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
3390         let mut result__ = ::std::option::Option::None;
3391         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
3392     }
EnumOutputs(&self, output: u32) -> ::windows::runtime::Result<IDXGIOutput>3393     pub unsafe fn EnumOutputs(&self, output: u32) -> ::windows::runtime::Result<IDXGIOutput> {
3394         let mut result__: <IDXGIOutput as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3395         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(output), &mut result__).from_abi::<IDXGIOutput>(result__)
3396     }
3397     #[cfg(feature = "Win32_Foundation")]
GetDesc(&self) -> ::windows::runtime::Result<DXGI_ADAPTER_DESC>3398     pub unsafe fn GetDesc(&self) -> ::windows::runtime::Result<DXGI_ADAPTER_DESC> {
3399         let mut result__: <DXGI_ADAPTER_DESC as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3400         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_ADAPTER_DESC>(result__)
3401     }
CheckInterfaceSupport(&self, interfacename: *const ::windows::runtime::GUID) -> ::windows::runtime::Result<i64>3402     pub unsafe fn CheckInterfaceSupport(&self, interfacename: *const ::windows::runtime::GUID) -> ::windows::runtime::Result<i64> {
3403         let mut result__: <i64 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3404         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(interfacename), &mut result__).from_abi::<i64>(result__)
3405     }
3406     #[cfg(feature = "Win32_Foundation")]
GetDesc1(&self) -> ::windows::runtime::Result<DXGI_ADAPTER_DESC1>3407     pub unsafe fn GetDesc1(&self) -> ::windows::runtime::Result<DXGI_ADAPTER_DESC1> {
3408         let mut result__: <DXGI_ADAPTER_DESC1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3409         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_ADAPTER_DESC1>(result__)
3410     }
3411     #[cfg(feature = "Win32_Foundation")]
GetDesc2(&self) -> ::windows::runtime::Result<DXGI_ADAPTER_DESC2>3412     pub unsafe fn GetDesc2(&self) -> ::windows::runtime::Result<DXGI_ADAPTER_DESC2> {
3413         let mut result__: <DXGI_ADAPTER_DESC2 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3414         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_ADAPTER_DESC2>(result__)
3415     }
3416     #[cfg(feature = "Win32_Foundation")]
RegisterHardwareContentProtectionTeardownStatusEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32>3417     pub unsafe fn RegisterHardwareContentProtectionTeardownStatusEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32> {
3418         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3419         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), hevent.into_param().abi(), &mut result__).from_abi::<u32>(result__)
3420     }
UnregisterHardwareContentProtectionTeardownStatus(&self, dwcookie: u32)3421     pub unsafe fn UnregisterHardwareContentProtectionTeardownStatus(&self, dwcookie: u32) {
3422         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(dwcookie)))
3423     }
QueryVideoMemoryInfo(&self, nodeindex: u32, memorysegmentgroup: DXGI_MEMORY_SEGMENT_GROUP) -> ::windows::runtime::Result<DXGI_QUERY_VIDEO_MEMORY_INFO>3424     pub unsafe fn QueryVideoMemoryInfo(&self, nodeindex: u32, memorysegmentgroup: DXGI_MEMORY_SEGMENT_GROUP) -> ::windows::runtime::Result<DXGI_QUERY_VIDEO_MEMORY_INFO> {
3425         let mut result__: <DXGI_QUERY_VIDEO_MEMORY_INFO as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3426         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(nodeindex), ::std::mem::transmute(memorysegmentgroup), &mut result__).from_abi::<DXGI_QUERY_VIDEO_MEMORY_INFO>(result__)
3427     }
SetVideoMemoryReservation(&self, nodeindex: u32, memorysegmentgroup: DXGI_MEMORY_SEGMENT_GROUP, reservation: u64) -> ::windows::runtime::Result<()>3428     pub unsafe fn SetVideoMemoryReservation(&self, nodeindex: u32, memorysegmentgroup: DXGI_MEMORY_SEGMENT_GROUP, reservation: u64) -> ::windows::runtime::Result<()> {
3429         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(nodeindex), ::std::mem::transmute(memorysegmentgroup), ::std::mem::transmute(reservation)).ok()
3430     }
3431     #[cfg(feature = "Win32_Foundation")]
RegisterVideoMemoryBudgetChangeNotificationEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32>3432     pub unsafe fn RegisterVideoMemoryBudgetChangeNotificationEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32> {
3433         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3434         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), hevent.into_param().abi(), &mut result__).from_abi::<u32>(result__)
3435     }
UnregisterVideoMemoryBudgetChangeNotification(&self, dwcookie: u32)3436     pub unsafe fn UnregisterVideoMemoryBudgetChangeNotification(&self, dwcookie: u32) {
3437         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), ::std::mem::transmute(dwcookie)))
3438     }
3439     #[cfg(feature = "Win32_Foundation")]
GetDesc3(&self) -> ::windows::runtime::Result<DXGI_ADAPTER_DESC3>3440     pub unsafe fn GetDesc3(&self) -> ::windows::runtime::Result<DXGI_ADAPTER_DESC3> {
3441         let mut result__: <DXGI_ADAPTER_DESC3 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3442         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_ADAPTER_DESC3>(result__)
3443     }
3444 }
3445 unsafe impl ::windows::runtime::Interface for IDXGIAdapter4 {
3446     type Vtable = IDXGIAdapter4_abi;
3447     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1015912913, 20415, 16769, [168, 44, 175, 102, 191, 123, 210, 78]);
3448 }
3449 impl ::std::convert::From<IDXGIAdapter4> for ::windows::runtime::IUnknown {
from(value: IDXGIAdapter4) -> Self3450     fn from(value: IDXGIAdapter4) -> Self {
3451         unsafe { ::std::mem::transmute(value) }
3452     }
3453 }
3454 impl ::std::convert::From<&IDXGIAdapter4> for ::windows::runtime::IUnknown {
from(value: &IDXGIAdapter4) -> Self3455     fn from(value: &IDXGIAdapter4) -> Self {
3456         ::std::convert::From::from(::std::clone::Clone::clone(value))
3457     }
3458 }
3459 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIAdapter4 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3460     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3461         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3462     }
3463 }
3464 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIAdapter4 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3465     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3466         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3467     }
3468 }
3469 impl ::std::convert::From<IDXGIAdapter4> for IDXGIAdapter3 {
from(value: IDXGIAdapter4) -> Self3470     fn from(value: IDXGIAdapter4) -> Self {
3471         unsafe { ::std::mem::transmute(value) }
3472     }
3473 }
3474 impl ::std::convert::From<&IDXGIAdapter4> for IDXGIAdapter3 {
from(value: &IDXGIAdapter4) -> Self3475     fn from(value: &IDXGIAdapter4) -> Self {
3476         ::std::convert::From::from(::std::clone::Clone::clone(value))
3477     }
3478 }
3479 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIAdapter3> for IDXGIAdapter4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter3>3480     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter3> {
3481         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIAdapter3>::into(self))
3482     }
3483 }
3484 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIAdapter3> for &IDXGIAdapter4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter3>3485     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter3> {
3486         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIAdapter3>::into(::std::clone::Clone::clone(self)))
3487     }
3488 }
3489 impl ::std::convert::From<IDXGIAdapter4> for IDXGIAdapter2 {
from(value: IDXGIAdapter4) -> Self3490     fn from(value: IDXGIAdapter4) -> Self {
3491         unsafe { ::std::mem::transmute(value) }
3492     }
3493 }
3494 impl ::std::convert::From<&IDXGIAdapter4> for IDXGIAdapter2 {
from(value: &IDXGIAdapter4) -> Self3495     fn from(value: &IDXGIAdapter4) -> Self {
3496         ::std::convert::From::from(::std::clone::Clone::clone(value))
3497     }
3498 }
3499 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIAdapter2> for IDXGIAdapter4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter2>3500     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter2> {
3501         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIAdapter2>::into(self))
3502     }
3503 }
3504 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIAdapter2> for &IDXGIAdapter4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter2>3505     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter2> {
3506         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIAdapter2>::into(::std::clone::Clone::clone(self)))
3507     }
3508 }
3509 impl ::std::convert::From<IDXGIAdapter4> for IDXGIAdapter1 {
from(value: IDXGIAdapter4) -> Self3510     fn from(value: IDXGIAdapter4) -> Self {
3511         unsafe { ::std::mem::transmute(value) }
3512     }
3513 }
3514 impl ::std::convert::From<&IDXGIAdapter4> for IDXGIAdapter1 {
from(value: &IDXGIAdapter4) -> Self3515     fn from(value: &IDXGIAdapter4) -> Self {
3516         ::std::convert::From::from(::std::clone::Clone::clone(value))
3517     }
3518 }
3519 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIAdapter1> for IDXGIAdapter4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter1>3520     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter1> {
3521         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIAdapter1>::into(self))
3522     }
3523 }
3524 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIAdapter1> for &IDXGIAdapter4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter1>3525     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter1> {
3526         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIAdapter1>::into(::std::clone::Clone::clone(self)))
3527     }
3528 }
3529 impl ::std::convert::From<IDXGIAdapter4> for IDXGIAdapter {
from(value: IDXGIAdapter4) -> Self3530     fn from(value: IDXGIAdapter4) -> Self {
3531         unsafe { ::std::mem::transmute(value) }
3532     }
3533 }
3534 impl ::std::convert::From<&IDXGIAdapter4> for IDXGIAdapter {
from(value: &IDXGIAdapter4) -> Self3535     fn from(value: &IDXGIAdapter4) -> Self {
3536         ::std::convert::From::from(::std::clone::Clone::clone(value))
3537     }
3538 }
3539 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIAdapter> for IDXGIAdapter4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter>3540     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter> {
3541         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIAdapter>::into(self))
3542     }
3543 }
3544 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIAdapter> for &IDXGIAdapter4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter>3545     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIAdapter> {
3546         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIAdapter>::into(::std::clone::Clone::clone(self)))
3547     }
3548 }
3549 impl ::std::convert::From<IDXGIAdapter4> for IDXGIObject {
from(value: IDXGIAdapter4) -> Self3550     fn from(value: IDXGIAdapter4) -> Self {
3551         unsafe { ::std::mem::transmute(value) }
3552     }
3553 }
3554 impl ::std::convert::From<&IDXGIAdapter4> for IDXGIObject {
from(value: &IDXGIAdapter4) -> Self3555     fn from(value: &IDXGIAdapter4) -> Self {
3556         ::std::convert::From::from(::std::clone::Clone::clone(value))
3557     }
3558 }
3559 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGIAdapter4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>3560     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
3561         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
3562     }
3563 }
3564 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGIAdapter4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>3565     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
3566         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
3567     }
3568 }
3569 #[repr(C)]
3570 #[doc(hidden)]
3571 pub struct IDXGIAdapter4_abi(
3572     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3573     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3574     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3575     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
3576     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3577     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
3578     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
3579     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, output: u32, ppoutput: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3580     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_ADAPTER_DESC) -> ::windows::runtime::HRESULT,
3581     #[cfg(not(feature = "Win32_Foundation"))] usize,
3582     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, interfacename: *const ::windows::runtime::GUID, pumdversion: *mut i64) -> ::windows::runtime::HRESULT,
3583     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_ADAPTER_DESC1) -> ::windows::runtime::HRESULT,
3584     #[cfg(not(feature = "Win32_Foundation"))] usize,
3585     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_ADAPTER_DESC2) -> ::windows::runtime::HRESULT,
3586     #[cfg(not(feature = "Win32_Foundation"))] usize,
3587     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hevent: super::super::Foundation::HANDLE, pdwcookie: *mut u32) -> ::windows::runtime::HRESULT,
3588     #[cfg(not(feature = "Win32_Foundation"))] usize,
3589     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dwcookie: u32),
3590     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, nodeindex: u32, memorysegmentgroup: DXGI_MEMORY_SEGMENT_GROUP, pvideomemoryinfo: *mut DXGI_QUERY_VIDEO_MEMORY_INFO) -> ::windows::runtime::HRESULT,
3591     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, nodeindex: u32, memorysegmentgroup: DXGI_MEMORY_SEGMENT_GROUP, reservation: u64) -> ::windows::runtime::HRESULT,
3592     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hevent: super::super::Foundation::HANDLE, pdwcookie: *mut u32) -> ::windows::runtime::HRESULT,
3593     #[cfg(not(feature = "Win32_Foundation"))] usize,
3594     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dwcookie: u32),
3595     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_ADAPTER_DESC3) -> ::windows::runtime::HRESULT,
3596     #[cfg(not(feature = "Win32_Foundation"))] usize,
3597 );
3598 #[repr(transparent)]
3599 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3600 pub struct IDXGIDebug(::windows::runtime::IUnknown);
3601 impl IDXGIDebug {
ReportLiveObjects<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, apiid: Param0, flags: DXGI_DEBUG_RLO_FLAGS) -> ::windows::runtime::Result<()>3602     pub unsafe fn ReportLiveObjects<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, apiid: Param0, flags: DXGI_DEBUG_RLO_FLAGS) -> ::windows::runtime::Result<()> {
3603         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), apiid.into_param().abi(), ::std::mem::transmute(flags)).ok()
3604     }
3605 }
3606 unsafe impl ::windows::runtime::Interface for IDXGIDebug {
3607     type Vtable = IDXGIDebug_abi;
3608     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(295597138, 56990, 16638, [136, 6, 136, 249, 12, 18, 180, 65]);
3609 }
3610 impl ::std::convert::From<IDXGIDebug> for ::windows::runtime::IUnknown {
from(value: IDXGIDebug) -> Self3611     fn from(value: IDXGIDebug) -> Self {
3612         unsafe { ::std::mem::transmute(value) }
3613     }
3614 }
3615 impl ::std::convert::From<&IDXGIDebug> for ::windows::runtime::IUnknown {
from(value: &IDXGIDebug) -> Self3616     fn from(value: &IDXGIDebug) -> Self {
3617         ::std::convert::From::from(::std::clone::Clone::clone(value))
3618     }
3619 }
3620 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIDebug {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3621     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3622         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3623     }
3624 }
3625 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIDebug {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3626     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3627         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3628     }
3629 }
3630 #[repr(C)]
3631 #[doc(hidden)]
3632 pub struct IDXGIDebug_abi(
3633     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3634     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3635     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3636     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, apiid: ::windows::runtime::GUID, flags: DXGI_DEBUG_RLO_FLAGS) -> ::windows::runtime::HRESULT,
3637 );
3638 #[repr(transparent)]
3639 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3640 pub struct IDXGIDebug1(::windows::runtime::IUnknown);
3641 impl IDXGIDebug1 {
ReportLiveObjects<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, apiid: Param0, flags: DXGI_DEBUG_RLO_FLAGS) -> ::windows::runtime::Result<()>3642     pub unsafe fn ReportLiveObjects<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, apiid: Param0, flags: DXGI_DEBUG_RLO_FLAGS) -> ::windows::runtime::Result<()> {
3643         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), apiid.into_param().abi(), ::std::mem::transmute(flags)).ok()
3644     }
EnableLeakTrackingForThread(&self)3645     pub unsafe fn EnableLeakTrackingForThread(&self) {
3646         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)))
3647     }
DisableLeakTrackingForThread(&self)3648     pub unsafe fn DisableLeakTrackingForThread(&self) {
3649         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)))
3650     }
3651     #[cfg(feature = "Win32_Foundation")]
IsLeakTrackingEnabledForThread(&self) -> super::super::Foundation::BOOL3652     pub unsafe fn IsLeakTrackingEnabledForThread(&self) -> super::super::Foundation::BOOL {
3653         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self)))
3654     }
3655 }
3656 unsafe impl ::windows::runtime::Interface for IDXGIDebug1 {
3657     type Vtable = IDXGIDebug1_abi;
3658     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3315621644, 5874, 19167, [159, 77, 168, 196, 213, 138, 197, 80]);
3659 }
3660 impl ::std::convert::From<IDXGIDebug1> for ::windows::runtime::IUnknown {
from(value: IDXGIDebug1) -> Self3661     fn from(value: IDXGIDebug1) -> Self {
3662         unsafe { ::std::mem::transmute(value) }
3663     }
3664 }
3665 impl ::std::convert::From<&IDXGIDebug1> for ::windows::runtime::IUnknown {
from(value: &IDXGIDebug1) -> Self3666     fn from(value: &IDXGIDebug1) -> Self {
3667         ::std::convert::From::from(::std::clone::Clone::clone(value))
3668     }
3669 }
3670 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIDebug1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3671     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3672         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3673     }
3674 }
3675 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIDebug1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3676     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3677         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3678     }
3679 }
3680 impl ::std::convert::From<IDXGIDebug1> for IDXGIDebug {
from(value: IDXGIDebug1) -> Self3681     fn from(value: IDXGIDebug1) -> Self {
3682         unsafe { ::std::mem::transmute(value) }
3683     }
3684 }
3685 impl ::std::convert::From<&IDXGIDebug1> for IDXGIDebug {
from(value: &IDXGIDebug1) -> Self3686     fn from(value: &IDXGIDebug1) -> Self {
3687         ::std::convert::From::from(::std::clone::Clone::clone(value))
3688     }
3689 }
3690 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDebug> for IDXGIDebug1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDebug>3691     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDebug> {
3692         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDebug>::into(self))
3693     }
3694 }
3695 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDebug> for &IDXGIDebug1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDebug>3696     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDebug> {
3697         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDebug>::into(::std::clone::Clone::clone(self)))
3698     }
3699 }
3700 #[repr(C)]
3701 #[doc(hidden)]
3702 pub struct IDXGIDebug1_abi(
3703     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3704     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3705     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3706     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, apiid: ::windows::runtime::GUID, flags: DXGI_DEBUG_RLO_FLAGS) -> ::windows::runtime::HRESULT,
3707     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr),
3708     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr),
3709     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
3710     #[cfg(not(feature = "Win32_Foundation"))] usize,
3711 );
3712 #[repr(transparent)]
3713 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3714 pub struct IDXGIDecodeSwapChain(::windows::runtime::IUnknown);
3715 impl IDXGIDecodeSwapChain {
PresentBuffer(&self, buffertopresent: u32, syncinterval: u32, flags: u32) -> ::windows::runtime::Result<()>3716     pub unsafe fn PresentBuffer(&self, buffertopresent: u32, syncinterval: u32, flags: u32) -> ::windows::runtime::Result<()> {
3717         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(buffertopresent), ::std::mem::transmute(syncinterval), ::std::mem::transmute(flags)).ok()
3718     }
3719     #[cfg(feature = "Win32_Foundation")]
SetSourceRect(&self, prect: *const super::super::Foundation::RECT) -> ::windows::runtime::Result<()>3720     pub unsafe fn SetSourceRect(&self, prect: *const super::super::Foundation::RECT) -> ::windows::runtime::Result<()> {
3721         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(prect)).ok()
3722     }
3723     #[cfg(feature = "Win32_Foundation")]
SetTargetRect(&self, prect: *const super::super::Foundation::RECT) -> ::windows::runtime::Result<()>3724     pub unsafe fn SetTargetRect(&self, prect: *const super::super::Foundation::RECT) -> ::windows::runtime::Result<()> {
3725         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(prect)).ok()
3726     }
SetDestSize(&self, width: u32, height: u32) -> ::windows::runtime::Result<()>3727     pub unsafe fn SetDestSize(&self, width: u32, height: u32) -> ::windows::runtime::Result<()> {
3728         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(width), ::std::mem::transmute(height)).ok()
3729     }
3730     #[cfg(feature = "Win32_Foundation")]
GetSourceRect(&self) -> ::windows::runtime::Result<super::super::Foundation::RECT>3731     pub unsafe fn GetSourceRect(&self) -> ::windows::runtime::Result<super::super::Foundation::RECT> {
3732         let mut result__: <super::super::Foundation::RECT as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3733         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::RECT>(result__)
3734     }
3735     #[cfg(feature = "Win32_Foundation")]
GetTargetRect(&self) -> ::windows::runtime::Result<super::super::Foundation::RECT>3736     pub unsafe fn GetTargetRect(&self) -> ::windows::runtime::Result<super::super::Foundation::RECT> {
3737         let mut result__: <super::super::Foundation::RECT as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3738         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::RECT>(result__)
3739     }
GetDestSize(&self, pwidth: *mut u32, pheight: *mut u32) -> ::windows::runtime::Result<()>3740     pub unsafe fn GetDestSize(&self, pwidth: *mut u32, pheight: *mut u32) -> ::windows::runtime::Result<()> {
3741         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwidth), ::std::mem::transmute(pheight)).ok()
3742     }
SetColorSpace(&self, colorspace: DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS) -> ::windows::runtime::Result<()>3743     pub unsafe fn SetColorSpace(&self, colorspace: DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS) -> ::windows::runtime::Result<()> {
3744         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(colorspace)).ok()
3745     }
GetColorSpace(&self) -> DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS3746     pub unsafe fn GetColorSpace(&self) -> DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS {
3747         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self)))
3748     }
3749 }
3750 unsafe impl ::windows::runtime::Interface for IDXGIDecodeSwapChain {
3751     type Vtable = IDXGIDecodeSwapChain_abi;
3752     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(640878187, 17684, 19578, [143, 216, 18, 234, 152, 5, 157, 24]);
3753 }
3754 impl ::std::convert::From<IDXGIDecodeSwapChain> for ::windows::runtime::IUnknown {
from(value: IDXGIDecodeSwapChain) -> Self3755     fn from(value: IDXGIDecodeSwapChain) -> Self {
3756         unsafe { ::std::mem::transmute(value) }
3757     }
3758 }
3759 impl ::std::convert::From<&IDXGIDecodeSwapChain> for ::windows::runtime::IUnknown {
from(value: &IDXGIDecodeSwapChain) -> Self3760     fn from(value: &IDXGIDecodeSwapChain) -> Self {
3761         ::std::convert::From::from(::std::clone::Clone::clone(value))
3762     }
3763 }
3764 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIDecodeSwapChain {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3765     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3766         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3767     }
3768 }
3769 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIDecodeSwapChain {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3770     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3771         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3772     }
3773 }
3774 #[repr(C)]
3775 #[doc(hidden)]
3776 pub struct IDXGIDecodeSwapChain_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, buffertopresent: u32, syncinterval: u32, flags: u32) -> ::windows::runtime::HRESULT,
3781     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, prect: *const super::super::Foundation::RECT) -> ::windows::runtime::HRESULT,
3782     #[cfg(not(feature = "Win32_Foundation"))] usize,
3783     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, prect: *const super::super::Foundation::RECT) -> ::windows::runtime::HRESULT,
3784     #[cfg(not(feature = "Win32_Foundation"))] usize,
3785     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, width: u32, height: u32) -> ::windows::runtime::HRESULT,
3786     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, prect: *mut super::super::Foundation::RECT) -> ::windows::runtime::HRESULT,
3787     #[cfg(not(feature = "Win32_Foundation"))] usize,
3788     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, prect: *mut super::super::Foundation::RECT) -> ::windows::runtime::HRESULT,
3789     #[cfg(not(feature = "Win32_Foundation"))] usize,
3790     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwidth: *mut u32, pheight: *mut u32) -> ::windows::runtime::HRESULT,
3791     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, colorspace: DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS) -> ::windows::runtime::HRESULT,
3792     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS,
3793 );
3794 #[repr(transparent)]
3795 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3796 pub struct IDXGIDevice(::windows::runtime::IUnknown);
3797 impl IDXGIDevice {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>3798     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
3799         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
3800     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>3801     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
3802         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
3803     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>3804     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
3805         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
3806     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>3807     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
3808         let mut result__ = ::std::option::Option::None;
3809         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
3810     }
GetAdapter(&self) -> ::windows::runtime::Result<IDXGIAdapter>3811     pub unsafe fn GetAdapter(&self) -> ::windows::runtime::Result<IDXGIAdapter> {
3812         let mut result__: <IDXGIAdapter as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3813         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDXGIAdapter>(result__)
3814     }
3815     #[cfg(feature = "Win32_Foundation")]
CreateSurface(&self, pdesc: *const DXGI_SURFACE_DESC, numsurfaces: u32, usage: u32, psharedresource: *const DXGI_SHARED_RESOURCE, ppsurface: *mut ::std::option::Option<IDXGISurface>) -> ::windows::runtime::Result<()>3816     pub unsafe fn CreateSurface(&self, pdesc: *const DXGI_SURFACE_DESC, numsurfaces: u32, usage: u32, psharedresource: *const DXGI_SHARED_RESOURCE, ppsurface: *mut ::std::option::Option<IDXGISurface>) -> ::windows::runtime::Result<()> {
3817         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(pdesc), ::std::mem::transmute(numsurfaces), ::std::mem::transmute(usage), ::std::mem::transmute(psharedresource), ::std::mem::transmute(ppsurface)).ok()
3818     }
QueryResourceResidency(&self, ppresources: *const ::std::option::Option<::windows::runtime::IUnknown>, presidencystatus: *mut DXGI_RESIDENCY, numresources: u32) -> ::windows::runtime::Result<()>3819     pub unsafe fn QueryResourceResidency(&self, ppresources: *const ::std::option::Option<::windows::runtime::IUnknown>, presidencystatus: *mut DXGI_RESIDENCY, numresources: u32) -> ::windows::runtime::Result<()> {
3820         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(ppresources), ::std::mem::transmute(presidencystatus), ::std::mem::transmute(numresources)).ok()
3821     }
SetGPUThreadPriority(&self, priority: i32) -> ::windows::runtime::Result<()>3822     pub unsafe fn SetGPUThreadPriority(&self, priority: i32) -> ::windows::runtime::Result<()> {
3823         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(priority)).ok()
3824     }
GetGPUThreadPriority(&self) -> ::windows::runtime::Result<i32>3825     pub unsafe fn GetGPUThreadPriority(&self) -> ::windows::runtime::Result<i32> {
3826         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3827         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
3828     }
3829 }
3830 unsafe impl ::windows::runtime::Interface for IDXGIDevice {
3831     type Vtable = IDXGIDevice_abi;
3832     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1424783354, 4983, 17638, [140, 50, 136, 253, 95, 68, 200, 76]);
3833 }
3834 impl ::std::convert::From<IDXGIDevice> for ::windows::runtime::IUnknown {
from(value: IDXGIDevice) -> Self3835     fn from(value: IDXGIDevice) -> Self {
3836         unsafe { ::std::mem::transmute(value) }
3837     }
3838 }
3839 impl ::std::convert::From<&IDXGIDevice> for ::windows::runtime::IUnknown {
from(value: &IDXGIDevice) -> Self3840     fn from(value: &IDXGIDevice) -> Self {
3841         ::std::convert::From::from(::std::clone::Clone::clone(value))
3842     }
3843 }
3844 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIDevice {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3845     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3846         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3847     }
3848 }
3849 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIDevice {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3850     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3851         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3852     }
3853 }
3854 impl ::std::convert::From<IDXGIDevice> for IDXGIObject {
from(value: IDXGIDevice) -> Self3855     fn from(value: IDXGIDevice) -> Self {
3856         unsafe { ::std::mem::transmute(value) }
3857     }
3858 }
3859 impl ::std::convert::From<&IDXGIDevice> for IDXGIObject {
from(value: &IDXGIDevice) -> Self3860     fn from(value: &IDXGIDevice) -> Self {
3861         ::std::convert::From::from(::std::clone::Clone::clone(value))
3862     }
3863 }
3864 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGIDevice {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>3865     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
3866         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
3867     }
3868 }
3869 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGIDevice {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>3870     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
3871         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
3872     }
3873 }
3874 #[repr(C)]
3875 #[doc(hidden)]
3876 pub struct IDXGIDevice_abi(
3877     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3878     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3879     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3880     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
3881     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3882     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
3883     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
3884     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, padapter: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3885     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *const DXGI_SURFACE_DESC, numsurfaces: u32, usage: u32, psharedresource: *const DXGI_SHARED_RESOURCE, ppsurface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3886     #[cfg(not(feature = "Win32_Foundation"))] usize,
3887     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppresources: *const ::windows::runtime::RawPtr, presidencystatus: *mut DXGI_RESIDENCY, numresources: u32) -> ::windows::runtime::HRESULT,
3888     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, priority: i32) -> ::windows::runtime::HRESULT,
3889     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppriority: *mut i32) -> ::windows::runtime::HRESULT,
3890 );
3891 #[repr(transparent)]
3892 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3893 pub struct IDXGIDevice1(::windows::runtime::IUnknown);
3894 impl IDXGIDevice1 {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>3895     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
3896         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
3897     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>3898     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
3899         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
3900     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>3901     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
3902         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
3903     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>3904     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
3905         let mut result__ = ::std::option::Option::None;
3906         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
3907     }
GetAdapter(&self) -> ::windows::runtime::Result<IDXGIAdapter>3908     pub unsafe fn GetAdapter(&self) -> ::windows::runtime::Result<IDXGIAdapter> {
3909         let mut result__: <IDXGIAdapter as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3910         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDXGIAdapter>(result__)
3911     }
3912     #[cfg(feature = "Win32_Foundation")]
CreateSurface(&self, pdesc: *const DXGI_SURFACE_DESC, numsurfaces: u32, usage: u32, psharedresource: *const DXGI_SHARED_RESOURCE, ppsurface: *mut ::std::option::Option<IDXGISurface>) -> ::windows::runtime::Result<()>3913     pub unsafe fn CreateSurface(&self, pdesc: *const DXGI_SURFACE_DESC, numsurfaces: u32, usage: u32, psharedresource: *const DXGI_SHARED_RESOURCE, ppsurface: *mut ::std::option::Option<IDXGISurface>) -> ::windows::runtime::Result<()> {
3914         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(pdesc), ::std::mem::transmute(numsurfaces), ::std::mem::transmute(usage), ::std::mem::transmute(psharedresource), ::std::mem::transmute(ppsurface)).ok()
3915     }
QueryResourceResidency(&self, ppresources: *const ::std::option::Option<::windows::runtime::IUnknown>, presidencystatus: *mut DXGI_RESIDENCY, numresources: u32) -> ::windows::runtime::Result<()>3916     pub unsafe fn QueryResourceResidency(&self, ppresources: *const ::std::option::Option<::windows::runtime::IUnknown>, presidencystatus: *mut DXGI_RESIDENCY, numresources: u32) -> ::windows::runtime::Result<()> {
3917         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(ppresources), ::std::mem::transmute(presidencystatus), ::std::mem::transmute(numresources)).ok()
3918     }
SetGPUThreadPriority(&self, priority: i32) -> ::windows::runtime::Result<()>3919     pub unsafe fn SetGPUThreadPriority(&self, priority: i32) -> ::windows::runtime::Result<()> {
3920         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(priority)).ok()
3921     }
GetGPUThreadPriority(&self) -> ::windows::runtime::Result<i32>3922     pub unsafe fn GetGPUThreadPriority(&self) -> ::windows::runtime::Result<i32> {
3923         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3924         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
3925     }
SetMaximumFrameLatency(&self, maxlatency: u32) -> ::windows::runtime::Result<()>3926     pub unsafe fn SetMaximumFrameLatency(&self, maxlatency: u32) -> ::windows::runtime::Result<()> {
3927         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(maxlatency)).ok()
3928     }
GetMaximumFrameLatency(&self) -> ::windows::runtime::Result<u32>3929     pub unsafe fn GetMaximumFrameLatency(&self) -> ::windows::runtime::Result<u32> {
3930         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3931         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
3932     }
3933 }
3934 unsafe impl ::windows::runtime::Interface for IDXGIDevice1 {
3935     type Vtable = IDXGIDevice1_abi;
3936     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2010879759, 25206, 18618, [186, 40, 7, 1, 67, 180, 57, 44]);
3937 }
3938 impl ::std::convert::From<IDXGIDevice1> for ::windows::runtime::IUnknown {
from(value: IDXGIDevice1) -> Self3939     fn from(value: IDXGIDevice1) -> Self {
3940         unsafe { ::std::mem::transmute(value) }
3941     }
3942 }
3943 impl ::std::convert::From<&IDXGIDevice1> for ::windows::runtime::IUnknown {
from(value: &IDXGIDevice1) -> Self3944     fn from(value: &IDXGIDevice1) -> Self {
3945         ::std::convert::From::from(::std::clone::Clone::clone(value))
3946     }
3947 }
3948 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIDevice1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3949     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3950         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3951     }
3952 }
3953 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIDevice1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3954     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3955         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3956     }
3957 }
3958 impl ::std::convert::From<IDXGIDevice1> for IDXGIDevice {
from(value: IDXGIDevice1) -> Self3959     fn from(value: IDXGIDevice1) -> Self {
3960         unsafe { ::std::mem::transmute(value) }
3961     }
3962 }
3963 impl ::std::convert::From<&IDXGIDevice1> for IDXGIDevice {
from(value: &IDXGIDevice1) -> Self3964     fn from(value: &IDXGIDevice1) -> Self {
3965         ::std::convert::From::from(::std::clone::Clone::clone(value))
3966     }
3967 }
3968 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDevice> for IDXGIDevice1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice>3969     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice> {
3970         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDevice>::into(self))
3971     }
3972 }
3973 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDevice> for &IDXGIDevice1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice>3974     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice> {
3975         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDevice>::into(::std::clone::Clone::clone(self)))
3976     }
3977 }
3978 impl ::std::convert::From<IDXGIDevice1> for IDXGIObject {
from(value: IDXGIDevice1) -> Self3979     fn from(value: IDXGIDevice1) -> Self {
3980         unsafe { ::std::mem::transmute(value) }
3981     }
3982 }
3983 impl ::std::convert::From<&IDXGIDevice1> for IDXGIObject {
from(value: &IDXGIDevice1) -> Self3984     fn from(value: &IDXGIDevice1) -> Self {
3985         ::std::convert::From::from(::std::clone::Clone::clone(value))
3986     }
3987 }
3988 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGIDevice1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>3989     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
3990         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
3991     }
3992 }
3993 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGIDevice1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>3994     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
3995         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
3996     }
3997 }
3998 #[repr(C)]
3999 #[doc(hidden)]
4000 pub struct IDXGIDevice1_abi(
4001     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4002     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4003     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4004     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
4005     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4006     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
4007     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
4008     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, padapter: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4009     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *const DXGI_SURFACE_DESC, numsurfaces: u32, usage: u32, psharedresource: *const DXGI_SHARED_RESOURCE, ppsurface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4010     #[cfg(not(feature = "Win32_Foundation"))] usize,
4011     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppresources: *const ::windows::runtime::RawPtr, presidencystatus: *mut DXGI_RESIDENCY, numresources: u32) -> ::windows::runtime::HRESULT,
4012     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, priority: i32) -> ::windows::runtime::HRESULT,
4013     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppriority: *mut i32) -> ::windows::runtime::HRESULT,
4014     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, maxlatency: u32) -> ::windows::runtime::HRESULT,
4015     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pmaxlatency: *mut u32) -> ::windows::runtime::HRESULT,
4016 );
4017 #[repr(transparent)]
4018 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4019 pub struct IDXGIDevice2(::windows::runtime::IUnknown);
4020 impl IDXGIDevice2 {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>4021     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
4022         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
4023     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>4024     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
4025         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
4026     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>4027     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
4028         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
4029     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>4030     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
4031         let mut result__ = ::std::option::Option::None;
4032         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
4033     }
GetAdapter(&self) -> ::windows::runtime::Result<IDXGIAdapter>4034     pub unsafe fn GetAdapter(&self) -> ::windows::runtime::Result<IDXGIAdapter> {
4035         let mut result__: <IDXGIAdapter as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4036         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDXGIAdapter>(result__)
4037     }
4038     #[cfg(feature = "Win32_Foundation")]
CreateSurface(&self, pdesc: *const DXGI_SURFACE_DESC, numsurfaces: u32, usage: u32, psharedresource: *const DXGI_SHARED_RESOURCE, ppsurface: *mut ::std::option::Option<IDXGISurface>) -> ::windows::runtime::Result<()>4039     pub unsafe fn CreateSurface(&self, pdesc: *const DXGI_SURFACE_DESC, numsurfaces: u32, usage: u32, psharedresource: *const DXGI_SHARED_RESOURCE, ppsurface: *mut ::std::option::Option<IDXGISurface>) -> ::windows::runtime::Result<()> {
4040         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(pdesc), ::std::mem::transmute(numsurfaces), ::std::mem::transmute(usage), ::std::mem::transmute(psharedresource), ::std::mem::transmute(ppsurface)).ok()
4041     }
QueryResourceResidency(&self, ppresources: *const ::std::option::Option<::windows::runtime::IUnknown>, presidencystatus: *mut DXGI_RESIDENCY, numresources: u32) -> ::windows::runtime::Result<()>4042     pub unsafe fn QueryResourceResidency(&self, ppresources: *const ::std::option::Option<::windows::runtime::IUnknown>, presidencystatus: *mut DXGI_RESIDENCY, numresources: u32) -> ::windows::runtime::Result<()> {
4043         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(ppresources), ::std::mem::transmute(presidencystatus), ::std::mem::transmute(numresources)).ok()
4044     }
SetGPUThreadPriority(&self, priority: i32) -> ::windows::runtime::Result<()>4045     pub unsafe fn SetGPUThreadPriority(&self, priority: i32) -> ::windows::runtime::Result<()> {
4046         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(priority)).ok()
4047     }
GetGPUThreadPriority(&self) -> ::windows::runtime::Result<i32>4048     pub unsafe fn GetGPUThreadPriority(&self) -> ::windows::runtime::Result<i32> {
4049         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4050         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
4051     }
SetMaximumFrameLatency(&self, maxlatency: u32) -> ::windows::runtime::Result<()>4052     pub unsafe fn SetMaximumFrameLatency(&self, maxlatency: u32) -> ::windows::runtime::Result<()> {
4053         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(maxlatency)).ok()
4054     }
GetMaximumFrameLatency(&self) -> ::windows::runtime::Result<u32>4055     pub unsafe fn GetMaximumFrameLatency(&self) -> ::windows::runtime::Result<u32> {
4056         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4057         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
4058     }
OfferResources(&self, numresources: u32, ppresources: *const ::std::option::Option<IDXGIResource>, priority: DXGI_OFFER_RESOURCE_PRIORITY) -> ::windows::runtime::Result<()>4059     pub unsafe fn OfferResources(&self, numresources: u32, ppresources: *const ::std::option::Option<IDXGIResource>, priority: DXGI_OFFER_RESOURCE_PRIORITY) -> ::windows::runtime::Result<()> {
4060         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(numresources), ::std::mem::transmute(ppresources), ::std::mem::transmute(priority)).ok()
4061     }
4062     #[cfg(feature = "Win32_Foundation")]
ReclaimResources(&self, numresources: u32, ppresources: *const ::std::option::Option<IDXGIResource>) -> ::windows::runtime::Result<super::super::Foundation::BOOL>4063     pub unsafe fn ReclaimResources(&self, numresources: u32, ppresources: *const ::std::option::Option<IDXGIResource>) -> ::windows::runtime::Result<super::super::Foundation::BOOL> {
4064         let mut result__: <super::super::Foundation::BOOL as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4065         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(numresources), ::std::mem::transmute(ppresources), &mut result__).from_abi::<super::super::Foundation::BOOL>(result__)
4066     }
4067     #[cfg(feature = "Win32_Foundation")]
EnqueueSetEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<()>4068     pub unsafe fn EnqueueSetEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<()> {
4069         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), hevent.into_param().abi()).ok()
4070     }
4071 }
4072 unsafe impl ::windows::runtime::Interface for IDXGIDevice2 {
4073     type Vtable = IDXGIDevice2_abi;
4074     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(83920407, 64509, 16465, [167, 144, 20, 72, 132, 180, 246, 169]);
4075 }
4076 impl ::std::convert::From<IDXGIDevice2> for ::windows::runtime::IUnknown {
from(value: IDXGIDevice2) -> Self4077     fn from(value: IDXGIDevice2) -> Self {
4078         unsafe { ::std::mem::transmute(value) }
4079     }
4080 }
4081 impl ::std::convert::From<&IDXGIDevice2> for ::windows::runtime::IUnknown {
from(value: &IDXGIDevice2) -> Self4082     fn from(value: &IDXGIDevice2) -> Self {
4083         ::std::convert::From::from(::std::clone::Clone::clone(value))
4084     }
4085 }
4086 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIDevice2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4087     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4088         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4089     }
4090 }
4091 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIDevice2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4092     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4093         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4094     }
4095 }
4096 impl ::std::convert::From<IDXGIDevice2> for IDXGIDevice1 {
from(value: IDXGIDevice2) -> Self4097     fn from(value: IDXGIDevice2) -> Self {
4098         unsafe { ::std::mem::transmute(value) }
4099     }
4100 }
4101 impl ::std::convert::From<&IDXGIDevice2> for IDXGIDevice1 {
from(value: &IDXGIDevice2) -> Self4102     fn from(value: &IDXGIDevice2) -> Self {
4103         ::std::convert::From::from(::std::clone::Clone::clone(value))
4104     }
4105 }
4106 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDevice1> for IDXGIDevice2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice1>4107     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice1> {
4108         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDevice1>::into(self))
4109     }
4110 }
4111 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDevice1> for &IDXGIDevice2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice1>4112     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice1> {
4113         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDevice1>::into(::std::clone::Clone::clone(self)))
4114     }
4115 }
4116 impl ::std::convert::From<IDXGIDevice2> for IDXGIDevice {
from(value: IDXGIDevice2) -> Self4117     fn from(value: IDXGIDevice2) -> Self {
4118         unsafe { ::std::mem::transmute(value) }
4119     }
4120 }
4121 impl ::std::convert::From<&IDXGIDevice2> for IDXGIDevice {
from(value: &IDXGIDevice2) -> Self4122     fn from(value: &IDXGIDevice2) -> Self {
4123         ::std::convert::From::from(::std::clone::Clone::clone(value))
4124     }
4125 }
4126 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDevice> for IDXGIDevice2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice>4127     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice> {
4128         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDevice>::into(self))
4129     }
4130 }
4131 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDevice> for &IDXGIDevice2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice>4132     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice> {
4133         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDevice>::into(::std::clone::Clone::clone(self)))
4134     }
4135 }
4136 impl ::std::convert::From<IDXGIDevice2> for IDXGIObject {
from(value: IDXGIDevice2) -> Self4137     fn from(value: IDXGIDevice2) -> Self {
4138         unsafe { ::std::mem::transmute(value) }
4139     }
4140 }
4141 impl ::std::convert::From<&IDXGIDevice2> for IDXGIObject {
from(value: &IDXGIDevice2) -> Self4142     fn from(value: &IDXGIDevice2) -> Self {
4143         ::std::convert::From::from(::std::clone::Clone::clone(value))
4144     }
4145 }
4146 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGIDevice2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>4147     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
4148         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
4149     }
4150 }
4151 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGIDevice2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>4152     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
4153         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
4154     }
4155 }
4156 #[repr(C)]
4157 #[doc(hidden)]
4158 pub struct IDXGIDevice2_abi(
4159     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4160     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4161     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4162     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
4163     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4164     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
4165     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
4166     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, padapter: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4167     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *const DXGI_SURFACE_DESC, numsurfaces: u32, usage: u32, psharedresource: *const DXGI_SHARED_RESOURCE, ppsurface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4168     #[cfg(not(feature = "Win32_Foundation"))] usize,
4169     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppresources: *const ::windows::runtime::RawPtr, presidencystatus: *mut DXGI_RESIDENCY, numresources: u32) -> ::windows::runtime::HRESULT,
4170     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, priority: i32) -> ::windows::runtime::HRESULT,
4171     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppriority: *mut i32) -> ::windows::runtime::HRESULT,
4172     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, maxlatency: u32) -> ::windows::runtime::HRESULT,
4173     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pmaxlatency: *mut u32) -> ::windows::runtime::HRESULT,
4174     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, numresources: u32, ppresources: *const ::windows::runtime::RawPtr, priority: DXGI_OFFER_RESOURCE_PRIORITY) -> ::windows::runtime::HRESULT,
4175     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, numresources: u32, ppresources: *const ::windows::runtime::RawPtr, pdiscarded: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
4176     #[cfg(not(feature = "Win32_Foundation"))] usize,
4177     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hevent: super::super::Foundation::HANDLE) -> ::windows::runtime::HRESULT,
4178     #[cfg(not(feature = "Win32_Foundation"))] usize,
4179 );
4180 #[repr(transparent)]
4181 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4182 pub struct IDXGIDevice3(::windows::runtime::IUnknown);
4183 impl IDXGIDevice3 {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>4184     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
4185         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
4186     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>4187     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
4188         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
4189     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>4190     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
4191         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
4192     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>4193     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
4194         let mut result__ = ::std::option::Option::None;
4195         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
4196     }
GetAdapter(&self) -> ::windows::runtime::Result<IDXGIAdapter>4197     pub unsafe fn GetAdapter(&self) -> ::windows::runtime::Result<IDXGIAdapter> {
4198         let mut result__: <IDXGIAdapter as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4199         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDXGIAdapter>(result__)
4200     }
4201     #[cfg(feature = "Win32_Foundation")]
CreateSurface(&self, pdesc: *const DXGI_SURFACE_DESC, numsurfaces: u32, usage: u32, psharedresource: *const DXGI_SHARED_RESOURCE, ppsurface: *mut ::std::option::Option<IDXGISurface>) -> ::windows::runtime::Result<()>4202     pub unsafe fn CreateSurface(&self, pdesc: *const DXGI_SURFACE_DESC, numsurfaces: u32, usage: u32, psharedresource: *const DXGI_SHARED_RESOURCE, ppsurface: *mut ::std::option::Option<IDXGISurface>) -> ::windows::runtime::Result<()> {
4203         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(pdesc), ::std::mem::transmute(numsurfaces), ::std::mem::transmute(usage), ::std::mem::transmute(psharedresource), ::std::mem::transmute(ppsurface)).ok()
4204     }
QueryResourceResidency(&self, ppresources: *const ::std::option::Option<::windows::runtime::IUnknown>, presidencystatus: *mut DXGI_RESIDENCY, numresources: u32) -> ::windows::runtime::Result<()>4205     pub unsafe fn QueryResourceResidency(&self, ppresources: *const ::std::option::Option<::windows::runtime::IUnknown>, presidencystatus: *mut DXGI_RESIDENCY, numresources: u32) -> ::windows::runtime::Result<()> {
4206         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(ppresources), ::std::mem::transmute(presidencystatus), ::std::mem::transmute(numresources)).ok()
4207     }
SetGPUThreadPriority(&self, priority: i32) -> ::windows::runtime::Result<()>4208     pub unsafe fn SetGPUThreadPriority(&self, priority: i32) -> ::windows::runtime::Result<()> {
4209         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(priority)).ok()
4210     }
GetGPUThreadPriority(&self) -> ::windows::runtime::Result<i32>4211     pub unsafe fn GetGPUThreadPriority(&self) -> ::windows::runtime::Result<i32> {
4212         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4213         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
4214     }
SetMaximumFrameLatency(&self, maxlatency: u32) -> ::windows::runtime::Result<()>4215     pub unsafe fn SetMaximumFrameLatency(&self, maxlatency: u32) -> ::windows::runtime::Result<()> {
4216         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(maxlatency)).ok()
4217     }
GetMaximumFrameLatency(&self) -> ::windows::runtime::Result<u32>4218     pub unsafe fn GetMaximumFrameLatency(&self) -> ::windows::runtime::Result<u32> {
4219         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4220         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
4221     }
OfferResources(&self, numresources: u32, ppresources: *const ::std::option::Option<IDXGIResource>, priority: DXGI_OFFER_RESOURCE_PRIORITY) -> ::windows::runtime::Result<()>4222     pub unsafe fn OfferResources(&self, numresources: u32, ppresources: *const ::std::option::Option<IDXGIResource>, priority: DXGI_OFFER_RESOURCE_PRIORITY) -> ::windows::runtime::Result<()> {
4223         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(numresources), ::std::mem::transmute(ppresources), ::std::mem::transmute(priority)).ok()
4224     }
4225     #[cfg(feature = "Win32_Foundation")]
ReclaimResources(&self, numresources: u32, ppresources: *const ::std::option::Option<IDXGIResource>) -> ::windows::runtime::Result<super::super::Foundation::BOOL>4226     pub unsafe fn ReclaimResources(&self, numresources: u32, ppresources: *const ::std::option::Option<IDXGIResource>) -> ::windows::runtime::Result<super::super::Foundation::BOOL> {
4227         let mut result__: <super::super::Foundation::BOOL as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4228         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(numresources), ::std::mem::transmute(ppresources), &mut result__).from_abi::<super::super::Foundation::BOOL>(result__)
4229     }
4230     #[cfg(feature = "Win32_Foundation")]
EnqueueSetEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<()>4231     pub unsafe fn EnqueueSetEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<()> {
4232         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), hevent.into_param().abi()).ok()
4233     }
Trim(&self)4234     pub unsafe fn Trim(&self) {
4235         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self)))
4236     }
4237 }
4238 unsafe impl ::windows::runtime::Interface for IDXGIDevice3 {
4239     type Vtable = IDXGIDevice3_abi;
4240     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1611106668, 12868, 19197, [191, 24, 166, 211, 190, 218, 80, 35]);
4241 }
4242 impl ::std::convert::From<IDXGIDevice3> for ::windows::runtime::IUnknown {
from(value: IDXGIDevice3) -> Self4243     fn from(value: IDXGIDevice3) -> Self {
4244         unsafe { ::std::mem::transmute(value) }
4245     }
4246 }
4247 impl ::std::convert::From<&IDXGIDevice3> for ::windows::runtime::IUnknown {
from(value: &IDXGIDevice3) -> Self4248     fn from(value: &IDXGIDevice3) -> Self {
4249         ::std::convert::From::from(::std::clone::Clone::clone(value))
4250     }
4251 }
4252 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIDevice3 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4253     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4254         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4255     }
4256 }
4257 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIDevice3 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4258     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4259         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4260     }
4261 }
4262 impl ::std::convert::From<IDXGIDevice3> for IDXGIDevice2 {
from(value: IDXGIDevice3) -> Self4263     fn from(value: IDXGIDevice3) -> Self {
4264         unsafe { ::std::mem::transmute(value) }
4265     }
4266 }
4267 impl ::std::convert::From<&IDXGIDevice3> for IDXGIDevice2 {
from(value: &IDXGIDevice3) -> Self4268     fn from(value: &IDXGIDevice3) -> Self {
4269         ::std::convert::From::from(::std::clone::Clone::clone(value))
4270     }
4271 }
4272 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDevice2> for IDXGIDevice3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice2>4273     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice2> {
4274         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDevice2>::into(self))
4275     }
4276 }
4277 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDevice2> for &IDXGIDevice3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice2>4278     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice2> {
4279         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDevice2>::into(::std::clone::Clone::clone(self)))
4280     }
4281 }
4282 impl ::std::convert::From<IDXGIDevice3> for IDXGIDevice1 {
from(value: IDXGIDevice3) -> Self4283     fn from(value: IDXGIDevice3) -> Self {
4284         unsafe { ::std::mem::transmute(value) }
4285     }
4286 }
4287 impl ::std::convert::From<&IDXGIDevice3> for IDXGIDevice1 {
from(value: &IDXGIDevice3) -> Self4288     fn from(value: &IDXGIDevice3) -> Self {
4289         ::std::convert::From::from(::std::clone::Clone::clone(value))
4290     }
4291 }
4292 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDevice1> for IDXGIDevice3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice1>4293     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice1> {
4294         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDevice1>::into(self))
4295     }
4296 }
4297 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDevice1> for &IDXGIDevice3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice1>4298     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice1> {
4299         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDevice1>::into(::std::clone::Clone::clone(self)))
4300     }
4301 }
4302 impl ::std::convert::From<IDXGIDevice3> for IDXGIDevice {
from(value: IDXGIDevice3) -> Self4303     fn from(value: IDXGIDevice3) -> Self {
4304         unsafe { ::std::mem::transmute(value) }
4305     }
4306 }
4307 impl ::std::convert::From<&IDXGIDevice3> for IDXGIDevice {
from(value: &IDXGIDevice3) -> Self4308     fn from(value: &IDXGIDevice3) -> Self {
4309         ::std::convert::From::from(::std::clone::Clone::clone(value))
4310     }
4311 }
4312 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDevice> for IDXGIDevice3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice>4313     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice> {
4314         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDevice>::into(self))
4315     }
4316 }
4317 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDevice> for &IDXGIDevice3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice>4318     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice> {
4319         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDevice>::into(::std::clone::Clone::clone(self)))
4320     }
4321 }
4322 impl ::std::convert::From<IDXGIDevice3> for IDXGIObject {
from(value: IDXGIDevice3) -> Self4323     fn from(value: IDXGIDevice3) -> Self {
4324         unsafe { ::std::mem::transmute(value) }
4325     }
4326 }
4327 impl ::std::convert::From<&IDXGIDevice3> for IDXGIObject {
from(value: &IDXGIDevice3) -> Self4328     fn from(value: &IDXGIDevice3) -> Self {
4329         ::std::convert::From::from(::std::clone::Clone::clone(value))
4330     }
4331 }
4332 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGIDevice3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>4333     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
4334         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
4335     }
4336 }
4337 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGIDevice3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>4338     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
4339         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
4340     }
4341 }
4342 #[repr(C)]
4343 #[doc(hidden)]
4344 pub struct IDXGIDevice3_abi(
4345     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4346     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4347     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4348     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
4349     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4350     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
4351     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
4352     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, padapter: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4353     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *const DXGI_SURFACE_DESC, numsurfaces: u32, usage: u32, psharedresource: *const DXGI_SHARED_RESOURCE, ppsurface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4354     #[cfg(not(feature = "Win32_Foundation"))] usize,
4355     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppresources: *const ::windows::runtime::RawPtr, presidencystatus: *mut DXGI_RESIDENCY, numresources: u32) -> ::windows::runtime::HRESULT,
4356     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, priority: i32) -> ::windows::runtime::HRESULT,
4357     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppriority: *mut i32) -> ::windows::runtime::HRESULT,
4358     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, maxlatency: u32) -> ::windows::runtime::HRESULT,
4359     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pmaxlatency: *mut u32) -> ::windows::runtime::HRESULT,
4360     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, numresources: u32, ppresources: *const ::windows::runtime::RawPtr, priority: DXGI_OFFER_RESOURCE_PRIORITY) -> ::windows::runtime::HRESULT,
4361     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, numresources: u32, ppresources: *const ::windows::runtime::RawPtr, pdiscarded: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
4362     #[cfg(not(feature = "Win32_Foundation"))] usize,
4363     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hevent: super::super::Foundation::HANDLE) -> ::windows::runtime::HRESULT,
4364     #[cfg(not(feature = "Win32_Foundation"))] usize,
4365     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr),
4366 );
4367 #[repr(transparent)]
4368 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4369 pub struct IDXGIDevice4(::windows::runtime::IUnknown);
4370 impl IDXGIDevice4 {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>4371     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
4372         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
4373     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>4374     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
4375         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
4376     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>4377     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
4378         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
4379     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>4380     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
4381         let mut result__ = ::std::option::Option::None;
4382         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
4383     }
GetAdapter(&self) -> ::windows::runtime::Result<IDXGIAdapter>4384     pub unsafe fn GetAdapter(&self) -> ::windows::runtime::Result<IDXGIAdapter> {
4385         let mut result__: <IDXGIAdapter as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4386         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDXGIAdapter>(result__)
4387     }
4388     #[cfg(feature = "Win32_Foundation")]
CreateSurface(&self, pdesc: *const DXGI_SURFACE_DESC, numsurfaces: u32, usage: u32, psharedresource: *const DXGI_SHARED_RESOURCE, ppsurface: *mut ::std::option::Option<IDXGISurface>) -> ::windows::runtime::Result<()>4389     pub unsafe fn CreateSurface(&self, pdesc: *const DXGI_SURFACE_DESC, numsurfaces: u32, usage: u32, psharedresource: *const DXGI_SHARED_RESOURCE, ppsurface: *mut ::std::option::Option<IDXGISurface>) -> ::windows::runtime::Result<()> {
4390         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(pdesc), ::std::mem::transmute(numsurfaces), ::std::mem::transmute(usage), ::std::mem::transmute(psharedresource), ::std::mem::transmute(ppsurface)).ok()
4391     }
QueryResourceResidency(&self, ppresources: *const ::std::option::Option<::windows::runtime::IUnknown>, presidencystatus: *mut DXGI_RESIDENCY, numresources: u32) -> ::windows::runtime::Result<()>4392     pub unsafe fn QueryResourceResidency(&self, ppresources: *const ::std::option::Option<::windows::runtime::IUnknown>, presidencystatus: *mut DXGI_RESIDENCY, numresources: u32) -> ::windows::runtime::Result<()> {
4393         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(ppresources), ::std::mem::transmute(presidencystatus), ::std::mem::transmute(numresources)).ok()
4394     }
SetGPUThreadPriority(&self, priority: i32) -> ::windows::runtime::Result<()>4395     pub unsafe fn SetGPUThreadPriority(&self, priority: i32) -> ::windows::runtime::Result<()> {
4396         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(priority)).ok()
4397     }
GetGPUThreadPriority(&self) -> ::windows::runtime::Result<i32>4398     pub unsafe fn GetGPUThreadPriority(&self) -> ::windows::runtime::Result<i32> {
4399         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4400         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
4401     }
SetMaximumFrameLatency(&self, maxlatency: u32) -> ::windows::runtime::Result<()>4402     pub unsafe fn SetMaximumFrameLatency(&self, maxlatency: u32) -> ::windows::runtime::Result<()> {
4403         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(maxlatency)).ok()
4404     }
GetMaximumFrameLatency(&self) -> ::windows::runtime::Result<u32>4405     pub unsafe fn GetMaximumFrameLatency(&self) -> ::windows::runtime::Result<u32> {
4406         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4407         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
4408     }
OfferResources(&self, numresources: u32, ppresources: *const ::std::option::Option<IDXGIResource>, priority: DXGI_OFFER_RESOURCE_PRIORITY) -> ::windows::runtime::Result<()>4409     pub unsafe fn OfferResources(&self, numresources: u32, ppresources: *const ::std::option::Option<IDXGIResource>, priority: DXGI_OFFER_RESOURCE_PRIORITY) -> ::windows::runtime::Result<()> {
4410         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(numresources), ::std::mem::transmute(ppresources), ::std::mem::transmute(priority)).ok()
4411     }
4412     #[cfg(feature = "Win32_Foundation")]
ReclaimResources(&self, numresources: u32, ppresources: *const ::std::option::Option<IDXGIResource>) -> ::windows::runtime::Result<super::super::Foundation::BOOL>4413     pub unsafe fn ReclaimResources(&self, numresources: u32, ppresources: *const ::std::option::Option<IDXGIResource>) -> ::windows::runtime::Result<super::super::Foundation::BOOL> {
4414         let mut result__: <super::super::Foundation::BOOL as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4415         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(numresources), ::std::mem::transmute(ppresources), &mut result__).from_abi::<super::super::Foundation::BOOL>(result__)
4416     }
4417     #[cfg(feature = "Win32_Foundation")]
EnqueueSetEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<()>4418     pub unsafe fn EnqueueSetEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<()> {
4419         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), hevent.into_param().abi()).ok()
4420     }
Trim(&self)4421     pub unsafe fn Trim(&self) {
4422         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self)))
4423     }
OfferResources1(&self, numresources: u32, ppresources: *const ::std::option::Option<IDXGIResource>, priority: DXGI_OFFER_RESOURCE_PRIORITY, flags: u32) -> ::windows::runtime::Result<()>4424     pub unsafe fn OfferResources1(&self, numresources: u32, ppresources: *const ::std::option::Option<IDXGIResource>, priority: DXGI_OFFER_RESOURCE_PRIORITY, flags: u32) -> ::windows::runtime::Result<()> {
4425         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), ::std::mem::transmute(numresources), ::std::mem::transmute(ppresources), ::std::mem::transmute(priority), ::std::mem::transmute(flags)).ok()
4426     }
ReclaimResources1(&self, numresources: u32, ppresources: *const ::std::option::Option<IDXGIResource>) -> ::windows::runtime::Result<DXGI_RECLAIM_RESOURCE_RESULTS>4427     pub unsafe fn ReclaimResources1(&self, numresources: u32, ppresources: *const ::std::option::Option<IDXGIResource>) -> ::windows::runtime::Result<DXGI_RECLAIM_RESOURCE_RESULTS> {
4428         let mut result__: <DXGI_RECLAIM_RESOURCE_RESULTS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4429         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), ::std::mem::transmute(numresources), ::std::mem::transmute(ppresources), &mut result__).from_abi::<DXGI_RECLAIM_RESOURCE_RESULTS>(result__)
4430     }
4431 }
4432 unsafe impl ::windows::runtime::Interface for IDXGIDevice4 {
4433     type Vtable = IDXGIDevice4_abi;
4434     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2511665503, 55514, 19620, [158, 230, 59, 118, 213, 150, 138, 16]);
4435 }
4436 impl ::std::convert::From<IDXGIDevice4> for ::windows::runtime::IUnknown {
from(value: IDXGIDevice4) -> Self4437     fn from(value: IDXGIDevice4) -> Self {
4438         unsafe { ::std::mem::transmute(value) }
4439     }
4440 }
4441 impl ::std::convert::From<&IDXGIDevice4> for ::windows::runtime::IUnknown {
from(value: &IDXGIDevice4) -> Self4442     fn from(value: &IDXGIDevice4) -> Self {
4443         ::std::convert::From::from(::std::clone::Clone::clone(value))
4444     }
4445 }
4446 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIDevice4 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4447     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4448         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4449     }
4450 }
4451 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIDevice4 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4452     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4453         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4454     }
4455 }
4456 impl ::std::convert::From<IDXGIDevice4> for IDXGIDevice3 {
from(value: IDXGIDevice4) -> Self4457     fn from(value: IDXGIDevice4) -> Self {
4458         unsafe { ::std::mem::transmute(value) }
4459     }
4460 }
4461 impl ::std::convert::From<&IDXGIDevice4> for IDXGIDevice3 {
from(value: &IDXGIDevice4) -> Self4462     fn from(value: &IDXGIDevice4) -> Self {
4463         ::std::convert::From::from(::std::clone::Clone::clone(value))
4464     }
4465 }
4466 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDevice3> for IDXGIDevice4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice3>4467     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice3> {
4468         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDevice3>::into(self))
4469     }
4470 }
4471 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDevice3> for &IDXGIDevice4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice3>4472     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice3> {
4473         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDevice3>::into(::std::clone::Clone::clone(self)))
4474     }
4475 }
4476 impl ::std::convert::From<IDXGIDevice4> for IDXGIDevice2 {
from(value: IDXGIDevice4) -> Self4477     fn from(value: IDXGIDevice4) -> Self {
4478         unsafe { ::std::mem::transmute(value) }
4479     }
4480 }
4481 impl ::std::convert::From<&IDXGIDevice4> for IDXGIDevice2 {
from(value: &IDXGIDevice4) -> Self4482     fn from(value: &IDXGIDevice4) -> Self {
4483         ::std::convert::From::from(::std::clone::Clone::clone(value))
4484     }
4485 }
4486 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDevice2> for IDXGIDevice4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice2>4487     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice2> {
4488         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDevice2>::into(self))
4489     }
4490 }
4491 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDevice2> for &IDXGIDevice4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice2>4492     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice2> {
4493         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDevice2>::into(::std::clone::Clone::clone(self)))
4494     }
4495 }
4496 impl ::std::convert::From<IDXGIDevice4> for IDXGIDevice1 {
from(value: IDXGIDevice4) -> Self4497     fn from(value: IDXGIDevice4) -> Self {
4498         unsafe { ::std::mem::transmute(value) }
4499     }
4500 }
4501 impl ::std::convert::From<&IDXGIDevice4> for IDXGIDevice1 {
from(value: &IDXGIDevice4) -> Self4502     fn from(value: &IDXGIDevice4) -> Self {
4503         ::std::convert::From::from(::std::clone::Clone::clone(value))
4504     }
4505 }
4506 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDevice1> for IDXGIDevice4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice1>4507     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice1> {
4508         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDevice1>::into(self))
4509     }
4510 }
4511 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDevice1> for &IDXGIDevice4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice1>4512     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice1> {
4513         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDevice1>::into(::std::clone::Clone::clone(self)))
4514     }
4515 }
4516 impl ::std::convert::From<IDXGIDevice4> for IDXGIDevice {
from(value: IDXGIDevice4) -> Self4517     fn from(value: IDXGIDevice4) -> Self {
4518         unsafe { ::std::mem::transmute(value) }
4519     }
4520 }
4521 impl ::std::convert::From<&IDXGIDevice4> for IDXGIDevice {
from(value: &IDXGIDevice4) -> Self4522     fn from(value: &IDXGIDevice4) -> Self {
4523         ::std::convert::From::from(::std::clone::Clone::clone(value))
4524     }
4525 }
4526 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDevice> for IDXGIDevice4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice>4527     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice> {
4528         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDevice>::into(self))
4529     }
4530 }
4531 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDevice> for &IDXGIDevice4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice>4532     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDevice> {
4533         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDevice>::into(::std::clone::Clone::clone(self)))
4534     }
4535 }
4536 impl ::std::convert::From<IDXGIDevice4> for IDXGIObject {
from(value: IDXGIDevice4) -> Self4537     fn from(value: IDXGIDevice4) -> Self {
4538         unsafe { ::std::mem::transmute(value) }
4539     }
4540 }
4541 impl ::std::convert::From<&IDXGIDevice4> for IDXGIObject {
from(value: &IDXGIDevice4) -> Self4542     fn from(value: &IDXGIDevice4) -> Self {
4543         ::std::convert::From::from(::std::clone::Clone::clone(value))
4544     }
4545 }
4546 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGIDevice4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>4547     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
4548         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
4549     }
4550 }
4551 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGIDevice4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>4552     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
4553         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
4554     }
4555 }
4556 #[repr(C)]
4557 #[doc(hidden)]
4558 pub struct IDXGIDevice4_abi(
4559     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4560     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4561     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4562     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
4563     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4564     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
4565     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
4566     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, padapter: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4567     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *const DXGI_SURFACE_DESC, numsurfaces: u32, usage: u32, psharedresource: *const DXGI_SHARED_RESOURCE, ppsurface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4568     #[cfg(not(feature = "Win32_Foundation"))] usize,
4569     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppresources: *const ::windows::runtime::RawPtr, presidencystatus: *mut DXGI_RESIDENCY, numresources: u32) -> ::windows::runtime::HRESULT,
4570     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, priority: i32) -> ::windows::runtime::HRESULT,
4571     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppriority: *mut i32) -> ::windows::runtime::HRESULT,
4572     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, maxlatency: u32) -> ::windows::runtime::HRESULT,
4573     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pmaxlatency: *mut u32) -> ::windows::runtime::HRESULT,
4574     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, numresources: u32, ppresources: *const ::windows::runtime::RawPtr, priority: DXGI_OFFER_RESOURCE_PRIORITY) -> ::windows::runtime::HRESULT,
4575     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, numresources: u32, ppresources: *const ::windows::runtime::RawPtr, pdiscarded: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
4576     #[cfg(not(feature = "Win32_Foundation"))] usize,
4577     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hevent: super::super::Foundation::HANDLE) -> ::windows::runtime::HRESULT,
4578     #[cfg(not(feature = "Win32_Foundation"))] usize,
4579     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr),
4580     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, numresources: u32, ppresources: *const ::windows::runtime::RawPtr, priority: DXGI_OFFER_RESOURCE_PRIORITY, flags: u32) -> ::windows::runtime::HRESULT,
4581     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, numresources: u32, ppresources: *const ::windows::runtime::RawPtr, presults: *mut DXGI_RECLAIM_RESOURCE_RESULTS) -> ::windows::runtime::HRESULT,
4582 );
4583 #[repr(transparent)]
4584 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4585 pub struct IDXGIDeviceSubObject(::windows::runtime::IUnknown);
4586 impl IDXGIDeviceSubObject {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>4587     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
4588         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
4589     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>4590     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
4591         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
4592     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>4593     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
4594         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
4595     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>4596     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
4597         let mut result__ = ::std::option::Option::None;
4598         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
4599     }
GetDevice<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>4600     pub unsafe fn GetDevice<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
4601         let mut result__ = ::std::option::Option::None;
4602         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
4603     }
4604 }
4605 unsafe impl ::windows::runtime::Interface for IDXGIDeviceSubObject {
4606     type Vtable = IDXGIDeviceSubObject_abi;
4607     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1027474297, 63966, 19800, [187, 108, 24, 214, 41, 146, 241, 166]);
4608 }
4609 impl ::std::convert::From<IDXGIDeviceSubObject> for ::windows::runtime::IUnknown {
from(value: IDXGIDeviceSubObject) -> Self4610     fn from(value: IDXGIDeviceSubObject) -> Self {
4611         unsafe { ::std::mem::transmute(value) }
4612     }
4613 }
4614 impl ::std::convert::From<&IDXGIDeviceSubObject> for ::windows::runtime::IUnknown {
from(value: &IDXGIDeviceSubObject) -> Self4615     fn from(value: &IDXGIDeviceSubObject) -> Self {
4616         ::std::convert::From::from(::std::clone::Clone::clone(value))
4617     }
4618 }
4619 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIDeviceSubObject {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4620     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4621         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4622     }
4623 }
4624 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIDeviceSubObject {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4625     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4626         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4627     }
4628 }
4629 impl ::std::convert::From<IDXGIDeviceSubObject> for IDXGIObject {
from(value: IDXGIDeviceSubObject) -> Self4630     fn from(value: IDXGIDeviceSubObject) -> Self {
4631         unsafe { ::std::mem::transmute(value) }
4632     }
4633 }
4634 impl ::std::convert::From<&IDXGIDeviceSubObject> for IDXGIObject {
from(value: &IDXGIDeviceSubObject) -> Self4635     fn from(value: &IDXGIDeviceSubObject) -> Self {
4636         ::std::convert::From::from(::std::clone::Clone::clone(value))
4637     }
4638 }
4639 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGIDeviceSubObject {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>4640     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
4641         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
4642     }
4643 }
4644 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGIDeviceSubObject {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>4645     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
4646         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
4647     }
4648 }
4649 #[repr(C)]
4650 #[doc(hidden)]
4651 pub struct IDXGIDeviceSubObject_abi(
4652     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4653     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4654     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4655     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
4656     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4657     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
4658     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
4659     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppdevice: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
4660 );
4661 #[repr(transparent)]
4662 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4663 pub struct IDXGIDisplayControl(::windows::runtime::IUnknown);
4664 impl IDXGIDisplayControl {
4665     #[cfg(feature = "Win32_Foundation")]
IsStereoEnabled(&self) -> super::super::Foundation::BOOL4666     pub unsafe fn IsStereoEnabled(&self) -> super::super::Foundation::BOOL {
4667         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)))
4668     }
4669     #[cfg(feature = "Win32_Foundation")]
SetStereoEnabled<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, enabled: Param0)4670     pub unsafe fn SetStereoEnabled<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, enabled: Param0) {
4671         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), enabled.into_param().abi()))
4672     }
4673 }
4674 unsafe impl ::windows::runtime::Interface for IDXGIDisplayControl {
4675     type Vtable = IDXGIDisplayControl_abi;
4676     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3936206618, 51342, 17542, [133, 74, 152, 170, 1, 56, 243, 12]);
4677 }
4678 impl ::std::convert::From<IDXGIDisplayControl> for ::windows::runtime::IUnknown {
from(value: IDXGIDisplayControl) -> Self4679     fn from(value: IDXGIDisplayControl) -> Self {
4680         unsafe { ::std::mem::transmute(value) }
4681     }
4682 }
4683 impl ::std::convert::From<&IDXGIDisplayControl> for ::windows::runtime::IUnknown {
from(value: &IDXGIDisplayControl) -> Self4684     fn from(value: &IDXGIDisplayControl) -> Self {
4685         ::std::convert::From::from(::std::clone::Clone::clone(value))
4686     }
4687 }
4688 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIDisplayControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4689     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4690         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4691     }
4692 }
4693 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIDisplayControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4694     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4695         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4696     }
4697 }
4698 #[repr(C)]
4699 #[doc(hidden)]
4700 pub struct IDXGIDisplayControl_abi(
4701     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4702     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4703     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4704     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
4705     #[cfg(not(feature = "Win32_Foundation"))] usize,
4706     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enabled: super::super::Foundation::BOOL),
4707     #[cfg(not(feature = "Win32_Foundation"))] usize,
4708 );
4709 #[repr(transparent)]
4710 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4711 pub struct IDXGIFactory(::windows::runtime::IUnknown);
4712 impl IDXGIFactory {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>4713     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
4714         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
4715     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>4716     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
4717         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
4718     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>4719     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
4720         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
4721     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>4722     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
4723         let mut result__ = ::std::option::Option::None;
4724         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
4725     }
EnumAdapters(&self, adapter: u32) -> ::windows::runtime::Result<IDXGIAdapter>4726     pub unsafe fn EnumAdapters(&self, adapter: u32) -> ::windows::runtime::Result<IDXGIAdapter> {
4727         let mut result__: <IDXGIAdapter as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4728         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(adapter), &mut result__).from_abi::<IDXGIAdapter>(result__)
4729     }
4730     #[cfg(feature = "Win32_Foundation")]
MakeWindowAssociation<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, flags: u32) -> ::windows::runtime::Result<()>4731     pub unsafe fn MakeWindowAssociation<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, flags: u32) -> ::windows::runtime::Result<()> {
4732         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), windowhandle.into_param().abi(), ::std::mem::transmute(flags)).ok()
4733     }
4734     #[cfg(feature = "Win32_Foundation")]
GetWindowAssociation(&self) -> ::windows::runtime::Result<super::super::Foundation::HWND>4735     pub unsafe fn GetWindowAssociation(&self) -> ::windows::runtime::Result<super::super::Foundation::HWND> {
4736         let mut result__: <super::super::Foundation::HWND as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4737         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::HWND>(result__)
4738     }
4739     #[cfg(feature = "Win32_Foundation")]
CreateSwapChain<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pdevice: Param0, pdesc: *const DXGI_SWAP_CHAIN_DESC) -> ::windows::runtime::Result<IDXGISwapChain>4740     pub unsafe fn CreateSwapChain<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pdevice: Param0, pdesc: *const DXGI_SWAP_CHAIN_DESC) -> ::windows::runtime::Result<IDXGISwapChain> {
4741         let mut result__: <IDXGISwapChain as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4742         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), ::std::mem::transmute(pdesc), &mut result__).from_abi::<IDXGISwapChain>(result__)
4743     }
4744     #[cfg(feature = "Win32_Foundation")]
CreateSoftwareAdapter<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HINSTANCE>>(&self, module: Param0) -> ::windows::runtime::Result<IDXGIAdapter>4745     pub unsafe fn CreateSoftwareAdapter<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HINSTANCE>>(&self, module: Param0) -> ::windows::runtime::Result<IDXGIAdapter> {
4746         let mut result__: <IDXGIAdapter as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4747         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), module.into_param().abi(), &mut result__).from_abi::<IDXGIAdapter>(result__)
4748     }
4749 }
4750 unsafe impl ::windows::runtime::Interface for IDXGIFactory {
4751     type Vtable = IDXGIFactory_abi;
4752     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2071029484, 8647, 17582, [178, 26, 201, 174, 50, 26, 227, 105]);
4753 }
4754 impl ::std::convert::From<IDXGIFactory> for ::windows::runtime::IUnknown {
from(value: IDXGIFactory) -> Self4755     fn from(value: IDXGIFactory) -> Self {
4756         unsafe { ::std::mem::transmute(value) }
4757     }
4758 }
4759 impl ::std::convert::From<&IDXGIFactory> for ::windows::runtime::IUnknown {
from(value: &IDXGIFactory) -> Self4760     fn from(value: &IDXGIFactory) -> Self {
4761         ::std::convert::From::from(::std::clone::Clone::clone(value))
4762     }
4763 }
4764 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIFactory {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4765     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4766         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4767     }
4768 }
4769 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIFactory {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4770     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4771         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4772     }
4773 }
4774 impl ::std::convert::From<IDXGIFactory> for IDXGIObject {
from(value: IDXGIFactory) -> Self4775     fn from(value: IDXGIFactory) -> Self {
4776         unsafe { ::std::mem::transmute(value) }
4777     }
4778 }
4779 impl ::std::convert::From<&IDXGIFactory> for IDXGIObject {
from(value: &IDXGIFactory) -> Self4780     fn from(value: &IDXGIFactory) -> Self {
4781         ::std::convert::From::from(::std::clone::Clone::clone(value))
4782     }
4783 }
4784 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGIFactory {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>4785     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
4786         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
4787     }
4788 }
4789 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGIFactory {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>4790     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
4791         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
4792     }
4793 }
4794 #[repr(C)]
4795 #[doc(hidden)]
4796 pub struct IDXGIFactory_abi(
4797     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4798     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4799     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4800     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
4801     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4802     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
4803     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
4804     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, adapter: u32, ppadapter: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4805     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, windowhandle: super::super::Foundation::HWND, flags: u32) -> ::windows::runtime::HRESULT,
4806     #[cfg(not(feature = "Win32_Foundation"))] usize,
4807     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwindowhandle: *mut super::super::Foundation::HWND) -> ::windows::runtime::HRESULT,
4808     #[cfg(not(feature = "Win32_Foundation"))] usize,
4809     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, pdesc: *const DXGI_SWAP_CHAIN_DESC, ppswapchain: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4810     #[cfg(not(feature = "Win32_Foundation"))] usize,
4811     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, module: super::super::Foundation::HINSTANCE, ppadapter: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4812     #[cfg(not(feature = "Win32_Foundation"))] usize,
4813 );
4814 #[repr(transparent)]
4815 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4816 pub struct IDXGIFactory1(::windows::runtime::IUnknown);
4817 impl IDXGIFactory1 {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>4818     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
4819         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
4820     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>4821     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
4822         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
4823     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>4824     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
4825         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
4826     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>4827     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
4828         let mut result__ = ::std::option::Option::None;
4829         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
4830     }
EnumAdapters(&self, adapter: u32) -> ::windows::runtime::Result<IDXGIAdapter>4831     pub unsafe fn EnumAdapters(&self, adapter: u32) -> ::windows::runtime::Result<IDXGIAdapter> {
4832         let mut result__: <IDXGIAdapter as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4833         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(adapter), &mut result__).from_abi::<IDXGIAdapter>(result__)
4834     }
4835     #[cfg(feature = "Win32_Foundation")]
MakeWindowAssociation<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, flags: u32) -> ::windows::runtime::Result<()>4836     pub unsafe fn MakeWindowAssociation<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, flags: u32) -> ::windows::runtime::Result<()> {
4837         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), windowhandle.into_param().abi(), ::std::mem::transmute(flags)).ok()
4838     }
4839     #[cfg(feature = "Win32_Foundation")]
GetWindowAssociation(&self) -> ::windows::runtime::Result<super::super::Foundation::HWND>4840     pub unsafe fn GetWindowAssociation(&self) -> ::windows::runtime::Result<super::super::Foundation::HWND> {
4841         let mut result__: <super::super::Foundation::HWND as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4842         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::HWND>(result__)
4843     }
4844     #[cfg(feature = "Win32_Foundation")]
CreateSwapChain<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pdevice: Param0, pdesc: *const DXGI_SWAP_CHAIN_DESC) -> ::windows::runtime::Result<IDXGISwapChain>4845     pub unsafe fn CreateSwapChain<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pdevice: Param0, pdesc: *const DXGI_SWAP_CHAIN_DESC) -> ::windows::runtime::Result<IDXGISwapChain> {
4846         let mut result__: <IDXGISwapChain as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4847         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), ::std::mem::transmute(pdesc), &mut result__).from_abi::<IDXGISwapChain>(result__)
4848     }
4849     #[cfg(feature = "Win32_Foundation")]
CreateSoftwareAdapter<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HINSTANCE>>(&self, module: Param0) -> ::windows::runtime::Result<IDXGIAdapter>4850     pub unsafe fn CreateSoftwareAdapter<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HINSTANCE>>(&self, module: Param0) -> ::windows::runtime::Result<IDXGIAdapter> {
4851         let mut result__: <IDXGIAdapter as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4852         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), module.into_param().abi(), &mut result__).from_abi::<IDXGIAdapter>(result__)
4853     }
EnumAdapters1(&self, adapter: u32) -> ::windows::runtime::Result<IDXGIAdapter1>4854     pub unsafe fn EnumAdapters1(&self, adapter: u32) -> ::windows::runtime::Result<IDXGIAdapter1> {
4855         let mut result__: <IDXGIAdapter1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4856         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(adapter), &mut result__).from_abi::<IDXGIAdapter1>(result__)
4857     }
4858     #[cfg(feature = "Win32_Foundation")]
IsCurrent(&self) -> super::super::Foundation::BOOL4859     pub unsafe fn IsCurrent(&self) -> super::super::Foundation::BOOL {
4860         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self)))
4861     }
4862 }
4863 unsafe impl ::windows::runtime::Interface for IDXGIFactory1 {
4864     type Vtable = IDXGIFactory1_abi;
4865     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1997188728, 62063, 19898, [168, 41, 37, 60, 131, 209, 179, 135]);
4866 }
4867 impl ::std::convert::From<IDXGIFactory1> for ::windows::runtime::IUnknown {
from(value: IDXGIFactory1) -> Self4868     fn from(value: IDXGIFactory1) -> Self {
4869         unsafe { ::std::mem::transmute(value) }
4870     }
4871 }
4872 impl ::std::convert::From<&IDXGIFactory1> for ::windows::runtime::IUnknown {
from(value: &IDXGIFactory1) -> Self4873     fn from(value: &IDXGIFactory1) -> Self {
4874         ::std::convert::From::from(::std::clone::Clone::clone(value))
4875     }
4876 }
4877 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIFactory1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4878     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4879         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4880     }
4881 }
4882 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIFactory1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4883     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4884         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4885     }
4886 }
4887 impl ::std::convert::From<IDXGIFactory1> for IDXGIFactory {
from(value: IDXGIFactory1) -> Self4888     fn from(value: IDXGIFactory1) -> Self {
4889         unsafe { ::std::mem::transmute(value) }
4890     }
4891 }
4892 impl ::std::convert::From<&IDXGIFactory1> for IDXGIFactory {
from(value: &IDXGIFactory1) -> Self4893     fn from(value: &IDXGIFactory1) -> Self {
4894         ::std::convert::From::from(::std::clone::Clone::clone(value))
4895     }
4896 }
4897 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory> for IDXGIFactory1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory>4898     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory> {
4899         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory>::into(self))
4900     }
4901 }
4902 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory> for &IDXGIFactory1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory>4903     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory> {
4904         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory>::into(::std::clone::Clone::clone(self)))
4905     }
4906 }
4907 impl ::std::convert::From<IDXGIFactory1> for IDXGIObject {
from(value: IDXGIFactory1) -> Self4908     fn from(value: IDXGIFactory1) -> Self {
4909         unsafe { ::std::mem::transmute(value) }
4910     }
4911 }
4912 impl ::std::convert::From<&IDXGIFactory1> for IDXGIObject {
from(value: &IDXGIFactory1) -> Self4913     fn from(value: &IDXGIFactory1) -> Self {
4914         ::std::convert::From::from(::std::clone::Clone::clone(value))
4915     }
4916 }
4917 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGIFactory1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>4918     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
4919         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
4920     }
4921 }
4922 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGIFactory1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>4923     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
4924         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
4925     }
4926 }
4927 #[repr(C)]
4928 #[doc(hidden)]
4929 pub struct IDXGIFactory1_abi(
4930     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4931     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4932     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4933     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
4934     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4935     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
4936     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
4937     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, adapter: u32, ppadapter: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4938     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, windowhandle: super::super::Foundation::HWND, flags: u32) -> ::windows::runtime::HRESULT,
4939     #[cfg(not(feature = "Win32_Foundation"))] usize,
4940     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwindowhandle: *mut super::super::Foundation::HWND) -> ::windows::runtime::HRESULT,
4941     #[cfg(not(feature = "Win32_Foundation"))] usize,
4942     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, pdesc: *const DXGI_SWAP_CHAIN_DESC, ppswapchain: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4943     #[cfg(not(feature = "Win32_Foundation"))] usize,
4944     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, module: super::super::Foundation::HINSTANCE, ppadapter: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4945     #[cfg(not(feature = "Win32_Foundation"))] usize,
4946     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, adapter: u32, ppadapter: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4947     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
4948     #[cfg(not(feature = "Win32_Foundation"))] usize,
4949 );
4950 #[repr(transparent)]
4951 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4952 pub struct IDXGIFactory2(::windows::runtime::IUnknown);
4953 impl IDXGIFactory2 {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>4954     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
4955         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
4956     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>4957     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
4958         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
4959     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>4960     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
4961         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
4962     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>4963     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
4964         let mut result__ = ::std::option::Option::None;
4965         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
4966     }
EnumAdapters(&self, adapter: u32) -> ::windows::runtime::Result<IDXGIAdapter>4967     pub unsafe fn EnumAdapters(&self, adapter: u32) -> ::windows::runtime::Result<IDXGIAdapter> {
4968         let mut result__: <IDXGIAdapter as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4969         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(adapter), &mut result__).from_abi::<IDXGIAdapter>(result__)
4970     }
4971     #[cfg(feature = "Win32_Foundation")]
MakeWindowAssociation<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, flags: u32) -> ::windows::runtime::Result<()>4972     pub unsafe fn MakeWindowAssociation<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, flags: u32) -> ::windows::runtime::Result<()> {
4973         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), windowhandle.into_param().abi(), ::std::mem::transmute(flags)).ok()
4974     }
4975     #[cfg(feature = "Win32_Foundation")]
GetWindowAssociation(&self) -> ::windows::runtime::Result<super::super::Foundation::HWND>4976     pub unsafe fn GetWindowAssociation(&self) -> ::windows::runtime::Result<super::super::Foundation::HWND> {
4977         let mut result__: <super::super::Foundation::HWND as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4978         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::HWND>(result__)
4979     }
4980     #[cfg(feature = "Win32_Foundation")]
CreateSwapChain<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pdevice: Param0, pdesc: *const DXGI_SWAP_CHAIN_DESC) -> ::windows::runtime::Result<IDXGISwapChain>4981     pub unsafe fn CreateSwapChain<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pdevice: Param0, pdesc: *const DXGI_SWAP_CHAIN_DESC) -> ::windows::runtime::Result<IDXGISwapChain> {
4982         let mut result__: <IDXGISwapChain as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4983         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), ::std::mem::transmute(pdesc), &mut result__).from_abi::<IDXGISwapChain>(result__)
4984     }
4985     #[cfg(feature = "Win32_Foundation")]
CreateSoftwareAdapter<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HINSTANCE>>(&self, module: Param0) -> ::windows::runtime::Result<IDXGIAdapter>4986     pub unsafe fn CreateSoftwareAdapter<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HINSTANCE>>(&self, module: Param0) -> ::windows::runtime::Result<IDXGIAdapter> {
4987         let mut result__: <IDXGIAdapter as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4988         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), module.into_param().abi(), &mut result__).from_abi::<IDXGIAdapter>(result__)
4989     }
EnumAdapters1(&self, adapter: u32) -> ::windows::runtime::Result<IDXGIAdapter1>4990     pub unsafe fn EnumAdapters1(&self, adapter: u32) -> ::windows::runtime::Result<IDXGIAdapter1> {
4991         let mut result__: <IDXGIAdapter1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4992         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(adapter), &mut result__).from_abi::<IDXGIAdapter1>(result__)
4993     }
4994     #[cfg(feature = "Win32_Foundation")]
IsCurrent(&self) -> super::super::Foundation::BOOL4995     pub unsafe fn IsCurrent(&self) -> super::super::Foundation::BOOL {
4996         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self)))
4997     }
4998     #[cfg(feature = "Win32_Foundation")]
IsWindowedStereoEnabled(&self) -> super::super::Foundation::BOOL4999     pub unsafe fn IsWindowedStereoEnabled(&self) -> super::super::Foundation::BOOL {
5000         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self)))
5001     }
5002     #[cfg(feature = "Win32_Foundation")]
CreateSwapChainForHwnd<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>, Param4: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, hwnd: Param1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, pfullscreendesc: *const DXGI_SWAP_CHAIN_FULLSCREEN_DESC, prestricttooutput: Param4) -> ::windows::runtime::Result<IDXGISwapChain1>5003     pub unsafe fn CreateSwapChainForHwnd<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>, Param4: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, hwnd: Param1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, pfullscreendesc: *const DXGI_SWAP_CHAIN_FULLSCREEN_DESC, prestricttooutput: Param4) -> ::windows::runtime::Result<IDXGISwapChain1> {
5004         let mut result__: <IDXGISwapChain1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5005         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), hwnd.into_param().abi(), ::std::mem::transmute(pdesc), ::std::mem::transmute(pfullscreendesc), prestricttooutput.into_param().abi(), &mut result__).from_abi::<IDXGISwapChain1>(result__)
5006     }
5007     #[cfg(feature = "Win32_Foundation")]
CreateSwapChainForCoreWindow<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param3: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, pwindow: Param1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: Param3) -> ::windows::runtime::Result<IDXGISwapChain1>5008     pub unsafe fn CreateSwapChainForCoreWindow<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param3: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, pwindow: Param1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: Param3) -> ::windows::runtime::Result<IDXGISwapChain1> {
5009         let mut result__: <IDXGISwapChain1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5010         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), pwindow.into_param().abi(), ::std::mem::transmute(pdesc), prestricttooutput.into_param().abi(), &mut result__).from_abi::<IDXGISwapChain1>(result__)
5011     }
5012     #[cfg(feature = "Win32_Foundation")]
GetSharedResourceAdapterLuid<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hresource: Param0) -> ::windows::runtime::Result<super::super::Foundation::LUID>5013     pub unsafe fn GetSharedResourceAdapterLuid<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hresource: Param0) -> ::windows::runtime::Result<super::super::Foundation::LUID> {
5014         let mut result__: <super::super::Foundation::LUID as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5015         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), hresource.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::LUID>(result__)
5016     }
5017     #[cfg(feature = "Win32_Foundation")]
RegisterStereoStatusWindow<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, wmsg: u32) -> ::windows::runtime::Result<u32>5018     pub unsafe fn RegisterStereoStatusWindow<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, wmsg: u32) -> ::windows::runtime::Result<u32> {
5019         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5020         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), windowhandle.into_param().abi(), ::std::mem::transmute(wmsg), &mut result__).from_abi::<u32>(result__)
5021     }
5022     #[cfg(feature = "Win32_Foundation")]
RegisterStereoStatusEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32>5023     pub unsafe fn RegisterStereoStatusEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32> {
5024         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5025         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), hevent.into_param().abi(), &mut result__).from_abi::<u32>(result__)
5026     }
UnregisterStereoStatus(&self, dwcookie: u32)5027     pub unsafe fn UnregisterStereoStatus(&self, dwcookie: u32) {
5028         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(dwcookie)))
5029     }
5030     #[cfg(feature = "Win32_Foundation")]
RegisterOcclusionStatusWindow<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, wmsg: u32) -> ::windows::runtime::Result<u32>5031     pub unsafe fn RegisterOcclusionStatusWindow<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, wmsg: u32) -> ::windows::runtime::Result<u32> {
5032         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5033         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), windowhandle.into_param().abi(), ::std::mem::transmute(wmsg), &mut result__).from_abi::<u32>(result__)
5034     }
5035     #[cfg(feature = "Win32_Foundation")]
RegisterOcclusionStatusEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32>5036     pub unsafe fn RegisterOcclusionStatusEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32> {
5037         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5038         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), hevent.into_param().abi(), &mut result__).from_abi::<u32>(result__)
5039     }
UnregisterOcclusionStatus(&self, dwcookie: u32)5040     pub unsafe fn UnregisterOcclusionStatus(&self, dwcookie: u32) {
5041         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self), ::std::mem::transmute(dwcookie)))
5042     }
5043     #[cfg(feature = "Win32_Foundation")]
CreateSwapChainForComposition<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param2: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: Param2) -> ::windows::runtime::Result<IDXGISwapChain1>5044     pub unsafe fn CreateSwapChainForComposition<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param2: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: Param2) -> ::windows::runtime::Result<IDXGISwapChain1> {
5045         let mut result__: <IDXGISwapChain1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5046         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), ::std::mem::transmute(pdesc), prestricttooutput.into_param().abi(), &mut result__).from_abi::<IDXGISwapChain1>(result__)
5047     }
5048 }
5049 unsafe impl ::windows::runtime::Interface for IDXGIFactory2 {
5050     type Vtable = IDXGIFactory2_abi;
5051     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1355299356, 57458, 19528, [135, 176, 54, 48, 250, 54, 166, 208]);
5052 }
5053 impl ::std::convert::From<IDXGIFactory2> for ::windows::runtime::IUnknown {
from(value: IDXGIFactory2) -> Self5054     fn from(value: IDXGIFactory2) -> Self {
5055         unsafe { ::std::mem::transmute(value) }
5056     }
5057 }
5058 impl ::std::convert::From<&IDXGIFactory2> for ::windows::runtime::IUnknown {
from(value: &IDXGIFactory2) -> Self5059     fn from(value: &IDXGIFactory2) -> Self {
5060         ::std::convert::From::from(::std::clone::Clone::clone(value))
5061     }
5062 }
5063 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIFactory2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5064     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5065         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
5066     }
5067 }
5068 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIFactory2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5069     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5070         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
5071     }
5072 }
5073 impl ::std::convert::From<IDXGIFactory2> for IDXGIFactory1 {
from(value: IDXGIFactory2) -> Self5074     fn from(value: IDXGIFactory2) -> Self {
5075         unsafe { ::std::mem::transmute(value) }
5076     }
5077 }
5078 impl ::std::convert::From<&IDXGIFactory2> for IDXGIFactory1 {
from(value: &IDXGIFactory2) -> Self5079     fn from(value: &IDXGIFactory2) -> Self {
5080         ::std::convert::From::from(::std::clone::Clone::clone(value))
5081     }
5082 }
5083 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory1> for IDXGIFactory2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory1>5084     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory1> {
5085         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory1>::into(self))
5086     }
5087 }
5088 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory1> for &IDXGIFactory2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory1>5089     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory1> {
5090         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory1>::into(::std::clone::Clone::clone(self)))
5091     }
5092 }
5093 impl ::std::convert::From<IDXGIFactory2> for IDXGIFactory {
from(value: IDXGIFactory2) -> Self5094     fn from(value: IDXGIFactory2) -> Self {
5095         unsafe { ::std::mem::transmute(value) }
5096     }
5097 }
5098 impl ::std::convert::From<&IDXGIFactory2> for IDXGIFactory {
from(value: &IDXGIFactory2) -> Self5099     fn from(value: &IDXGIFactory2) -> Self {
5100         ::std::convert::From::from(::std::clone::Clone::clone(value))
5101     }
5102 }
5103 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory> for IDXGIFactory2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory>5104     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory> {
5105         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory>::into(self))
5106     }
5107 }
5108 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory> for &IDXGIFactory2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory>5109     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory> {
5110         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory>::into(::std::clone::Clone::clone(self)))
5111     }
5112 }
5113 impl ::std::convert::From<IDXGIFactory2> for IDXGIObject {
from(value: IDXGIFactory2) -> Self5114     fn from(value: IDXGIFactory2) -> Self {
5115         unsafe { ::std::mem::transmute(value) }
5116     }
5117 }
5118 impl ::std::convert::From<&IDXGIFactory2> for IDXGIObject {
from(value: &IDXGIFactory2) -> Self5119     fn from(value: &IDXGIFactory2) -> Self {
5120         ::std::convert::From::from(::std::clone::Clone::clone(value))
5121     }
5122 }
5123 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGIFactory2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>5124     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
5125         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
5126     }
5127 }
5128 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGIFactory2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>5129     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
5130         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
5131     }
5132 }
5133 #[repr(C)]
5134 #[doc(hidden)]
5135 pub struct IDXGIFactory2_abi(
5136     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5137     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5138     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5139     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
5140     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5141     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
5142     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
5143     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, adapter: u32, ppadapter: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5144     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, windowhandle: super::super::Foundation::HWND, flags: u32) -> ::windows::runtime::HRESULT,
5145     #[cfg(not(feature = "Win32_Foundation"))] usize,
5146     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwindowhandle: *mut super::super::Foundation::HWND) -> ::windows::runtime::HRESULT,
5147     #[cfg(not(feature = "Win32_Foundation"))] usize,
5148     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, pdesc: *const DXGI_SWAP_CHAIN_DESC, ppswapchain: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5149     #[cfg(not(feature = "Win32_Foundation"))] usize,
5150     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, module: super::super::Foundation::HINSTANCE, ppadapter: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5151     #[cfg(not(feature = "Win32_Foundation"))] usize,
5152     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, adapter: u32, ppadapter: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5153     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
5154     #[cfg(not(feature = "Win32_Foundation"))] usize,
5155     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
5156     #[cfg(not(feature = "Win32_Foundation"))] usize,
5157     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, hwnd: super::super::Foundation::HWND, pdesc: *const DXGI_SWAP_CHAIN_DESC1, pfullscreendesc: *const DXGI_SWAP_CHAIN_FULLSCREEN_DESC, prestricttooutput: ::windows::runtime::RawPtr, ppswapchain: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5158     #[cfg(not(feature = "Win32_Foundation"))] usize,
5159     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, pwindow: ::windows::runtime::RawPtr, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: ::windows::runtime::RawPtr, ppswapchain: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5160     #[cfg(not(feature = "Win32_Foundation"))] usize,
5161     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hresource: super::super::Foundation::HANDLE, pluid: *mut super::super::Foundation::LUID) -> ::windows::runtime::HRESULT,
5162     #[cfg(not(feature = "Win32_Foundation"))] usize,
5163     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, windowhandle: super::super::Foundation::HWND, wmsg: u32, pdwcookie: *mut u32) -> ::windows::runtime::HRESULT,
5164     #[cfg(not(feature = "Win32_Foundation"))] usize,
5165     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hevent: super::super::Foundation::HANDLE, pdwcookie: *mut u32) -> ::windows::runtime::HRESULT,
5166     #[cfg(not(feature = "Win32_Foundation"))] usize,
5167     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dwcookie: u32),
5168     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, windowhandle: super::super::Foundation::HWND, wmsg: u32, pdwcookie: *mut u32) -> ::windows::runtime::HRESULT,
5169     #[cfg(not(feature = "Win32_Foundation"))] usize,
5170     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hevent: super::super::Foundation::HANDLE, pdwcookie: *mut u32) -> ::windows::runtime::HRESULT,
5171     #[cfg(not(feature = "Win32_Foundation"))] usize,
5172     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dwcookie: u32),
5173     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: ::windows::runtime::RawPtr, ppswapchain: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5174     #[cfg(not(feature = "Win32_Foundation"))] usize,
5175 );
5176 #[repr(transparent)]
5177 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
5178 pub struct IDXGIFactory3(::windows::runtime::IUnknown);
5179 impl IDXGIFactory3 {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>5180     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
5181         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
5182     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>5183     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
5184         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
5185     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>5186     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
5187         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
5188     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>5189     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
5190         let mut result__ = ::std::option::Option::None;
5191         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
5192     }
EnumAdapters(&self, adapter: u32) -> ::windows::runtime::Result<IDXGIAdapter>5193     pub unsafe fn EnumAdapters(&self, adapter: u32) -> ::windows::runtime::Result<IDXGIAdapter> {
5194         let mut result__: <IDXGIAdapter as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5195         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(adapter), &mut result__).from_abi::<IDXGIAdapter>(result__)
5196     }
5197     #[cfg(feature = "Win32_Foundation")]
MakeWindowAssociation<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, flags: u32) -> ::windows::runtime::Result<()>5198     pub unsafe fn MakeWindowAssociation<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, flags: u32) -> ::windows::runtime::Result<()> {
5199         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), windowhandle.into_param().abi(), ::std::mem::transmute(flags)).ok()
5200     }
5201     #[cfg(feature = "Win32_Foundation")]
GetWindowAssociation(&self) -> ::windows::runtime::Result<super::super::Foundation::HWND>5202     pub unsafe fn GetWindowAssociation(&self) -> ::windows::runtime::Result<super::super::Foundation::HWND> {
5203         let mut result__: <super::super::Foundation::HWND as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5204         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::HWND>(result__)
5205     }
5206     #[cfg(feature = "Win32_Foundation")]
CreateSwapChain<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pdevice: Param0, pdesc: *const DXGI_SWAP_CHAIN_DESC) -> ::windows::runtime::Result<IDXGISwapChain>5207     pub unsafe fn CreateSwapChain<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pdevice: Param0, pdesc: *const DXGI_SWAP_CHAIN_DESC) -> ::windows::runtime::Result<IDXGISwapChain> {
5208         let mut result__: <IDXGISwapChain as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5209         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), ::std::mem::transmute(pdesc), &mut result__).from_abi::<IDXGISwapChain>(result__)
5210     }
5211     #[cfg(feature = "Win32_Foundation")]
CreateSoftwareAdapter<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HINSTANCE>>(&self, module: Param0) -> ::windows::runtime::Result<IDXGIAdapter>5212     pub unsafe fn CreateSoftwareAdapter<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HINSTANCE>>(&self, module: Param0) -> ::windows::runtime::Result<IDXGIAdapter> {
5213         let mut result__: <IDXGIAdapter as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5214         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), module.into_param().abi(), &mut result__).from_abi::<IDXGIAdapter>(result__)
5215     }
EnumAdapters1(&self, adapter: u32) -> ::windows::runtime::Result<IDXGIAdapter1>5216     pub unsafe fn EnumAdapters1(&self, adapter: u32) -> ::windows::runtime::Result<IDXGIAdapter1> {
5217         let mut result__: <IDXGIAdapter1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5218         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(adapter), &mut result__).from_abi::<IDXGIAdapter1>(result__)
5219     }
5220     #[cfg(feature = "Win32_Foundation")]
IsCurrent(&self) -> super::super::Foundation::BOOL5221     pub unsafe fn IsCurrent(&self) -> super::super::Foundation::BOOL {
5222         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self)))
5223     }
5224     #[cfg(feature = "Win32_Foundation")]
IsWindowedStereoEnabled(&self) -> super::super::Foundation::BOOL5225     pub unsafe fn IsWindowedStereoEnabled(&self) -> super::super::Foundation::BOOL {
5226         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self)))
5227     }
5228     #[cfg(feature = "Win32_Foundation")]
CreateSwapChainForHwnd<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>, Param4: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, hwnd: Param1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, pfullscreendesc: *const DXGI_SWAP_CHAIN_FULLSCREEN_DESC, prestricttooutput: Param4) -> ::windows::runtime::Result<IDXGISwapChain1>5229     pub unsafe fn CreateSwapChainForHwnd<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>, Param4: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, hwnd: Param1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, pfullscreendesc: *const DXGI_SWAP_CHAIN_FULLSCREEN_DESC, prestricttooutput: Param4) -> ::windows::runtime::Result<IDXGISwapChain1> {
5230         let mut result__: <IDXGISwapChain1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5231         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), hwnd.into_param().abi(), ::std::mem::transmute(pdesc), ::std::mem::transmute(pfullscreendesc), prestricttooutput.into_param().abi(), &mut result__).from_abi::<IDXGISwapChain1>(result__)
5232     }
5233     #[cfg(feature = "Win32_Foundation")]
CreateSwapChainForCoreWindow<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param3: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, pwindow: Param1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: Param3) -> ::windows::runtime::Result<IDXGISwapChain1>5234     pub unsafe fn CreateSwapChainForCoreWindow<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param3: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, pwindow: Param1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: Param3) -> ::windows::runtime::Result<IDXGISwapChain1> {
5235         let mut result__: <IDXGISwapChain1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5236         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), pwindow.into_param().abi(), ::std::mem::transmute(pdesc), prestricttooutput.into_param().abi(), &mut result__).from_abi::<IDXGISwapChain1>(result__)
5237     }
5238     #[cfg(feature = "Win32_Foundation")]
GetSharedResourceAdapterLuid<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hresource: Param0) -> ::windows::runtime::Result<super::super::Foundation::LUID>5239     pub unsafe fn GetSharedResourceAdapterLuid<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hresource: Param0) -> ::windows::runtime::Result<super::super::Foundation::LUID> {
5240         let mut result__: <super::super::Foundation::LUID as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5241         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), hresource.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::LUID>(result__)
5242     }
5243     #[cfg(feature = "Win32_Foundation")]
RegisterStereoStatusWindow<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, wmsg: u32) -> ::windows::runtime::Result<u32>5244     pub unsafe fn RegisterStereoStatusWindow<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, wmsg: u32) -> ::windows::runtime::Result<u32> {
5245         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5246         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), windowhandle.into_param().abi(), ::std::mem::transmute(wmsg), &mut result__).from_abi::<u32>(result__)
5247     }
5248     #[cfg(feature = "Win32_Foundation")]
RegisterStereoStatusEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32>5249     pub unsafe fn RegisterStereoStatusEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32> {
5250         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5251         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), hevent.into_param().abi(), &mut result__).from_abi::<u32>(result__)
5252     }
UnregisterStereoStatus(&self, dwcookie: u32)5253     pub unsafe fn UnregisterStereoStatus(&self, dwcookie: u32) {
5254         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(dwcookie)))
5255     }
5256     #[cfg(feature = "Win32_Foundation")]
RegisterOcclusionStatusWindow<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, wmsg: u32) -> ::windows::runtime::Result<u32>5257     pub unsafe fn RegisterOcclusionStatusWindow<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, wmsg: u32) -> ::windows::runtime::Result<u32> {
5258         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5259         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), windowhandle.into_param().abi(), ::std::mem::transmute(wmsg), &mut result__).from_abi::<u32>(result__)
5260     }
5261     #[cfg(feature = "Win32_Foundation")]
RegisterOcclusionStatusEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32>5262     pub unsafe fn RegisterOcclusionStatusEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32> {
5263         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5264         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), hevent.into_param().abi(), &mut result__).from_abi::<u32>(result__)
5265     }
UnregisterOcclusionStatus(&self, dwcookie: u32)5266     pub unsafe fn UnregisterOcclusionStatus(&self, dwcookie: u32) {
5267         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self), ::std::mem::transmute(dwcookie)))
5268     }
5269     #[cfg(feature = "Win32_Foundation")]
CreateSwapChainForComposition<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param2: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: Param2) -> ::windows::runtime::Result<IDXGISwapChain1>5270     pub unsafe fn CreateSwapChainForComposition<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param2: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: Param2) -> ::windows::runtime::Result<IDXGISwapChain1> {
5271         let mut result__: <IDXGISwapChain1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5272         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), ::std::mem::transmute(pdesc), prestricttooutput.into_param().abi(), &mut result__).from_abi::<IDXGISwapChain1>(result__)
5273     }
GetCreationFlags(&self) -> u325274     pub unsafe fn GetCreationFlags(&self) -> u32 {
5275         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self)))
5276     }
5277 }
5278 unsafe impl ::windows::runtime::Interface for IDXGIFactory3 {
5279     type Vtable = IDXGIFactory3_abi;
5280     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(625489955, 52550, 19581, [134, 202, 71, 170, 149, 184, 55, 189]);
5281 }
5282 impl ::std::convert::From<IDXGIFactory3> for ::windows::runtime::IUnknown {
from(value: IDXGIFactory3) -> Self5283     fn from(value: IDXGIFactory3) -> Self {
5284         unsafe { ::std::mem::transmute(value) }
5285     }
5286 }
5287 impl ::std::convert::From<&IDXGIFactory3> for ::windows::runtime::IUnknown {
from(value: &IDXGIFactory3) -> Self5288     fn from(value: &IDXGIFactory3) -> Self {
5289         ::std::convert::From::from(::std::clone::Clone::clone(value))
5290     }
5291 }
5292 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIFactory3 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5293     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5294         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
5295     }
5296 }
5297 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIFactory3 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5298     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5299         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
5300     }
5301 }
5302 impl ::std::convert::From<IDXGIFactory3> for IDXGIFactory2 {
from(value: IDXGIFactory3) -> Self5303     fn from(value: IDXGIFactory3) -> Self {
5304         unsafe { ::std::mem::transmute(value) }
5305     }
5306 }
5307 impl ::std::convert::From<&IDXGIFactory3> for IDXGIFactory2 {
from(value: &IDXGIFactory3) -> Self5308     fn from(value: &IDXGIFactory3) -> Self {
5309         ::std::convert::From::from(::std::clone::Clone::clone(value))
5310     }
5311 }
5312 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory2> for IDXGIFactory3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory2>5313     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory2> {
5314         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory2>::into(self))
5315     }
5316 }
5317 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory2> for &IDXGIFactory3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory2>5318     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory2> {
5319         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory2>::into(::std::clone::Clone::clone(self)))
5320     }
5321 }
5322 impl ::std::convert::From<IDXGIFactory3> for IDXGIFactory1 {
from(value: IDXGIFactory3) -> Self5323     fn from(value: IDXGIFactory3) -> Self {
5324         unsafe { ::std::mem::transmute(value) }
5325     }
5326 }
5327 impl ::std::convert::From<&IDXGIFactory3> for IDXGIFactory1 {
from(value: &IDXGIFactory3) -> Self5328     fn from(value: &IDXGIFactory3) -> Self {
5329         ::std::convert::From::from(::std::clone::Clone::clone(value))
5330     }
5331 }
5332 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory1> for IDXGIFactory3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory1>5333     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory1> {
5334         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory1>::into(self))
5335     }
5336 }
5337 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory1> for &IDXGIFactory3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory1>5338     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory1> {
5339         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory1>::into(::std::clone::Clone::clone(self)))
5340     }
5341 }
5342 impl ::std::convert::From<IDXGIFactory3> for IDXGIFactory {
from(value: IDXGIFactory3) -> Self5343     fn from(value: IDXGIFactory3) -> Self {
5344         unsafe { ::std::mem::transmute(value) }
5345     }
5346 }
5347 impl ::std::convert::From<&IDXGIFactory3> for IDXGIFactory {
from(value: &IDXGIFactory3) -> Self5348     fn from(value: &IDXGIFactory3) -> Self {
5349         ::std::convert::From::from(::std::clone::Clone::clone(value))
5350     }
5351 }
5352 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory> for IDXGIFactory3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory>5353     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory> {
5354         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory>::into(self))
5355     }
5356 }
5357 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory> for &IDXGIFactory3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory>5358     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory> {
5359         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory>::into(::std::clone::Clone::clone(self)))
5360     }
5361 }
5362 impl ::std::convert::From<IDXGIFactory3> for IDXGIObject {
from(value: IDXGIFactory3) -> Self5363     fn from(value: IDXGIFactory3) -> Self {
5364         unsafe { ::std::mem::transmute(value) }
5365     }
5366 }
5367 impl ::std::convert::From<&IDXGIFactory3> for IDXGIObject {
from(value: &IDXGIFactory3) -> Self5368     fn from(value: &IDXGIFactory3) -> Self {
5369         ::std::convert::From::from(::std::clone::Clone::clone(value))
5370     }
5371 }
5372 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGIFactory3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>5373     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
5374         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
5375     }
5376 }
5377 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGIFactory3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>5378     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
5379         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
5380     }
5381 }
5382 #[repr(C)]
5383 #[doc(hidden)]
5384 pub struct IDXGIFactory3_abi(
5385     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5386     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5387     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5388     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
5389     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5390     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
5391     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
5392     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, adapter: u32, ppadapter: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5393     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, windowhandle: super::super::Foundation::HWND, flags: u32) -> ::windows::runtime::HRESULT,
5394     #[cfg(not(feature = "Win32_Foundation"))] usize,
5395     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwindowhandle: *mut super::super::Foundation::HWND) -> ::windows::runtime::HRESULT,
5396     #[cfg(not(feature = "Win32_Foundation"))] usize,
5397     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, pdesc: *const DXGI_SWAP_CHAIN_DESC, ppswapchain: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5398     #[cfg(not(feature = "Win32_Foundation"))] usize,
5399     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, module: super::super::Foundation::HINSTANCE, ppadapter: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5400     #[cfg(not(feature = "Win32_Foundation"))] usize,
5401     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, adapter: u32, ppadapter: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5402     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
5403     #[cfg(not(feature = "Win32_Foundation"))] usize,
5404     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
5405     #[cfg(not(feature = "Win32_Foundation"))] usize,
5406     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, hwnd: super::super::Foundation::HWND, pdesc: *const DXGI_SWAP_CHAIN_DESC1, pfullscreendesc: *const DXGI_SWAP_CHAIN_FULLSCREEN_DESC, prestricttooutput: ::windows::runtime::RawPtr, ppswapchain: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5407     #[cfg(not(feature = "Win32_Foundation"))] usize,
5408     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, pwindow: ::windows::runtime::RawPtr, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: ::windows::runtime::RawPtr, ppswapchain: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5409     #[cfg(not(feature = "Win32_Foundation"))] usize,
5410     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hresource: super::super::Foundation::HANDLE, pluid: *mut super::super::Foundation::LUID) -> ::windows::runtime::HRESULT,
5411     #[cfg(not(feature = "Win32_Foundation"))] usize,
5412     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, windowhandle: super::super::Foundation::HWND, wmsg: u32, pdwcookie: *mut u32) -> ::windows::runtime::HRESULT,
5413     #[cfg(not(feature = "Win32_Foundation"))] usize,
5414     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hevent: super::super::Foundation::HANDLE, pdwcookie: *mut u32) -> ::windows::runtime::HRESULT,
5415     #[cfg(not(feature = "Win32_Foundation"))] usize,
5416     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dwcookie: u32),
5417     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, windowhandle: super::super::Foundation::HWND, wmsg: u32, pdwcookie: *mut u32) -> ::windows::runtime::HRESULT,
5418     #[cfg(not(feature = "Win32_Foundation"))] usize,
5419     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hevent: super::super::Foundation::HANDLE, pdwcookie: *mut u32) -> ::windows::runtime::HRESULT,
5420     #[cfg(not(feature = "Win32_Foundation"))] usize,
5421     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dwcookie: u32),
5422     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: ::windows::runtime::RawPtr, ppswapchain: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5423     #[cfg(not(feature = "Win32_Foundation"))] usize,
5424     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5425 );
5426 #[repr(transparent)]
5427 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
5428 pub struct IDXGIFactory4(::windows::runtime::IUnknown);
5429 impl IDXGIFactory4 {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>5430     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
5431         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
5432     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>5433     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
5434         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
5435     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>5436     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
5437         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
5438     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>5439     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
5440         let mut result__ = ::std::option::Option::None;
5441         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
5442     }
EnumAdapters(&self, adapter: u32) -> ::windows::runtime::Result<IDXGIAdapter>5443     pub unsafe fn EnumAdapters(&self, adapter: u32) -> ::windows::runtime::Result<IDXGIAdapter> {
5444         let mut result__: <IDXGIAdapter as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5445         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(adapter), &mut result__).from_abi::<IDXGIAdapter>(result__)
5446     }
5447     #[cfg(feature = "Win32_Foundation")]
MakeWindowAssociation<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, flags: u32) -> ::windows::runtime::Result<()>5448     pub unsafe fn MakeWindowAssociation<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, flags: u32) -> ::windows::runtime::Result<()> {
5449         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), windowhandle.into_param().abi(), ::std::mem::transmute(flags)).ok()
5450     }
5451     #[cfg(feature = "Win32_Foundation")]
GetWindowAssociation(&self) -> ::windows::runtime::Result<super::super::Foundation::HWND>5452     pub unsafe fn GetWindowAssociation(&self) -> ::windows::runtime::Result<super::super::Foundation::HWND> {
5453         let mut result__: <super::super::Foundation::HWND as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5454         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::HWND>(result__)
5455     }
5456     #[cfg(feature = "Win32_Foundation")]
CreateSwapChain<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pdevice: Param0, pdesc: *const DXGI_SWAP_CHAIN_DESC) -> ::windows::runtime::Result<IDXGISwapChain>5457     pub unsafe fn CreateSwapChain<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pdevice: Param0, pdesc: *const DXGI_SWAP_CHAIN_DESC) -> ::windows::runtime::Result<IDXGISwapChain> {
5458         let mut result__: <IDXGISwapChain as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5459         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), ::std::mem::transmute(pdesc), &mut result__).from_abi::<IDXGISwapChain>(result__)
5460     }
5461     #[cfg(feature = "Win32_Foundation")]
CreateSoftwareAdapter<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HINSTANCE>>(&self, module: Param0) -> ::windows::runtime::Result<IDXGIAdapter>5462     pub unsafe fn CreateSoftwareAdapter<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HINSTANCE>>(&self, module: Param0) -> ::windows::runtime::Result<IDXGIAdapter> {
5463         let mut result__: <IDXGIAdapter as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5464         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), module.into_param().abi(), &mut result__).from_abi::<IDXGIAdapter>(result__)
5465     }
EnumAdapters1(&self, adapter: u32) -> ::windows::runtime::Result<IDXGIAdapter1>5466     pub unsafe fn EnumAdapters1(&self, adapter: u32) -> ::windows::runtime::Result<IDXGIAdapter1> {
5467         let mut result__: <IDXGIAdapter1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5468         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(adapter), &mut result__).from_abi::<IDXGIAdapter1>(result__)
5469     }
5470     #[cfg(feature = "Win32_Foundation")]
IsCurrent(&self) -> super::super::Foundation::BOOL5471     pub unsafe fn IsCurrent(&self) -> super::super::Foundation::BOOL {
5472         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self)))
5473     }
5474     #[cfg(feature = "Win32_Foundation")]
IsWindowedStereoEnabled(&self) -> super::super::Foundation::BOOL5475     pub unsafe fn IsWindowedStereoEnabled(&self) -> super::super::Foundation::BOOL {
5476         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self)))
5477     }
5478     #[cfg(feature = "Win32_Foundation")]
CreateSwapChainForHwnd<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>, Param4: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, hwnd: Param1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, pfullscreendesc: *const DXGI_SWAP_CHAIN_FULLSCREEN_DESC, prestricttooutput: Param4) -> ::windows::runtime::Result<IDXGISwapChain1>5479     pub unsafe fn CreateSwapChainForHwnd<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>, Param4: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, hwnd: Param1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, pfullscreendesc: *const DXGI_SWAP_CHAIN_FULLSCREEN_DESC, prestricttooutput: Param4) -> ::windows::runtime::Result<IDXGISwapChain1> {
5480         let mut result__: <IDXGISwapChain1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5481         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), hwnd.into_param().abi(), ::std::mem::transmute(pdesc), ::std::mem::transmute(pfullscreendesc), prestricttooutput.into_param().abi(), &mut result__).from_abi::<IDXGISwapChain1>(result__)
5482     }
5483     #[cfg(feature = "Win32_Foundation")]
CreateSwapChainForCoreWindow<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param3: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, pwindow: Param1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: Param3) -> ::windows::runtime::Result<IDXGISwapChain1>5484     pub unsafe fn CreateSwapChainForCoreWindow<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param3: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, pwindow: Param1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: Param3) -> ::windows::runtime::Result<IDXGISwapChain1> {
5485         let mut result__: <IDXGISwapChain1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5486         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), pwindow.into_param().abi(), ::std::mem::transmute(pdesc), prestricttooutput.into_param().abi(), &mut result__).from_abi::<IDXGISwapChain1>(result__)
5487     }
5488     #[cfg(feature = "Win32_Foundation")]
GetSharedResourceAdapterLuid<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hresource: Param0) -> ::windows::runtime::Result<super::super::Foundation::LUID>5489     pub unsafe fn GetSharedResourceAdapterLuid<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hresource: Param0) -> ::windows::runtime::Result<super::super::Foundation::LUID> {
5490         let mut result__: <super::super::Foundation::LUID as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5491         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), hresource.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::LUID>(result__)
5492     }
5493     #[cfg(feature = "Win32_Foundation")]
RegisterStereoStatusWindow<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, wmsg: u32) -> ::windows::runtime::Result<u32>5494     pub unsafe fn RegisterStereoStatusWindow<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, wmsg: u32) -> ::windows::runtime::Result<u32> {
5495         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5496         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), windowhandle.into_param().abi(), ::std::mem::transmute(wmsg), &mut result__).from_abi::<u32>(result__)
5497     }
5498     #[cfg(feature = "Win32_Foundation")]
RegisterStereoStatusEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32>5499     pub unsafe fn RegisterStereoStatusEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32> {
5500         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5501         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), hevent.into_param().abi(), &mut result__).from_abi::<u32>(result__)
5502     }
UnregisterStereoStatus(&self, dwcookie: u32)5503     pub unsafe fn UnregisterStereoStatus(&self, dwcookie: u32) {
5504         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(dwcookie)))
5505     }
5506     #[cfg(feature = "Win32_Foundation")]
RegisterOcclusionStatusWindow<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, wmsg: u32) -> ::windows::runtime::Result<u32>5507     pub unsafe fn RegisterOcclusionStatusWindow<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, wmsg: u32) -> ::windows::runtime::Result<u32> {
5508         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5509         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), windowhandle.into_param().abi(), ::std::mem::transmute(wmsg), &mut result__).from_abi::<u32>(result__)
5510     }
5511     #[cfg(feature = "Win32_Foundation")]
RegisterOcclusionStatusEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32>5512     pub unsafe fn RegisterOcclusionStatusEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32> {
5513         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5514         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), hevent.into_param().abi(), &mut result__).from_abi::<u32>(result__)
5515     }
UnregisterOcclusionStatus(&self, dwcookie: u32)5516     pub unsafe fn UnregisterOcclusionStatus(&self, dwcookie: u32) {
5517         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self), ::std::mem::transmute(dwcookie)))
5518     }
5519     #[cfg(feature = "Win32_Foundation")]
CreateSwapChainForComposition<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param2: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: Param2) -> ::windows::runtime::Result<IDXGISwapChain1>5520     pub unsafe fn CreateSwapChainForComposition<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param2: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: Param2) -> ::windows::runtime::Result<IDXGISwapChain1> {
5521         let mut result__: <IDXGISwapChain1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5522         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), ::std::mem::transmute(pdesc), prestricttooutput.into_param().abi(), &mut result__).from_abi::<IDXGISwapChain1>(result__)
5523     }
GetCreationFlags(&self) -> u325524     pub unsafe fn GetCreationFlags(&self) -> u32 {
5525         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self)))
5526     }
5527     #[cfg(feature = "Win32_Foundation")]
EnumAdapterByLuid<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::LUID>, T: ::windows::runtime::Interface>(&self, adapterluid: Param0) -> ::windows::runtime::Result<T>5528     pub unsafe fn EnumAdapterByLuid<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::LUID>, T: ::windows::runtime::Interface>(&self, adapterluid: Param0) -> ::windows::runtime::Result<T> {
5529         let mut result__ = ::std::option::Option::None;
5530         (::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self), adapterluid.into_param().abi(), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
5531     }
EnumWarpAdapter<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>5532     pub unsafe fn EnumWarpAdapter<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
5533         let mut result__ = ::std::option::Option::None;
5534         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
5535     }
5536 }
5537 unsafe impl ::windows::runtime::Interface for IDXGIFactory4 {
5538     type Vtable = IDXGIFactory4_abi;
5539     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(466020866, 61238, 17999, [191, 12, 33, 202, 57, 229, 22, 138]);
5540 }
5541 impl ::std::convert::From<IDXGIFactory4> for ::windows::runtime::IUnknown {
from(value: IDXGIFactory4) -> Self5542     fn from(value: IDXGIFactory4) -> Self {
5543         unsafe { ::std::mem::transmute(value) }
5544     }
5545 }
5546 impl ::std::convert::From<&IDXGIFactory4> for ::windows::runtime::IUnknown {
from(value: &IDXGIFactory4) -> Self5547     fn from(value: &IDXGIFactory4) -> Self {
5548         ::std::convert::From::from(::std::clone::Clone::clone(value))
5549     }
5550 }
5551 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIFactory4 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5552     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5553         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
5554     }
5555 }
5556 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIFactory4 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5557     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5558         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
5559     }
5560 }
5561 impl ::std::convert::From<IDXGIFactory4> for IDXGIFactory3 {
from(value: IDXGIFactory4) -> Self5562     fn from(value: IDXGIFactory4) -> Self {
5563         unsafe { ::std::mem::transmute(value) }
5564     }
5565 }
5566 impl ::std::convert::From<&IDXGIFactory4> for IDXGIFactory3 {
from(value: &IDXGIFactory4) -> Self5567     fn from(value: &IDXGIFactory4) -> Self {
5568         ::std::convert::From::from(::std::clone::Clone::clone(value))
5569     }
5570 }
5571 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory3> for IDXGIFactory4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory3>5572     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory3> {
5573         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory3>::into(self))
5574     }
5575 }
5576 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory3> for &IDXGIFactory4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory3>5577     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory3> {
5578         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory3>::into(::std::clone::Clone::clone(self)))
5579     }
5580 }
5581 impl ::std::convert::From<IDXGIFactory4> for IDXGIFactory2 {
from(value: IDXGIFactory4) -> Self5582     fn from(value: IDXGIFactory4) -> Self {
5583         unsafe { ::std::mem::transmute(value) }
5584     }
5585 }
5586 impl ::std::convert::From<&IDXGIFactory4> for IDXGIFactory2 {
from(value: &IDXGIFactory4) -> Self5587     fn from(value: &IDXGIFactory4) -> Self {
5588         ::std::convert::From::from(::std::clone::Clone::clone(value))
5589     }
5590 }
5591 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory2> for IDXGIFactory4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory2>5592     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory2> {
5593         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory2>::into(self))
5594     }
5595 }
5596 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory2> for &IDXGIFactory4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory2>5597     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory2> {
5598         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory2>::into(::std::clone::Clone::clone(self)))
5599     }
5600 }
5601 impl ::std::convert::From<IDXGIFactory4> for IDXGIFactory1 {
from(value: IDXGIFactory4) -> Self5602     fn from(value: IDXGIFactory4) -> Self {
5603         unsafe { ::std::mem::transmute(value) }
5604     }
5605 }
5606 impl ::std::convert::From<&IDXGIFactory4> for IDXGIFactory1 {
from(value: &IDXGIFactory4) -> Self5607     fn from(value: &IDXGIFactory4) -> Self {
5608         ::std::convert::From::from(::std::clone::Clone::clone(value))
5609     }
5610 }
5611 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory1> for IDXGIFactory4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory1>5612     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory1> {
5613         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory1>::into(self))
5614     }
5615 }
5616 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory1> for &IDXGIFactory4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory1>5617     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory1> {
5618         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory1>::into(::std::clone::Clone::clone(self)))
5619     }
5620 }
5621 impl ::std::convert::From<IDXGIFactory4> for IDXGIFactory {
from(value: IDXGIFactory4) -> Self5622     fn from(value: IDXGIFactory4) -> Self {
5623         unsafe { ::std::mem::transmute(value) }
5624     }
5625 }
5626 impl ::std::convert::From<&IDXGIFactory4> for IDXGIFactory {
from(value: &IDXGIFactory4) -> Self5627     fn from(value: &IDXGIFactory4) -> Self {
5628         ::std::convert::From::from(::std::clone::Clone::clone(value))
5629     }
5630 }
5631 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory> for IDXGIFactory4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory>5632     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory> {
5633         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory>::into(self))
5634     }
5635 }
5636 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory> for &IDXGIFactory4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory>5637     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory> {
5638         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory>::into(::std::clone::Clone::clone(self)))
5639     }
5640 }
5641 impl ::std::convert::From<IDXGIFactory4> for IDXGIObject {
from(value: IDXGIFactory4) -> Self5642     fn from(value: IDXGIFactory4) -> Self {
5643         unsafe { ::std::mem::transmute(value) }
5644     }
5645 }
5646 impl ::std::convert::From<&IDXGIFactory4> for IDXGIObject {
from(value: &IDXGIFactory4) -> Self5647     fn from(value: &IDXGIFactory4) -> Self {
5648         ::std::convert::From::from(::std::clone::Clone::clone(value))
5649     }
5650 }
5651 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGIFactory4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>5652     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
5653         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
5654     }
5655 }
5656 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGIFactory4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>5657     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
5658         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
5659     }
5660 }
5661 #[repr(C)]
5662 #[doc(hidden)]
5663 pub struct IDXGIFactory4_abi(
5664     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5665     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5666     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5667     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
5668     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5669     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
5670     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
5671     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, adapter: u32, ppadapter: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5672     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, windowhandle: super::super::Foundation::HWND, flags: u32) -> ::windows::runtime::HRESULT,
5673     #[cfg(not(feature = "Win32_Foundation"))] usize,
5674     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwindowhandle: *mut super::super::Foundation::HWND) -> ::windows::runtime::HRESULT,
5675     #[cfg(not(feature = "Win32_Foundation"))] usize,
5676     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, pdesc: *const DXGI_SWAP_CHAIN_DESC, ppswapchain: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5677     #[cfg(not(feature = "Win32_Foundation"))] usize,
5678     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, module: super::super::Foundation::HINSTANCE, ppadapter: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5679     #[cfg(not(feature = "Win32_Foundation"))] usize,
5680     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, adapter: u32, ppadapter: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5681     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
5682     #[cfg(not(feature = "Win32_Foundation"))] usize,
5683     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
5684     #[cfg(not(feature = "Win32_Foundation"))] usize,
5685     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, hwnd: super::super::Foundation::HWND, pdesc: *const DXGI_SWAP_CHAIN_DESC1, pfullscreendesc: *const DXGI_SWAP_CHAIN_FULLSCREEN_DESC, prestricttooutput: ::windows::runtime::RawPtr, ppswapchain: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5686     #[cfg(not(feature = "Win32_Foundation"))] usize,
5687     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, pwindow: ::windows::runtime::RawPtr, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: ::windows::runtime::RawPtr, ppswapchain: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5688     #[cfg(not(feature = "Win32_Foundation"))] usize,
5689     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hresource: super::super::Foundation::HANDLE, pluid: *mut super::super::Foundation::LUID) -> ::windows::runtime::HRESULT,
5690     #[cfg(not(feature = "Win32_Foundation"))] usize,
5691     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, windowhandle: super::super::Foundation::HWND, wmsg: u32, pdwcookie: *mut u32) -> ::windows::runtime::HRESULT,
5692     #[cfg(not(feature = "Win32_Foundation"))] usize,
5693     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hevent: super::super::Foundation::HANDLE, pdwcookie: *mut u32) -> ::windows::runtime::HRESULT,
5694     #[cfg(not(feature = "Win32_Foundation"))] usize,
5695     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dwcookie: u32),
5696     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, windowhandle: super::super::Foundation::HWND, wmsg: u32, pdwcookie: *mut u32) -> ::windows::runtime::HRESULT,
5697     #[cfg(not(feature = "Win32_Foundation"))] usize,
5698     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hevent: super::super::Foundation::HANDLE, pdwcookie: *mut u32) -> ::windows::runtime::HRESULT,
5699     #[cfg(not(feature = "Win32_Foundation"))] usize,
5700     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dwcookie: u32),
5701     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: ::windows::runtime::RawPtr, ppswapchain: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5702     #[cfg(not(feature = "Win32_Foundation"))] usize,
5703     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5704     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, adapterluid: super::super::Foundation::LUID, riid: *const ::windows::runtime::GUID, ppvadapter: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
5705     #[cfg(not(feature = "Win32_Foundation"))] usize,
5706     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppvadapter: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
5707 );
5708 #[repr(transparent)]
5709 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
5710 pub struct IDXGIFactory5(::windows::runtime::IUnknown);
5711 impl IDXGIFactory5 {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>5712     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
5713         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
5714     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>5715     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
5716         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
5717     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>5718     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
5719         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
5720     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>5721     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
5722         let mut result__ = ::std::option::Option::None;
5723         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
5724     }
EnumAdapters(&self, adapter: u32) -> ::windows::runtime::Result<IDXGIAdapter>5725     pub unsafe fn EnumAdapters(&self, adapter: u32) -> ::windows::runtime::Result<IDXGIAdapter> {
5726         let mut result__: <IDXGIAdapter as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5727         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(adapter), &mut result__).from_abi::<IDXGIAdapter>(result__)
5728     }
5729     #[cfg(feature = "Win32_Foundation")]
MakeWindowAssociation<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, flags: u32) -> ::windows::runtime::Result<()>5730     pub unsafe fn MakeWindowAssociation<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, flags: u32) -> ::windows::runtime::Result<()> {
5731         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), windowhandle.into_param().abi(), ::std::mem::transmute(flags)).ok()
5732     }
5733     #[cfg(feature = "Win32_Foundation")]
GetWindowAssociation(&self) -> ::windows::runtime::Result<super::super::Foundation::HWND>5734     pub unsafe fn GetWindowAssociation(&self) -> ::windows::runtime::Result<super::super::Foundation::HWND> {
5735         let mut result__: <super::super::Foundation::HWND as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5736         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::HWND>(result__)
5737     }
5738     #[cfg(feature = "Win32_Foundation")]
CreateSwapChain<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pdevice: Param0, pdesc: *const DXGI_SWAP_CHAIN_DESC) -> ::windows::runtime::Result<IDXGISwapChain>5739     pub unsafe fn CreateSwapChain<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pdevice: Param0, pdesc: *const DXGI_SWAP_CHAIN_DESC) -> ::windows::runtime::Result<IDXGISwapChain> {
5740         let mut result__: <IDXGISwapChain as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5741         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), ::std::mem::transmute(pdesc), &mut result__).from_abi::<IDXGISwapChain>(result__)
5742     }
5743     #[cfg(feature = "Win32_Foundation")]
CreateSoftwareAdapter<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HINSTANCE>>(&self, module: Param0) -> ::windows::runtime::Result<IDXGIAdapter>5744     pub unsafe fn CreateSoftwareAdapter<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HINSTANCE>>(&self, module: Param0) -> ::windows::runtime::Result<IDXGIAdapter> {
5745         let mut result__: <IDXGIAdapter as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5746         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), module.into_param().abi(), &mut result__).from_abi::<IDXGIAdapter>(result__)
5747     }
EnumAdapters1(&self, adapter: u32) -> ::windows::runtime::Result<IDXGIAdapter1>5748     pub unsafe fn EnumAdapters1(&self, adapter: u32) -> ::windows::runtime::Result<IDXGIAdapter1> {
5749         let mut result__: <IDXGIAdapter1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5750         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(adapter), &mut result__).from_abi::<IDXGIAdapter1>(result__)
5751     }
5752     #[cfg(feature = "Win32_Foundation")]
IsCurrent(&self) -> super::super::Foundation::BOOL5753     pub unsafe fn IsCurrent(&self) -> super::super::Foundation::BOOL {
5754         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self)))
5755     }
5756     #[cfg(feature = "Win32_Foundation")]
IsWindowedStereoEnabled(&self) -> super::super::Foundation::BOOL5757     pub unsafe fn IsWindowedStereoEnabled(&self) -> super::super::Foundation::BOOL {
5758         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self)))
5759     }
5760     #[cfg(feature = "Win32_Foundation")]
CreateSwapChainForHwnd<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>, Param4: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, hwnd: Param1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, pfullscreendesc: *const DXGI_SWAP_CHAIN_FULLSCREEN_DESC, prestricttooutput: Param4) -> ::windows::runtime::Result<IDXGISwapChain1>5761     pub unsafe fn CreateSwapChainForHwnd<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>, Param4: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, hwnd: Param1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, pfullscreendesc: *const DXGI_SWAP_CHAIN_FULLSCREEN_DESC, prestricttooutput: Param4) -> ::windows::runtime::Result<IDXGISwapChain1> {
5762         let mut result__: <IDXGISwapChain1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5763         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), hwnd.into_param().abi(), ::std::mem::transmute(pdesc), ::std::mem::transmute(pfullscreendesc), prestricttooutput.into_param().abi(), &mut result__).from_abi::<IDXGISwapChain1>(result__)
5764     }
5765     #[cfg(feature = "Win32_Foundation")]
CreateSwapChainForCoreWindow<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param3: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, pwindow: Param1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: Param3) -> ::windows::runtime::Result<IDXGISwapChain1>5766     pub unsafe fn CreateSwapChainForCoreWindow<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param3: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, pwindow: Param1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: Param3) -> ::windows::runtime::Result<IDXGISwapChain1> {
5767         let mut result__: <IDXGISwapChain1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5768         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), pwindow.into_param().abi(), ::std::mem::transmute(pdesc), prestricttooutput.into_param().abi(), &mut result__).from_abi::<IDXGISwapChain1>(result__)
5769     }
5770     #[cfg(feature = "Win32_Foundation")]
GetSharedResourceAdapterLuid<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hresource: Param0) -> ::windows::runtime::Result<super::super::Foundation::LUID>5771     pub unsafe fn GetSharedResourceAdapterLuid<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hresource: Param0) -> ::windows::runtime::Result<super::super::Foundation::LUID> {
5772         let mut result__: <super::super::Foundation::LUID as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5773         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), hresource.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::LUID>(result__)
5774     }
5775     #[cfg(feature = "Win32_Foundation")]
RegisterStereoStatusWindow<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, wmsg: u32) -> ::windows::runtime::Result<u32>5776     pub unsafe fn RegisterStereoStatusWindow<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, wmsg: u32) -> ::windows::runtime::Result<u32> {
5777         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5778         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), windowhandle.into_param().abi(), ::std::mem::transmute(wmsg), &mut result__).from_abi::<u32>(result__)
5779     }
5780     #[cfg(feature = "Win32_Foundation")]
RegisterStereoStatusEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32>5781     pub unsafe fn RegisterStereoStatusEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32> {
5782         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5783         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), hevent.into_param().abi(), &mut result__).from_abi::<u32>(result__)
5784     }
UnregisterStereoStatus(&self, dwcookie: u32)5785     pub unsafe fn UnregisterStereoStatus(&self, dwcookie: u32) {
5786         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(dwcookie)))
5787     }
5788     #[cfg(feature = "Win32_Foundation")]
RegisterOcclusionStatusWindow<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, wmsg: u32) -> ::windows::runtime::Result<u32>5789     pub unsafe fn RegisterOcclusionStatusWindow<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, wmsg: u32) -> ::windows::runtime::Result<u32> {
5790         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5791         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), windowhandle.into_param().abi(), ::std::mem::transmute(wmsg), &mut result__).from_abi::<u32>(result__)
5792     }
5793     #[cfg(feature = "Win32_Foundation")]
RegisterOcclusionStatusEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32>5794     pub unsafe fn RegisterOcclusionStatusEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32> {
5795         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5796         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), hevent.into_param().abi(), &mut result__).from_abi::<u32>(result__)
5797     }
UnregisterOcclusionStatus(&self, dwcookie: u32)5798     pub unsafe fn UnregisterOcclusionStatus(&self, dwcookie: u32) {
5799         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self), ::std::mem::transmute(dwcookie)))
5800     }
5801     #[cfg(feature = "Win32_Foundation")]
CreateSwapChainForComposition<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param2: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: Param2) -> ::windows::runtime::Result<IDXGISwapChain1>5802     pub unsafe fn CreateSwapChainForComposition<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param2: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: Param2) -> ::windows::runtime::Result<IDXGISwapChain1> {
5803         let mut result__: <IDXGISwapChain1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5804         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), ::std::mem::transmute(pdesc), prestricttooutput.into_param().abi(), &mut result__).from_abi::<IDXGISwapChain1>(result__)
5805     }
GetCreationFlags(&self) -> u325806     pub unsafe fn GetCreationFlags(&self) -> u32 {
5807         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self)))
5808     }
5809     #[cfg(feature = "Win32_Foundation")]
EnumAdapterByLuid<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::LUID>, T: ::windows::runtime::Interface>(&self, adapterluid: Param0) -> ::windows::runtime::Result<T>5810     pub unsafe fn EnumAdapterByLuid<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::LUID>, T: ::windows::runtime::Interface>(&self, adapterluid: Param0) -> ::windows::runtime::Result<T> {
5811         let mut result__ = ::std::option::Option::None;
5812         (::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self), adapterluid.into_param().abi(), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
5813     }
EnumWarpAdapter<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>5814     pub unsafe fn EnumWarpAdapter<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
5815         let mut result__ = ::std::option::Option::None;
5816         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
5817     }
CheckFeatureSupport(&self, feature: DXGI_FEATURE, pfeaturesupportdata: *mut ::std::ffi::c_void, featuresupportdatasize: u32) -> ::windows::runtime::Result<()>5818     pub unsafe fn CheckFeatureSupport(&self, feature: DXGI_FEATURE, pfeaturesupportdata: *mut ::std::ffi::c_void, featuresupportdatasize: u32) -> ::windows::runtime::Result<()> {
5819         (::windows::runtime::Interface::vtable(self).28)(::std::mem::transmute_copy(self), ::std::mem::transmute(feature), ::std::mem::transmute(pfeaturesupportdata), ::std::mem::transmute(featuresupportdatasize)).ok()
5820     }
5821 }
5822 unsafe impl ::windows::runtime::Interface for IDXGIFactory5 {
5823     type Vtable = IDXGIFactory5_abi;
5824     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1983046133, 61029, 19914, [135, 253, 132, 205, 117, 248, 131, 141]);
5825 }
5826 impl ::std::convert::From<IDXGIFactory5> for ::windows::runtime::IUnknown {
from(value: IDXGIFactory5) -> Self5827     fn from(value: IDXGIFactory5) -> Self {
5828         unsafe { ::std::mem::transmute(value) }
5829     }
5830 }
5831 impl ::std::convert::From<&IDXGIFactory5> for ::windows::runtime::IUnknown {
from(value: &IDXGIFactory5) -> Self5832     fn from(value: &IDXGIFactory5) -> Self {
5833         ::std::convert::From::from(::std::clone::Clone::clone(value))
5834     }
5835 }
5836 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIFactory5 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5837     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5838         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
5839     }
5840 }
5841 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIFactory5 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5842     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5843         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
5844     }
5845 }
5846 impl ::std::convert::From<IDXGIFactory5> for IDXGIFactory4 {
from(value: IDXGIFactory5) -> Self5847     fn from(value: IDXGIFactory5) -> Self {
5848         unsafe { ::std::mem::transmute(value) }
5849     }
5850 }
5851 impl ::std::convert::From<&IDXGIFactory5> for IDXGIFactory4 {
from(value: &IDXGIFactory5) -> Self5852     fn from(value: &IDXGIFactory5) -> Self {
5853         ::std::convert::From::from(::std::clone::Clone::clone(value))
5854     }
5855 }
5856 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory4> for IDXGIFactory5 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory4>5857     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory4> {
5858         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory4>::into(self))
5859     }
5860 }
5861 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory4> for &IDXGIFactory5 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory4>5862     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory4> {
5863         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory4>::into(::std::clone::Clone::clone(self)))
5864     }
5865 }
5866 impl ::std::convert::From<IDXGIFactory5> for IDXGIFactory3 {
from(value: IDXGIFactory5) -> Self5867     fn from(value: IDXGIFactory5) -> Self {
5868         unsafe { ::std::mem::transmute(value) }
5869     }
5870 }
5871 impl ::std::convert::From<&IDXGIFactory5> for IDXGIFactory3 {
from(value: &IDXGIFactory5) -> Self5872     fn from(value: &IDXGIFactory5) -> Self {
5873         ::std::convert::From::from(::std::clone::Clone::clone(value))
5874     }
5875 }
5876 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory3> for IDXGIFactory5 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory3>5877     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory3> {
5878         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory3>::into(self))
5879     }
5880 }
5881 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory3> for &IDXGIFactory5 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory3>5882     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory3> {
5883         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory3>::into(::std::clone::Clone::clone(self)))
5884     }
5885 }
5886 impl ::std::convert::From<IDXGIFactory5> for IDXGIFactory2 {
from(value: IDXGIFactory5) -> Self5887     fn from(value: IDXGIFactory5) -> Self {
5888         unsafe { ::std::mem::transmute(value) }
5889     }
5890 }
5891 impl ::std::convert::From<&IDXGIFactory5> for IDXGIFactory2 {
from(value: &IDXGIFactory5) -> Self5892     fn from(value: &IDXGIFactory5) -> Self {
5893         ::std::convert::From::from(::std::clone::Clone::clone(value))
5894     }
5895 }
5896 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory2> for IDXGIFactory5 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory2>5897     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory2> {
5898         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory2>::into(self))
5899     }
5900 }
5901 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory2> for &IDXGIFactory5 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory2>5902     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory2> {
5903         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory2>::into(::std::clone::Clone::clone(self)))
5904     }
5905 }
5906 impl ::std::convert::From<IDXGIFactory5> for IDXGIFactory1 {
from(value: IDXGIFactory5) -> Self5907     fn from(value: IDXGIFactory5) -> Self {
5908         unsafe { ::std::mem::transmute(value) }
5909     }
5910 }
5911 impl ::std::convert::From<&IDXGIFactory5> for IDXGIFactory1 {
from(value: &IDXGIFactory5) -> Self5912     fn from(value: &IDXGIFactory5) -> Self {
5913         ::std::convert::From::from(::std::clone::Clone::clone(value))
5914     }
5915 }
5916 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory1> for IDXGIFactory5 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory1>5917     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory1> {
5918         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory1>::into(self))
5919     }
5920 }
5921 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory1> for &IDXGIFactory5 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory1>5922     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory1> {
5923         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory1>::into(::std::clone::Clone::clone(self)))
5924     }
5925 }
5926 impl ::std::convert::From<IDXGIFactory5> for IDXGIFactory {
from(value: IDXGIFactory5) -> Self5927     fn from(value: IDXGIFactory5) -> Self {
5928         unsafe { ::std::mem::transmute(value) }
5929     }
5930 }
5931 impl ::std::convert::From<&IDXGIFactory5> for IDXGIFactory {
from(value: &IDXGIFactory5) -> Self5932     fn from(value: &IDXGIFactory5) -> Self {
5933         ::std::convert::From::from(::std::clone::Clone::clone(value))
5934     }
5935 }
5936 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory> for IDXGIFactory5 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory>5937     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory> {
5938         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory>::into(self))
5939     }
5940 }
5941 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory> for &IDXGIFactory5 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory>5942     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory> {
5943         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory>::into(::std::clone::Clone::clone(self)))
5944     }
5945 }
5946 impl ::std::convert::From<IDXGIFactory5> for IDXGIObject {
from(value: IDXGIFactory5) -> Self5947     fn from(value: IDXGIFactory5) -> Self {
5948         unsafe { ::std::mem::transmute(value) }
5949     }
5950 }
5951 impl ::std::convert::From<&IDXGIFactory5> for IDXGIObject {
from(value: &IDXGIFactory5) -> Self5952     fn from(value: &IDXGIFactory5) -> Self {
5953         ::std::convert::From::from(::std::clone::Clone::clone(value))
5954     }
5955 }
5956 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGIFactory5 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>5957     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
5958         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
5959     }
5960 }
5961 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGIFactory5 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>5962     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
5963         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
5964     }
5965 }
5966 #[repr(C)]
5967 #[doc(hidden)]
5968 pub struct IDXGIFactory5_abi(
5969     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5970     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5971     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5972     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
5973     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5974     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
5975     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
5976     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, adapter: u32, ppadapter: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5977     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, windowhandle: super::super::Foundation::HWND, flags: u32) -> ::windows::runtime::HRESULT,
5978     #[cfg(not(feature = "Win32_Foundation"))] usize,
5979     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwindowhandle: *mut super::super::Foundation::HWND) -> ::windows::runtime::HRESULT,
5980     #[cfg(not(feature = "Win32_Foundation"))] usize,
5981     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, pdesc: *const DXGI_SWAP_CHAIN_DESC, ppswapchain: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5982     #[cfg(not(feature = "Win32_Foundation"))] usize,
5983     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, module: super::super::Foundation::HINSTANCE, ppadapter: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5984     #[cfg(not(feature = "Win32_Foundation"))] usize,
5985     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, adapter: u32, ppadapter: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5986     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
5987     #[cfg(not(feature = "Win32_Foundation"))] usize,
5988     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
5989     #[cfg(not(feature = "Win32_Foundation"))] usize,
5990     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, hwnd: super::super::Foundation::HWND, pdesc: *const DXGI_SWAP_CHAIN_DESC1, pfullscreendesc: *const DXGI_SWAP_CHAIN_FULLSCREEN_DESC, prestricttooutput: ::windows::runtime::RawPtr, ppswapchain: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5991     #[cfg(not(feature = "Win32_Foundation"))] usize,
5992     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, pwindow: ::windows::runtime::RawPtr, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: ::windows::runtime::RawPtr, ppswapchain: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5993     #[cfg(not(feature = "Win32_Foundation"))] usize,
5994     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hresource: super::super::Foundation::HANDLE, pluid: *mut super::super::Foundation::LUID) -> ::windows::runtime::HRESULT,
5995     #[cfg(not(feature = "Win32_Foundation"))] usize,
5996     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, windowhandle: super::super::Foundation::HWND, wmsg: u32, pdwcookie: *mut u32) -> ::windows::runtime::HRESULT,
5997     #[cfg(not(feature = "Win32_Foundation"))] usize,
5998     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hevent: super::super::Foundation::HANDLE, pdwcookie: *mut u32) -> ::windows::runtime::HRESULT,
5999     #[cfg(not(feature = "Win32_Foundation"))] usize,
6000     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dwcookie: u32),
6001     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, windowhandle: super::super::Foundation::HWND, wmsg: u32, pdwcookie: *mut u32) -> ::windows::runtime::HRESULT,
6002     #[cfg(not(feature = "Win32_Foundation"))] usize,
6003     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hevent: super::super::Foundation::HANDLE, pdwcookie: *mut u32) -> ::windows::runtime::HRESULT,
6004     #[cfg(not(feature = "Win32_Foundation"))] usize,
6005     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dwcookie: u32),
6006     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: ::windows::runtime::RawPtr, ppswapchain: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6007     #[cfg(not(feature = "Win32_Foundation"))] usize,
6008     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6009     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, adapterluid: super::super::Foundation::LUID, riid: *const ::windows::runtime::GUID, ppvadapter: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
6010     #[cfg(not(feature = "Win32_Foundation"))] usize,
6011     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppvadapter: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
6012     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, feature: DXGI_FEATURE, pfeaturesupportdata: *mut ::std::ffi::c_void, featuresupportdatasize: u32) -> ::windows::runtime::HRESULT,
6013 );
6014 #[repr(transparent)]
6015 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6016 pub struct IDXGIFactory6(::windows::runtime::IUnknown);
6017 impl IDXGIFactory6 {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>6018     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
6019         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
6020     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>6021     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
6022         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
6023     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>6024     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
6025         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
6026     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>6027     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
6028         let mut result__ = ::std::option::Option::None;
6029         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
6030     }
EnumAdapters(&self, adapter: u32) -> ::windows::runtime::Result<IDXGIAdapter>6031     pub unsafe fn EnumAdapters(&self, adapter: u32) -> ::windows::runtime::Result<IDXGIAdapter> {
6032         let mut result__: <IDXGIAdapter as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6033         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(adapter), &mut result__).from_abi::<IDXGIAdapter>(result__)
6034     }
6035     #[cfg(feature = "Win32_Foundation")]
MakeWindowAssociation<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, flags: u32) -> ::windows::runtime::Result<()>6036     pub unsafe fn MakeWindowAssociation<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, flags: u32) -> ::windows::runtime::Result<()> {
6037         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), windowhandle.into_param().abi(), ::std::mem::transmute(flags)).ok()
6038     }
6039     #[cfg(feature = "Win32_Foundation")]
GetWindowAssociation(&self) -> ::windows::runtime::Result<super::super::Foundation::HWND>6040     pub unsafe fn GetWindowAssociation(&self) -> ::windows::runtime::Result<super::super::Foundation::HWND> {
6041         let mut result__: <super::super::Foundation::HWND as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6042         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::HWND>(result__)
6043     }
6044     #[cfg(feature = "Win32_Foundation")]
CreateSwapChain<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pdevice: Param0, pdesc: *const DXGI_SWAP_CHAIN_DESC) -> ::windows::runtime::Result<IDXGISwapChain>6045     pub unsafe fn CreateSwapChain<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pdevice: Param0, pdesc: *const DXGI_SWAP_CHAIN_DESC) -> ::windows::runtime::Result<IDXGISwapChain> {
6046         let mut result__: <IDXGISwapChain as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6047         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), ::std::mem::transmute(pdesc), &mut result__).from_abi::<IDXGISwapChain>(result__)
6048     }
6049     #[cfg(feature = "Win32_Foundation")]
CreateSoftwareAdapter<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HINSTANCE>>(&self, module: Param0) -> ::windows::runtime::Result<IDXGIAdapter>6050     pub unsafe fn CreateSoftwareAdapter<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HINSTANCE>>(&self, module: Param0) -> ::windows::runtime::Result<IDXGIAdapter> {
6051         let mut result__: <IDXGIAdapter as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6052         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), module.into_param().abi(), &mut result__).from_abi::<IDXGIAdapter>(result__)
6053     }
EnumAdapters1(&self, adapter: u32) -> ::windows::runtime::Result<IDXGIAdapter1>6054     pub unsafe fn EnumAdapters1(&self, adapter: u32) -> ::windows::runtime::Result<IDXGIAdapter1> {
6055         let mut result__: <IDXGIAdapter1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6056         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(adapter), &mut result__).from_abi::<IDXGIAdapter1>(result__)
6057     }
6058     #[cfg(feature = "Win32_Foundation")]
IsCurrent(&self) -> super::super::Foundation::BOOL6059     pub unsafe fn IsCurrent(&self) -> super::super::Foundation::BOOL {
6060         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self)))
6061     }
6062     #[cfg(feature = "Win32_Foundation")]
IsWindowedStereoEnabled(&self) -> super::super::Foundation::BOOL6063     pub unsafe fn IsWindowedStereoEnabled(&self) -> super::super::Foundation::BOOL {
6064         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self)))
6065     }
6066     #[cfg(feature = "Win32_Foundation")]
CreateSwapChainForHwnd<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>, Param4: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, hwnd: Param1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, pfullscreendesc: *const DXGI_SWAP_CHAIN_FULLSCREEN_DESC, prestricttooutput: Param4) -> ::windows::runtime::Result<IDXGISwapChain1>6067     pub unsafe fn CreateSwapChainForHwnd<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>, Param4: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, hwnd: Param1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, pfullscreendesc: *const DXGI_SWAP_CHAIN_FULLSCREEN_DESC, prestricttooutput: Param4) -> ::windows::runtime::Result<IDXGISwapChain1> {
6068         let mut result__: <IDXGISwapChain1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6069         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), hwnd.into_param().abi(), ::std::mem::transmute(pdesc), ::std::mem::transmute(pfullscreendesc), prestricttooutput.into_param().abi(), &mut result__).from_abi::<IDXGISwapChain1>(result__)
6070     }
6071     #[cfg(feature = "Win32_Foundation")]
CreateSwapChainForCoreWindow<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param3: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, pwindow: Param1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: Param3) -> ::windows::runtime::Result<IDXGISwapChain1>6072     pub unsafe fn CreateSwapChainForCoreWindow<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param3: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, pwindow: Param1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: Param3) -> ::windows::runtime::Result<IDXGISwapChain1> {
6073         let mut result__: <IDXGISwapChain1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6074         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), pwindow.into_param().abi(), ::std::mem::transmute(pdesc), prestricttooutput.into_param().abi(), &mut result__).from_abi::<IDXGISwapChain1>(result__)
6075     }
6076     #[cfg(feature = "Win32_Foundation")]
GetSharedResourceAdapterLuid<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hresource: Param0) -> ::windows::runtime::Result<super::super::Foundation::LUID>6077     pub unsafe fn GetSharedResourceAdapterLuid<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hresource: Param0) -> ::windows::runtime::Result<super::super::Foundation::LUID> {
6078         let mut result__: <super::super::Foundation::LUID as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6079         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), hresource.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::LUID>(result__)
6080     }
6081     #[cfg(feature = "Win32_Foundation")]
RegisterStereoStatusWindow<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, wmsg: u32) -> ::windows::runtime::Result<u32>6082     pub unsafe fn RegisterStereoStatusWindow<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, wmsg: u32) -> ::windows::runtime::Result<u32> {
6083         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6084         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), windowhandle.into_param().abi(), ::std::mem::transmute(wmsg), &mut result__).from_abi::<u32>(result__)
6085     }
6086     #[cfg(feature = "Win32_Foundation")]
RegisterStereoStatusEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32>6087     pub unsafe fn RegisterStereoStatusEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32> {
6088         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6089         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), hevent.into_param().abi(), &mut result__).from_abi::<u32>(result__)
6090     }
UnregisterStereoStatus(&self, dwcookie: u32)6091     pub unsafe fn UnregisterStereoStatus(&self, dwcookie: u32) {
6092         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(dwcookie)))
6093     }
6094     #[cfg(feature = "Win32_Foundation")]
RegisterOcclusionStatusWindow<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, wmsg: u32) -> ::windows::runtime::Result<u32>6095     pub unsafe fn RegisterOcclusionStatusWindow<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, wmsg: u32) -> ::windows::runtime::Result<u32> {
6096         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6097         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), windowhandle.into_param().abi(), ::std::mem::transmute(wmsg), &mut result__).from_abi::<u32>(result__)
6098     }
6099     #[cfg(feature = "Win32_Foundation")]
RegisterOcclusionStatusEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32>6100     pub unsafe fn RegisterOcclusionStatusEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32> {
6101         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6102         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), hevent.into_param().abi(), &mut result__).from_abi::<u32>(result__)
6103     }
UnregisterOcclusionStatus(&self, dwcookie: u32)6104     pub unsafe fn UnregisterOcclusionStatus(&self, dwcookie: u32) {
6105         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self), ::std::mem::transmute(dwcookie)))
6106     }
6107     #[cfg(feature = "Win32_Foundation")]
CreateSwapChainForComposition<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param2: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: Param2) -> ::windows::runtime::Result<IDXGISwapChain1>6108     pub unsafe fn CreateSwapChainForComposition<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param2: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: Param2) -> ::windows::runtime::Result<IDXGISwapChain1> {
6109         let mut result__: <IDXGISwapChain1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6110         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), ::std::mem::transmute(pdesc), prestricttooutput.into_param().abi(), &mut result__).from_abi::<IDXGISwapChain1>(result__)
6111     }
GetCreationFlags(&self) -> u326112     pub unsafe fn GetCreationFlags(&self) -> u32 {
6113         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self)))
6114     }
6115     #[cfg(feature = "Win32_Foundation")]
EnumAdapterByLuid<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::LUID>, T: ::windows::runtime::Interface>(&self, adapterluid: Param0) -> ::windows::runtime::Result<T>6116     pub unsafe fn EnumAdapterByLuid<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::LUID>, T: ::windows::runtime::Interface>(&self, adapterluid: Param0) -> ::windows::runtime::Result<T> {
6117         let mut result__ = ::std::option::Option::None;
6118         (::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self), adapterluid.into_param().abi(), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
6119     }
EnumWarpAdapter<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>6120     pub unsafe fn EnumWarpAdapter<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
6121         let mut result__ = ::std::option::Option::None;
6122         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
6123     }
CheckFeatureSupport(&self, feature: DXGI_FEATURE, pfeaturesupportdata: *mut ::std::ffi::c_void, featuresupportdatasize: u32) -> ::windows::runtime::Result<()>6124     pub unsafe fn CheckFeatureSupport(&self, feature: DXGI_FEATURE, pfeaturesupportdata: *mut ::std::ffi::c_void, featuresupportdatasize: u32) -> ::windows::runtime::Result<()> {
6125         (::windows::runtime::Interface::vtable(self).28)(::std::mem::transmute_copy(self), ::std::mem::transmute(feature), ::std::mem::transmute(pfeaturesupportdata), ::std::mem::transmute(featuresupportdatasize)).ok()
6126     }
EnumAdapterByGpuPreference<T: ::windows::runtime::Interface>(&self, adapter: u32, gpupreference: DXGI_GPU_PREFERENCE) -> ::windows::runtime::Result<T>6127     pub unsafe fn EnumAdapterByGpuPreference<T: ::windows::runtime::Interface>(&self, adapter: u32, gpupreference: DXGI_GPU_PREFERENCE) -> ::windows::runtime::Result<T> {
6128         let mut result__ = ::std::option::Option::None;
6129         (::windows::runtime::Interface::vtable(self).29)(::std::mem::transmute_copy(self), ::std::mem::transmute(adapter), ::std::mem::transmute(gpupreference), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
6130     }
6131 }
6132 unsafe impl ::windows::runtime::Interface for IDXGIFactory6 {
6133     type Vtable = IDXGIFactory6_abi;
6134     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3249957199, 65289, 17577, [176, 60, 119, 144, 10, 10, 29, 23]);
6135 }
6136 impl ::std::convert::From<IDXGIFactory6> for ::windows::runtime::IUnknown {
from(value: IDXGIFactory6) -> Self6137     fn from(value: IDXGIFactory6) -> Self {
6138         unsafe { ::std::mem::transmute(value) }
6139     }
6140 }
6141 impl ::std::convert::From<&IDXGIFactory6> for ::windows::runtime::IUnknown {
from(value: &IDXGIFactory6) -> Self6142     fn from(value: &IDXGIFactory6) -> Self {
6143         ::std::convert::From::from(::std::clone::Clone::clone(value))
6144     }
6145 }
6146 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIFactory6 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>6147     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
6148         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
6149     }
6150 }
6151 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIFactory6 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>6152     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
6153         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
6154     }
6155 }
6156 impl ::std::convert::From<IDXGIFactory6> for IDXGIFactory5 {
from(value: IDXGIFactory6) -> Self6157     fn from(value: IDXGIFactory6) -> Self {
6158         unsafe { ::std::mem::transmute(value) }
6159     }
6160 }
6161 impl ::std::convert::From<&IDXGIFactory6> for IDXGIFactory5 {
from(value: &IDXGIFactory6) -> Self6162     fn from(value: &IDXGIFactory6) -> Self {
6163         ::std::convert::From::from(::std::clone::Clone::clone(value))
6164     }
6165 }
6166 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory5> for IDXGIFactory6 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory5>6167     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory5> {
6168         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory5>::into(self))
6169     }
6170 }
6171 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory5> for &IDXGIFactory6 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory5>6172     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory5> {
6173         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory5>::into(::std::clone::Clone::clone(self)))
6174     }
6175 }
6176 impl ::std::convert::From<IDXGIFactory6> for IDXGIFactory4 {
from(value: IDXGIFactory6) -> Self6177     fn from(value: IDXGIFactory6) -> Self {
6178         unsafe { ::std::mem::transmute(value) }
6179     }
6180 }
6181 impl ::std::convert::From<&IDXGIFactory6> for IDXGIFactory4 {
from(value: &IDXGIFactory6) -> Self6182     fn from(value: &IDXGIFactory6) -> Self {
6183         ::std::convert::From::from(::std::clone::Clone::clone(value))
6184     }
6185 }
6186 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory4> for IDXGIFactory6 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory4>6187     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory4> {
6188         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory4>::into(self))
6189     }
6190 }
6191 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory4> for &IDXGIFactory6 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory4>6192     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory4> {
6193         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory4>::into(::std::clone::Clone::clone(self)))
6194     }
6195 }
6196 impl ::std::convert::From<IDXGIFactory6> for IDXGIFactory3 {
from(value: IDXGIFactory6) -> Self6197     fn from(value: IDXGIFactory6) -> Self {
6198         unsafe { ::std::mem::transmute(value) }
6199     }
6200 }
6201 impl ::std::convert::From<&IDXGIFactory6> for IDXGIFactory3 {
from(value: &IDXGIFactory6) -> Self6202     fn from(value: &IDXGIFactory6) -> Self {
6203         ::std::convert::From::from(::std::clone::Clone::clone(value))
6204     }
6205 }
6206 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory3> for IDXGIFactory6 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory3>6207     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory3> {
6208         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory3>::into(self))
6209     }
6210 }
6211 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory3> for &IDXGIFactory6 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory3>6212     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory3> {
6213         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory3>::into(::std::clone::Clone::clone(self)))
6214     }
6215 }
6216 impl ::std::convert::From<IDXGIFactory6> for IDXGIFactory2 {
from(value: IDXGIFactory6) -> Self6217     fn from(value: IDXGIFactory6) -> Self {
6218         unsafe { ::std::mem::transmute(value) }
6219     }
6220 }
6221 impl ::std::convert::From<&IDXGIFactory6> for IDXGIFactory2 {
from(value: &IDXGIFactory6) -> Self6222     fn from(value: &IDXGIFactory6) -> Self {
6223         ::std::convert::From::from(::std::clone::Clone::clone(value))
6224     }
6225 }
6226 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory2> for IDXGIFactory6 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory2>6227     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory2> {
6228         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory2>::into(self))
6229     }
6230 }
6231 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory2> for &IDXGIFactory6 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory2>6232     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory2> {
6233         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory2>::into(::std::clone::Clone::clone(self)))
6234     }
6235 }
6236 impl ::std::convert::From<IDXGIFactory6> for IDXGIFactory1 {
from(value: IDXGIFactory6) -> Self6237     fn from(value: IDXGIFactory6) -> Self {
6238         unsafe { ::std::mem::transmute(value) }
6239     }
6240 }
6241 impl ::std::convert::From<&IDXGIFactory6> for IDXGIFactory1 {
from(value: &IDXGIFactory6) -> Self6242     fn from(value: &IDXGIFactory6) -> Self {
6243         ::std::convert::From::from(::std::clone::Clone::clone(value))
6244     }
6245 }
6246 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory1> for IDXGIFactory6 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory1>6247     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory1> {
6248         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory1>::into(self))
6249     }
6250 }
6251 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory1> for &IDXGIFactory6 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory1>6252     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory1> {
6253         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory1>::into(::std::clone::Clone::clone(self)))
6254     }
6255 }
6256 impl ::std::convert::From<IDXGIFactory6> for IDXGIFactory {
from(value: IDXGIFactory6) -> Self6257     fn from(value: IDXGIFactory6) -> Self {
6258         unsafe { ::std::mem::transmute(value) }
6259     }
6260 }
6261 impl ::std::convert::From<&IDXGIFactory6> for IDXGIFactory {
from(value: &IDXGIFactory6) -> Self6262     fn from(value: &IDXGIFactory6) -> Self {
6263         ::std::convert::From::from(::std::clone::Clone::clone(value))
6264     }
6265 }
6266 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory> for IDXGIFactory6 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory>6267     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory> {
6268         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory>::into(self))
6269     }
6270 }
6271 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory> for &IDXGIFactory6 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory>6272     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory> {
6273         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory>::into(::std::clone::Clone::clone(self)))
6274     }
6275 }
6276 impl ::std::convert::From<IDXGIFactory6> for IDXGIObject {
from(value: IDXGIFactory6) -> Self6277     fn from(value: IDXGIFactory6) -> Self {
6278         unsafe { ::std::mem::transmute(value) }
6279     }
6280 }
6281 impl ::std::convert::From<&IDXGIFactory6> for IDXGIObject {
from(value: &IDXGIFactory6) -> Self6282     fn from(value: &IDXGIFactory6) -> Self {
6283         ::std::convert::From::from(::std::clone::Clone::clone(value))
6284     }
6285 }
6286 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGIFactory6 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>6287     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
6288         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
6289     }
6290 }
6291 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGIFactory6 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>6292     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
6293         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
6294     }
6295 }
6296 #[repr(C)]
6297 #[doc(hidden)]
6298 pub struct IDXGIFactory6_abi(
6299     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6300     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6301     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6302     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
6303     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6304     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
6305     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
6306     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, adapter: u32, ppadapter: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6307     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, windowhandle: super::super::Foundation::HWND, flags: u32) -> ::windows::runtime::HRESULT,
6308     #[cfg(not(feature = "Win32_Foundation"))] usize,
6309     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwindowhandle: *mut super::super::Foundation::HWND) -> ::windows::runtime::HRESULT,
6310     #[cfg(not(feature = "Win32_Foundation"))] usize,
6311     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, pdesc: *const DXGI_SWAP_CHAIN_DESC, ppswapchain: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6312     #[cfg(not(feature = "Win32_Foundation"))] usize,
6313     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, module: super::super::Foundation::HINSTANCE, ppadapter: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6314     #[cfg(not(feature = "Win32_Foundation"))] usize,
6315     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, adapter: u32, ppadapter: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6316     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
6317     #[cfg(not(feature = "Win32_Foundation"))] usize,
6318     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
6319     #[cfg(not(feature = "Win32_Foundation"))] usize,
6320     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, hwnd: super::super::Foundation::HWND, pdesc: *const DXGI_SWAP_CHAIN_DESC1, pfullscreendesc: *const DXGI_SWAP_CHAIN_FULLSCREEN_DESC, prestricttooutput: ::windows::runtime::RawPtr, ppswapchain: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6321     #[cfg(not(feature = "Win32_Foundation"))] usize,
6322     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, pwindow: ::windows::runtime::RawPtr, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: ::windows::runtime::RawPtr, ppswapchain: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6323     #[cfg(not(feature = "Win32_Foundation"))] usize,
6324     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hresource: super::super::Foundation::HANDLE, pluid: *mut super::super::Foundation::LUID) -> ::windows::runtime::HRESULT,
6325     #[cfg(not(feature = "Win32_Foundation"))] usize,
6326     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, windowhandle: super::super::Foundation::HWND, wmsg: u32, pdwcookie: *mut u32) -> ::windows::runtime::HRESULT,
6327     #[cfg(not(feature = "Win32_Foundation"))] usize,
6328     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hevent: super::super::Foundation::HANDLE, pdwcookie: *mut u32) -> ::windows::runtime::HRESULT,
6329     #[cfg(not(feature = "Win32_Foundation"))] usize,
6330     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dwcookie: u32),
6331     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, windowhandle: super::super::Foundation::HWND, wmsg: u32, pdwcookie: *mut u32) -> ::windows::runtime::HRESULT,
6332     #[cfg(not(feature = "Win32_Foundation"))] usize,
6333     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hevent: super::super::Foundation::HANDLE, pdwcookie: *mut u32) -> ::windows::runtime::HRESULT,
6334     #[cfg(not(feature = "Win32_Foundation"))] usize,
6335     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dwcookie: u32),
6336     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: ::windows::runtime::RawPtr, ppswapchain: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6337     #[cfg(not(feature = "Win32_Foundation"))] usize,
6338     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6339     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, adapterluid: super::super::Foundation::LUID, riid: *const ::windows::runtime::GUID, ppvadapter: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
6340     #[cfg(not(feature = "Win32_Foundation"))] usize,
6341     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppvadapter: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
6342     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, feature: DXGI_FEATURE, pfeaturesupportdata: *mut ::std::ffi::c_void, featuresupportdatasize: u32) -> ::windows::runtime::HRESULT,
6343     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, adapter: u32, gpupreference: DXGI_GPU_PREFERENCE, riid: *const ::windows::runtime::GUID, ppvadapter: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
6344 );
6345 #[repr(transparent)]
6346 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6347 pub struct IDXGIFactory7(::windows::runtime::IUnknown);
6348 impl IDXGIFactory7 {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>6349     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
6350         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
6351     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>6352     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
6353         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
6354     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>6355     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
6356         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
6357     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>6358     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
6359         let mut result__ = ::std::option::Option::None;
6360         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
6361     }
EnumAdapters(&self, adapter: u32) -> ::windows::runtime::Result<IDXGIAdapter>6362     pub unsafe fn EnumAdapters(&self, adapter: u32) -> ::windows::runtime::Result<IDXGIAdapter> {
6363         let mut result__: <IDXGIAdapter as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6364         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(adapter), &mut result__).from_abi::<IDXGIAdapter>(result__)
6365     }
6366     #[cfg(feature = "Win32_Foundation")]
MakeWindowAssociation<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, flags: u32) -> ::windows::runtime::Result<()>6367     pub unsafe fn MakeWindowAssociation<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, flags: u32) -> ::windows::runtime::Result<()> {
6368         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), windowhandle.into_param().abi(), ::std::mem::transmute(flags)).ok()
6369     }
6370     #[cfg(feature = "Win32_Foundation")]
GetWindowAssociation(&self) -> ::windows::runtime::Result<super::super::Foundation::HWND>6371     pub unsafe fn GetWindowAssociation(&self) -> ::windows::runtime::Result<super::super::Foundation::HWND> {
6372         let mut result__: <super::super::Foundation::HWND as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6373         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::HWND>(result__)
6374     }
6375     #[cfg(feature = "Win32_Foundation")]
CreateSwapChain<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pdevice: Param0, pdesc: *const DXGI_SWAP_CHAIN_DESC) -> ::windows::runtime::Result<IDXGISwapChain>6376     pub unsafe fn CreateSwapChain<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pdevice: Param0, pdesc: *const DXGI_SWAP_CHAIN_DESC) -> ::windows::runtime::Result<IDXGISwapChain> {
6377         let mut result__: <IDXGISwapChain as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6378         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), ::std::mem::transmute(pdesc), &mut result__).from_abi::<IDXGISwapChain>(result__)
6379     }
6380     #[cfg(feature = "Win32_Foundation")]
CreateSoftwareAdapter<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HINSTANCE>>(&self, module: Param0) -> ::windows::runtime::Result<IDXGIAdapter>6381     pub unsafe fn CreateSoftwareAdapter<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HINSTANCE>>(&self, module: Param0) -> ::windows::runtime::Result<IDXGIAdapter> {
6382         let mut result__: <IDXGIAdapter as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6383         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), module.into_param().abi(), &mut result__).from_abi::<IDXGIAdapter>(result__)
6384     }
EnumAdapters1(&self, adapter: u32) -> ::windows::runtime::Result<IDXGIAdapter1>6385     pub unsafe fn EnumAdapters1(&self, adapter: u32) -> ::windows::runtime::Result<IDXGIAdapter1> {
6386         let mut result__: <IDXGIAdapter1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6387         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(adapter), &mut result__).from_abi::<IDXGIAdapter1>(result__)
6388     }
6389     #[cfg(feature = "Win32_Foundation")]
IsCurrent(&self) -> super::super::Foundation::BOOL6390     pub unsafe fn IsCurrent(&self) -> super::super::Foundation::BOOL {
6391         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self)))
6392     }
6393     #[cfg(feature = "Win32_Foundation")]
IsWindowedStereoEnabled(&self) -> super::super::Foundation::BOOL6394     pub unsafe fn IsWindowedStereoEnabled(&self) -> super::super::Foundation::BOOL {
6395         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self)))
6396     }
6397     #[cfg(feature = "Win32_Foundation")]
CreateSwapChainForHwnd<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>, Param4: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, hwnd: Param1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, pfullscreendesc: *const DXGI_SWAP_CHAIN_FULLSCREEN_DESC, prestricttooutput: Param4) -> ::windows::runtime::Result<IDXGISwapChain1>6398     pub unsafe fn CreateSwapChainForHwnd<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>, Param4: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, hwnd: Param1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, pfullscreendesc: *const DXGI_SWAP_CHAIN_FULLSCREEN_DESC, prestricttooutput: Param4) -> ::windows::runtime::Result<IDXGISwapChain1> {
6399         let mut result__: <IDXGISwapChain1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6400         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), hwnd.into_param().abi(), ::std::mem::transmute(pdesc), ::std::mem::transmute(pfullscreendesc), prestricttooutput.into_param().abi(), &mut result__).from_abi::<IDXGISwapChain1>(result__)
6401     }
6402     #[cfg(feature = "Win32_Foundation")]
CreateSwapChainForCoreWindow<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param3: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, pwindow: Param1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: Param3) -> ::windows::runtime::Result<IDXGISwapChain1>6403     pub unsafe fn CreateSwapChainForCoreWindow<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param3: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, pwindow: Param1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: Param3) -> ::windows::runtime::Result<IDXGISwapChain1> {
6404         let mut result__: <IDXGISwapChain1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6405         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), pwindow.into_param().abi(), ::std::mem::transmute(pdesc), prestricttooutput.into_param().abi(), &mut result__).from_abi::<IDXGISwapChain1>(result__)
6406     }
6407     #[cfg(feature = "Win32_Foundation")]
GetSharedResourceAdapterLuid<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hresource: Param0) -> ::windows::runtime::Result<super::super::Foundation::LUID>6408     pub unsafe fn GetSharedResourceAdapterLuid<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hresource: Param0) -> ::windows::runtime::Result<super::super::Foundation::LUID> {
6409         let mut result__: <super::super::Foundation::LUID as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6410         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), hresource.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::LUID>(result__)
6411     }
6412     #[cfg(feature = "Win32_Foundation")]
RegisterStereoStatusWindow<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, wmsg: u32) -> ::windows::runtime::Result<u32>6413     pub unsafe fn RegisterStereoStatusWindow<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, wmsg: u32) -> ::windows::runtime::Result<u32> {
6414         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6415         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), windowhandle.into_param().abi(), ::std::mem::transmute(wmsg), &mut result__).from_abi::<u32>(result__)
6416     }
6417     #[cfg(feature = "Win32_Foundation")]
RegisterStereoStatusEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32>6418     pub unsafe fn RegisterStereoStatusEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32> {
6419         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6420         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), hevent.into_param().abi(), &mut result__).from_abi::<u32>(result__)
6421     }
UnregisterStereoStatus(&self, dwcookie: u32)6422     pub unsafe fn UnregisterStereoStatus(&self, dwcookie: u32) {
6423         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(dwcookie)))
6424     }
6425     #[cfg(feature = "Win32_Foundation")]
RegisterOcclusionStatusWindow<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, wmsg: u32) -> ::windows::runtime::Result<u32>6426     pub unsafe fn RegisterOcclusionStatusWindow<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, windowhandle: Param0, wmsg: u32) -> ::windows::runtime::Result<u32> {
6427         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6428         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), windowhandle.into_param().abi(), ::std::mem::transmute(wmsg), &mut result__).from_abi::<u32>(result__)
6429     }
6430     #[cfg(feature = "Win32_Foundation")]
RegisterOcclusionStatusEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32>6431     pub unsafe fn RegisterOcclusionStatusEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32> {
6432         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6433         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), hevent.into_param().abi(), &mut result__).from_abi::<u32>(result__)
6434     }
UnregisterOcclusionStatus(&self, dwcookie: u32)6435     pub unsafe fn UnregisterOcclusionStatus(&self, dwcookie: u32) {
6436         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self), ::std::mem::transmute(dwcookie)))
6437     }
6438     #[cfg(feature = "Win32_Foundation")]
CreateSwapChainForComposition<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param2: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: Param2) -> ::windows::runtime::Result<IDXGISwapChain1>6439     pub unsafe fn CreateSwapChainForComposition<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param2: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: Param2) -> ::windows::runtime::Result<IDXGISwapChain1> {
6440         let mut result__: <IDXGISwapChain1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6441         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), ::std::mem::transmute(pdesc), prestricttooutput.into_param().abi(), &mut result__).from_abi::<IDXGISwapChain1>(result__)
6442     }
GetCreationFlags(&self) -> u326443     pub unsafe fn GetCreationFlags(&self) -> u32 {
6444         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self)))
6445     }
6446     #[cfg(feature = "Win32_Foundation")]
EnumAdapterByLuid<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::LUID>, T: ::windows::runtime::Interface>(&self, adapterluid: Param0) -> ::windows::runtime::Result<T>6447     pub unsafe fn EnumAdapterByLuid<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::LUID>, T: ::windows::runtime::Interface>(&self, adapterluid: Param0) -> ::windows::runtime::Result<T> {
6448         let mut result__ = ::std::option::Option::None;
6449         (::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self), adapterluid.into_param().abi(), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
6450     }
EnumWarpAdapter<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>6451     pub unsafe fn EnumWarpAdapter<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
6452         let mut result__ = ::std::option::Option::None;
6453         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
6454     }
CheckFeatureSupport(&self, feature: DXGI_FEATURE, pfeaturesupportdata: *mut ::std::ffi::c_void, featuresupportdatasize: u32) -> ::windows::runtime::Result<()>6455     pub unsafe fn CheckFeatureSupport(&self, feature: DXGI_FEATURE, pfeaturesupportdata: *mut ::std::ffi::c_void, featuresupportdatasize: u32) -> ::windows::runtime::Result<()> {
6456         (::windows::runtime::Interface::vtable(self).28)(::std::mem::transmute_copy(self), ::std::mem::transmute(feature), ::std::mem::transmute(pfeaturesupportdata), ::std::mem::transmute(featuresupportdatasize)).ok()
6457     }
EnumAdapterByGpuPreference<T: ::windows::runtime::Interface>(&self, adapter: u32, gpupreference: DXGI_GPU_PREFERENCE) -> ::windows::runtime::Result<T>6458     pub unsafe fn EnumAdapterByGpuPreference<T: ::windows::runtime::Interface>(&self, adapter: u32, gpupreference: DXGI_GPU_PREFERENCE) -> ::windows::runtime::Result<T> {
6459         let mut result__ = ::std::option::Option::None;
6460         (::windows::runtime::Interface::vtable(self).29)(::std::mem::transmute_copy(self), ::std::mem::transmute(adapter), ::std::mem::transmute(gpupreference), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
6461     }
6462     #[cfg(feature = "Win32_Foundation")]
RegisterAdaptersChangedEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32>6463     pub unsafe fn RegisterAdaptersChangedEvent<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>>(&self, hevent: Param0) -> ::windows::runtime::Result<u32> {
6464         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6465         (::windows::runtime::Interface::vtable(self).30)(::std::mem::transmute_copy(self), hevent.into_param().abi(), &mut result__).from_abi::<u32>(result__)
6466     }
UnregisterAdaptersChangedEvent(&self, dwcookie: u32) -> ::windows::runtime::Result<()>6467     pub unsafe fn UnregisterAdaptersChangedEvent(&self, dwcookie: u32) -> ::windows::runtime::Result<()> {
6468         (::windows::runtime::Interface::vtable(self).31)(::std::mem::transmute_copy(self), ::std::mem::transmute(dwcookie)).ok()
6469     }
6470 }
6471 unsafe impl ::windows::runtime::Interface for IDXGIFactory7 {
6472     type Vtable = IDXGIFactory7_abi;
6473     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2761322221, 30427, 17626, [132, 193, 238, 154, 122, 251, 32, 168]);
6474 }
6475 impl ::std::convert::From<IDXGIFactory7> for ::windows::runtime::IUnknown {
from(value: IDXGIFactory7) -> Self6476     fn from(value: IDXGIFactory7) -> Self {
6477         unsafe { ::std::mem::transmute(value) }
6478     }
6479 }
6480 impl ::std::convert::From<&IDXGIFactory7> for ::windows::runtime::IUnknown {
from(value: &IDXGIFactory7) -> Self6481     fn from(value: &IDXGIFactory7) -> Self {
6482         ::std::convert::From::from(::std::clone::Clone::clone(value))
6483     }
6484 }
6485 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>6486     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
6487         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
6488     }
6489 }
6490 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>6491     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
6492         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
6493     }
6494 }
6495 impl ::std::convert::From<IDXGIFactory7> for IDXGIFactory6 {
from(value: IDXGIFactory7) -> Self6496     fn from(value: IDXGIFactory7) -> Self {
6497         unsafe { ::std::mem::transmute(value) }
6498     }
6499 }
6500 impl ::std::convert::From<&IDXGIFactory7> for IDXGIFactory6 {
from(value: &IDXGIFactory7) -> Self6501     fn from(value: &IDXGIFactory7) -> Self {
6502         ::std::convert::From::from(::std::clone::Clone::clone(value))
6503     }
6504 }
6505 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory6> for IDXGIFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory6>6506     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory6> {
6507         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory6>::into(self))
6508     }
6509 }
6510 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory6> for &IDXGIFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory6>6511     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory6> {
6512         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory6>::into(::std::clone::Clone::clone(self)))
6513     }
6514 }
6515 impl ::std::convert::From<IDXGIFactory7> for IDXGIFactory5 {
from(value: IDXGIFactory7) -> Self6516     fn from(value: IDXGIFactory7) -> Self {
6517         unsafe { ::std::mem::transmute(value) }
6518     }
6519 }
6520 impl ::std::convert::From<&IDXGIFactory7> for IDXGIFactory5 {
from(value: &IDXGIFactory7) -> Self6521     fn from(value: &IDXGIFactory7) -> Self {
6522         ::std::convert::From::from(::std::clone::Clone::clone(value))
6523     }
6524 }
6525 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory5> for IDXGIFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory5>6526     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory5> {
6527         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory5>::into(self))
6528     }
6529 }
6530 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory5> for &IDXGIFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory5>6531     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory5> {
6532         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory5>::into(::std::clone::Clone::clone(self)))
6533     }
6534 }
6535 impl ::std::convert::From<IDXGIFactory7> for IDXGIFactory4 {
from(value: IDXGIFactory7) -> Self6536     fn from(value: IDXGIFactory7) -> Self {
6537         unsafe { ::std::mem::transmute(value) }
6538     }
6539 }
6540 impl ::std::convert::From<&IDXGIFactory7> for IDXGIFactory4 {
from(value: &IDXGIFactory7) -> Self6541     fn from(value: &IDXGIFactory7) -> Self {
6542         ::std::convert::From::from(::std::clone::Clone::clone(value))
6543     }
6544 }
6545 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory4> for IDXGIFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory4>6546     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory4> {
6547         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory4>::into(self))
6548     }
6549 }
6550 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory4> for &IDXGIFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory4>6551     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory4> {
6552         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory4>::into(::std::clone::Clone::clone(self)))
6553     }
6554 }
6555 impl ::std::convert::From<IDXGIFactory7> for IDXGIFactory3 {
from(value: IDXGIFactory7) -> Self6556     fn from(value: IDXGIFactory7) -> Self {
6557         unsafe { ::std::mem::transmute(value) }
6558     }
6559 }
6560 impl ::std::convert::From<&IDXGIFactory7> for IDXGIFactory3 {
from(value: &IDXGIFactory7) -> Self6561     fn from(value: &IDXGIFactory7) -> Self {
6562         ::std::convert::From::from(::std::clone::Clone::clone(value))
6563     }
6564 }
6565 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory3> for IDXGIFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory3>6566     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory3> {
6567         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory3>::into(self))
6568     }
6569 }
6570 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory3> for &IDXGIFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory3>6571     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory3> {
6572         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory3>::into(::std::clone::Clone::clone(self)))
6573     }
6574 }
6575 impl ::std::convert::From<IDXGIFactory7> for IDXGIFactory2 {
from(value: IDXGIFactory7) -> Self6576     fn from(value: IDXGIFactory7) -> Self {
6577         unsafe { ::std::mem::transmute(value) }
6578     }
6579 }
6580 impl ::std::convert::From<&IDXGIFactory7> for IDXGIFactory2 {
from(value: &IDXGIFactory7) -> Self6581     fn from(value: &IDXGIFactory7) -> Self {
6582         ::std::convert::From::from(::std::clone::Clone::clone(value))
6583     }
6584 }
6585 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory2> for IDXGIFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory2>6586     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory2> {
6587         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory2>::into(self))
6588     }
6589 }
6590 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory2> for &IDXGIFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory2>6591     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory2> {
6592         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory2>::into(::std::clone::Clone::clone(self)))
6593     }
6594 }
6595 impl ::std::convert::From<IDXGIFactory7> for IDXGIFactory1 {
from(value: IDXGIFactory7) -> Self6596     fn from(value: IDXGIFactory7) -> Self {
6597         unsafe { ::std::mem::transmute(value) }
6598     }
6599 }
6600 impl ::std::convert::From<&IDXGIFactory7> for IDXGIFactory1 {
from(value: &IDXGIFactory7) -> Self6601     fn from(value: &IDXGIFactory7) -> Self {
6602         ::std::convert::From::from(::std::clone::Clone::clone(value))
6603     }
6604 }
6605 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory1> for IDXGIFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory1>6606     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory1> {
6607         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory1>::into(self))
6608     }
6609 }
6610 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory1> for &IDXGIFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory1>6611     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory1> {
6612         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory1>::into(::std::clone::Clone::clone(self)))
6613     }
6614 }
6615 impl ::std::convert::From<IDXGIFactory7> for IDXGIFactory {
from(value: IDXGIFactory7) -> Self6616     fn from(value: IDXGIFactory7) -> Self {
6617         unsafe { ::std::mem::transmute(value) }
6618     }
6619 }
6620 impl ::std::convert::From<&IDXGIFactory7> for IDXGIFactory {
from(value: &IDXGIFactory7) -> Self6621     fn from(value: &IDXGIFactory7) -> Self {
6622         ::std::convert::From::from(::std::clone::Clone::clone(value))
6623     }
6624 }
6625 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory> for IDXGIFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory>6626     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory> {
6627         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory>::into(self))
6628     }
6629 }
6630 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIFactory> for &IDXGIFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory>6631     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIFactory> {
6632         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIFactory>::into(::std::clone::Clone::clone(self)))
6633     }
6634 }
6635 impl ::std::convert::From<IDXGIFactory7> for IDXGIObject {
from(value: IDXGIFactory7) -> Self6636     fn from(value: IDXGIFactory7) -> Self {
6637         unsafe { ::std::mem::transmute(value) }
6638     }
6639 }
6640 impl ::std::convert::From<&IDXGIFactory7> for IDXGIObject {
from(value: &IDXGIFactory7) -> Self6641     fn from(value: &IDXGIFactory7) -> Self {
6642         ::std::convert::From::from(::std::clone::Clone::clone(value))
6643     }
6644 }
6645 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGIFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>6646     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
6647         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
6648     }
6649 }
6650 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGIFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>6651     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
6652         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
6653     }
6654 }
6655 #[repr(C)]
6656 #[doc(hidden)]
6657 pub struct IDXGIFactory7_abi(
6658     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6659     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6660     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6661     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
6662     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6663     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
6664     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
6665     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, adapter: u32, ppadapter: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6666     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, windowhandle: super::super::Foundation::HWND, flags: u32) -> ::windows::runtime::HRESULT,
6667     #[cfg(not(feature = "Win32_Foundation"))] usize,
6668     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwindowhandle: *mut super::super::Foundation::HWND) -> ::windows::runtime::HRESULT,
6669     #[cfg(not(feature = "Win32_Foundation"))] usize,
6670     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, pdesc: *const DXGI_SWAP_CHAIN_DESC, ppswapchain: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6671     #[cfg(not(feature = "Win32_Foundation"))] usize,
6672     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, module: super::super::Foundation::HINSTANCE, ppadapter: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6673     #[cfg(not(feature = "Win32_Foundation"))] usize,
6674     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, adapter: u32, ppadapter: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6675     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
6676     #[cfg(not(feature = "Win32_Foundation"))] usize,
6677     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
6678     #[cfg(not(feature = "Win32_Foundation"))] usize,
6679     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, hwnd: super::super::Foundation::HWND, pdesc: *const DXGI_SWAP_CHAIN_DESC1, pfullscreendesc: *const DXGI_SWAP_CHAIN_FULLSCREEN_DESC, prestricttooutput: ::windows::runtime::RawPtr, ppswapchain: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6680     #[cfg(not(feature = "Win32_Foundation"))] usize,
6681     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, pwindow: ::windows::runtime::RawPtr, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: ::windows::runtime::RawPtr, ppswapchain: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6682     #[cfg(not(feature = "Win32_Foundation"))] usize,
6683     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hresource: super::super::Foundation::HANDLE, pluid: *mut super::super::Foundation::LUID) -> ::windows::runtime::HRESULT,
6684     #[cfg(not(feature = "Win32_Foundation"))] usize,
6685     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, windowhandle: super::super::Foundation::HWND, wmsg: u32, pdwcookie: *mut u32) -> ::windows::runtime::HRESULT,
6686     #[cfg(not(feature = "Win32_Foundation"))] usize,
6687     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hevent: super::super::Foundation::HANDLE, pdwcookie: *mut u32) -> ::windows::runtime::HRESULT,
6688     #[cfg(not(feature = "Win32_Foundation"))] usize,
6689     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dwcookie: u32),
6690     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, windowhandle: super::super::Foundation::HWND, wmsg: u32, pdwcookie: *mut u32) -> ::windows::runtime::HRESULT,
6691     #[cfg(not(feature = "Win32_Foundation"))] usize,
6692     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hevent: super::super::Foundation::HANDLE, pdwcookie: *mut u32) -> ::windows::runtime::HRESULT,
6693     #[cfg(not(feature = "Win32_Foundation"))] usize,
6694     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dwcookie: u32),
6695     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: ::windows::runtime::RawPtr, ppswapchain: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6696     #[cfg(not(feature = "Win32_Foundation"))] usize,
6697     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6698     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, adapterluid: super::super::Foundation::LUID, riid: *const ::windows::runtime::GUID, ppvadapter: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
6699     #[cfg(not(feature = "Win32_Foundation"))] usize,
6700     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppvadapter: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
6701     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, feature: DXGI_FEATURE, pfeaturesupportdata: *mut ::std::ffi::c_void, featuresupportdatasize: u32) -> ::windows::runtime::HRESULT,
6702     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, adapter: u32, gpupreference: DXGI_GPU_PREFERENCE, riid: *const ::windows::runtime::GUID, ppvadapter: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
6703     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hevent: super::super::Foundation::HANDLE, pdwcookie: *mut u32) -> ::windows::runtime::HRESULT,
6704     #[cfg(not(feature = "Win32_Foundation"))] usize,
6705     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dwcookie: u32) -> ::windows::runtime::HRESULT,
6706 );
6707 #[repr(transparent)]
6708 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6709 pub struct IDXGIFactoryMedia(::windows::runtime::IUnknown);
6710 impl IDXGIFactoryMedia {
6711     #[cfg(feature = "Win32_Foundation")]
CreateSwapChainForCompositionSurfaceHandle<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>, Param3: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, hsurface: Param1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: Param3) -> ::windows::runtime::Result<IDXGISwapChain1>6712     pub unsafe fn CreateSwapChainForCompositionSurfaceHandle<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>, Param3: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, pdevice: Param0, hsurface: Param1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: Param3) -> ::windows::runtime::Result<IDXGISwapChain1> {
6713         let mut result__: <IDXGISwapChain1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6714         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), hsurface.into_param().abi(), ::std::mem::transmute(pdesc), prestricttooutput.into_param().abi(), &mut result__).from_abi::<IDXGISwapChain1>(result__)
6715     }
6716     #[cfg(feature = "Win32_Foundation")]
CreateDecodeSwapChainForCompositionSurfaceHandle<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>, Param3: ::windows::runtime::IntoParam<'a, IDXGIResource>, Param4: ::windows::runtime::IntoParam<'a, IDXGIOutput>>( &self, pdevice: Param0, hsurface: Param1, pdesc: *const DXGI_DECODE_SWAP_CHAIN_DESC, pyuvdecodebuffers: Param3, prestricttooutput: Param4, ) -> ::windows::runtime::Result<IDXGIDecodeSwapChain>6717     pub unsafe fn CreateDecodeSwapChainForCompositionSurfaceHandle<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::HANDLE>, Param3: ::windows::runtime::IntoParam<'a, IDXGIResource>, Param4: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(
6718         &self,
6719         pdevice: Param0,
6720         hsurface: Param1,
6721         pdesc: *const DXGI_DECODE_SWAP_CHAIN_DESC,
6722         pyuvdecodebuffers: Param3,
6723         prestricttooutput: Param4,
6724     ) -> ::windows::runtime::Result<IDXGIDecodeSwapChain> {
6725         let mut result__: <IDXGIDecodeSwapChain as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6726         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), hsurface.into_param().abi(), ::std::mem::transmute(pdesc), pyuvdecodebuffers.into_param().abi(), prestricttooutput.into_param().abi(), &mut result__).from_abi::<IDXGIDecodeSwapChain>(result__)
6727     }
6728 }
6729 unsafe impl ::windows::runtime::Interface for IDXGIFactoryMedia {
6730     type Vtable = IDXGIFactoryMedia_abi;
6731     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1105711602, 42385, 20347, [162, 229, 250, 156, 132, 62, 28, 18]);
6732 }
6733 impl ::std::convert::From<IDXGIFactoryMedia> for ::windows::runtime::IUnknown {
from(value: IDXGIFactoryMedia) -> Self6734     fn from(value: IDXGIFactoryMedia) -> Self {
6735         unsafe { ::std::mem::transmute(value) }
6736     }
6737 }
6738 impl ::std::convert::From<&IDXGIFactoryMedia> for ::windows::runtime::IUnknown {
from(value: &IDXGIFactoryMedia) -> Self6739     fn from(value: &IDXGIFactoryMedia) -> Self {
6740         ::std::convert::From::from(::std::clone::Clone::clone(value))
6741     }
6742 }
6743 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIFactoryMedia {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>6744     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
6745         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
6746     }
6747 }
6748 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIFactoryMedia {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>6749     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
6750         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
6751     }
6752 }
6753 #[repr(C)]
6754 #[doc(hidden)]
6755 pub struct IDXGIFactoryMedia_abi(
6756     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6757     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6758     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6759     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, hsurface: super::super::Foundation::HANDLE, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: ::windows::runtime::RawPtr, ppswapchain: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6760     #[cfg(not(feature = "Win32_Foundation"))] usize,
6761     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, hsurface: super::super::Foundation::HANDLE, pdesc: *const DXGI_DECODE_SWAP_CHAIN_DESC, pyuvdecodebuffers: ::windows::runtime::RawPtr, prestricttooutput: ::windows::runtime::RawPtr, ppswapchain: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6762     #[cfg(not(feature = "Win32_Foundation"))] usize,
6763 );
6764 #[repr(transparent)]
6765 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6766 pub struct IDXGIInfoQueue(::windows::runtime::IUnknown);
6767 impl IDXGIInfoQueue {
SetMessageCountLimit<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0, messagecountlimit: u64) -> ::windows::runtime::Result<()>6768     pub unsafe fn SetMessageCountLimit<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0, messagecountlimit: u64) -> ::windows::runtime::Result<()> {
6769         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), producer.into_param().abi(), ::std::mem::transmute(messagecountlimit)).ok()
6770     }
ClearStoredMessages<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0)6771     pub unsafe fn ClearStoredMessages<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) {
6772         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), producer.into_param().abi()))
6773     }
GetMessage<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0, messageindex: u64, pmessage: *mut DXGI_INFO_QUEUE_MESSAGE, pmessagebytelength: *mut usize) -> ::windows::runtime::Result<()>6774     pub unsafe fn GetMessage<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0, messageindex: u64, pmessage: *mut DXGI_INFO_QUEUE_MESSAGE, pmessagebytelength: *mut usize) -> ::windows::runtime::Result<()> {
6775         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), producer.into_param().abi(), ::std::mem::transmute(messageindex), ::std::mem::transmute(pmessage), ::std::mem::transmute(pmessagebytelength)).ok()
6776     }
GetNumStoredMessagesAllowedByRetrievalFilters<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) -> u646777     pub unsafe fn GetNumStoredMessagesAllowedByRetrievalFilters<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) -> u64 {
6778         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), producer.into_param().abi()))
6779     }
GetNumStoredMessages<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) -> u646780     pub unsafe fn GetNumStoredMessages<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) -> u64 {
6781         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), producer.into_param().abi()))
6782     }
GetNumMessagesDiscardedByMessageCountLimit<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) -> u646783     pub unsafe fn GetNumMessagesDiscardedByMessageCountLimit<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) -> u64 {
6784         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), producer.into_param().abi()))
6785     }
GetMessageCountLimit<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) -> u646786     pub unsafe fn GetMessageCountLimit<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) -> u64 {
6787         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), producer.into_param().abi()))
6788     }
GetNumMessagesAllowedByStorageFilter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) -> u646789     pub unsafe fn GetNumMessagesAllowedByStorageFilter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) -> u64 {
6790         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), producer.into_param().abi()))
6791     }
GetNumMessagesDeniedByStorageFilter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) -> u646792     pub unsafe fn GetNumMessagesDeniedByStorageFilter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) -> u64 {
6793         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), producer.into_param().abi()))
6794     }
AddStorageFilterEntries<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0, pfilter: *const DXGI_INFO_QUEUE_FILTER) -> ::windows::runtime::Result<()>6795     pub unsafe fn AddStorageFilterEntries<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0, pfilter: *const DXGI_INFO_QUEUE_FILTER) -> ::windows::runtime::Result<()> {
6796         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), producer.into_param().abi(), ::std::mem::transmute(pfilter)).ok()
6797     }
GetStorageFilter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0, pfilter: *mut DXGI_INFO_QUEUE_FILTER, pfilterbytelength: *mut usize) -> ::windows::runtime::Result<()>6798     pub unsafe fn GetStorageFilter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0, pfilter: *mut DXGI_INFO_QUEUE_FILTER, pfilterbytelength: *mut usize) -> ::windows::runtime::Result<()> {
6799         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), producer.into_param().abi(), ::std::mem::transmute(pfilter), ::std::mem::transmute(pfilterbytelength)).ok()
6800     }
ClearStorageFilter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0)6801     pub unsafe fn ClearStorageFilter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) {
6802         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), producer.into_param().abi()))
6803     }
PushEmptyStorageFilter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) -> ::windows::runtime::Result<()>6804     pub unsafe fn PushEmptyStorageFilter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) -> ::windows::runtime::Result<()> {
6805         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), producer.into_param().abi()).ok()
6806     }
PushDenyAllStorageFilter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) -> ::windows::runtime::Result<()>6807     pub unsafe fn PushDenyAllStorageFilter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) -> ::windows::runtime::Result<()> {
6808         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), producer.into_param().abi()).ok()
6809     }
PushCopyOfStorageFilter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) -> ::windows::runtime::Result<()>6810     pub unsafe fn PushCopyOfStorageFilter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) -> ::windows::runtime::Result<()> {
6811         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), producer.into_param().abi()).ok()
6812     }
PushStorageFilter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0, pfilter: *const DXGI_INFO_QUEUE_FILTER) -> ::windows::runtime::Result<()>6813     pub unsafe fn PushStorageFilter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0, pfilter: *const DXGI_INFO_QUEUE_FILTER) -> ::windows::runtime::Result<()> {
6814         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), producer.into_param().abi(), ::std::mem::transmute(pfilter)).ok()
6815     }
PopStorageFilter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0)6816     pub unsafe fn PopStorageFilter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) {
6817         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), producer.into_param().abi()))
6818     }
GetStorageFilterStackSize<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) -> u326819     pub unsafe fn GetStorageFilterStackSize<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) -> u32 {
6820         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), producer.into_param().abi()))
6821     }
AddRetrievalFilterEntries<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0, pfilter: *const DXGI_INFO_QUEUE_FILTER) -> ::windows::runtime::Result<()>6822     pub unsafe fn AddRetrievalFilterEntries<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0, pfilter: *const DXGI_INFO_QUEUE_FILTER) -> ::windows::runtime::Result<()> {
6823         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), producer.into_param().abi(), ::std::mem::transmute(pfilter)).ok()
6824     }
GetRetrievalFilter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0, pfilter: *mut DXGI_INFO_QUEUE_FILTER, pfilterbytelength: *mut usize) -> ::windows::runtime::Result<()>6825     pub unsafe fn GetRetrievalFilter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0, pfilter: *mut DXGI_INFO_QUEUE_FILTER, pfilterbytelength: *mut usize) -> ::windows::runtime::Result<()> {
6826         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), producer.into_param().abi(), ::std::mem::transmute(pfilter), ::std::mem::transmute(pfilterbytelength)).ok()
6827     }
ClearRetrievalFilter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0)6828     pub unsafe fn ClearRetrievalFilter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) {
6829         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self), producer.into_param().abi()))
6830     }
PushEmptyRetrievalFilter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) -> ::windows::runtime::Result<()>6831     pub unsafe fn PushEmptyRetrievalFilter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) -> ::windows::runtime::Result<()> {
6832         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), producer.into_param().abi()).ok()
6833     }
PushDenyAllRetrievalFilter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) -> ::windows::runtime::Result<()>6834     pub unsafe fn PushDenyAllRetrievalFilter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) -> ::windows::runtime::Result<()> {
6835         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), producer.into_param().abi()).ok()
6836     }
PushCopyOfRetrievalFilter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) -> ::windows::runtime::Result<()>6837     pub unsafe fn PushCopyOfRetrievalFilter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) -> ::windows::runtime::Result<()> {
6838         (::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self), producer.into_param().abi()).ok()
6839     }
PushRetrievalFilter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0, pfilter: *const DXGI_INFO_QUEUE_FILTER) -> ::windows::runtime::Result<()>6840     pub unsafe fn PushRetrievalFilter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0, pfilter: *const DXGI_INFO_QUEUE_FILTER) -> ::windows::runtime::Result<()> {
6841         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), producer.into_param().abi(), ::std::mem::transmute(pfilter)).ok()
6842     }
PopRetrievalFilter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0)6843     pub unsafe fn PopRetrievalFilter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) {
6844         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).28)(::std::mem::transmute_copy(self), producer.into_param().abi()))
6845     }
GetRetrievalFilterStackSize<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) -> u326846     pub unsafe fn GetRetrievalFilterStackSize<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) -> u32 {
6847         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).29)(::std::mem::transmute_copy(self), producer.into_param().abi()))
6848     }
6849     #[cfg(feature = "Win32_Foundation")]
AddMessage<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::PSTR>>(&self, producer: Param0, category: DXGI_INFO_QUEUE_MESSAGE_CATEGORY, severity: DXGI_INFO_QUEUE_MESSAGE_SEVERITY, id: i32, pdescription: Param4) -> ::windows::runtime::Result<()>6850     pub unsafe fn AddMessage<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::PSTR>>(&self, producer: Param0, category: DXGI_INFO_QUEUE_MESSAGE_CATEGORY, severity: DXGI_INFO_QUEUE_MESSAGE_SEVERITY, id: i32, pdescription: Param4) -> ::windows::runtime::Result<()> {
6851         (::windows::runtime::Interface::vtable(self).30)(::std::mem::transmute_copy(self), producer.into_param().abi(), ::std::mem::transmute(category), ::std::mem::transmute(severity), ::std::mem::transmute(id), pdescription.into_param().abi()).ok()
6852     }
6853     #[cfg(feature = "Win32_Foundation")]
AddApplicationMessage<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PSTR>>(&self, severity: DXGI_INFO_QUEUE_MESSAGE_SEVERITY, pdescription: Param1) -> ::windows::runtime::Result<()>6854     pub unsafe fn AddApplicationMessage<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PSTR>>(&self, severity: DXGI_INFO_QUEUE_MESSAGE_SEVERITY, pdescription: Param1) -> ::windows::runtime::Result<()> {
6855         (::windows::runtime::Interface::vtable(self).31)(::std::mem::transmute_copy(self), ::std::mem::transmute(severity), pdescription.into_param().abi()).ok()
6856     }
6857     #[cfg(feature = "Win32_Foundation")]
SetBreakOnCategory<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, producer: Param0, category: DXGI_INFO_QUEUE_MESSAGE_CATEGORY, benable: Param2) -> ::windows::runtime::Result<()>6858     pub unsafe fn SetBreakOnCategory<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, producer: Param0, category: DXGI_INFO_QUEUE_MESSAGE_CATEGORY, benable: Param2) -> ::windows::runtime::Result<()> {
6859         (::windows::runtime::Interface::vtable(self).32)(::std::mem::transmute_copy(self), producer.into_param().abi(), ::std::mem::transmute(category), benable.into_param().abi()).ok()
6860     }
6861     #[cfg(feature = "Win32_Foundation")]
SetBreakOnSeverity<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, producer: Param0, severity: DXGI_INFO_QUEUE_MESSAGE_SEVERITY, benable: Param2) -> ::windows::runtime::Result<()>6862     pub unsafe fn SetBreakOnSeverity<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, producer: Param0, severity: DXGI_INFO_QUEUE_MESSAGE_SEVERITY, benable: Param2) -> ::windows::runtime::Result<()> {
6863         (::windows::runtime::Interface::vtable(self).33)(::std::mem::transmute_copy(self), producer.into_param().abi(), ::std::mem::transmute(severity), benable.into_param().abi()).ok()
6864     }
6865     #[cfg(feature = "Win32_Foundation")]
SetBreakOnID<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, producer: Param0, id: i32, benable: Param2) -> ::windows::runtime::Result<()>6866     pub unsafe fn SetBreakOnID<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, producer: Param0, id: i32, benable: Param2) -> ::windows::runtime::Result<()> {
6867         (::windows::runtime::Interface::vtable(self).34)(::std::mem::transmute_copy(self), producer.into_param().abi(), ::std::mem::transmute(id), benable.into_param().abi()).ok()
6868     }
6869     #[cfg(feature = "Win32_Foundation")]
GetBreakOnCategory<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0, category: DXGI_INFO_QUEUE_MESSAGE_CATEGORY) -> super::super::Foundation::BOOL6870     pub unsafe fn GetBreakOnCategory<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0, category: DXGI_INFO_QUEUE_MESSAGE_CATEGORY) -> super::super::Foundation::BOOL {
6871         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).35)(::std::mem::transmute_copy(self), producer.into_param().abi(), ::std::mem::transmute(category)))
6872     }
6873     #[cfg(feature = "Win32_Foundation")]
GetBreakOnSeverity<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0, severity: DXGI_INFO_QUEUE_MESSAGE_SEVERITY) -> super::super::Foundation::BOOL6874     pub unsafe fn GetBreakOnSeverity<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0, severity: DXGI_INFO_QUEUE_MESSAGE_SEVERITY) -> super::super::Foundation::BOOL {
6875         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).36)(::std::mem::transmute_copy(self), producer.into_param().abi(), ::std::mem::transmute(severity)))
6876     }
6877     #[cfg(feature = "Win32_Foundation")]
GetBreakOnID<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0, id: i32) -> super::super::Foundation::BOOL6878     pub unsafe fn GetBreakOnID<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0, id: i32) -> super::super::Foundation::BOOL {
6879         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).37)(::std::mem::transmute_copy(self), producer.into_param().abi(), ::std::mem::transmute(id)))
6880     }
6881     #[cfg(feature = "Win32_Foundation")]
SetMuteDebugOutput<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, producer: Param0, bmute: Param1)6882     pub unsafe fn SetMuteDebugOutput<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, producer: Param0, bmute: Param1) {
6883         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).38)(::std::mem::transmute_copy(self), producer.into_param().abi(), bmute.into_param().abi()))
6884     }
6885     #[cfg(feature = "Win32_Foundation")]
GetMuteDebugOutput<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) -> super::super::Foundation::BOOL6886     pub unsafe fn GetMuteDebugOutput<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, producer: Param0) -> super::super::Foundation::BOOL {
6887         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).39)(::std::mem::transmute_copy(self), producer.into_param().abi()))
6888     }
6889 }
6890 unsafe impl ::windows::runtime::Interface for IDXGIInfoQueue {
6891     type Vtable = IDXGIInfoQueue_abi;
6892     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3597943239, 26410, 18287, [158, 130, 205, 85, 180, 73, 73, 206]);
6893 }
6894 impl ::std::convert::From<IDXGIInfoQueue> for ::windows::runtime::IUnknown {
from(value: IDXGIInfoQueue) -> Self6895     fn from(value: IDXGIInfoQueue) -> Self {
6896         unsafe { ::std::mem::transmute(value) }
6897     }
6898 }
6899 impl ::std::convert::From<&IDXGIInfoQueue> for ::windows::runtime::IUnknown {
from(value: &IDXGIInfoQueue) -> Self6900     fn from(value: &IDXGIInfoQueue) -> Self {
6901         ::std::convert::From::from(::std::clone::Clone::clone(value))
6902     }
6903 }
6904 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIInfoQueue {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>6905     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
6906         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
6907     }
6908 }
6909 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIInfoQueue {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>6910     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
6911         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
6912     }
6913 }
6914 #[repr(C)]
6915 #[doc(hidden)]
6916 pub struct IDXGIInfoQueue_abi(
6917     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6918     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6919     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6920     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID, messagecountlimit: u64) -> ::windows::runtime::HRESULT,
6921     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID),
6922     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID, messageindex: u64, pmessage: *mut DXGI_INFO_QUEUE_MESSAGE, pmessagebytelength: *mut usize) -> ::windows::runtime::HRESULT,
6923     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID) -> u64,
6924     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID) -> u64,
6925     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID) -> u64,
6926     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID) -> u64,
6927     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID) -> u64,
6928     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID) -> u64,
6929     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID, pfilter: *const DXGI_INFO_QUEUE_FILTER) -> ::windows::runtime::HRESULT,
6930     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID, pfilter: *mut DXGI_INFO_QUEUE_FILTER, pfilterbytelength: *mut usize) -> ::windows::runtime::HRESULT,
6931     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID),
6932     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6933     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6934     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6935     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID, pfilter: *const DXGI_INFO_QUEUE_FILTER) -> ::windows::runtime::HRESULT,
6936     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID),
6937     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID) -> u32,
6938     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID, pfilter: *const DXGI_INFO_QUEUE_FILTER) -> ::windows::runtime::HRESULT,
6939     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID, pfilter: *mut DXGI_INFO_QUEUE_FILTER, pfilterbytelength: *mut usize) -> ::windows::runtime::HRESULT,
6940     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID),
6941     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6942     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6943     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
6944     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID, pfilter: *const DXGI_INFO_QUEUE_FILTER) -> ::windows::runtime::HRESULT,
6945     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID),
6946     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID) -> u32,
6947     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID, category: DXGI_INFO_QUEUE_MESSAGE_CATEGORY, severity: DXGI_INFO_QUEUE_MESSAGE_SEVERITY, id: i32, pdescription: super::super::Foundation::PSTR) -> ::windows::runtime::HRESULT,
6948     #[cfg(not(feature = "Win32_Foundation"))] usize,
6949     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, severity: DXGI_INFO_QUEUE_MESSAGE_SEVERITY, pdescription: super::super::Foundation::PSTR) -> ::windows::runtime::HRESULT,
6950     #[cfg(not(feature = "Win32_Foundation"))] usize,
6951     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID, category: DXGI_INFO_QUEUE_MESSAGE_CATEGORY, benable: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
6952     #[cfg(not(feature = "Win32_Foundation"))] usize,
6953     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID, severity: DXGI_INFO_QUEUE_MESSAGE_SEVERITY, benable: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
6954     #[cfg(not(feature = "Win32_Foundation"))] usize,
6955     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID, id: i32, benable: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
6956     #[cfg(not(feature = "Win32_Foundation"))] usize,
6957     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID, category: DXGI_INFO_QUEUE_MESSAGE_CATEGORY) -> super::super::Foundation::BOOL,
6958     #[cfg(not(feature = "Win32_Foundation"))] usize,
6959     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID, severity: DXGI_INFO_QUEUE_MESSAGE_SEVERITY) -> super::super::Foundation::BOOL,
6960     #[cfg(not(feature = "Win32_Foundation"))] usize,
6961     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID, id: i32) -> super::super::Foundation::BOOL,
6962     #[cfg(not(feature = "Win32_Foundation"))] usize,
6963     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID, bmute: super::super::Foundation::BOOL),
6964     #[cfg(not(feature = "Win32_Foundation"))] usize,
6965     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, producer: ::windows::runtime::GUID) -> super::super::Foundation::BOOL,
6966     #[cfg(not(feature = "Win32_Foundation"))] usize,
6967 );
6968 #[repr(transparent)]
6969 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6970 pub struct IDXGIKeyedMutex(::windows::runtime::IUnknown);
6971 impl IDXGIKeyedMutex {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>6972     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
6973         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
6974     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>6975     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
6976         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
6977     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>6978     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
6979         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
6980     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>6981     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
6982         let mut result__ = ::std::option::Option::None;
6983         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
6984     }
GetDevice<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>6985     pub unsafe fn GetDevice<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
6986         let mut result__ = ::std::option::Option::None;
6987         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
6988     }
AcquireSync(&self, key: u64, dwmilliseconds: u32) -> ::windows::runtime::Result<()>6989     pub unsafe fn AcquireSync(&self, key: u64, dwmilliseconds: u32) -> ::windows::runtime::Result<()> {
6990         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(key), ::std::mem::transmute(dwmilliseconds)).ok()
6991     }
ReleaseSync(&self, key: u64) -> ::windows::runtime::Result<()>6992     pub unsafe fn ReleaseSync(&self, key: u64) -> ::windows::runtime::Result<()> {
6993         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(key)).ok()
6994     }
6995 }
6996 unsafe impl ::windows::runtime::Interface for IDXGIKeyedMutex {
6997     type Vtable = IDXGIKeyedMutex_abi;
6998     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2643333769, 55219, 18015, [129, 38, 37, 14, 52, 154, 248, 93]);
6999 }
7000 impl ::std::convert::From<IDXGIKeyedMutex> for ::windows::runtime::IUnknown {
from(value: IDXGIKeyedMutex) -> Self7001     fn from(value: IDXGIKeyedMutex) -> Self {
7002         unsafe { ::std::mem::transmute(value) }
7003     }
7004 }
7005 impl ::std::convert::From<&IDXGIKeyedMutex> for ::windows::runtime::IUnknown {
from(value: &IDXGIKeyedMutex) -> Self7006     fn from(value: &IDXGIKeyedMutex) -> Self {
7007         ::std::convert::From::from(::std::clone::Clone::clone(value))
7008     }
7009 }
7010 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIKeyedMutex {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7011     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7012         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
7013     }
7014 }
7015 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIKeyedMutex {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7016     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7017         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
7018     }
7019 }
7020 impl ::std::convert::From<IDXGIKeyedMutex> for IDXGIDeviceSubObject {
from(value: IDXGIKeyedMutex) -> Self7021     fn from(value: IDXGIKeyedMutex) -> Self {
7022         unsafe { ::std::mem::transmute(value) }
7023     }
7024 }
7025 impl ::std::convert::From<&IDXGIKeyedMutex> for IDXGIDeviceSubObject {
from(value: &IDXGIKeyedMutex) -> Self7026     fn from(value: &IDXGIKeyedMutex) -> Self {
7027         ::std::convert::From::from(::std::clone::Clone::clone(value))
7028     }
7029 }
7030 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDeviceSubObject> for IDXGIKeyedMutex {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject>7031     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject> {
7032         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDeviceSubObject>::into(self))
7033     }
7034 }
7035 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDeviceSubObject> for &IDXGIKeyedMutex {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject>7036     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject> {
7037         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDeviceSubObject>::into(::std::clone::Clone::clone(self)))
7038     }
7039 }
7040 impl ::std::convert::From<IDXGIKeyedMutex> for IDXGIObject {
from(value: IDXGIKeyedMutex) -> Self7041     fn from(value: IDXGIKeyedMutex) -> Self {
7042         unsafe { ::std::mem::transmute(value) }
7043     }
7044 }
7045 impl ::std::convert::From<&IDXGIKeyedMutex> for IDXGIObject {
from(value: &IDXGIKeyedMutex) -> Self7046     fn from(value: &IDXGIKeyedMutex) -> Self {
7047         ::std::convert::From::from(::std::clone::Clone::clone(value))
7048     }
7049 }
7050 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGIKeyedMutex {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>7051     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
7052         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
7053     }
7054 }
7055 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGIKeyedMutex {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>7056     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
7057         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
7058     }
7059 }
7060 #[repr(C)]
7061 #[doc(hidden)]
7062 pub struct IDXGIKeyedMutex_abi(
7063     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7064     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7065     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7066     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
7067     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7068     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
7069     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
7070     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppdevice: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
7071     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, key: u64, dwmilliseconds: u32) -> ::windows::runtime::HRESULT,
7072     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, key: u64) -> ::windows::runtime::HRESULT,
7073 );
7074 #[repr(transparent)]
7075 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
7076 pub struct IDXGIObject(::windows::runtime::IUnknown);
7077 impl IDXGIObject {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>7078     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
7079         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
7080     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>7081     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
7082         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
7083     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>7084     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
7085         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
7086     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>7087     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
7088         let mut result__ = ::std::option::Option::None;
7089         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
7090     }
7091 }
7092 unsafe impl ::windows::runtime::Interface for IDXGIObject {
7093     type Vtable = IDXGIObject_abi;
7094     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2931961784, 30451, 17977, [155, 224, 40, 235, 67, 166, 122, 46]);
7095 }
7096 impl ::std::convert::From<IDXGIObject> for ::windows::runtime::IUnknown {
from(value: IDXGIObject) -> Self7097     fn from(value: IDXGIObject) -> Self {
7098         unsafe { ::std::mem::transmute(value) }
7099     }
7100 }
7101 impl ::std::convert::From<&IDXGIObject> for ::windows::runtime::IUnknown {
from(value: &IDXGIObject) -> Self7102     fn from(value: &IDXGIObject) -> Self {
7103         ::std::convert::From::from(::std::clone::Clone::clone(value))
7104     }
7105 }
7106 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIObject {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7107     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7108         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
7109     }
7110 }
7111 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIObject {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7112     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7113         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
7114     }
7115 }
7116 #[repr(C)]
7117 #[doc(hidden)]
7118 pub struct IDXGIObject_abi(
7119     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7120     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7121     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7122     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
7123     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7124     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
7125     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
7126 );
7127 #[repr(transparent)]
7128 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
7129 pub struct IDXGIOutput(::windows::runtime::IUnknown);
7130 impl IDXGIOutput {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>7131     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
7132         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
7133     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>7134     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
7135         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
7136     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>7137     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
7138         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
7139     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>7140     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
7141         let mut result__ = ::std::option::Option::None;
7142         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
7143     }
7144     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
GetDesc(&self) -> ::windows::runtime::Result<DXGI_OUTPUT_DESC>7145     pub unsafe fn GetDesc(&self) -> ::windows::runtime::Result<DXGI_OUTPUT_DESC> {
7146         let mut result__: <DXGI_OUTPUT_DESC as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7147         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_OUTPUT_DESC>(result__)
7148     }
GetDisplayModeList(&self, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC) -> ::windows::runtime::Result<()>7149     pub unsafe fn GetDisplayModeList(&self, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC) -> ::windows::runtime::Result<()> {
7150         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(enumformat), ::std::mem::transmute(flags), ::std::mem::transmute(pnummodes), ::std::mem::transmute(pdesc)).ok()
7151     }
FindClosestMatchingMode<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pmodetomatch: *const DXGI_MODE_DESC, pclosestmatch: *mut DXGI_MODE_DESC, pconcerneddevice: Param2) -> ::windows::runtime::Result<()>7152     pub unsafe fn FindClosestMatchingMode<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pmodetomatch: *const DXGI_MODE_DESC, pclosestmatch: *mut DXGI_MODE_DESC, pconcerneddevice: Param2) -> ::windows::runtime::Result<()> {
7153         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(pmodetomatch), ::std::mem::transmute(pclosestmatch), pconcerneddevice.into_param().abi()).ok()
7154     }
WaitForVBlank(&self) -> ::windows::runtime::Result<()>7155     pub unsafe fn WaitForVBlank(&self) -> ::windows::runtime::Result<()> {
7156         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self)).ok()
7157     }
7158     #[cfg(feature = "Win32_Foundation")]
TakeOwnership<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, pdevice: Param0, exclusive: Param1) -> ::windows::runtime::Result<()>7159     pub unsafe fn TakeOwnership<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, pdevice: Param0, exclusive: Param1) -> ::windows::runtime::Result<()> {
7160         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), exclusive.into_param().abi()).ok()
7161     }
ReleaseOwnership(&self)7162     pub unsafe fn ReleaseOwnership(&self) {
7163         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self)))
7164     }
7165     #[cfg(feature = "Win32_Foundation")]
GetGammaControlCapabilities(&self) -> ::windows::runtime::Result<DXGI_GAMMA_CONTROL_CAPABILITIES>7166     pub unsafe fn GetGammaControlCapabilities(&self) -> ::windows::runtime::Result<DXGI_GAMMA_CONTROL_CAPABILITIES> {
7167         let mut result__: <DXGI_GAMMA_CONTROL_CAPABILITIES as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7168         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_GAMMA_CONTROL_CAPABILITIES>(result__)
7169     }
SetGammaControl(&self, parray: *const DXGI_GAMMA_CONTROL) -> ::windows::runtime::Result<()>7170     pub unsafe fn SetGammaControl(&self, parray: *const DXGI_GAMMA_CONTROL) -> ::windows::runtime::Result<()> {
7171         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(parray)).ok()
7172     }
GetGammaControl(&self) -> ::windows::runtime::Result<DXGI_GAMMA_CONTROL>7173     pub unsafe fn GetGammaControl(&self) -> ::windows::runtime::Result<DXGI_GAMMA_CONTROL> {
7174         let mut result__: <DXGI_GAMMA_CONTROL as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7175         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_GAMMA_CONTROL>(result__)
7176     }
SetDisplaySurface<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGISurface>>(&self, pscanoutsurface: Param0) -> ::windows::runtime::Result<()>7177     pub unsafe fn SetDisplaySurface<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGISurface>>(&self, pscanoutsurface: Param0) -> ::windows::runtime::Result<()> {
7178         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), pscanoutsurface.into_param().abi()).ok()
7179     }
GetDisplaySurfaceData<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGISurface>>(&self, pdestination: Param0) -> ::windows::runtime::Result<()>7180     pub unsafe fn GetDisplaySurfaceData<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGISurface>>(&self, pdestination: Param0) -> ::windows::runtime::Result<()> {
7181         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), pdestination.into_param().abi()).ok()
7182     }
GetFrameStatistics(&self) -> ::windows::runtime::Result<DXGI_FRAME_STATISTICS>7183     pub unsafe fn GetFrameStatistics(&self) -> ::windows::runtime::Result<DXGI_FRAME_STATISTICS> {
7184         let mut result__: <DXGI_FRAME_STATISTICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7185         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_FRAME_STATISTICS>(result__)
7186     }
7187 }
7188 unsafe impl ::windows::runtime::Interface for IDXGIOutput {
7189     type Vtable = IDXGIOutput_abi;
7190     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2919427803, 50997, 18064, [141, 82, 90, 141, 194, 2, 19, 170]);
7191 }
7192 impl ::std::convert::From<IDXGIOutput> for ::windows::runtime::IUnknown {
from(value: IDXGIOutput) -> Self7193     fn from(value: IDXGIOutput) -> Self {
7194         unsafe { ::std::mem::transmute(value) }
7195     }
7196 }
7197 impl ::std::convert::From<&IDXGIOutput> for ::windows::runtime::IUnknown {
from(value: &IDXGIOutput) -> Self7198     fn from(value: &IDXGIOutput) -> Self {
7199         ::std::convert::From::from(::std::clone::Clone::clone(value))
7200     }
7201 }
7202 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIOutput {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7203     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7204         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
7205     }
7206 }
7207 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIOutput {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7208     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7209         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
7210     }
7211 }
7212 impl ::std::convert::From<IDXGIOutput> for IDXGIObject {
from(value: IDXGIOutput) -> Self7213     fn from(value: IDXGIOutput) -> Self {
7214         unsafe { ::std::mem::transmute(value) }
7215     }
7216 }
7217 impl ::std::convert::From<&IDXGIOutput> for IDXGIObject {
from(value: &IDXGIOutput) -> Self7218     fn from(value: &IDXGIOutput) -> Self {
7219         ::std::convert::From::from(::std::clone::Clone::clone(value))
7220     }
7221 }
7222 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGIOutput {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>7223     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
7224         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
7225     }
7226 }
7227 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGIOutput {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>7228     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
7229         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
7230     }
7231 }
7232 #[repr(C)]
7233 #[doc(hidden)]
7234 pub struct IDXGIOutput_abi(
7235     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7236     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7237     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7238     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
7239     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7240     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
7241     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
7242     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_OUTPUT_DESC) -> ::windows::runtime::HRESULT,
7243     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi")))] usize,
7244     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC) -> ::windows::runtime::HRESULT,
7245     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pmodetomatch: *const DXGI_MODE_DESC, pclosestmatch: *mut DXGI_MODE_DESC, pconcerneddevice: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7246     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7247     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, exclusive: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
7248     #[cfg(not(feature = "Win32_Foundation"))] usize,
7249     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr),
7250     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pgammacaps: *mut DXGI_GAMMA_CONTROL_CAPABILITIES) -> ::windows::runtime::HRESULT,
7251     #[cfg(not(feature = "Win32_Foundation"))] usize,
7252     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, parray: *const DXGI_GAMMA_CONTROL) -> ::windows::runtime::HRESULT,
7253     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, parray: *mut DXGI_GAMMA_CONTROL) -> ::windows::runtime::HRESULT,
7254     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pscanoutsurface: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7255     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdestination: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7256     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pstats: *mut DXGI_FRAME_STATISTICS) -> ::windows::runtime::HRESULT,
7257 );
7258 #[repr(transparent)]
7259 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
7260 pub struct IDXGIOutput1(::windows::runtime::IUnknown);
7261 impl IDXGIOutput1 {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>7262     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
7263         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
7264     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>7265     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
7266         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
7267     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>7268     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
7269         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
7270     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>7271     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
7272         let mut result__ = ::std::option::Option::None;
7273         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
7274     }
7275     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
GetDesc(&self) -> ::windows::runtime::Result<DXGI_OUTPUT_DESC>7276     pub unsafe fn GetDesc(&self) -> ::windows::runtime::Result<DXGI_OUTPUT_DESC> {
7277         let mut result__: <DXGI_OUTPUT_DESC as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7278         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_OUTPUT_DESC>(result__)
7279     }
GetDisplayModeList(&self, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC) -> ::windows::runtime::Result<()>7280     pub unsafe fn GetDisplayModeList(&self, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC) -> ::windows::runtime::Result<()> {
7281         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(enumformat), ::std::mem::transmute(flags), ::std::mem::transmute(pnummodes), ::std::mem::transmute(pdesc)).ok()
7282     }
FindClosestMatchingMode<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pmodetomatch: *const DXGI_MODE_DESC, pclosestmatch: *mut DXGI_MODE_DESC, pconcerneddevice: Param2) -> ::windows::runtime::Result<()>7283     pub unsafe fn FindClosestMatchingMode<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pmodetomatch: *const DXGI_MODE_DESC, pclosestmatch: *mut DXGI_MODE_DESC, pconcerneddevice: Param2) -> ::windows::runtime::Result<()> {
7284         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(pmodetomatch), ::std::mem::transmute(pclosestmatch), pconcerneddevice.into_param().abi()).ok()
7285     }
WaitForVBlank(&self) -> ::windows::runtime::Result<()>7286     pub unsafe fn WaitForVBlank(&self) -> ::windows::runtime::Result<()> {
7287         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self)).ok()
7288     }
7289     #[cfg(feature = "Win32_Foundation")]
TakeOwnership<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, pdevice: Param0, exclusive: Param1) -> ::windows::runtime::Result<()>7290     pub unsafe fn TakeOwnership<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, pdevice: Param0, exclusive: Param1) -> ::windows::runtime::Result<()> {
7291         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), exclusive.into_param().abi()).ok()
7292     }
ReleaseOwnership(&self)7293     pub unsafe fn ReleaseOwnership(&self) {
7294         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self)))
7295     }
7296     #[cfg(feature = "Win32_Foundation")]
GetGammaControlCapabilities(&self) -> ::windows::runtime::Result<DXGI_GAMMA_CONTROL_CAPABILITIES>7297     pub unsafe fn GetGammaControlCapabilities(&self) -> ::windows::runtime::Result<DXGI_GAMMA_CONTROL_CAPABILITIES> {
7298         let mut result__: <DXGI_GAMMA_CONTROL_CAPABILITIES as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7299         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_GAMMA_CONTROL_CAPABILITIES>(result__)
7300     }
SetGammaControl(&self, parray: *const DXGI_GAMMA_CONTROL) -> ::windows::runtime::Result<()>7301     pub unsafe fn SetGammaControl(&self, parray: *const DXGI_GAMMA_CONTROL) -> ::windows::runtime::Result<()> {
7302         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(parray)).ok()
7303     }
GetGammaControl(&self) -> ::windows::runtime::Result<DXGI_GAMMA_CONTROL>7304     pub unsafe fn GetGammaControl(&self) -> ::windows::runtime::Result<DXGI_GAMMA_CONTROL> {
7305         let mut result__: <DXGI_GAMMA_CONTROL as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7306         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_GAMMA_CONTROL>(result__)
7307     }
SetDisplaySurface<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGISurface>>(&self, pscanoutsurface: Param0) -> ::windows::runtime::Result<()>7308     pub unsafe fn SetDisplaySurface<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGISurface>>(&self, pscanoutsurface: Param0) -> ::windows::runtime::Result<()> {
7309         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), pscanoutsurface.into_param().abi()).ok()
7310     }
GetDisplaySurfaceData<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGISurface>>(&self, pdestination: Param0) -> ::windows::runtime::Result<()>7311     pub unsafe fn GetDisplaySurfaceData<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGISurface>>(&self, pdestination: Param0) -> ::windows::runtime::Result<()> {
7312         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), pdestination.into_param().abi()).ok()
7313     }
GetFrameStatistics(&self) -> ::windows::runtime::Result<DXGI_FRAME_STATISTICS>7314     pub unsafe fn GetFrameStatistics(&self) -> ::windows::runtime::Result<DXGI_FRAME_STATISTICS> {
7315         let mut result__: <DXGI_FRAME_STATISTICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7316         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_FRAME_STATISTICS>(result__)
7317     }
7318     #[cfg(feature = "Win32_Foundation")]
GetDisplayModeList1(&self, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC1) -> ::windows::runtime::Result<()>7319     pub unsafe fn GetDisplayModeList1(&self, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC1) -> ::windows::runtime::Result<()> {
7320         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), ::std::mem::transmute(enumformat), ::std::mem::transmute(flags), ::std::mem::transmute(pnummodes), ::std::mem::transmute(pdesc)).ok()
7321     }
7322     #[cfg(feature = "Win32_Foundation")]
FindClosestMatchingMode1<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pmodetomatch: *const DXGI_MODE_DESC1, pclosestmatch: *mut DXGI_MODE_DESC1, pconcerneddevice: Param2) -> ::windows::runtime::Result<()>7323     pub unsafe fn FindClosestMatchingMode1<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pmodetomatch: *const DXGI_MODE_DESC1, pclosestmatch: *mut DXGI_MODE_DESC1, pconcerneddevice: Param2) -> ::windows::runtime::Result<()> {
7324         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(pmodetomatch), ::std::mem::transmute(pclosestmatch), pconcerneddevice.into_param().abi()).ok()
7325     }
GetDisplaySurfaceData1<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGIResource>>(&self, pdestination: Param0) -> ::windows::runtime::Result<()>7326     pub unsafe fn GetDisplaySurfaceData1<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGIResource>>(&self, pdestination: Param0) -> ::windows::runtime::Result<()> {
7327         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), pdestination.into_param().abi()).ok()
7328     }
DuplicateOutput<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pdevice: Param0) -> ::windows::runtime::Result<IDXGIOutputDuplication>7329     pub unsafe fn DuplicateOutput<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pdevice: Param0) -> ::windows::runtime::Result<IDXGIOutputDuplication> {
7330         let mut result__: <IDXGIOutputDuplication as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7331         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), &mut result__).from_abi::<IDXGIOutputDuplication>(result__)
7332     }
7333 }
7334 unsafe impl ::windows::runtime::Interface for IDXGIOutput1 {
7335     type Vtable = IDXGIOutput1_abi;
7336     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(13491880, 37787, 19331, [163, 64, 166, 133, 34, 102, 102, 204]);
7337 }
7338 impl ::std::convert::From<IDXGIOutput1> for ::windows::runtime::IUnknown {
from(value: IDXGIOutput1) -> Self7339     fn from(value: IDXGIOutput1) -> Self {
7340         unsafe { ::std::mem::transmute(value) }
7341     }
7342 }
7343 impl ::std::convert::From<&IDXGIOutput1> for ::windows::runtime::IUnknown {
from(value: &IDXGIOutput1) -> Self7344     fn from(value: &IDXGIOutput1) -> Self {
7345         ::std::convert::From::from(::std::clone::Clone::clone(value))
7346     }
7347 }
7348 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIOutput1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7349     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7350         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
7351     }
7352 }
7353 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIOutput1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7354     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7355         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
7356     }
7357 }
7358 impl ::std::convert::From<IDXGIOutput1> for IDXGIOutput {
from(value: IDXGIOutput1) -> Self7359     fn from(value: IDXGIOutput1) -> Self {
7360         unsafe { ::std::mem::transmute(value) }
7361     }
7362 }
7363 impl ::std::convert::From<&IDXGIOutput1> for IDXGIOutput {
from(value: &IDXGIOutput1) -> Self7364     fn from(value: &IDXGIOutput1) -> Self {
7365         ::std::convert::From::from(::std::clone::Clone::clone(value))
7366     }
7367 }
7368 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput> for IDXGIOutput1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput>7369     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput> {
7370         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput>::into(self))
7371     }
7372 }
7373 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput> for &IDXGIOutput1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput>7374     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput> {
7375         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput>::into(::std::clone::Clone::clone(self)))
7376     }
7377 }
7378 impl ::std::convert::From<IDXGIOutput1> for IDXGIObject {
from(value: IDXGIOutput1) -> Self7379     fn from(value: IDXGIOutput1) -> Self {
7380         unsafe { ::std::mem::transmute(value) }
7381     }
7382 }
7383 impl ::std::convert::From<&IDXGIOutput1> for IDXGIObject {
from(value: &IDXGIOutput1) -> Self7384     fn from(value: &IDXGIOutput1) -> Self {
7385         ::std::convert::From::from(::std::clone::Clone::clone(value))
7386     }
7387 }
7388 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGIOutput1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>7389     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
7390         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
7391     }
7392 }
7393 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGIOutput1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>7394     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
7395         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
7396     }
7397 }
7398 #[repr(C)]
7399 #[doc(hidden)]
7400 pub struct IDXGIOutput1_abi(
7401     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7402     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7403     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7404     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
7405     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7406     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
7407     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
7408     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_OUTPUT_DESC) -> ::windows::runtime::HRESULT,
7409     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi")))] usize,
7410     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC) -> ::windows::runtime::HRESULT,
7411     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pmodetomatch: *const DXGI_MODE_DESC, pclosestmatch: *mut DXGI_MODE_DESC, pconcerneddevice: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7412     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7413     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, exclusive: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
7414     #[cfg(not(feature = "Win32_Foundation"))] usize,
7415     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr),
7416     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pgammacaps: *mut DXGI_GAMMA_CONTROL_CAPABILITIES) -> ::windows::runtime::HRESULT,
7417     #[cfg(not(feature = "Win32_Foundation"))] usize,
7418     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, parray: *const DXGI_GAMMA_CONTROL) -> ::windows::runtime::HRESULT,
7419     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, parray: *mut DXGI_GAMMA_CONTROL) -> ::windows::runtime::HRESULT,
7420     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pscanoutsurface: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7421     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdestination: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7422     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pstats: *mut DXGI_FRAME_STATISTICS) -> ::windows::runtime::HRESULT,
7423     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC1) -> ::windows::runtime::HRESULT,
7424     #[cfg(not(feature = "Win32_Foundation"))] usize,
7425     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pmodetomatch: *const DXGI_MODE_DESC1, pclosestmatch: *mut DXGI_MODE_DESC1, pconcerneddevice: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7426     #[cfg(not(feature = "Win32_Foundation"))] usize,
7427     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdestination: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7428     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, ppoutputduplication: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7429 );
7430 #[repr(transparent)]
7431 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
7432 pub struct IDXGIOutput2(::windows::runtime::IUnknown);
7433 impl IDXGIOutput2 {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>7434     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
7435         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
7436     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>7437     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
7438         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
7439     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>7440     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
7441         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
7442     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>7443     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
7444         let mut result__ = ::std::option::Option::None;
7445         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
7446     }
7447     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
GetDesc(&self) -> ::windows::runtime::Result<DXGI_OUTPUT_DESC>7448     pub unsafe fn GetDesc(&self) -> ::windows::runtime::Result<DXGI_OUTPUT_DESC> {
7449         let mut result__: <DXGI_OUTPUT_DESC as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7450         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_OUTPUT_DESC>(result__)
7451     }
GetDisplayModeList(&self, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC) -> ::windows::runtime::Result<()>7452     pub unsafe fn GetDisplayModeList(&self, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC) -> ::windows::runtime::Result<()> {
7453         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(enumformat), ::std::mem::transmute(flags), ::std::mem::transmute(pnummodes), ::std::mem::transmute(pdesc)).ok()
7454     }
FindClosestMatchingMode<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pmodetomatch: *const DXGI_MODE_DESC, pclosestmatch: *mut DXGI_MODE_DESC, pconcerneddevice: Param2) -> ::windows::runtime::Result<()>7455     pub unsafe fn FindClosestMatchingMode<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pmodetomatch: *const DXGI_MODE_DESC, pclosestmatch: *mut DXGI_MODE_DESC, pconcerneddevice: Param2) -> ::windows::runtime::Result<()> {
7456         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(pmodetomatch), ::std::mem::transmute(pclosestmatch), pconcerneddevice.into_param().abi()).ok()
7457     }
WaitForVBlank(&self) -> ::windows::runtime::Result<()>7458     pub unsafe fn WaitForVBlank(&self) -> ::windows::runtime::Result<()> {
7459         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self)).ok()
7460     }
7461     #[cfg(feature = "Win32_Foundation")]
TakeOwnership<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, pdevice: Param0, exclusive: Param1) -> ::windows::runtime::Result<()>7462     pub unsafe fn TakeOwnership<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, pdevice: Param0, exclusive: Param1) -> ::windows::runtime::Result<()> {
7463         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), exclusive.into_param().abi()).ok()
7464     }
ReleaseOwnership(&self)7465     pub unsafe fn ReleaseOwnership(&self) {
7466         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self)))
7467     }
7468     #[cfg(feature = "Win32_Foundation")]
GetGammaControlCapabilities(&self) -> ::windows::runtime::Result<DXGI_GAMMA_CONTROL_CAPABILITIES>7469     pub unsafe fn GetGammaControlCapabilities(&self) -> ::windows::runtime::Result<DXGI_GAMMA_CONTROL_CAPABILITIES> {
7470         let mut result__: <DXGI_GAMMA_CONTROL_CAPABILITIES as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7471         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_GAMMA_CONTROL_CAPABILITIES>(result__)
7472     }
SetGammaControl(&self, parray: *const DXGI_GAMMA_CONTROL) -> ::windows::runtime::Result<()>7473     pub unsafe fn SetGammaControl(&self, parray: *const DXGI_GAMMA_CONTROL) -> ::windows::runtime::Result<()> {
7474         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(parray)).ok()
7475     }
GetGammaControl(&self) -> ::windows::runtime::Result<DXGI_GAMMA_CONTROL>7476     pub unsafe fn GetGammaControl(&self) -> ::windows::runtime::Result<DXGI_GAMMA_CONTROL> {
7477         let mut result__: <DXGI_GAMMA_CONTROL as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7478         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_GAMMA_CONTROL>(result__)
7479     }
SetDisplaySurface<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGISurface>>(&self, pscanoutsurface: Param0) -> ::windows::runtime::Result<()>7480     pub unsafe fn SetDisplaySurface<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGISurface>>(&self, pscanoutsurface: Param0) -> ::windows::runtime::Result<()> {
7481         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), pscanoutsurface.into_param().abi()).ok()
7482     }
GetDisplaySurfaceData<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGISurface>>(&self, pdestination: Param0) -> ::windows::runtime::Result<()>7483     pub unsafe fn GetDisplaySurfaceData<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGISurface>>(&self, pdestination: Param0) -> ::windows::runtime::Result<()> {
7484         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), pdestination.into_param().abi()).ok()
7485     }
GetFrameStatistics(&self) -> ::windows::runtime::Result<DXGI_FRAME_STATISTICS>7486     pub unsafe fn GetFrameStatistics(&self) -> ::windows::runtime::Result<DXGI_FRAME_STATISTICS> {
7487         let mut result__: <DXGI_FRAME_STATISTICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7488         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_FRAME_STATISTICS>(result__)
7489     }
7490     #[cfg(feature = "Win32_Foundation")]
GetDisplayModeList1(&self, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC1) -> ::windows::runtime::Result<()>7491     pub unsafe fn GetDisplayModeList1(&self, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC1) -> ::windows::runtime::Result<()> {
7492         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), ::std::mem::transmute(enumformat), ::std::mem::transmute(flags), ::std::mem::transmute(pnummodes), ::std::mem::transmute(pdesc)).ok()
7493     }
7494     #[cfg(feature = "Win32_Foundation")]
FindClosestMatchingMode1<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pmodetomatch: *const DXGI_MODE_DESC1, pclosestmatch: *mut DXGI_MODE_DESC1, pconcerneddevice: Param2) -> ::windows::runtime::Result<()>7495     pub unsafe fn FindClosestMatchingMode1<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pmodetomatch: *const DXGI_MODE_DESC1, pclosestmatch: *mut DXGI_MODE_DESC1, pconcerneddevice: Param2) -> ::windows::runtime::Result<()> {
7496         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(pmodetomatch), ::std::mem::transmute(pclosestmatch), pconcerneddevice.into_param().abi()).ok()
7497     }
GetDisplaySurfaceData1<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGIResource>>(&self, pdestination: Param0) -> ::windows::runtime::Result<()>7498     pub unsafe fn GetDisplaySurfaceData1<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGIResource>>(&self, pdestination: Param0) -> ::windows::runtime::Result<()> {
7499         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), pdestination.into_param().abi()).ok()
7500     }
DuplicateOutput<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pdevice: Param0) -> ::windows::runtime::Result<IDXGIOutputDuplication>7501     pub unsafe fn DuplicateOutput<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pdevice: Param0) -> ::windows::runtime::Result<IDXGIOutputDuplication> {
7502         let mut result__: <IDXGIOutputDuplication as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7503         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), &mut result__).from_abi::<IDXGIOutputDuplication>(result__)
7504     }
7505     #[cfg(feature = "Win32_Foundation")]
SupportsOverlays(&self) -> super::super::Foundation::BOOL7506     pub unsafe fn SupportsOverlays(&self) -> super::super::Foundation::BOOL {
7507         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self)))
7508     }
7509 }
7510 unsafe impl ::windows::runtime::Interface for IDXGIOutput2 {
7511     type Vtable = IDXGIOutput2_abi;
7512     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1499347409, 10020, 18019, [153, 177, 218, 150, 157, 226, 131, 100]);
7513 }
7514 impl ::std::convert::From<IDXGIOutput2> for ::windows::runtime::IUnknown {
from(value: IDXGIOutput2) -> Self7515     fn from(value: IDXGIOutput2) -> Self {
7516         unsafe { ::std::mem::transmute(value) }
7517     }
7518 }
7519 impl ::std::convert::From<&IDXGIOutput2> for ::windows::runtime::IUnknown {
from(value: &IDXGIOutput2) -> Self7520     fn from(value: &IDXGIOutput2) -> Self {
7521         ::std::convert::From::from(::std::clone::Clone::clone(value))
7522     }
7523 }
7524 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIOutput2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7525     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7526         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
7527     }
7528 }
7529 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIOutput2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7530     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7531         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
7532     }
7533 }
7534 impl ::std::convert::From<IDXGIOutput2> for IDXGIOutput1 {
from(value: IDXGIOutput2) -> Self7535     fn from(value: IDXGIOutput2) -> Self {
7536         unsafe { ::std::mem::transmute(value) }
7537     }
7538 }
7539 impl ::std::convert::From<&IDXGIOutput2> for IDXGIOutput1 {
from(value: &IDXGIOutput2) -> Self7540     fn from(value: &IDXGIOutput2) -> Self {
7541         ::std::convert::From::from(::std::clone::Clone::clone(value))
7542     }
7543 }
7544 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput1> for IDXGIOutput2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput1>7545     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput1> {
7546         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput1>::into(self))
7547     }
7548 }
7549 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput1> for &IDXGIOutput2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput1>7550     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput1> {
7551         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput1>::into(::std::clone::Clone::clone(self)))
7552     }
7553 }
7554 impl ::std::convert::From<IDXGIOutput2> for IDXGIOutput {
from(value: IDXGIOutput2) -> Self7555     fn from(value: IDXGIOutput2) -> Self {
7556         unsafe { ::std::mem::transmute(value) }
7557     }
7558 }
7559 impl ::std::convert::From<&IDXGIOutput2> for IDXGIOutput {
from(value: &IDXGIOutput2) -> Self7560     fn from(value: &IDXGIOutput2) -> Self {
7561         ::std::convert::From::from(::std::clone::Clone::clone(value))
7562     }
7563 }
7564 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput> for IDXGIOutput2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput>7565     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput> {
7566         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput>::into(self))
7567     }
7568 }
7569 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput> for &IDXGIOutput2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput>7570     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput> {
7571         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput>::into(::std::clone::Clone::clone(self)))
7572     }
7573 }
7574 impl ::std::convert::From<IDXGIOutput2> for IDXGIObject {
from(value: IDXGIOutput2) -> Self7575     fn from(value: IDXGIOutput2) -> Self {
7576         unsafe { ::std::mem::transmute(value) }
7577     }
7578 }
7579 impl ::std::convert::From<&IDXGIOutput2> for IDXGIObject {
from(value: &IDXGIOutput2) -> Self7580     fn from(value: &IDXGIOutput2) -> Self {
7581         ::std::convert::From::from(::std::clone::Clone::clone(value))
7582     }
7583 }
7584 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGIOutput2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>7585     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
7586         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
7587     }
7588 }
7589 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGIOutput2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>7590     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
7591         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
7592     }
7593 }
7594 #[repr(C)]
7595 #[doc(hidden)]
7596 pub struct IDXGIOutput2_abi(
7597     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7598     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7599     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7600     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
7601     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7602     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
7603     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
7604     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_OUTPUT_DESC) -> ::windows::runtime::HRESULT,
7605     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi")))] usize,
7606     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC) -> ::windows::runtime::HRESULT,
7607     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pmodetomatch: *const DXGI_MODE_DESC, pclosestmatch: *mut DXGI_MODE_DESC, pconcerneddevice: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7608     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7609     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, exclusive: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
7610     #[cfg(not(feature = "Win32_Foundation"))] usize,
7611     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr),
7612     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pgammacaps: *mut DXGI_GAMMA_CONTROL_CAPABILITIES) -> ::windows::runtime::HRESULT,
7613     #[cfg(not(feature = "Win32_Foundation"))] usize,
7614     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, parray: *const DXGI_GAMMA_CONTROL) -> ::windows::runtime::HRESULT,
7615     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, parray: *mut DXGI_GAMMA_CONTROL) -> ::windows::runtime::HRESULT,
7616     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pscanoutsurface: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7617     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdestination: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7618     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pstats: *mut DXGI_FRAME_STATISTICS) -> ::windows::runtime::HRESULT,
7619     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC1) -> ::windows::runtime::HRESULT,
7620     #[cfg(not(feature = "Win32_Foundation"))] usize,
7621     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pmodetomatch: *const DXGI_MODE_DESC1, pclosestmatch: *mut DXGI_MODE_DESC1, pconcerneddevice: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7622     #[cfg(not(feature = "Win32_Foundation"))] usize,
7623     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdestination: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7624     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, ppoutputduplication: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7625     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
7626     #[cfg(not(feature = "Win32_Foundation"))] usize,
7627 );
7628 #[repr(transparent)]
7629 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
7630 pub struct IDXGIOutput3(::windows::runtime::IUnknown);
7631 impl IDXGIOutput3 {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>7632     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
7633         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
7634     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>7635     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
7636         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
7637     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>7638     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
7639         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
7640     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>7641     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
7642         let mut result__ = ::std::option::Option::None;
7643         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
7644     }
7645     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
GetDesc(&self) -> ::windows::runtime::Result<DXGI_OUTPUT_DESC>7646     pub unsafe fn GetDesc(&self) -> ::windows::runtime::Result<DXGI_OUTPUT_DESC> {
7647         let mut result__: <DXGI_OUTPUT_DESC as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7648         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_OUTPUT_DESC>(result__)
7649     }
GetDisplayModeList(&self, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC) -> ::windows::runtime::Result<()>7650     pub unsafe fn GetDisplayModeList(&self, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC) -> ::windows::runtime::Result<()> {
7651         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(enumformat), ::std::mem::transmute(flags), ::std::mem::transmute(pnummodes), ::std::mem::transmute(pdesc)).ok()
7652     }
FindClosestMatchingMode<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pmodetomatch: *const DXGI_MODE_DESC, pclosestmatch: *mut DXGI_MODE_DESC, pconcerneddevice: Param2) -> ::windows::runtime::Result<()>7653     pub unsafe fn FindClosestMatchingMode<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pmodetomatch: *const DXGI_MODE_DESC, pclosestmatch: *mut DXGI_MODE_DESC, pconcerneddevice: Param2) -> ::windows::runtime::Result<()> {
7654         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(pmodetomatch), ::std::mem::transmute(pclosestmatch), pconcerneddevice.into_param().abi()).ok()
7655     }
WaitForVBlank(&self) -> ::windows::runtime::Result<()>7656     pub unsafe fn WaitForVBlank(&self) -> ::windows::runtime::Result<()> {
7657         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self)).ok()
7658     }
7659     #[cfg(feature = "Win32_Foundation")]
TakeOwnership<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, pdevice: Param0, exclusive: Param1) -> ::windows::runtime::Result<()>7660     pub unsafe fn TakeOwnership<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, pdevice: Param0, exclusive: Param1) -> ::windows::runtime::Result<()> {
7661         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), exclusive.into_param().abi()).ok()
7662     }
ReleaseOwnership(&self)7663     pub unsafe fn ReleaseOwnership(&self) {
7664         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self)))
7665     }
7666     #[cfg(feature = "Win32_Foundation")]
GetGammaControlCapabilities(&self) -> ::windows::runtime::Result<DXGI_GAMMA_CONTROL_CAPABILITIES>7667     pub unsafe fn GetGammaControlCapabilities(&self) -> ::windows::runtime::Result<DXGI_GAMMA_CONTROL_CAPABILITIES> {
7668         let mut result__: <DXGI_GAMMA_CONTROL_CAPABILITIES as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7669         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_GAMMA_CONTROL_CAPABILITIES>(result__)
7670     }
SetGammaControl(&self, parray: *const DXGI_GAMMA_CONTROL) -> ::windows::runtime::Result<()>7671     pub unsafe fn SetGammaControl(&self, parray: *const DXGI_GAMMA_CONTROL) -> ::windows::runtime::Result<()> {
7672         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(parray)).ok()
7673     }
GetGammaControl(&self) -> ::windows::runtime::Result<DXGI_GAMMA_CONTROL>7674     pub unsafe fn GetGammaControl(&self) -> ::windows::runtime::Result<DXGI_GAMMA_CONTROL> {
7675         let mut result__: <DXGI_GAMMA_CONTROL as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7676         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_GAMMA_CONTROL>(result__)
7677     }
SetDisplaySurface<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGISurface>>(&self, pscanoutsurface: Param0) -> ::windows::runtime::Result<()>7678     pub unsafe fn SetDisplaySurface<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGISurface>>(&self, pscanoutsurface: Param0) -> ::windows::runtime::Result<()> {
7679         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), pscanoutsurface.into_param().abi()).ok()
7680     }
GetDisplaySurfaceData<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGISurface>>(&self, pdestination: Param0) -> ::windows::runtime::Result<()>7681     pub unsafe fn GetDisplaySurfaceData<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGISurface>>(&self, pdestination: Param0) -> ::windows::runtime::Result<()> {
7682         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), pdestination.into_param().abi()).ok()
7683     }
GetFrameStatistics(&self) -> ::windows::runtime::Result<DXGI_FRAME_STATISTICS>7684     pub unsafe fn GetFrameStatistics(&self) -> ::windows::runtime::Result<DXGI_FRAME_STATISTICS> {
7685         let mut result__: <DXGI_FRAME_STATISTICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7686         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_FRAME_STATISTICS>(result__)
7687     }
7688     #[cfg(feature = "Win32_Foundation")]
GetDisplayModeList1(&self, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC1) -> ::windows::runtime::Result<()>7689     pub unsafe fn GetDisplayModeList1(&self, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC1) -> ::windows::runtime::Result<()> {
7690         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), ::std::mem::transmute(enumformat), ::std::mem::transmute(flags), ::std::mem::transmute(pnummodes), ::std::mem::transmute(pdesc)).ok()
7691     }
7692     #[cfg(feature = "Win32_Foundation")]
FindClosestMatchingMode1<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pmodetomatch: *const DXGI_MODE_DESC1, pclosestmatch: *mut DXGI_MODE_DESC1, pconcerneddevice: Param2) -> ::windows::runtime::Result<()>7693     pub unsafe fn FindClosestMatchingMode1<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pmodetomatch: *const DXGI_MODE_DESC1, pclosestmatch: *mut DXGI_MODE_DESC1, pconcerneddevice: Param2) -> ::windows::runtime::Result<()> {
7694         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(pmodetomatch), ::std::mem::transmute(pclosestmatch), pconcerneddevice.into_param().abi()).ok()
7695     }
GetDisplaySurfaceData1<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGIResource>>(&self, pdestination: Param0) -> ::windows::runtime::Result<()>7696     pub unsafe fn GetDisplaySurfaceData1<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGIResource>>(&self, pdestination: Param0) -> ::windows::runtime::Result<()> {
7697         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), pdestination.into_param().abi()).ok()
7698     }
DuplicateOutput<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pdevice: Param0) -> ::windows::runtime::Result<IDXGIOutputDuplication>7699     pub unsafe fn DuplicateOutput<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pdevice: Param0) -> ::windows::runtime::Result<IDXGIOutputDuplication> {
7700         let mut result__: <IDXGIOutputDuplication as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7701         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), &mut result__).from_abi::<IDXGIOutputDuplication>(result__)
7702     }
7703     #[cfg(feature = "Win32_Foundation")]
SupportsOverlays(&self) -> super::super::Foundation::BOOL7704     pub unsafe fn SupportsOverlays(&self) -> super::super::Foundation::BOOL {
7705         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self)))
7706     }
CheckOverlaySupport<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, enumformat: DXGI_FORMAT, pconcerneddevice: Param1) -> ::windows::runtime::Result<u32>7707     pub unsafe fn CheckOverlaySupport<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, enumformat: DXGI_FORMAT, pconcerneddevice: Param1) -> ::windows::runtime::Result<u32> {
7708         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7709         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), ::std::mem::transmute(enumformat), pconcerneddevice.into_param().abi(), &mut result__).from_abi::<u32>(result__)
7710     }
7711 }
7712 unsafe impl ::windows::runtime::Interface for IDXGIOutput3 {
7713     type Vtable = IDXGIOutput3_abi;
7714     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2322313985, 32382, 16884, [168, 224, 91, 50, 247, 249, 155, 24]);
7715 }
7716 impl ::std::convert::From<IDXGIOutput3> for ::windows::runtime::IUnknown {
from(value: IDXGIOutput3) -> Self7717     fn from(value: IDXGIOutput3) -> Self {
7718         unsafe { ::std::mem::transmute(value) }
7719     }
7720 }
7721 impl ::std::convert::From<&IDXGIOutput3> for ::windows::runtime::IUnknown {
from(value: &IDXGIOutput3) -> Self7722     fn from(value: &IDXGIOutput3) -> Self {
7723         ::std::convert::From::from(::std::clone::Clone::clone(value))
7724     }
7725 }
7726 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIOutput3 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7727     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7728         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
7729     }
7730 }
7731 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIOutput3 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7732     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7733         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
7734     }
7735 }
7736 impl ::std::convert::From<IDXGIOutput3> for IDXGIOutput2 {
from(value: IDXGIOutput3) -> Self7737     fn from(value: IDXGIOutput3) -> Self {
7738         unsafe { ::std::mem::transmute(value) }
7739     }
7740 }
7741 impl ::std::convert::From<&IDXGIOutput3> for IDXGIOutput2 {
from(value: &IDXGIOutput3) -> Self7742     fn from(value: &IDXGIOutput3) -> Self {
7743         ::std::convert::From::from(::std::clone::Clone::clone(value))
7744     }
7745 }
7746 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput2> for IDXGIOutput3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput2>7747     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput2> {
7748         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput2>::into(self))
7749     }
7750 }
7751 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput2> for &IDXGIOutput3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput2>7752     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput2> {
7753         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput2>::into(::std::clone::Clone::clone(self)))
7754     }
7755 }
7756 impl ::std::convert::From<IDXGIOutput3> for IDXGIOutput1 {
from(value: IDXGIOutput3) -> Self7757     fn from(value: IDXGIOutput3) -> Self {
7758         unsafe { ::std::mem::transmute(value) }
7759     }
7760 }
7761 impl ::std::convert::From<&IDXGIOutput3> for IDXGIOutput1 {
from(value: &IDXGIOutput3) -> Self7762     fn from(value: &IDXGIOutput3) -> Self {
7763         ::std::convert::From::from(::std::clone::Clone::clone(value))
7764     }
7765 }
7766 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput1> for IDXGIOutput3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput1>7767     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput1> {
7768         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput1>::into(self))
7769     }
7770 }
7771 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput1> for &IDXGIOutput3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput1>7772     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput1> {
7773         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput1>::into(::std::clone::Clone::clone(self)))
7774     }
7775 }
7776 impl ::std::convert::From<IDXGIOutput3> for IDXGIOutput {
from(value: IDXGIOutput3) -> Self7777     fn from(value: IDXGIOutput3) -> Self {
7778         unsafe { ::std::mem::transmute(value) }
7779     }
7780 }
7781 impl ::std::convert::From<&IDXGIOutput3> for IDXGIOutput {
from(value: &IDXGIOutput3) -> Self7782     fn from(value: &IDXGIOutput3) -> Self {
7783         ::std::convert::From::from(::std::clone::Clone::clone(value))
7784     }
7785 }
7786 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput> for IDXGIOutput3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput>7787     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput> {
7788         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput>::into(self))
7789     }
7790 }
7791 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput> for &IDXGIOutput3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput>7792     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput> {
7793         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput>::into(::std::clone::Clone::clone(self)))
7794     }
7795 }
7796 impl ::std::convert::From<IDXGIOutput3> for IDXGIObject {
from(value: IDXGIOutput3) -> Self7797     fn from(value: IDXGIOutput3) -> Self {
7798         unsafe { ::std::mem::transmute(value) }
7799     }
7800 }
7801 impl ::std::convert::From<&IDXGIOutput3> for IDXGIObject {
from(value: &IDXGIOutput3) -> Self7802     fn from(value: &IDXGIOutput3) -> Self {
7803         ::std::convert::From::from(::std::clone::Clone::clone(value))
7804     }
7805 }
7806 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGIOutput3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>7807     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
7808         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
7809     }
7810 }
7811 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGIOutput3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>7812     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
7813         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
7814     }
7815 }
7816 #[repr(C)]
7817 #[doc(hidden)]
7818 pub struct IDXGIOutput3_abi(
7819     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7820     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7821     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7822     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
7823     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7824     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
7825     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
7826     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_OUTPUT_DESC) -> ::windows::runtime::HRESULT,
7827     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi")))] usize,
7828     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC) -> ::windows::runtime::HRESULT,
7829     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pmodetomatch: *const DXGI_MODE_DESC, pclosestmatch: *mut DXGI_MODE_DESC, pconcerneddevice: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7830     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7831     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, exclusive: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
7832     #[cfg(not(feature = "Win32_Foundation"))] usize,
7833     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr),
7834     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pgammacaps: *mut DXGI_GAMMA_CONTROL_CAPABILITIES) -> ::windows::runtime::HRESULT,
7835     #[cfg(not(feature = "Win32_Foundation"))] usize,
7836     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, parray: *const DXGI_GAMMA_CONTROL) -> ::windows::runtime::HRESULT,
7837     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, parray: *mut DXGI_GAMMA_CONTROL) -> ::windows::runtime::HRESULT,
7838     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pscanoutsurface: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7839     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdestination: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7840     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pstats: *mut DXGI_FRAME_STATISTICS) -> ::windows::runtime::HRESULT,
7841     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC1) -> ::windows::runtime::HRESULT,
7842     #[cfg(not(feature = "Win32_Foundation"))] usize,
7843     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pmodetomatch: *const DXGI_MODE_DESC1, pclosestmatch: *mut DXGI_MODE_DESC1, pconcerneddevice: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7844     #[cfg(not(feature = "Win32_Foundation"))] usize,
7845     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdestination: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7846     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, ppoutputduplication: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7847     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
7848     #[cfg(not(feature = "Win32_Foundation"))] usize,
7849     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enumformat: DXGI_FORMAT, pconcerneddevice: ::windows::runtime::RawPtr, pflags: *mut u32) -> ::windows::runtime::HRESULT,
7850 );
7851 #[repr(transparent)]
7852 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
7853 pub struct IDXGIOutput4(::windows::runtime::IUnknown);
7854 impl IDXGIOutput4 {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>7855     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
7856         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
7857     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>7858     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
7859         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
7860     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>7861     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
7862         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
7863     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>7864     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
7865         let mut result__ = ::std::option::Option::None;
7866         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
7867     }
7868     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
GetDesc(&self) -> ::windows::runtime::Result<DXGI_OUTPUT_DESC>7869     pub unsafe fn GetDesc(&self) -> ::windows::runtime::Result<DXGI_OUTPUT_DESC> {
7870         let mut result__: <DXGI_OUTPUT_DESC as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7871         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_OUTPUT_DESC>(result__)
7872     }
GetDisplayModeList(&self, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC) -> ::windows::runtime::Result<()>7873     pub unsafe fn GetDisplayModeList(&self, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC) -> ::windows::runtime::Result<()> {
7874         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(enumformat), ::std::mem::transmute(flags), ::std::mem::transmute(pnummodes), ::std::mem::transmute(pdesc)).ok()
7875     }
FindClosestMatchingMode<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pmodetomatch: *const DXGI_MODE_DESC, pclosestmatch: *mut DXGI_MODE_DESC, pconcerneddevice: Param2) -> ::windows::runtime::Result<()>7876     pub unsafe fn FindClosestMatchingMode<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pmodetomatch: *const DXGI_MODE_DESC, pclosestmatch: *mut DXGI_MODE_DESC, pconcerneddevice: Param2) -> ::windows::runtime::Result<()> {
7877         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(pmodetomatch), ::std::mem::transmute(pclosestmatch), pconcerneddevice.into_param().abi()).ok()
7878     }
WaitForVBlank(&self) -> ::windows::runtime::Result<()>7879     pub unsafe fn WaitForVBlank(&self) -> ::windows::runtime::Result<()> {
7880         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self)).ok()
7881     }
7882     #[cfg(feature = "Win32_Foundation")]
TakeOwnership<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, pdevice: Param0, exclusive: Param1) -> ::windows::runtime::Result<()>7883     pub unsafe fn TakeOwnership<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, pdevice: Param0, exclusive: Param1) -> ::windows::runtime::Result<()> {
7884         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), exclusive.into_param().abi()).ok()
7885     }
ReleaseOwnership(&self)7886     pub unsafe fn ReleaseOwnership(&self) {
7887         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self)))
7888     }
7889     #[cfg(feature = "Win32_Foundation")]
GetGammaControlCapabilities(&self) -> ::windows::runtime::Result<DXGI_GAMMA_CONTROL_CAPABILITIES>7890     pub unsafe fn GetGammaControlCapabilities(&self) -> ::windows::runtime::Result<DXGI_GAMMA_CONTROL_CAPABILITIES> {
7891         let mut result__: <DXGI_GAMMA_CONTROL_CAPABILITIES as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7892         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_GAMMA_CONTROL_CAPABILITIES>(result__)
7893     }
SetGammaControl(&self, parray: *const DXGI_GAMMA_CONTROL) -> ::windows::runtime::Result<()>7894     pub unsafe fn SetGammaControl(&self, parray: *const DXGI_GAMMA_CONTROL) -> ::windows::runtime::Result<()> {
7895         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(parray)).ok()
7896     }
GetGammaControl(&self) -> ::windows::runtime::Result<DXGI_GAMMA_CONTROL>7897     pub unsafe fn GetGammaControl(&self) -> ::windows::runtime::Result<DXGI_GAMMA_CONTROL> {
7898         let mut result__: <DXGI_GAMMA_CONTROL as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7899         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_GAMMA_CONTROL>(result__)
7900     }
SetDisplaySurface<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGISurface>>(&self, pscanoutsurface: Param0) -> ::windows::runtime::Result<()>7901     pub unsafe fn SetDisplaySurface<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGISurface>>(&self, pscanoutsurface: Param0) -> ::windows::runtime::Result<()> {
7902         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), pscanoutsurface.into_param().abi()).ok()
7903     }
GetDisplaySurfaceData<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGISurface>>(&self, pdestination: Param0) -> ::windows::runtime::Result<()>7904     pub unsafe fn GetDisplaySurfaceData<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGISurface>>(&self, pdestination: Param0) -> ::windows::runtime::Result<()> {
7905         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), pdestination.into_param().abi()).ok()
7906     }
GetFrameStatistics(&self) -> ::windows::runtime::Result<DXGI_FRAME_STATISTICS>7907     pub unsafe fn GetFrameStatistics(&self) -> ::windows::runtime::Result<DXGI_FRAME_STATISTICS> {
7908         let mut result__: <DXGI_FRAME_STATISTICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7909         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_FRAME_STATISTICS>(result__)
7910     }
7911     #[cfg(feature = "Win32_Foundation")]
GetDisplayModeList1(&self, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC1) -> ::windows::runtime::Result<()>7912     pub unsafe fn GetDisplayModeList1(&self, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC1) -> ::windows::runtime::Result<()> {
7913         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), ::std::mem::transmute(enumformat), ::std::mem::transmute(flags), ::std::mem::transmute(pnummodes), ::std::mem::transmute(pdesc)).ok()
7914     }
7915     #[cfg(feature = "Win32_Foundation")]
FindClosestMatchingMode1<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pmodetomatch: *const DXGI_MODE_DESC1, pclosestmatch: *mut DXGI_MODE_DESC1, pconcerneddevice: Param2) -> ::windows::runtime::Result<()>7916     pub unsafe fn FindClosestMatchingMode1<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pmodetomatch: *const DXGI_MODE_DESC1, pclosestmatch: *mut DXGI_MODE_DESC1, pconcerneddevice: Param2) -> ::windows::runtime::Result<()> {
7917         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(pmodetomatch), ::std::mem::transmute(pclosestmatch), pconcerneddevice.into_param().abi()).ok()
7918     }
GetDisplaySurfaceData1<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGIResource>>(&self, pdestination: Param0) -> ::windows::runtime::Result<()>7919     pub unsafe fn GetDisplaySurfaceData1<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGIResource>>(&self, pdestination: Param0) -> ::windows::runtime::Result<()> {
7920         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), pdestination.into_param().abi()).ok()
7921     }
DuplicateOutput<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pdevice: Param0) -> ::windows::runtime::Result<IDXGIOutputDuplication>7922     pub unsafe fn DuplicateOutput<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pdevice: Param0) -> ::windows::runtime::Result<IDXGIOutputDuplication> {
7923         let mut result__: <IDXGIOutputDuplication as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7924         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), &mut result__).from_abi::<IDXGIOutputDuplication>(result__)
7925     }
7926     #[cfg(feature = "Win32_Foundation")]
SupportsOverlays(&self) -> super::super::Foundation::BOOL7927     pub unsafe fn SupportsOverlays(&self) -> super::super::Foundation::BOOL {
7928         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self)))
7929     }
CheckOverlaySupport<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, enumformat: DXGI_FORMAT, pconcerneddevice: Param1) -> ::windows::runtime::Result<u32>7930     pub unsafe fn CheckOverlaySupport<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, enumformat: DXGI_FORMAT, pconcerneddevice: Param1) -> ::windows::runtime::Result<u32> {
7931         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7932         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), ::std::mem::transmute(enumformat), pconcerneddevice.into_param().abi(), &mut result__).from_abi::<u32>(result__)
7933     }
CheckOverlayColorSpaceSupport<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, format: DXGI_FORMAT, colorspace: DXGI_COLOR_SPACE_TYPE, pconcerneddevice: Param2) -> ::windows::runtime::Result<u32>7934     pub unsafe fn CheckOverlayColorSpaceSupport<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, format: DXGI_FORMAT, colorspace: DXGI_COLOR_SPACE_TYPE, pconcerneddevice: Param2) -> ::windows::runtime::Result<u32> {
7935         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7936         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), ::std::mem::transmute(format), ::std::mem::transmute(colorspace), pconcerneddevice.into_param().abi(), &mut result__).from_abi::<u32>(result__)
7937     }
7938 }
7939 unsafe impl ::windows::runtime::Interface for IDXGIOutput4 {
7940     type Vtable = IDXGIOutput4_abi;
7941     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3699231285, 8598, 16717, [159, 83, 97, 120, 132, 3, 42, 96]);
7942 }
7943 impl ::std::convert::From<IDXGIOutput4> for ::windows::runtime::IUnknown {
from(value: IDXGIOutput4) -> Self7944     fn from(value: IDXGIOutput4) -> Self {
7945         unsafe { ::std::mem::transmute(value) }
7946     }
7947 }
7948 impl ::std::convert::From<&IDXGIOutput4> for ::windows::runtime::IUnknown {
from(value: &IDXGIOutput4) -> Self7949     fn from(value: &IDXGIOutput4) -> Self {
7950         ::std::convert::From::from(::std::clone::Clone::clone(value))
7951     }
7952 }
7953 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIOutput4 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7954     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7955         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
7956     }
7957 }
7958 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIOutput4 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7959     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7960         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
7961     }
7962 }
7963 impl ::std::convert::From<IDXGIOutput4> for IDXGIOutput3 {
from(value: IDXGIOutput4) -> Self7964     fn from(value: IDXGIOutput4) -> Self {
7965         unsafe { ::std::mem::transmute(value) }
7966     }
7967 }
7968 impl ::std::convert::From<&IDXGIOutput4> for IDXGIOutput3 {
from(value: &IDXGIOutput4) -> Self7969     fn from(value: &IDXGIOutput4) -> Self {
7970         ::std::convert::From::from(::std::clone::Clone::clone(value))
7971     }
7972 }
7973 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput3> for IDXGIOutput4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput3>7974     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput3> {
7975         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput3>::into(self))
7976     }
7977 }
7978 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput3> for &IDXGIOutput4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput3>7979     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput3> {
7980         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput3>::into(::std::clone::Clone::clone(self)))
7981     }
7982 }
7983 impl ::std::convert::From<IDXGIOutput4> for IDXGIOutput2 {
from(value: IDXGIOutput4) -> Self7984     fn from(value: IDXGIOutput4) -> Self {
7985         unsafe { ::std::mem::transmute(value) }
7986     }
7987 }
7988 impl ::std::convert::From<&IDXGIOutput4> for IDXGIOutput2 {
from(value: &IDXGIOutput4) -> Self7989     fn from(value: &IDXGIOutput4) -> Self {
7990         ::std::convert::From::from(::std::clone::Clone::clone(value))
7991     }
7992 }
7993 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput2> for IDXGIOutput4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput2>7994     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput2> {
7995         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput2>::into(self))
7996     }
7997 }
7998 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput2> for &IDXGIOutput4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput2>7999     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput2> {
8000         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput2>::into(::std::clone::Clone::clone(self)))
8001     }
8002 }
8003 impl ::std::convert::From<IDXGIOutput4> for IDXGIOutput1 {
from(value: IDXGIOutput4) -> Self8004     fn from(value: IDXGIOutput4) -> Self {
8005         unsafe { ::std::mem::transmute(value) }
8006     }
8007 }
8008 impl ::std::convert::From<&IDXGIOutput4> for IDXGIOutput1 {
from(value: &IDXGIOutput4) -> Self8009     fn from(value: &IDXGIOutput4) -> Self {
8010         ::std::convert::From::from(::std::clone::Clone::clone(value))
8011     }
8012 }
8013 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput1> for IDXGIOutput4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput1>8014     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput1> {
8015         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput1>::into(self))
8016     }
8017 }
8018 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput1> for &IDXGIOutput4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput1>8019     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput1> {
8020         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput1>::into(::std::clone::Clone::clone(self)))
8021     }
8022 }
8023 impl ::std::convert::From<IDXGIOutput4> for IDXGIOutput {
from(value: IDXGIOutput4) -> Self8024     fn from(value: IDXGIOutput4) -> Self {
8025         unsafe { ::std::mem::transmute(value) }
8026     }
8027 }
8028 impl ::std::convert::From<&IDXGIOutput4> for IDXGIOutput {
from(value: &IDXGIOutput4) -> Self8029     fn from(value: &IDXGIOutput4) -> Self {
8030         ::std::convert::From::from(::std::clone::Clone::clone(value))
8031     }
8032 }
8033 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput> for IDXGIOutput4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput>8034     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput> {
8035         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput>::into(self))
8036     }
8037 }
8038 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput> for &IDXGIOutput4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput>8039     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput> {
8040         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput>::into(::std::clone::Clone::clone(self)))
8041     }
8042 }
8043 impl ::std::convert::From<IDXGIOutput4> for IDXGIObject {
from(value: IDXGIOutput4) -> Self8044     fn from(value: IDXGIOutput4) -> Self {
8045         unsafe { ::std::mem::transmute(value) }
8046     }
8047 }
8048 impl ::std::convert::From<&IDXGIOutput4> for IDXGIObject {
from(value: &IDXGIOutput4) -> Self8049     fn from(value: &IDXGIOutput4) -> Self {
8050         ::std::convert::From::from(::std::clone::Clone::clone(value))
8051     }
8052 }
8053 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGIOutput4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>8054     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
8055         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
8056     }
8057 }
8058 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGIOutput4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>8059     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
8060         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
8061     }
8062 }
8063 #[repr(C)]
8064 #[doc(hidden)]
8065 pub struct IDXGIOutput4_abi(
8066     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8067     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
8068     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
8069     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
8070     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8071     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
8072     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
8073     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_OUTPUT_DESC) -> ::windows::runtime::HRESULT,
8074     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi")))] usize,
8075     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC) -> ::windows::runtime::HRESULT,
8076     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pmodetomatch: *const DXGI_MODE_DESC, pclosestmatch: *mut DXGI_MODE_DESC, pconcerneddevice: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8077     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8078     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, exclusive: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
8079     #[cfg(not(feature = "Win32_Foundation"))] usize,
8080     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr),
8081     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pgammacaps: *mut DXGI_GAMMA_CONTROL_CAPABILITIES) -> ::windows::runtime::HRESULT,
8082     #[cfg(not(feature = "Win32_Foundation"))] usize,
8083     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, parray: *const DXGI_GAMMA_CONTROL) -> ::windows::runtime::HRESULT,
8084     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, parray: *mut DXGI_GAMMA_CONTROL) -> ::windows::runtime::HRESULT,
8085     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pscanoutsurface: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8086     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdestination: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8087     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pstats: *mut DXGI_FRAME_STATISTICS) -> ::windows::runtime::HRESULT,
8088     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC1) -> ::windows::runtime::HRESULT,
8089     #[cfg(not(feature = "Win32_Foundation"))] usize,
8090     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pmodetomatch: *const DXGI_MODE_DESC1, pclosestmatch: *mut DXGI_MODE_DESC1, pconcerneddevice: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8091     #[cfg(not(feature = "Win32_Foundation"))] usize,
8092     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdestination: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8093     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, ppoutputduplication: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8094     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
8095     #[cfg(not(feature = "Win32_Foundation"))] usize,
8096     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enumformat: DXGI_FORMAT, pconcerneddevice: ::windows::runtime::RawPtr, pflags: *mut u32) -> ::windows::runtime::HRESULT,
8097     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, format: DXGI_FORMAT, colorspace: DXGI_COLOR_SPACE_TYPE, pconcerneddevice: ::windows::runtime::RawPtr, pflags: *mut u32) -> ::windows::runtime::HRESULT,
8098 );
8099 #[repr(transparent)]
8100 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
8101 pub struct IDXGIOutput5(::windows::runtime::IUnknown);
8102 impl IDXGIOutput5 {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>8103     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
8104         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
8105     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>8106     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
8107         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
8108     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>8109     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
8110         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
8111     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>8112     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
8113         let mut result__ = ::std::option::Option::None;
8114         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
8115     }
8116     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
GetDesc(&self) -> ::windows::runtime::Result<DXGI_OUTPUT_DESC>8117     pub unsafe fn GetDesc(&self) -> ::windows::runtime::Result<DXGI_OUTPUT_DESC> {
8118         let mut result__: <DXGI_OUTPUT_DESC as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8119         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_OUTPUT_DESC>(result__)
8120     }
GetDisplayModeList(&self, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC) -> ::windows::runtime::Result<()>8121     pub unsafe fn GetDisplayModeList(&self, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC) -> ::windows::runtime::Result<()> {
8122         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(enumformat), ::std::mem::transmute(flags), ::std::mem::transmute(pnummodes), ::std::mem::transmute(pdesc)).ok()
8123     }
FindClosestMatchingMode<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pmodetomatch: *const DXGI_MODE_DESC, pclosestmatch: *mut DXGI_MODE_DESC, pconcerneddevice: Param2) -> ::windows::runtime::Result<()>8124     pub unsafe fn FindClosestMatchingMode<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pmodetomatch: *const DXGI_MODE_DESC, pclosestmatch: *mut DXGI_MODE_DESC, pconcerneddevice: Param2) -> ::windows::runtime::Result<()> {
8125         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(pmodetomatch), ::std::mem::transmute(pclosestmatch), pconcerneddevice.into_param().abi()).ok()
8126     }
WaitForVBlank(&self) -> ::windows::runtime::Result<()>8127     pub unsafe fn WaitForVBlank(&self) -> ::windows::runtime::Result<()> {
8128         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self)).ok()
8129     }
8130     #[cfg(feature = "Win32_Foundation")]
TakeOwnership<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, pdevice: Param0, exclusive: Param1) -> ::windows::runtime::Result<()>8131     pub unsafe fn TakeOwnership<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, pdevice: Param0, exclusive: Param1) -> ::windows::runtime::Result<()> {
8132         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), exclusive.into_param().abi()).ok()
8133     }
ReleaseOwnership(&self)8134     pub unsafe fn ReleaseOwnership(&self) {
8135         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self)))
8136     }
8137     #[cfg(feature = "Win32_Foundation")]
GetGammaControlCapabilities(&self) -> ::windows::runtime::Result<DXGI_GAMMA_CONTROL_CAPABILITIES>8138     pub unsafe fn GetGammaControlCapabilities(&self) -> ::windows::runtime::Result<DXGI_GAMMA_CONTROL_CAPABILITIES> {
8139         let mut result__: <DXGI_GAMMA_CONTROL_CAPABILITIES as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8140         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_GAMMA_CONTROL_CAPABILITIES>(result__)
8141     }
SetGammaControl(&self, parray: *const DXGI_GAMMA_CONTROL) -> ::windows::runtime::Result<()>8142     pub unsafe fn SetGammaControl(&self, parray: *const DXGI_GAMMA_CONTROL) -> ::windows::runtime::Result<()> {
8143         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(parray)).ok()
8144     }
GetGammaControl(&self) -> ::windows::runtime::Result<DXGI_GAMMA_CONTROL>8145     pub unsafe fn GetGammaControl(&self) -> ::windows::runtime::Result<DXGI_GAMMA_CONTROL> {
8146         let mut result__: <DXGI_GAMMA_CONTROL as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8147         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_GAMMA_CONTROL>(result__)
8148     }
SetDisplaySurface<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGISurface>>(&self, pscanoutsurface: Param0) -> ::windows::runtime::Result<()>8149     pub unsafe fn SetDisplaySurface<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGISurface>>(&self, pscanoutsurface: Param0) -> ::windows::runtime::Result<()> {
8150         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), pscanoutsurface.into_param().abi()).ok()
8151     }
GetDisplaySurfaceData<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGISurface>>(&self, pdestination: Param0) -> ::windows::runtime::Result<()>8152     pub unsafe fn GetDisplaySurfaceData<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGISurface>>(&self, pdestination: Param0) -> ::windows::runtime::Result<()> {
8153         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), pdestination.into_param().abi()).ok()
8154     }
GetFrameStatistics(&self) -> ::windows::runtime::Result<DXGI_FRAME_STATISTICS>8155     pub unsafe fn GetFrameStatistics(&self) -> ::windows::runtime::Result<DXGI_FRAME_STATISTICS> {
8156         let mut result__: <DXGI_FRAME_STATISTICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8157         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_FRAME_STATISTICS>(result__)
8158     }
8159     #[cfg(feature = "Win32_Foundation")]
GetDisplayModeList1(&self, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC1) -> ::windows::runtime::Result<()>8160     pub unsafe fn GetDisplayModeList1(&self, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC1) -> ::windows::runtime::Result<()> {
8161         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), ::std::mem::transmute(enumformat), ::std::mem::transmute(flags), ::std::mem::transmute(pnummodes), ::std::mem::transmute(pdesc)).ok()
8162     }
8163     #[cfg(feature = "Win32_Foundation")]
FindClosestMatchingMode1<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pmodetomatch: *const DXGI_MODE_DESC1, pclosestmatch: *mut DXGI_MODE_DESC1, pconcerneddevice: Param2) -> ::windows::runtime::Result<()>8164     pub unsafe fn FindClosestMatchingMode1<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pmodetomatch: *const DXGI_MODE_DESC1, pclosestmatch: *mut DXGI_MODE_DESC1, pconcerneddevice: Param2) -> ::windows::runtime::Result<()> {
8165         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(pmodetomatch), ::std::mem::transmute(pclosestmatch), pconcerneddevice.into_param().abi()).ok()
8166     }
GetDisplaySurfaceData1<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGIResource>>(&self, pdestination: Param0) -> ::windows::runtime::Result<()>8167     pub unsafe fn GetDisplaySurfaceData1<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGIResource>>(&self, pdestination: Param0) -> ::windows::runtime::Result<()> {
8168         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), pdestination.into_param().abi()).ok()
8169     }
DuplicateOutput<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pdevice: Param0) -> ::windows::runtime::Result<IDXGIOutputDuplication>8170     pub unsafe fn DuplicateOutput<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pdevice: Param0) -> ::windows::runtime::Result<IDXGIOutputDuplication> {
8171         let mut result__: <IDXGIOutputDuplication as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8172         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), &mut result__).from_abi::<IDXGIOutputDuplication>(result__)
8173     }
8174     #[cfg(feature = "Win32_Foundation")]
SupportsOverlays(&self) -> super::super::Foundation::BOOL8175     pub unsafe fn SupportsOverlays(&self) -> super::super::Foundation::BOOL {
8176         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self)))
8177     }
CheckOverlaySupport<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, enumformat: DXGI_FORMAT, pconcerneddevice: Param1) -> ::windows::runtime::Result<u32>8178     pub unsafe fn CheckOverlaySupport<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, enumformat: DXGI_FORMAT, pconcerneddevice: Param1) -> ::windows::runtime::Result<u32> {
8179         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8180         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), ::std::mem::transmute(enumformat), pconcerneddevice.into_param().abi(), &mut result__).from_abi::<u32>(result__)
8181     }
CheckOverlayColorSpaceSupport<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, format: DXGI_FORMAT, colorspace: DXGI_COLOR_SPACE_TYPE, pconcerneddevice: Param2) -> ::windows::runtime::Result<u32>8182     pub unsafe fn CheckOverlayColorSpaceSupport<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, format: DXGI_FORMAT, colorspace: DXGI_COLOR_SPACE_TYPE, pconcerneddevice: Param2) -> ::windows::runtime::Result<u32> {
8183         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8184         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), ::std::mem::transmute(format), ::std::mem::transmute(colorspace), pconcerneddevice.into_param().abi(), &mut result__).from_abi::<u32>(result__)
8185     }
DuplicateOutput1<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pdevice: Param0, flags: u32, supportedformatscount: u32, psupportedformats: *const DXGI_FORMAT) -> ::windows::runtime::Result<IDXGIOutputDuplication>8186     pub unsafe fn DuplicateOutput1<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pdevice: Param0, flags: u32, supportedformatscount: u32, psupportedformats: *const DXGI_FORMAT) -> ::windows::runtime::Result<IDXGIOutputDuplication> {
8187         let mut result__: <IDXGIOutputDuplication as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8188         (::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), ::std::mem::transmute(flags), ::std::mem::transmute(supportedformatscount), ::std::mem::transmute(psupportedformats), &mut result__).from_abi::<IDXGIOutputDuplication>(result__)
8189     }
8190 }
8191 unsafe impl ::windows::runtime::Interface for IDXGIOutput5 {
8192     type Vtable = IDXGIOutput5_abi;
8193     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2157999140, 43858, 17131, [131, 60, 12, 66, 253, 40, 45, 152]);
8194 }
8195 impl ::std::convert::From<IDXGIOutput5> for ::windows::runtime::IUnknown {
from(value: IDXGIOutput5) -> Self8196     fn from(value: IDXGIOutput5) -> Self {
8197         unsafe { ::std::mem::transmute(value) }
8198     }
8199 }
8200 impl ::std::convert::From<&IDXGIOutput5> for ::windows::runtime::IUnknown {
from(value: &IDXGIOutput5) -> Self8201     fn from(value: &IDXGIOutput5) -> Self {
8202         ::std::convert::From::from(::std::clone::Clone::clone(value))
8203     }
8204 }
8205 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIOutput5 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>8206     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
8207         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
8208     }
8209 }
8210 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIOutput5 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>8211     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
8212         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
8213     }
8214 }
8215 impl ::std::convert::From<IDXGIOutput5> for IDXGIOutput4 {
from(value: IDXGIOutput5) -> Self8216     fn from(value: IDXGIOutput5) -> Self {
8217         unsafe { ::std::mem::transmute(value) }
8218     }
8219 }
8220 impl ::std::convert::From<&IDXGIOutput5> for IDXGIOutput4 {
from(value: &IDXGIOutput5) -> Self8221     fn from(value: &IDXGIOutput5) -> Self {
8222         ::std::convert::From::from(::std::clone::Clone::clone(value))
8223     }
8224 }
8225 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput4> for IDXGIOutput5 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput4>8226     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput4> {
8227         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput4>::into(self))
8228     }
8229 }
8230 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput4> for &IDXGIOutput5 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput4>8231     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput4> {
8232         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput4>::into(::std::clone::Clone::clone(self)))
8233     }
8234 }
8235 impl ::std::convert::From<IDXGIOutput5> for IDXGIOutput3 {
from(value: IDXGIOutput5) -> Self8236     fn from(value: IDXGIOutput5) -> Self {
8237         unsafe { ::std::mem::transmute(value) }
8238     }
8239 }
8240 impl ::std::convert::From<&IDXGIOutput5> for IDXGIOutput3 {
from(value: &IDXGIOutput5) -> Self8241     fn from(value: &IDXGIOutput5) -> Self {
8242         ::std::convert::From::from(::std::clone::Clone::clone(value))
8243     }
8244 }
8245 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput3> for IDXGIOutput5 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput3>8246     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput3> {
8247         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput3>::into(self))
8248     }
8249 }
8250 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput3> for &IDXGIOutput5 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput3>8251     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput3> {
8252         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput3>::into(::std::clone::Clone::clone(self)))
8253     }
8254 }
8255 impl ::std::convert::From<IDXGIOutput5> for IDXGIOutput2 {
from(value: IDXGIOutput5) -> Self8256     fn from(value: IDXGIOutput5) -> Self {
8257         unsafe { ::std::mem::transmute(value) }
8258     }
8259 }
8260 impl ::std::convert::From<&IDXGIOutput5> for IDXGIOutput2 {
from(value: &IDXGIOutput5) -> Self8261     fn from(value: &IDXGIOutput5) -> Self {
8262         ::std::convert::From::from(::std::clone::Clone::clone(value))
8263     }
8264 }
8265 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput2> for IDXGIOutput5 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput2>8266     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput2> {
8267         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput2>::into(self))
8268     }
8269 }
8270 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput2> for &IDXGIOutput5 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput2>8271     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput2> {
8272         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput2>::into(::std::clone::Clone::clone(self)))
8273     }
8274 }
8275 impl ::std::convert::From<IDXGIOutput5> for IDXGIOutput1 {
from(value: IDXGIOutput5) -> Self8276     fn from(value: IDXGIOutput5) -> Self {
8277         unsafe { ::std::mem::transmute(value) }
8278     }
8279 }
8280 impl ::std::convert::From<&IDXGIOutput5> for IDXGIOutput1 {
from(value: &IDXGIOutput5) -> Self8281     fn from(value: &IDXGIOutput5) -> Self {
8282         ::std::convert::From::from(::std::clone::Clone::clone(value))
8283     }
8284 }
8285 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput1> for IDXGIOutput5 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput1>8286     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput1> {
8287         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput1>::into(self))
8288     }
8289 }
8290 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput1> for &IDXGIOutput5 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput1>8291     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput1> {
8292         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput1>::into(::std::clone::Clone::clone(self)))
8293     }
8294 }
8295 impl ::std::convert::From<IDXGIOutput5> for IDXGIOutput {
from(value: IDXGIOutput5) -> Self8296     fn from(value: IDXGIOutput5) -> Self {
8297         unsafe { ::std::mem::transmute(value) }
8298     }
8299 }
8300 impl ::std::convert::From<&IDXGIOutput5> for IDXGIOutput {
from(value: &IDXGIOutput5) -> Self8301     fn from(value: &IDXGIOutput5) -> Self {
8302         ::std::convert::From::from(::std::clone::Clone::clone(value))
8303     }
8304 }
8305 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput> for IDXGIOutput5 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput>8306     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput> {
8307         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput>::into(self))
8308     }
8309 }
8310 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput> for &IDXGIOutput5 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput>8311     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput> {
8312         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput>::into(::std::clone::Clone::clone(self)))
8313     }
8314 }
8315 impl ::std::convert::From<IDXGIOutput5> for IDXGIObject {
from(value: IDXGIOutput5) -> Self8316     fn from(value: IDXGIOutput5) -> Self {
8317         unsafe { ::std::mem::transmute(value) }
8318     }
8319 }
8320 impl ::std::convert::From<&IDXGIOutput5> for IDXGIObject {
from(value: &IDXGIOutput5) -> Self8321     fn from(value: &IDXGIOutput5) -> Self {
8322         ::std::convert::From::from(::std::clone::Clone::clone(value))
8323     }
8324 }
8325 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGIOutput5 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>8326     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
8327         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
8328     }
8329 }
8330 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGIOutput5 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>8331     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
8332         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
8333     }
8334 }
8335 #[repr(C)]
8336 #[doc(hidden)]
8337 pub struct IDXGIOutput5_abi(
8338     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8339     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
8340     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
8341     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
8342     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8343     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
8344     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
8345     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_OUTPUT_DESC) -> ::windows::runtime::HRESULT,
8346     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi")))] usize,
8347     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC) -> ::windows::runtime::HRESULT,
8348     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pmodetomatch: *const DXGI_MODE_DESC, pclosestmatch: *mut DXGI_MODE_DESC, pconcerneddevice: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8349     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8350     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, exclusive: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
8351     #[cfg(not(feature = "Win32_Foundation"))] usize,
8352     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr),
8353     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pgammacaps: *mut DXGI_GAMMA_CONTROL_CAPABILITIES) -> ::windows::runtime::HRESULT,
8354     #[cfg(not(feature = "Win32_Foundation"))] usize,
8355     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, parray: *const DXGI_GAMMA_CONTROL) -> ::windows::runtime::HRESULT,
8356     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, parray: *mut DXGI_GAMMA_CONTROL) -> ::windows::runtime::HRESULT,
8357     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pscanoutsurface: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8358     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdestination: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8359     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pstats: *mut DXGI_FRAME_STATISTICS) -> ::windows::runtime::HRESULT,
8360     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC1) -> ::windows::runtime::HRESULT,
8361     #[cfg(not(feature = "Win32_Foundation"))] usize,
8362     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pmodetomatch: *const DXGI_MODE_DESC1, pclosestmatch: *mut DXGI_MODE_DESC1, pconcerneddevice: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8363     #[cfg(not(feature = "Win32_Foundation"))] usize,
8364     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdestination: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8365     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, ppoutputduplication: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8366     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
8367     #[cfg(not(feature = "Win32_Foundation"))] usize,
8368     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enumformat: DXGI_FORMAT, pconcerneddevice: ::windows::runtime::RawPtr, pflags: *mut u32) -> ::windows::runtime::HRESULT,
8369     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, format: DXGI_FORMAT, colorspace: DXGI_COLOR_SPACE_TYPE, pconcerneddevice: ::windows::runtime::RawPtr, pflags: *mut u32) -> ::windows::runtime::HRESULT,
8370     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, flags: u32, supportedformatscount: u32, psupportedformats: *const DXGI_FORMAT, ppoutputduplication: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8371 );
8372 #[repr(transparent)]
8373 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
8374 pub struct IDXGIOutput6(::windows::runtime::IUnknown);
8375 impl IDXGIOutput6 {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>8376     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
8377         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
8378     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>8379     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
8380         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
8381     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>8382     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
8383         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
8384     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>8385     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
8386         let mut result__ = ::std::option::Option::None;
8387         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
8388     }
8389     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
GetDesc(&self) -> ::windows::runtime::Result<DXGI_OUTPUT_DESC>8390     pub unsafe fn GetDesc(&self) -> ::windows::runtime::Result<DXGI_OUTPUT_DESC> {
8391         let mut result__: <DXGI_OUTPUT_DESC as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8392         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_OUTPUT_DESC>(result__)
8393     }
GetDisplayModeList(&self, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC) -> ::windows::runtime::Result<()>8394     pub unsafe fn GetDisplayModeList(&self, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC) -> ::windows::runtime::Result<()> {
8395         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(enumformat), ::std::mem::transmute(flags), ::std::mem::transmute(pnummodes), ::std::mem::transmute(pdesc)).ok()
8396     }
FindClosestMatchingMode<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pmodetomatch: *const DXGI_MODE_DESC, pclosestmatch: *mut DXGI_MODE_DESC, pconcerneddevice: Param2) -> ::windows::runtime::Result<()>8397     pub unsafe fn FindClosestMatchingMode<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pmodetomatch: *const DXGI_MODE_DESC, pclosestmatch: *mut DXGI_MODE_DESC, pconcerneddevice: Param2) -> ::windows::runtime::Result<()> {
8398         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(pmodetomatch), ::std::mem::transmute(pclosestmatch), pconcerneddevice.into_param().abi()).ok()
8399     }
WaitForVBlank(&self) -> ::windows::runtime::Result<()>8400     pub unsafe fn WaitForVBlank(&self) -> ::windows::runtime::Result<()> {
8401         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self)).ok()
8402     }
8403     #[cfg(feature = "Win32_Foundation")]
TakeOwnership<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, pdevice: Param0, exclusive: Param1) -> ::windows::runtime::Result<()>8404     pub unsafe fn TakeOwnership<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, pdevice: Param0, exclusive: Param1) -> ::windows::runtime::Result<()> {
8405         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), exclusive.into_param().abi()).ok()
8406     }
ReleaseOwnership(&self)8407     pub unsafe fn ReleaseOwnership(&self) {
8408         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self)))
8409     }
8410     #[cfg(feature = "Win32_Foundation")]
GetGammaControlCapabilities(&self) -> ::windows::runtime::Result<DXGI_GAMMA_CONTROL_CAPABILITIES>8411     pub unsafe fn GetGammaControlCapabilities(&self) -> ::windows::runtime::Result<DXGI_GAMMA_CONTROL_CAPABILITIES> {
8412         let mut result__: <DXGI_GAMMA_CONTROL_CAPABILITIES as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8413         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_GAMMA_CONTROL_CAPABILITIES>(result__)
8414     }
SetGammaControl(&self, parray: *const DXGI_GAMMA_CONTROL) -> ::windows::runtime::Result<()>8415     pub unsafe fn SetGammaControl(&self, parray: *const DXGI_GAMMA_CONTROL) -> ::windows::runtime::Result<()> {
8416         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(parray)).ok()
8417     }
GetGammaControl(&self) -> ::windows::runtime::Result<DXGI_GAMMA_CONTROL>8418     pub unsafe fn GetGammaControl(&self) -> ::windows::runtime::Result<DXGI_GAMMA_CONTROL> {
8419         let mut result__: <DXGI_GAMMA_CONTROL as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8420         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_GAMMA_CONTROL>(result__)
8421     }
SetDisplaySurface<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGISurface>>(&self, pscanoutsurface: Param0) -> ::windows::runtime::Result<()>8422     pub unsafe fn SetDisplaySurface<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGISurface>>(&self, pscanoutsurface: Param0) -> ::windows::runtime::Result<()> {
8423         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), pscanoutsurface.into_param().abi()).ok()
8424     }
GetDisplaySurfaceData<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGISurface>>(&self, pdestination: Param0) -> ::windows::runtime::Result<()>8425     pub unsafe fn GetDisplaySurfaceData<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGISurface>>(&self, pdestination: Param0) -> ::windows::runtime::Result<()> {
8426         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), pdestination.into_param().abi()).ok()
8427     }
GetFrameStatistics(&self) -> ::windows::runtime::Result<DXGI_FRAME_STATISTICS>8428     pub unsafe fn GetFrameStatistics(&self) -> ::windows::runtime::Result<DXGI_FRAME_STATISTICS> {
8429         let mut result__: <DXGI_FRAME_STATISTICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8430         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_FRAME_STATISTICS>(result__)
8431     }
8432     #[cfg(feature = "Win32_Foundation")]
GetDisplayModeList1(&self, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC1) -> ::windows::runtime::Result<()>8433     pub unsafe fn GetDisplayModeList1(&self, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC1) -> ::windows::runtime::Result<()> {
8434         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), ::std::mem::transmute(enumformat), ::std::mem::transmute(flags), ::std::mem::transmute(pnummodes), ::std::mem::transmute(pdesc)).ok()
8435     }
8436     #[cfg(feature = "Win32_Foundation")]
FindClosestMatchingMode1<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pmodetomatch: *const DXGI_MODE_DESC1, pclosestmatch: *mut DXGI_MODE_DESC1, pconcerneddevice: Param2) -> ::windows::runtime::Result<()>8437     pub unsafe fn FindClosestMatchingMode1<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pmodetomatch: *const DXGI_MODE_DESC1, pclosestmatch: *mut DXGI_MODE_DESC1, pconcerneddevice: Param2) -> ::windows::runtime::Result<()> {
8438         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(pmodetomatch), ::std::mem::transmute(pclosestmatch), pconcerneddevice.into_param().abi()).ok()
8439     }
GetDisplaySurfaceData1<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGIResource>>(&self, pdestination: Param0) -> ::windows::runtime::Result<()>8440     pub unsafe fn GetDisplaySurfaceData1<'a, Param0: ::windows::runtime::IntoParam<'a, IDXGIResource>>(&self, pdestination: Param0) -> ::windows::runtime::Result<()> {
8441         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), pdestination.into_param().abi()).ok()
8442     }
DuplicateOutput<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pdevice: Param0) -> ::windows::runtime::Result<IDXGIOutputDuplication>8443     pub unsafe fn DuplicateOutput<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pdevice: Param0) -> ::windows::runtime::Result<IDXGIOutputDuplication> {
8444         let mut result__: <IDXGIOutputDuplication as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8445         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), &mut result__).from_abi::<IDXGIOutputDuplication>(result__)
8446     }
8447     #[cfg(feature = "Win32_Foundation")]
SupportsOverlays(&self) -> super::super::Foundation::BOOL8448     pub unsafe fn SupportsOverlays(&self) -> super::super::Foundation::BOOL {
8449         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self)))
8450     }
CheckOverlaySupport<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, enumformat: DXGI_FORMAT, pconcerneddevice: Param1) -> ::windows::runtime::Result<u32>8451     pub unsafe fn CheckOverlaySupport<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, enumformat: DXGI_FORMAT, pconcerneddevice: Param1) -> ::windows::runtime::Result<u32> {
8452         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8453         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), ::std::mem::transmute(enumformat), pconcerneddevice.into_param().abi(), &mut result__).from_abi::<u32>(result__)
8454     }
CheckOverlayColorSpaceSupport<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, format: DXGI_FORMAT, colorspace: DXGI_COLOR_SPACE_TYPE, pconcerneddevice: Param2) -> ::windows::runtime::Result<u32>8455     pub unsafe fn CheckOverlayColorSpaceSupport<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, format: DXGI_FORMAT, colorspace: DXGI_COLOR_SPACE_TYPE, pconcerneddevice: Param2) -> ::windows::runtime::Result<u32> {
8456         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8457         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), ::std::mem::transmute(format), ::std::mem::transmute(colorspace), pconcerneddevice.into_param().abi(), &mut result__).from_abi::<u32>(result__)
8458     }
DuplicateOutput1<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pdevice: Param0, flags: u32, supportedformatscount: u32, psupportedformats: *const DXGI_FORMAT) -> ::windows::runtime::Result<IDXGIOutputDuplication>8459     pub unsafe fn DuplicateOutput1<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pdevice: Param0, flags: u32, supportedformatscount: u32, psupportedformats: *const DXGI_FORMAT) -> ::windows::runtime::Result<IDXGIOutputDuplication> {
8460         let mut result__: <IDXGIOutputDuplication as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8461         (::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self), pdevice.into_param().abi(), ::std::mem::transmute(flags), ::std::mem::transmute(supportedformatscount), ::std::mem::transmute(psupportedformats), &mut result__).from_abi::<IDXGIOutputDuplication>(result__)
8462     }
8463     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
GetDesc1(&self) -> ::windows::runtime::Result<DXGI_OUTPUT_DESC1>8464     pub unsafe fn GetDesc1(&self) -> ::windows::runtime::Result<DXGI_OUTPUT_DESC1> {
8465         let mut result__: <DXGI_OUTPUT_DESC1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8466         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_OUTPUT_DESC1>(result__)
8467     }
CheckHardwareCompositionSupport(&self) -> ::windows::runtime::Result<u32>8468     pub unsafe fn CheckHardwareCompositionSupport(&self) -> ::windows::runtime::Result<u32> {
8469         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8470         (::windows::runtime::Interface::vtable(self).28)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
8471     }
8472 }
8473 unsafe impl ::windows::runtime::Interface for IDXGIOutput6 {
8474     type Vtable = IDXGIOutput6_abi;
8475     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(109266664, 43756, 19332, [173, 215, 19, 127, 81, 63, 119, 161]);
8476 }
8477 impl ::std::convert::From<IDXGIOutput6> for ::windows::runtime::IUnknown {
from(value: IDXGIOutput6) -> Self8478     fn from(value: IDXGIOutput6) -> Self {
8479         unsafe { ::std::mem::transmute(value) }
8480     }
8481 }
8482 impl ::std::convert::From<&IDXGIOutput6> for ::windows::runtime::IUnknown {
from(value: &IDXGIOutput6) -> Self8483     fn from(value: &IDXGIOutput6) -> Self {
8484         ::std::convert::From::from(::std::clone::Clone::clone(value))
8485     }
8486 }
8487 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIOutput6 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>8488     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
8489         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
8490     }
8491 }
8492 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIOutput6 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>8493     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
8494         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
8495     }
8496 }
8497 impl ::std::convert::From<IDXGIOutput6> for IDXGIOutput5 {
from(value: IDXGIOutput6) -> Self8498     fn from(value: IDXGIOutput6) -> Self {
8499         unsafe { ::std::mem::transmute(value) }
8500     }
8501 }
8502 impl ::std::convert::From<&IDXGIOutput6> for IDXGIOutput5 {
from(value: &IDXGIOutput6) -> Self8503     fn from(value: &IDXGIOutput6) -> Self {
8504         ::std::convert::From::from(::std::clone::Clone::clone(value))
8505     }
8506 }
8507 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput5> for IDXGIOutput6 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput5>8508     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput5> {
8509         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput5>::into(self))
8510     }
8511 }
8512 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput5> for &IDXGIOutput6 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput5>8513     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput5> {
8514         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput5>::into(::std::clone::Clone::clone(self)))
8515     }
8516 }
8517 impl ::std::convert::From<IDXGIOutput6> for IDXGIOutput4 {
from(value: IDXGIOutput6) -> Self8518     fn from(value: IDXGIOutput6) -> Self {
8519         unsafe { ::std::mem::transmute(value) }
8520     }
8521 }
8522 impl ::std::convert::From<&IDXGIOutput6> for IDXGIOutput4 {
from(value: &IDXGIOutput6) -> Self8523     fn from(value: &IDXGIOutput6) -> Self {
8524         ::std::convert::From::from(::std::clone::Clone::clone(value))
8525     }
8526 }
8527 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput4> for IDXGIOutput6 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput4>8528     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput4> {
8529         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput4>::into(self))
8530     }
8531 }
8532 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput4> for &IDXGIOutput6 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput4>8533     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput4> {
8534         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput4>::into(::std::clone::Clone::clone(self)))
8535     }
8536 }
8537 impl ::std::convert::From<IDXGIOutput6> for IDXGIOutput3 {
from(value: IDXGIOutput6) -> Self8538     fn from(value: IDXGIOutput6) -> Self {
8539         unsafe { ::std::mem::transmute(value) }
8540     }
8541 }
8542 impl ::std::convert::From<&IDXGIOutput6> for IDXGIOutput3 {
from(value: &IDXGIOutput6) -> Self8543     fn from(value: &IDXGIOutput6) -> Self {
8544         ::std::convert::From::from(::std::clone::Clone::clone(value))
8545     }
8546 }
8547 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput3> for IDXGIOutput6 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput3>8548     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput3> {
8549         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput3>::into(self))
8550     }
8551 }
8552 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput3> for &IDXGIOutput6 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput3>8553     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput3> {
8554         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput3>::into(::std::clone::Clone::clone(self)))
8555     }
8556 }
8557 impl ::std::convert::From<IDXGIOutput6> for IDXGIOutput2 {
from(value: IDXGIOutput6) -> Self8558     fn from(value: IDXGIOutput6) -> Self {
8559         unsafe { ::std::mem::transmute(value) }
8560     }
8561 }
8562 impl ::std::convert::From<&IDXGIOutput6> for IDXGIOutput2 {
from(value: &IDXGIOutput6) -> Self8563     fn from(value: &IDXGIOutput6) -> Self {
8564         ::std::convert::From::from(::std::clone::Clone::clone(value))
8565     }
8566 }
8567 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput2> for IDXGIOutput6 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput2>8568     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput2> {
8569         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput2>::into(self))
8570     }
8571 }
8572 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput2> for &IDXGIOutput6 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput2>8573     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput2> {
8574         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput2>::into(::std::clone::Clone::clone(self)))
8575     }
8576 }
8577 impl ::std::convert::From<IDXGIOutput6> for IDXGIOutput1 {
from(value: IDXGIOutput6) -> Self8578     fn from(value: IDXGIOutput6) -> Self {
8579         unsafe { ::std::mem::transmute(value) }
8580     }
8581 }
8582 impl ::std::convert::From<&IDXGIOutput6> for IDXGIOutput1 {
from(value: &IDXGIOutput6) -> Self8583     fn from(value: &IDXGIOutput6) -> Self {
8584         ::std::convert::From::from(::std::clone::Clone::clone(value))
8585     }
8586 }
8587 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput1> for IDXGIOutput6 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput1>8588     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput1> {
8589         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput1>::into(self))
8590     }
8591 }
8592 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput1> for &IDXGIOutput6 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput1>8593     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput1> {
8594         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput1>::into(::std::clone::Clone::clone(self)))
8595     }
8596 }
8597 impl ::std::convert::From<IDXGIOutput6> for IDXGIOutput {
from(value: IDXGIOutput6) -> Self8598     fn from(value: IDXGIOutput6) -> Self {
8599         unsafe { ::std::mem::transmute(value) }
8600     }
8601 }
8602 impl ::std::convert::From<&IDXGIOutput6> for IDXGIOutput {
from(value: &IDXGIOutput6) -> Self8603     fn from(value: &IDXGIOutput6) -> Self {
8604         ::std::convert::From::from(::std::clone::Clone::clone(value))
8605     }
8606 }
8607 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput> for IDXGIOutput6 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput>8608     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput> {
8609         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput>::into(self))
8610     }
8611 }
8612 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIOutput> for &IDXGIOutput6 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput>8613     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIOutput> {
8614         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIOutput>::into(::std::clone::Clone::clone(self)))
8615     }
8616 }
8617 impl ::std::convert::From<IDXGIOutput6> for IDXGIObject {
from(value: IDXGIOutput6) -> Self8618     fn from(value: IDXGIOutput6) -> Self {
8619         unsafe { ::std::mem::transmute(value) }
8620     }
8621 }
8622 impl ::std::convert::From<&IDXGIOutput6> for IDXGIObject {
from(value: &IDXGIOutput6) -> Self8623     fn from(value: &IDXGIOutput6) -> Self {
8624         ::std::convert::From::from(::std::clone::Clone::clone(value))
8625     }
8626 }
8627 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGIOutput6 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>8628     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
8629         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
8630     }
8631 }
8632 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGIOutput6 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>8633     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
8634         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
8635     }
8636 }
8637 #[repr(C)]
8638 #[doc(hidden)]
8639 pub struct IDXGIOutput6_abi(
8640     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8641     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
8642     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
8643     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
8644     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8645     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
8646     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
8647     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_OUTPUT_DESC) -> ::windows::runtime::HRESULT,
8648     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi")))] usize,
8649     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC) -> ::windows::runtime::HRESULT,
8650     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pmodetomatch: *const DXGI_MODE_DESC, pclosestmatch: *mut DXGI_MODE_DESC, pconcerneddevice: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8651     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8652     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, exclusive: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
8653     #[cfg(not(feature = "Win32_Foundation"))] usize,
8654     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr),
8655     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pgammacaps: *mut DXGI_GAMMA_CONTROL_CAPABILITIES) -> ::windows::runtime::HRESULT,
8656     #[cfg(not(feature = "Win32_Foundation"))] usize,
8657     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, parray: *const DXGI_GAMMA_CONTROL) -> ::windows::runtime::HRESULT,
8658     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, parray: *mut DXGI_GAMMA_CONTROL) -> ::windows::runtime::HRESULT,
8659     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pscanoutsurface: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8660     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdestination: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8661     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pstats: *mut DXGI_FRAME_STATISTICS) -> ::windows::runtime::HRESULT,
8662     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enumformat: DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC1) -> ::windows::runtime::HRESULT,
8663     #[cfg(not(feature = "Win32_Foundation"))] usize,
8664     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pmodetomatch: *const DXGI_MODE_DESC1, pclosestmatch: *mut DXGI_MODE_DESC1, pconcerneddevice: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8665     #[cfg(not(feature = "Win32_Foundation"))] usize,
8666     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdestination: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8667     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, ppoutputduplication: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8668     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
8669     #[cfg(not(feature = "Win32_Foundation"))] usize,
8670     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, enumformat: DXGI_FORMAT, pconcerneddevice: ::windows::runtime::RawPtr, pflags: *mut u32) -> ::windows::runtime::HRESULT,
8671     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, format: DXGI_FORMAT, colorspace: DXGI_COLOR_SPACE_TYPE, pconcerneddevice: ::windows::runtime::RawPtr, pflags: *mut u32) -> ::windows::runtime::HRESULT,
8672     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevice: ::windows::runtime::RawPtr, flags: u32, supportedformatscount: u32, psupportedformats: *const DXGI_FORMAT, ppoutputduplication: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8673     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_OUTPUT_DESC1) -> ::windows::runtime::HRESULT,
8674     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi")))] usize,
8675     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pflags: *mut u32) -> ::windows::runtime::HRESULT,
8676 );
8677 #[repr(transparent)]
8678 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
8679 pub struct IDXGIOutputDuplication(::windows::runtime::IUnknown);
8680 impl IDXGIOutputDuplication {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>8681     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
8682         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
8683     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>8684     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
8685         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
8686     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>8687     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
8688         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
8689     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>8690     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
8691         let mut result__ = ::std::option::Option::None;
8692         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
8693     }
8694     #[cfg(feature = "Win32_Foundation")]
GetDesc(&self, pdesc: *mut DXGI_OUTDUPL_DESC)8695     pub unsafe fn GetDesc(&self, pdesc: *mut DXGI_OUTDUPL_DESC) {
8696         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(pdesc)))
8697     }
8698     #[cfg(feature = "Win32_Foundation")]
AcquireNextFrame(&self, timeoutinmilliseconds: u32, pframeinfo: *mut DXGI_OUTDUPL_FRAME_INFO, ppdesktopresource: *mut ::std::option::Option<IDXGIResource>) -> ::windows::runtime::Result<()>8699     pub unsafe fn AcquireNextFrame(&self, timeoutinmilliseconds: u32, pframeinfo: *mut DXGI_OUTDUPL_FRAME_INFO, ppdesktopresource: *mut ::std::option::Option<IDXGIResource>) -> ::windows::runtime::Result<()> {
8700         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(timeoutinmilliseconds), ::std::mem::transmute(pframeinfo), ::std::mem::transmute(ppdesktopresource)).ok()
8701     }
8702     #[cfg(feature = "Win32_Foundation")]
GetFrameDirtyRects(&self, dirtyrectsbuffersize: u32, pdirtyrectsbuffer: *mut super::super::Foundation::RECT, pdirtyrectsbuffersizerequired: *mut u32) -> ::windows::runtime::Result<()>8703     pub unsafe fn GetFrameDirtyRects(&self, dirtyrectsbuffersize: u32, pdirtyrectsbuffer: *mut super::super::Foundation::RECT, pdirtyrectsbuffersizerequired: *mut u32) -> ::windows::runtime::Result<()> {
8704         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(dirtyrectsbuffersize), ::std::mem::transmute(pdirtyrectsbuffer), ::std::mem::transmute(pdirtyrectsbuffersizerequired)).ok()
8705     }
8706     #[cfg(feature = "Win32_Foundation")]
GetFrameMoveRects(&self, moverectsbuffersize: u32, pmoverectbuffer: *mut DXGI_OUTDUPL_MOVE_RECT, pmoverectsbuffersizerequired: *mut u32) -> ::windows::runtime::Result<()>8707     pub unsafe fn GetFrameMoveRects(&self, moverectsbuffersize: u32, pmoverectbuffer: *mut DXGI_OUTDUPL_MOVE_RECT, pmoverectsbuffersizerequired: *mut u32) -> ::windows::runtime::Result<()> {
8708         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(moverectsbuffersize), ::std::mem::transmute(pmoverectbuffer), ::std::mem::transmute(pmoverectsbuffersizerequired)).ok()
8709     }
8710     #[cfg(feature = "Win32_Foundation")]
GetFramePointerShape(&self, pointershapebuffersize: u32, ppointershapebuffer: *mut ::std::ffi::c_void, ppointershapebuffersizerequired: *mut u32, ppointershapeinfo: *mut DXGI_OUTDUPL_POINTER_SHAPE_INFO) -> ::windows::runtime::Result<()>8711     pub unsafe fn GetFramePointerShape(&self, pointershapebuffersize: u32, ppointershapebuffer: *mut ::std::ffi::c_void, ppointershapebuffersizerequired: *mut u32, ppointershapeinfo: *mut DXGI_OUTDUPL_POINTER_SHAPE_INFO) -> ::windows::runtime::Result<()> {
8712         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(pointershapebuffersize), ::std::mem::transmute(ppointershapebuffer), ::std::mem::transmute(ppointershapebuffersizerequired), ::std::mem::transmute(ppointershapeinfo)).ok()
8713     }
MapDesktopSurface(&self) -> ::windows::runtime::Result<DXGI_MAPPED_RECT>8714     pub unsafe fn MapDesktopSurface(&self) -> ::windows::runtime::Result<DXGI_MAPPED_RECT> {
8715         let mut result__: <DXGI_MAPPED_RECT as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8716         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_MAPPED_RECT>(result__)
8717     }
UnMapDesktopSurface(&self) -> ::windows::runtime::Result<()>8718     pub unsafe fn UnMapDesktopSurface(&self) -> ::windows::runtime::Result<()> {
8719         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self)).ok()
8720     }
ReleaseFrame(&self) -> ::windows::runtime::Result<()>8721     pub unsafe fn ReleaseFrame(&self) -> ::windows::runtime::Result<()> {
8722         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self)).ok()
8723     }
8724 }
8725 unsafe impl ::windows::runtime::Interface for IDXGIOutputDuplication {
8726     type Vtable = IDXGIOutputDuplication_abi;
8727     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(421329603, 41793, 18189, [178, 110, 168, 100, 244, 40, 49, 156]);
8728 }
8729 impl ::std::convert::From<IDXGIOutputDuplication> for ::windows::runtime::IUnknown {
from(value: IDXGIOutputDuplication) -> Self8730     fn from(value: IDXGIOutputDuplication) -> Self {
8731         unsafe { ::std::mem::transmute(value) }
8732     }
8733 }
8734 impl ::std::convert::From<&IDXGIOutputDuplication> for ::windows::runtime::IUnknown {
from(value: &IDXGIOutputDuplication) -> Self8735     fn from(value: &IDXGIOutputDuplication) -> Self {
8736         ::std::convert::From::from(::std::clone::Clone::clone(value))
8737     }
8738 }
8739 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIOutputDuplication {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>8740     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
8741         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
8742     }
8743 }
8744 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIOutputDuplication {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>8745     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
8746         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
8747     }
8748 }
8749 impl ::std::convert::From<IDXGIOutputDuplication> for IDXGIObject {
from(value: IDXGIOutputDuplication) -> Self8750     fn from(value: IDXGIOutputDuplication) -> Self {
8751         unsafe { ::std::mem::transmute(value) }
8752     }
8753 }
8754 impl ::std::convert::From<&IDXGIOutputDuplication> for IDXGIObject {
from(value: &IDXGIOutputDuplication) -> Self8755     fn from(value: &IDXGIOutputDuplication) -> Self {
8756         ::std::convert::From::from(::std::clone::Clone::clone(value))
8757     }
8758 }
8759 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGIOutputDuplication {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>8760     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
8761         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
8762     }
8763 }
8764 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGIOutputDuplication {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>8765     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
8766         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
8767     }
8768 }
8769 #[repr(C)]
8770 #[doc(hidden)]
8771 pub struct IDXGIOutputDuplication_abi(
8772     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8773     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
8774     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
8775     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
8776     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8777     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
8778     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
8779     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_OUTDUPL_DESC),
8780     #[cfg(not(feature = "Win32_Foundation"))] usize,
8781     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, timeoutinmilliseconds: u32, pframeinfo: *mut DXGI_OUTDUPL_FRAME_INFO, ppdesktopresource: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8782     #[cfg(not(feature = "Win32_Foundation"))] usize,
8783     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dirtyrectsbuffersize: u32, pdirtyrectsbuffer: *mut super::super::Foundation::RECT, pdirtyrectsbuffersizerequired: *mut u32) -> ::windows::runtime::HRESULT,
8784     #[cfg(not(feature = "Win32_Foundation"))] usize,
8785     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, moverectsbuffersize: u32, pmoverectbuffer: *mut DXGI_OUTDUPL_MOVE_RECT, pmoverectsbuffersizerequired: *mut u32) -> ::windows::runtime::HRESULT,
8786     #[cfg(not(feature = "Win32_Foundation"))] usize,
8787     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pointershapebuffersize: u32, ppointershapebuffer: *mut ::std::ffi::c_void, ppointershapebuffersizerequired: *mut u32, ppointershapeinfo: *mut DXGI_OUTDUPL_POINTER_SHAPE_INFO) -> ::windows::runtime::HRESULT,
8788     #[cfg(not(feature = "Win32_Foundation"))] usize,
8789     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, plockedrect: *mut DXGI_MAPPED_RECT) -> ::windows::runtime::HRESULT,
8790     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8791     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8792 );
8793 #[repr(transparent)]
8794 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
8795 pub struct IDXGIResource(::windows::runtime::IUnknown);
8796 impl IDXGIResource {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>8797     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
8798         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
8799     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>8800     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
8801         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
8802     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>8803     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
8804         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
8805     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>8806     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
8807         let mut result__ = ::std::option::Option::None;
8808         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
8809     }
GetDevice<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>8810     pub unsafe fn GetDevice<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
8811         let mut result__ = ::std::option::Option::None;
8812         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
8813     }
8814     #[cfg(feature = "Win32_Foundation")]
GetSharedHandle(&self) -> ::windows::runtime::Result<super::super::Foundation::HANDLE>8815     pub unsafe fn GetSharedHandle(&self) -> ::windows::runtime::Result<super::super::Foundation::HANDLE> {
8816         let mut result__: <super::super::Foundation::HANDLE as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8817         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::HANDLE>(result__)
8818     }
GetUsage(&self) -> ::windows::runtime::Result<u32>8819     pub unsafe fn GetUsage(&self) -> ::windows::runtime::Result<u32> {
8820         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8821         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
8822     }
SetEvictionPriority(&self, evictionpriority: DXGI_RESOURCE_PRIORITY) -> ::windows::runtime::Result<()>8823     pub unsafe fn SetEvictionPriority(&self, evictionpriority: DXGI_RESOURCE_PRIORITY) -> ::windows::runtime::Result<()> {
8824         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(evictionpriority)).ok()
8825     }
GetEvictionPriority(&self) -> ::windows::runtime::Result<u32>8826     pub unsafe fn GetEvictionPriority(&self) -> ::windows::runtime::Result<u32> {
8827         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8828         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
8829     }
8830 }
8831 unsafe impl ::windows::runtime::Interface for IDXGIResource {
8832     type Vtable = IDXGIResource_abi;
8833     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(56572596, 18478, 20048, [180, 31, 138, 127, 139, 216, 150, 11]);
8834 }
8835 impl ::std::convert::From<IDXGIResource> for ::windows::runtime::IUnknown {
from(value: IDXGIResource) -> Self8836     fn from(value: IDXGIResource) -> Self {
8837         unsafe { ::std::mem::transmute(value) }
8838     }
8839 }
8840 impl ::std::convert::From<&IDXGIResource> for ::windows::runtime::IUnknown {
from(value: &IDXGIResource) -> Self8841     fn from(value: &IDXGIResource) -> Self {
8842         ::std::convert::From::from(::std::clone::Clone::clone(value))
8843     }
8844 }
8845 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIResource {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>8846     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
8847         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
8848     }
8849 }
8850 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIResource {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>8851     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
8852         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
8853     }
8854 }
8855 impl ::std::convert::From<IDXGIResource> for IDXGIDeviceSubObject {
from(value: IDXGIResource) -> Self8856     fn from(value: IDXGIResource) -> Self {
8857         unsafe { ::std::mem::transmute(value) }
8858     }
8859 }
8860 impl ::std::convert::From<&IDXGIResource> for IDXGIDeviceSubObject {
from(value: &IDXGIResource) -> Self8861     fn from(value: &IDXGIResource) -> Self {
8862         ::std::convert::From::from(::std::clone::Clone::clone(value))
8863     }
8864 }
8865 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDeviceSubObject> for IDXGIResource {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject>8866     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject> {
8867         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDeviceSubObject>::into(self))
8868     }
8869 }
8870 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDeviceSubObject> for &IDXGIResource {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject>8871     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject> {
8872         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDeviceSubObject>::into(::std::clone::Clone::clone(self)))
8873     }
8874 }
8875 impl ::std::convert::From<IDXGIResource> for IDXGIObject {
from(value: IDXGIResource) -> Self8876     fn from(value: IDXGIResource) -> Self {
8877         unsafe { ::std::mem::transmute(value) }
8878     }
8879 }
8880 impl ::std::convert::From<&IDXGIResource> for IDXGIObject {
from(value: &IDXGIResource) -> Self8881     fn from(value: &IDXGIResource) -> Self {
8882         ::std::convert::From::from(::std::clone::Clone::clone(value))
8883     }
8884 }
8885 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGIResource {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>8886     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
8887         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
8888     }
8889 }
8890 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGIResource {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>8891     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
8892         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
8893     }
8894 }
8895 #[repr(C)]
8896 #[doc(hidden)]
8897 pub struct IDXGIResource_abi(
8898     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8899     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
8900     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
8901     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
8902     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8903     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
8904     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
8905     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppdevice: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
8906     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, psharedhandle: *mut super::super::Foundation::HANDLE) -> ::windows::runtime::HRESULT,
8907     #[cfg(not(feature = "Win32_Foundation"))] usize,
8908     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pusage: *mut u32) -> ::windows::runtime::HRESULT,
8909     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, evictionpriority: DXGI_RESOURCE_PRIORITY) -> ::windows::runtime::HRESULT,
8910     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pevictionpriority: *mut u32) -> ::windows::runtime::HRESULT,
8911 );
8912 #[repr(transparent)]
8913 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
8914 pub struct IDXGIResource1(::windows::runtime::IUnknown);
8915 impl IDXGIResource1 {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>8916     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
8917         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
8918     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>8919     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
8920         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
8921     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>8922     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
8923         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
8924     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>8925     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
8926         let mut result__ = ::std::option::Option::None;
8927         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
8928     }
GetDevice<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>8929     pub unsafe fn GetDevice<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
8930         let mut result__ = ::std::option::Option::None;
8931         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
8932     }
8933     #[cfg(feature = "Win32_Foundation")]
GetSharedHandle(&self) -> ::windows::runtime::Result<super::super::Foundation::HANDLE>8934     pub unsafe fn GetSharedHandle(&self) -> ::windows::runtime::Result<super::super::Foundation::HANDLE> {
8935         let mut result__: <super::super::Foundation::HANDLE as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8936         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::HANDLE>(result__)
8937     }
GetUsage(&self) -> ::windows::runtime::Result<u32>8938     pub unsafe fn GetUsage(&self) -> ::windows::runtime::Result<u32> {
8939         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8940         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
8941     }
SetEvictionPriority(&self, evictionpriority: DXGI_RESOURCE_PRIORITY) -> ::windows::runtime::Result<()>8942     pub unsafe fn SetEvictionPriority(&self, evictionpriority: DXGI_RESOURCE_PRIORITY) -> ::windows::runtime::Result<()> {
8943         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(evictionpriority)).ok()
8944     }
GetEvictionPriority(&self) -> ::windows::runtime::Result<u32>8945     pub unsafe fn GetEvictionPriority(&self) -> ::windows::runtime::Result<u32> {
8946         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8947         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
8948     }
CreateSubresourceSurface(&self, index: u32) -> ::windows::runtime::Result<IDXGISurface2>8949     pub unsafe fn CreateSubresourceSurface(&self, index: u32) -> ::windows::runtime::Result<IDXGISurface2> {
8950         let mut result__: <IDXGISurface2 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8951         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), &mut result__).from_abi::<IDXGISurface2>(result__)
8952     }
8953     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
CreateSharedHandle<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, pattributes: *const super::super::Security::SECURITY_ATTRIBUTES, dwaccess: u32, lpname: Param2) -> ::windows::runtime::Result<super::super::Foundation::HANDLE>8954     pub unsafe fn CreateSharedHandle<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, pattributes: *const super::super::Security::SECURITY_ATTRIBUTES, dwaccess: u32, lpname: Param2) -> ::windows::runtime::Result<super::super::Foundation::HANDLE> {
8955         let mut result__: <super::super::Foundation::HANDLE as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8956         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(pattributes), ::std::mem::transmute(dwaccess), lpname.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::HANDLE>(result__)
8957     }
8958 }
8959 unsafe impl ::windows::runtime::Interface for IDXGIResource1 {
8960     type Vtable = IDXGIResource1_abi;
8961     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(815141753, 17929, 19009, [153, 142, 84, 254, 86, 126, 224, 193]);
8962 }
8963 impl ::std::convert::From<IDXGIResource1> for ::windows::runtime::IUnknown {
from(value: IDXGIResource1) -> Self8964     fn from(value: IDXGIResource1) -> Self {
8965         unsafe { ::std::mem::transmute(value) }
8966     }
8967 }
8968 impl ::std::convert::From<&IDXGIResource1> for ::windows::runtime::IUnknown {
from(value: &IDXGIResource1) -> Self8969     fn from(value: &IDXGIResource1) -> Self {
8970         ::std::convert::From::from(::std::clone::Clone::clone(value))
8971     }
8972 }
8973 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGIResource1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>8974     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
8975         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
8976     }
8977 }
8978 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGIResource1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>8979     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
8980         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
8981     }
8982 }
8983 impl ::std::convert::From<IDXGIResource1> for IDXGIResource {
from(value: IDXGIResource1) -> Self8984     fn from(value: IDXGIResource1) -> Self {
8985         unsafe { ::std::mem::transmute(value) }
8986     }
8987 }
8988 impl ::std::convert::From<&IDXGIResource1> for IDXGIResource {
from(value: &IDXGIResource1) -> Self8989     fn from(value: &IDXGIResource1) -> Self {
8990         ::std::convert::From::from(::std::clone::Clone::clone(value))
8991     }
8992 }
8993 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIResource> for IDXGIResource1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIResource>8994     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIResource> {
8995         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIResource>::into(self))
8996     }
8997 }
8998 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIResource> for &IDXGIResource1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIResource>8999     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIResource> {
9000         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIResource>::into(::std::clone::Clone::clone(self)))
9001     }
9002 }
9003 impl ::std::convert::From<IDXGIResource1> for IDXGIDeviceSubObject {
from(value: IDXGIResource1) -> Self9004     fn from(value: IDXGIResource1) -> Self {
9005         unsafe { ::std::mem::transmute(value) }
9006     }
9007 }
9008 impl ::std::convert::From<&IDXGIResource1> for IDXGIDeviceSubObject {
from(value: &IDXGIResource1) -> Self9009     fn from(value: &IDXGIResource1) -> Self {
9010         ::std::convert::From::from(::std::clone::Clone::clone(value))
9011     }
9012 }
9013 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDeviceSubObject> for IDXGIResource1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject>9014     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject> {
9015         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDeviceSubObject>::into(self))
9016     }
9017 }
9018 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDeviceSubObject> for &IDXGIResource1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject>9019     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject> {
9020         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDeviceSubObject>::into(::std::clone::Clone::clone(self)))
9021     }
9022 }
9023 impl ::std::convert::From<IDXGIResource1> for IDXGIObject {
from(value: IDXGIResource1) -> Self9024     fn from(value: IDXGIResource1) -> Self {
9025         unsafe { ::std::mem::transmute(value) }
9026     }
9027 }
9028 impl ::std::convert::From<&IDXGIResource1> for IDXGIObject {
from(value: &IDXGIResource1) -> Self9029     fn from(value: &IDXGIResource1) -> Self {
9030         ::std::convert::From::from(::std::clone::Clone::clone(value))
9031     }
9032 }
9033 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGIResource1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>9034     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
9035         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
9036     }
9037 }
9038 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGIResource1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>9039     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
9040         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
9041     }
9042 }
9043 #[repr(C)]
9044 #[doc(hidden)]
9045 pub struct IDXGIResource1_abi(
9046     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9047     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
9048     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
9049     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
9050     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9051     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
9052     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
9053     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppdevice: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
9054     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, psharedhandle: *mut super::super::Foundation::HANDLE) -> ::windows::runtime::HRESULT,
9055     #[cfg(not(feature = "Win32_Foundation"))] usize,
9056     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pusage: *mut u32) -> ::windows::runtime::HRESULT,
9057     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, evictionpriority: DXGI_RESOURCE_PRIORITY) -> ::windows::runtime::HRESULT,
9058     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pevictionpriority: *mut u32) -> ::windows::runtime::HRESULT,
9059     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, ppsurface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9060     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pattributes: *const super::super::Security::SECURITY_ATTRIBUTES, dwaccess: u32, lpname: super::super::Foundation::PWSTR, phandle: *mut super::super::Foundation::HANDLE) -> ::windows::runtime::HRESULT,
9061     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Security")))] usize,
9062 );
9063 #[repr(transparent)]
9064 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
9065 pub struct IDXGISurface(::windows::runtime::IUnknown);
9066 impl IDXGISurface {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>9067     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
9068         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
9069     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>9070     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
9071         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
9072     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>9073     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
9074         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
9075     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>9076     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
9077         let mut result__ = ::std::option::Option::None;
9078         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
9079     }
GetDevice<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>9080     pub unsafe fn GetDevice<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
9081         let mut result__ = ::std::option::Option::None;
9082         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
9083     }
GetDesc(&self) -> ::windows::runtime::Result<DXGI_SURFACE_DESC>9084     pub unsafe fn GetDesc(&self) -> ::windows::runtime::Result<DXGI_SURFACE_DESC> {
9085         let mut result__: <DXGI_SURFACE_DESC as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9086         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_SURFACE_DESC>(result__)
9087     }
Map(&self, plockedrect: *mut DXGI_MAPPED_RECT, mapflags: u32) -> ::windows::runtime::Result<()>9088     pub unsafe fn Map(&self, plockedrect: *mut DXGI_MAPPED_RECT, mapflags: u32) -> ::windows::runtime::Result<()> {
9089         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(plockedrect), ::std::mem::transmute(mapflags)).ok()
9090     }
Unmap(&self) -> ::windows::runtime::Result<()>9091     pub unsafe fn Unmap(&self) -> ::windows::runtime::Result<()> {
9092         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self)).ok()
9093     }
9094 }
9095 unsafe impl ::windows::runtime::Interface for IDXGISurface {
9096     type Vtable = IDXGISurface_abi;
9097     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3405559148, 27331, 18569, [191, 71, 158, 35, 187, 210, 96, 236]);
9098 }
9099 impl ::std::convert::From<IDXGISurface> for ::windows::runtime::IUnknown {
from(value: IDXGISurface) -> Self9100     fn from(value: IDXGISurface) -> Self {
9101         unsafe { ::std::mem::transmute(value) }
9102     }
9103 }
9104 impl ::std::convert::From<&IDXGISurface> for ::windows::runtime::IUnknown {
from(value: &IDXGISurface) -> Self9105     fn from(value: &IDXGISurface) -> Self {
9106         ::std::convert::From::from(::std::clone::Clone::clone(value))
9107     }
9108 }
9109 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGISurface {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>9110     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
9111         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
9112     }
9113 }
9114 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGISurface {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>9115     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
9116         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
9117     }
9118 }
9119 impl ::std::convert::From<IDXGISurface> for IDXGIDeviceSubObject {
from(value: IDXGISurface) -> Self9120     fn from(value: IDXGISurface) -> Self {
9121         unsafe { ::std::mem::transmute(value) }
9122     }
9123 }
9124 impl ::std::convert::From<&IDXGISurface> for IDXGIDeviceSubObject {
from(value: &IDXGISurface) -> Self9125     fn from(value: &IDXGISurface) -> Self {
9126         ::std::convert::From::from(::std::clone::Clone::clone(value))
9127     }
9128 }
9129 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDeviceSubObject> for IDXGISurface {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject>9130     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject> {
9131         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDeviceSubObject>::into(self))
9132     }
9133 }
9134 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDeviceSubObject> for &IDXGISurface {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject>9135     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject> {
9136         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDeviceSubObject>::into(::std::clone::Clone::clone(self)))
9137     }
9138 }
9139 impl ::std::convert::From<IDXGISurface> for IDXGIObject {
from(value: IDXGISurface) -> Self9140     fn from(value: IDXGISurface) -> Self {
9141         unsafe { ::std::mem::transmute(value) }
9142     }
9143 }
9144 impl ::std::convert::From<&IDXGISurface> for IDXGIObject {
from(value: &IDXGISurface) -> Self9145     fn from(value: &IDXGISurface) -> Self {
9146         ::std::convert::From::from(::std::clone::Clone::clone(value))
9147     }
9148 }
9149 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGISurface {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>9150     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
9151         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
9152     }
9153 }
9154 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGISurface {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>9155     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
9156         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
9157     }
9158 }
9159 #[repr(C)]
9160 #[doc(hidden)]
9161 pub struct IDXGISurface_abi(
9162     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9163     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
9164     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
9165     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
9166     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9167     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
9168     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
9169     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppdevice: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
9170     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_SURFACE_DESC) -> ::windows::runtime::HRESULT,
9171     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, plockedrect: *mut DXGI_MAPPED_RECT, mapflags: u32) -> ::windows::runtime::HRESULT,
9172     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9173 );
9174 #[repr(transparent)]
9175 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
9176 pub struct IDXGISurface1(::windows::runtime::IUnknown);
9177 impl IDXGISurface1 {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>9178     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
9179         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
9180     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>9181     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
9182         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
9183     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>9184     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
9185         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
9186     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>9187     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
9188         let mut result__ = ::std::option::Option::None;
9189         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
9190     }
GetDevice<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>9191     pub unsafe fn GetDevice<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
9192         let mut result__ = ::std::option::Option::None;
9193         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
9194     }
GetDesc(&self) -> ::windows::runtime::Result<DXGI_SURFACE_DESC>9195     pub unsafe fn GetDesc(&self) -> ::windows::runtime::Result<DXGI_SURFACE_DESC> {
9196         let mut result__: <DXGI_SURFACE_DESC as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9197         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_SURFACE_DESC>(result__)
9198     }
Map(&self, plockedrect: *mut DXGI_MAPPED_RECT, mapflags: u32) -> ::windows::runtime::Result<()>9199     pub unsafe fn Map(&self, plockedrect: *mut DXGI_MAPPED_RECT, mapflags: u32) -> ::windows::runtime::Result<()> {
9200         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(plockedrect), ::std::mem::transmute(mapflags)).ok()
9201     }
Unmap(&self) -> ::windows::runtime::Result<()>9202     pub unsafe fn Unmap(&self) -> ::windows::runtime::Result<()> {
9203         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self)).ok()
9204     }
9205     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
GetDC<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, discard: Param0) -> ::windows::runtime::Result<super::Gdi::HDC>9206     pub unsafe fn GetDC<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, discard: Param0) -> ::windows::runtime::Result<super::Gdi::HDC> {
9207         let mut result__: <super::Gdi::HDC as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9208         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), discard.into_param().abi(), &mut result__).from_abi::<super::Gdi::HDC>(result__)
9209     }
9210     #[cfg(feature = "Win32_Foundation")]
ReleaseDC(&self, pdirtyrect: *const super::super::Foundation::RECT) -> ::windows::runtime::Result<()>9211     pub unsafe fn ReleaseDC(&self, pdirtyrect: *const super::super::Foundation::RECT) -> ::windows::runtime::Result<()> {
9212         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(pdirtyrect)).ok()
9213     }
9214 }
9215 unsafe impl ::windows::runtime::Interface for IDXGISurface1 {
9216     type Vtable = IDXGISurface1_abi;
9217     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1256599698, 25383, 19483, [128, 174, 191, 225, 46, 163, 43, 134]);
9218 }
9219 impl ::std::convert::From<IDXGISurface1> for ::windows::runtime::IUnknown {
from(value: IDXGISurface1) -> Self9220     fn from(value: IDXGISurface1) -> Self {
9221         unsafe { ::std::mem::transmute(value) }
9222     }
9223 }
9224 impl ::std::convert::From<&IDXGISurface1> for ::windows::runtime::IUnknown {
from(value: &IDXGISurface1) -> Self9225     fn from(value: &IDXGISurface1) -> Self {
9226         ::std::convert::From::from(::std::clone::Clone::clone(value))
9227     }
9228 }
9229 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGISurface1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>9230     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
9231         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
9232     }
9233 }
9234 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGISurface1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>9235     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
9236         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
9237     }
9238 }
9239 impl ::std::convert::From<IDXGISurface1> for IDXGISurface {
from(value: IDXGISurface1) -> Self9240     fn from(value: IDXGISurface1) -> Self {
9241         unsafe { ::std::mem::transmute(value) }
9242     }
9243 }
9244 impl ::std::convert::From<&IDXGISurface1> for IDXGISurface {
from(value: &IDXGISurface1) -> Self9245     fn from(value: &IDXGISurface1) -> Self {
9246         ::std::convert::From::from(::std::clone::Clone::clone(value))
9247     }
9248 }
9249 impl<'a> ::windows::runtime::IntoParam<'a, IDXGISurface> for IDXGISurface1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGISurface>9250     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGISurface> {
9251         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGISurface>::into(self))
9252     }
9253 }
9254 impl<'a> ::windows::runtime::IntoParam<'a, IDXGISurface> for &IDXGISurface1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGISurface>9255     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGISurface> {
9256         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGISurface>::into(::std::clone::Clone::clone(self)))
9257     }
9258 }
9259 impl ::std::convert::From<IDXGISurface1> for IDXGIDeviceSubObject {
from(value: IDXGISurface1) -> Self9260     fn from(value: IDXGISurface1) -> Self {
9261         unsafe { ::std::mem::transmute(value) }
9262     }
9263 }
9264 impl ::std::convert::From<&IDXGISurface1> for IDXGIDeviceSubObject {
from(value: &IDXGISurface1) -> Self9265     fn from(value: &IDXGISurface1) -> Self {
9266         ::std::convert::From::from(::std::clone::Clone::clone(value))
9267     }
9268 }
9269 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDeviceSubObject> for IDXGISurface1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject>9270     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject> {
9271         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDeviceSubObject>::into(self))
9272     }
9273 }
9274 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDeviceSubObject> for &IDXGISurface1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject>9275     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject> {
9276         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDeviceSubObject>::into(::std::clone::Clone::clone(self)))
9277     }
9278 }
9279 impl ::std::convert::From<IDXGISurface1> for IDXGIObject {
from(value: IDXGISurface1) -> Self9280     fn from(value: IDXGISurface1) -> Self {
9281         unsafe { ::std::mem::transmute(value) }
9282     }
9283 }
9284 impl ::std::convert::From<&IDXGISurface1> for IDXGIObject {
from(value: &IDXGISurface1) -> Self9285     fn from(value: &IDXGISurface1) -> Self {
9286         ::std::convert::From::from(::std::clone::Clone::clone(value))
9287     }
9288 }
9289 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGISurface1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>9290     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
9291         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
9292     }
9293 }
9294 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGISurface1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>9295     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
9296         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
9297     }
9298 }
9299 #[repr(C)]
9300 #[doc(hidden)]
9301 pub struct IDXGISurface1_abi(
9302     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9303     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
9304     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
9305     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
9306     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9307     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
9308     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
9309     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppdevice: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
9310     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_SURFACE_DESC) -> ::windows::runtime::HRESULT,
9311     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, plockedrect: *mut DXGI_MAPPED_RECT, mapflags: u32) -> ::windows::runtime::HRESULT,
9312     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9313     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, discard: super::super::Foundation::BOOL, phdc: *mut super::Gdi::HDC) -> ::windows::runtime::HRESULT,
9314     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi")))] usize,
9315     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdirtyrect: *const super::super::Foundation::RECT) -> ::windows::runtime::HRESULT,
9316     #[cfg(not(feature = "Win32_Foundation"))] usize,
9317 );
9318 #[repr(transparent)]
9319 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
9320 pub struct IDXGISurface2(::windows::runtime::IUnknown);
9321 impl IDXGISurface2 {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>9322     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
9323         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
9324     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>9325     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
9326         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
9327     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>9328     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
9329         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
9330     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>9331     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
9332         let mut result__ = ::std::option::Option::None;
9333         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
9334     }
GetDevice<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>9335     pub unsafe fn GetDevice<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
9336         let mut result__ = ::std::option::Option::None;
9337         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
9338     }
GetDesc(&self) -> ::windows::runtime::Result<DXGI_SURFACE_DESC>9339     pub unsafe fn GetDesc(&self) -> ::windows::runtime::Result<DXGI_SURFACE_DESC> {
9340         let mut result__: <DXGI_SURFACE_DESC as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9341         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_SURFACE_DESC>(result__)
9342     }
Map(&self, plockedrect: *mut DXGI_MAPPED_RECT, mapflags: u32) -> ::windows::runtime::Result<()>9343     pub unsafe fn Map(&self, plockedrect: *mut DXGI_MAPPED_RECT, mapflags: u32) -> ::windows::runtime::Result<()> {
9344         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(plockedrect), ::std::mem::transmute(mapflags)).ok()
9345     }
Unmap(&self) -> ::windows::runtime::Result<()>9346     pub unsafe fn Unmap(&self) -> ::windows::runtime::Result<()> {
9347         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self)).ok()
9348     }
9349     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
GetDC<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, discard: Param0) -> ::windows::runtime::Result<super::Gdi::HDC>9350     pub unsafe fn GetDC<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, discard: Param0) -> ::windows::runtime::Result<super::Gdi::HDC> {
9351         let mut result__: <super::Gdi::HDC as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9352         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), discard.into_param().abi(), &mut result__).from_abi::<super::Gdi::HDC>(result__)
9353     }
9354     #[cfg(feature = "Win32_Foundation")]
ReleaseDC(&self, pdirtyrect: *const super::super::Foundation::RECT) -> ::windows::runtime::Result<()>9355     pub unsafe fn ReleaseDC(&self, pdirtyrect: *const super::super::Foundation::RECT) -> ::windows::runtime::Result<()> {
9356         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(pdirtyrect)).ok()
9357     }
GetResource(&self, riid: *const ::windows::runtime::GUID, ppparentresource: *mut *mut ::std::ffi::c_void, psubresourceindex: *mut u32) -> ::windows::runtime::Result<()>9358     pub unsafe fn GetResource(&self, riid: *const ::windows::runtime::GUID, ppparentresource: *mut *mut ::std::ffi::c_void, psubresourceindex: *mut u32) -> ::windows::runtime::Result<()> {
9359         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(riid), ::std::mem::transmute(ppparentresource), ::std::mem::transmute(psubresourceindex)).ok()
9360     }
9361 }
9362 unsafe impl ::windows::runtime::Interface for IDXGISurface2 {
9363     type Vtable = IDXGISurface2_abi;
9364     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2879690461, 46615, 19640, [168, 102, 188, 68, 215, 235, 31, 162]);
9365 }
9366 impl ::std::convert::From<IDXGISurface2> for ::windows::runtime::IUnknown {
from(value: IDXGISurface2) -> Self9367     fn from(value: IDXGISurface2) -> Self {
9368         unsafe { ::std::mem::transmute(value) }
9369     }
9370 }
9371 impl ::std::convert::From<&IDXGISurface2> for ::windows::runtime::IUnknown {
from(value: &IDXGISurface2) -> Self9372     fn from(value: &IDXGISurface2) -> Self {
9373         ::std::convert::From::from(::std::clone::Clone::clone(value))
9374     }
9375 }
9376 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGISurface2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>9377     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
9378         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
9379     }
9380 }
9381 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGISurface2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>9382     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
9383         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
9384     }
9385 }
9386 impl ::std::convert::From<IDXGISurface2> for IDXGISurface1 {
from(value: IDXGISurface2) -> Self9387     fn from(value: IDXGISurface2) -> Self {
9388         unsafe { ::std::mem::transmute(value) }
9389     }
9390 }
9391 impl ::std::convert::From<&IDXGISurface2> for IDXGISurface1 {
from(value: &IDXGISurface2) -> Self9392     fn from(value: &IDXGISurface2) -> Self {
9393         ::std::convert::From::from(::std::clone::Clone::clone(value))
9394     }
9395 }
9396 impl<'a> ::windows::runtime::IntoParam<'a, IDXGISurface1> for IDXGISurface2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGISurface1>9397     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGISurface1> {
9398         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGISurface1>::into(self))
9399     }
9400 }
9401 impl<'a> ::windows::runtime::IntoParam<'a, IDXGISurface1> for &IDXGISurface2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGISurface1>9402     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGISurface1> {
9403         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGISurface1>::into(::std::clone::Clone::clone(self)))
9404     }
9405 }
9406 impl ::std::convert::From<IDXGISurface2> for IDXGISurface {
from(value: IDXGISurface2) -> Self9407     fn from(value: IDXGISurface2) -> Self {
9408         unsafe { ::std::mem::transmute(value) }
9409     }
9410 }
9411 impl ::std::convert::From<&IDXGISurface2> for IDXGISurface {
from(value: &IDXGISurface2) -> Self9412     fn from(value: &IDXGISurface2) -> Self {
9413         ::std::convert::From::from(::std::clone::Clone::clone(value))
9414     }
9415 }
9416 impl<'a> ::windows::runtime::IntoParam<'a, IDXGISurface> for IDXGISurface2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGISurface>9417     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGISurface> {
9418         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGISurface>::into(self))
9419     }
9420 }
9421 impl<'a> ::windows::runtime::IntoParam<'a, IDXGISurface> for &IDXGISurface2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGISurface>9422     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGISurface> {
9423         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGISurface>::into(::std::clone::Clone::clone(self)))
9424     }
9425 }
9426 impl ::std::convert::From<IDXGISurface2> for IDXGIDeviceSubObject {
from(value: IDXGISurface2) -> Self9427     fn from(value: IDXGISurface2) -> Self {
9428         unsafe { ::std::mem::transmute(value) }
9429     }
9430 }
9431 impl ::std::convert::From<&IDXGISurface2> for IDXGIDeviceSubObject {
from(value: &IDXGISurface2) -> Self9432     fn from(value: &IDXGISurface2) -> Self {
9433         ::std::convert::From::from(::std::clone::Clone::clone(value))
9434     }
9435 }
9436 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDeviceSubObject> for IDXGISurface2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject>9437     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject> {
9438         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDeviceSubObject>::into(self))
9439     }
9440 }
9441 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDeviceSubObject> for &IDXGISurface2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject>9442     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject> {
9443         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDeviceSubObject>::into(::std::clone::Clone::clone(self)))
9444     }
9445 }
9446 impl ::std::convert::From<IDXGISurface2> for IDXGIObject {
from(value: IDXGISurface2) -> Self9447     fn from(value: IDXGISurface2) -> Self {
9448         unsafe { ::std::mem::transmute(value) }
9449     }
9450 }
9451 impl ::std::convert::From<&IDXGISurface2> for IDXGIObject {
from(value: &IDXGISurface2) -> Self9452     fn from(value: &IDXGISurface2) -> Self {
9453         ::std::convert::From::from(::std::clone::Clone::clone(value))
9454     }
9455 }
9456 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGISurface2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>9457     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
9458         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
9459     }
9460 }
9461 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGISurface2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>9462     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
9463         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
9464     }
9465 }
9466 #[repr(C)]
9467 #[doc(hidden)]
9468 pub struct IDXGISurface2_abi(
9469     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9470     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
9471     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
9472     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
9473     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9474     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
9475     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
9476     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppdevice: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
9477     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_SURFACE_DESC) -> ::windows::runtime::HRESULT,
9478     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, plockedrect: *mut DXGI_MAPPED_RECT, mapflags: u32) -> ::windows::runtime::HRESULT,
9479     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9480     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, discard: super::super::Foundation::BOOL, phdc: *mut super::Gdi::HDC) -> ::windows::runtime::HRESULT,
9481     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi")))] usize,
9482     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdirtyrect: *const super::super::Foundation::RECT) -> ::windows::runtime::HRESULT,
9483     #[cfg(not(feature = "Win32_Foundation"))] usize,
9484     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparentresource: *mut *mut ::std::ffi::c_void, psubresourceindex: *mut u32) -> ::windows::runtime::HRESULT,
9485 );
9486 #[repr(transparent)]
9487 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
9488 pub struct IDXGISwapChain(::windows::runtime::IUnknown);
9489 impl IDXGISwapChain {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>9490     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
9491         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
9492     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>9493     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
9494         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
9495     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>9496     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
9497         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
9498     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>9499     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
9500         let mut result__ = ::std::option::Option::None;
9501         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
9502     }
GetDevice<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>9503     pub unsafe fn GetDevice<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
9504         let mut result__ = ::std::option::Option::None;
9505         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
9506     }
Present(&self, syncinterval: u32, flags: u32) -> ::windows::runtime::Result<()>9507     pub unsafe fn Present(&self, syncinterval: u32, flags: u32) -> ::windows::runtime::Result<()> {
9508         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(syncinterval), ::std::mem::transmute(flags)).ok()
9509     }
GetBuffer<T: ::windows::runtime::Interface>(&self, buffer: u32) -> ::windows::runtime::Result<T>9510     pub unsafe fn GetBuffer<T: ::windows::runtime::Interface>(&self, buffer: u32) -> ::windows::runtime::Result<T> {
9511         let mut result__ = ::std::option::Option::None;
9512         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(buffer), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
9513     }
9514     #[cfg(feature = "Win32_Foundation")]
SetFullscreenState<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, fullscreen: Param0, ptarget: Param1) -> ::windows::runtime::Result<()>9515     pub unsafe fn SetFullscreenState<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, fullscreen: Param0, ptarget: Param1) -> ::windows::runtime::Result<()> {
9516         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), fullscreen.into_param().abi(), ptarget.into_param().abi()).ok()
9517     }
9518     #[cfg(feature = "Win32_Foundation")]
GetFullscreenState(&self, pfullscreen: *mut super::super::Foundation::BOOL, pptarget: *mut ::std::option::Option<IDXGIOutput>) -> ::windows::runtime::Result<()>9519     pub unsafe fn GetFullscreenState(&self, pfullscreen: *mut super::super::Foundation::BOOL, pptarget: *mut ::std::option::Option<IDXGIOutput>) -> ::windows::runtime::Result<()> {
9520         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(pfullscreen), ::std::mem::transmute(pptarget)).ok()
9521     }
9522     #[cfg(feature = "Win32_Foundation")]
GetDesc(&self) -> ::windows::runtime::Result<DXGI_SWAP_CHAIN_DESC>9523     pub unsafe fn GetDesc(&self) -> ::windows::runtime::Result<DXGI_SWAP_CHAIN_DESC> {
9524         let mut result__: <DXGI_SWAP_CHAIN_DESC as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9525         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_SWAP_CHAIN_DESC>(result__)
9526     }
ResizeBuffers(&self, buffercount: u32, width: u32, height: u32, newformat: DXGI_FORMAT, swapchainflags: u32) -> ::windows::runtime::Result<()>9527     pub unsafe fn ResizeBuffers(&self, buffercount: u32, width: u32, height: u32, newformat: DXGI_FORMAT, swapchainflags: u32) -> ::windows::runtime::Result<()> {
9528         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(buffercount), ::std::mem::transmute(width), ::std::mem::transmute(height), ::std::mem::transmute(newformat), ::std::mem::transmute(swapchainflags)).ok()
9529     }
ResizeTarget(&self, pnewtargetparameters: *const DXGI_MODE_DESC) -> ::windows::runtime::Result<()>9530     pub unsafe fn ResizeTarget(&self, pnewtargetparameters: *const DXGI_MODE_DESC) -> ::windows::runtime::Result<()> {
9531         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(pnewtargetparameters)).ok()
9532     }
GetContainingOutput(&self) -> ::windows::runtime::Result<IDXGIOutput>9533     pub unsafe fn GetContainingOutput(&self) -> ::windows::runtime::Result<IDXGIOutput> {
9534         let mut result__: <IDXGIOutput as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9535         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDXGIOutput>(result__)
9536     }
GetFrameStatistics(&self) -> ::windows::runtime::Result<DXGI_FRAME_STATISTICS>9537     pub unsafe fn GetFrameStatistics(&self) -> ::windows::runtime::Result<DXGI_FRAME_STATISTICS> {
9538         let mut result__: <DXGI_FRAME_STATISTICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9539         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_FRAME_STATISTICS>(result__)
9540     }
GetLastPresentCount(&self) -> ::windows::runtime::Result<u32>9541     pub unsafe fn GetLastPresentCount(&self) -> ::windows::runtime::Result<u32> {
9542         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9543         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
9544     }
9545 }
9546 unsafe impl ::windows::runtime::Interface for IDXGISwapChain {
9547     type Vtable = IDXGISwapChain_abi;
9548     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(822949536, 53991, 19466, [170, 4, 106, 157, 35, 184, 136, 106]);
9549 }
9550 impl ::std::convert::From<IDXGISwapChain> for ::windows::runtime::IUnknown {
from(value: IDXGISwapChain) -> Self9551     fn from(value: IDXGISwapChain) -> Self {
9552         unsafe { ::std::mem::transmute(value) }
9553     }
9554 }
9555 impl ::std::convert::From<&IDXGISwapChain> for ::windows::runtime::IUnknown {
from(value: &IDXGISwapChain) -> Self9556     fn from(value: &IDXGISwapChain) -> Self {
9557         ::std::convert::From::from(::std::clone::Clone::clone(value))
9558     }
9559 }
9560 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGISwapChain {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>9561     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
9562         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
9563     }
9564 }
9565 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGISwapChain {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>9566     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
9567         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
9568     }
9569 }
9570 impl ::std::convert::From<IDXGISwapChain> for IDXGIDeviceSubObject {
from(value: IDXGISwapChain) -> Self9571     fn from(value: IDXGISwapChain) -> Self {
9572         unsafe { ::std::mem::transmute(value) }
9573     }
9574 }
9575 impl ::std::convert::From<&IDXGISwapChain> for IDXGIDeviceSubObject {
from(value: &IDXGISwapChain) -> Self9576     fn from(value: &IDXGISwapChain) -> Self {
9577         ::std::convert::From::from(::std::clone::Clone::clone(value))
9578     }
9579 }
9580 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDeviceSubObject> for IDXGISwapChain {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject>9581     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject> {
9582         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDeviceSubObject>::into(self))
9583     }
9584 }
9585 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDeviceSubObject> for &IDXGISwapChain {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject>9586     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject> {
9587         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDeviceSubObject>::into(::std::clone::Clone::clone(self)))
9588     }
9589 }
9590 impl ::std::convert::From<IDXGISwapChain> for IDXGIObject {
from(value: IDXGISwapChain) -> Self9591     fn from(value: IDXGISwapChain) -> Self {
9592         unsafe { ::std::mem::transmute(value) }
9593     }
9594 }
9595 impl ::std::convert::From<&IDXGISwapChain> for IDXGIObject {
from(value: &IDXGISwapChain) -> Self9596     fn from(value: &IDXGISwapChain) -> Self {
9597         ::std::convert::From::from(::std::clone::Clone::clone(value))
9598     }
9599 }
9600 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGISwapChain {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>9601     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
9602         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
9603     }
9604 }
9605 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGISwapChain {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>9606     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
9607         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
9608     }
9609 }
9610 #[repr(C)]
9611 #[doc(hidden)]
9612 pub struct IDXGISwapChain_abi(
9613     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9614     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
9615     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
9616     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
9617     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9618     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
9619     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
9620     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppdevice: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
9621     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, syncinterval: u32, flags: u32) -> ::windows::runtime::HRESULT,
9622     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, buffer: u32, riid: *const ::windows::runtime::GUID, ppsurface: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
9623     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fullscreen: super::super::Foundation::BOOL, ptarget: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9624     #[cfg(not(feature = "Win32_Foundation"))] usize,
9625     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pfullscreen: *mut super::super::Foundation::BOOL, pptarget: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9626     #[cfg(not(feature = "Win32_Foundation"))] usize,
9627     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_SWAP_CHAIN_DESC) -> ::windows::runtime::HRESULT,
9628     #[cfg(not(feature = "Win32_Foundation"))] usize,
9629     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, buffercount: u32, width: u32, height: u32, newformat: DXGI_FORMAT, swapchainflags: u32) -> ::windows::runtime::HRESULT,
9630     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pnewtargetparameters: *const DXGI_MODE_DESC) -> ::windows::runtime::HRESULT,
9631     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppoutput: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9632     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pstats: *mut DXGI_FRAME_STATISTICS) -> ::windows::runtime::HRESULT,
9633     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, plastpresentcount: *mut u32) -> ::windows::runtime::HRESULT,
9634 );
9635 #[repr(transparent)]
9636 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
9637 pub struct IDXGISwapChain1(::windows::runtime::IUnknown);
9638 impl IDXGISwapChain1 {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>9639     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
9640         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
9641     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>9642     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
9643         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
9644     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>9645     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
9646         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
9647     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>9648     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
9649         let mut result__ = ::std::option::Option::None;
9650         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
9651     }
GetDevice<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>9652     pub unsafe fn GetDevice<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
9653         let mut result__ = ::std::option::Option::None;
9654         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
9655     }
Present(&self, syncinterval: u32, flags: u32) -> ::windows::runtime::Result<()>9656     pub unsafe fn Present(&self, syncinterval: u32, flags: u32) -> ::windows::runtime::Result<()> {
9657         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(syncinterval), ::std::mem::transmute(flags)).ok()
9658     }
GetBuffer<T: ::windows::runtime::Interface>(&self, buffer: u32) -> ::windows::runtime::Result<T>9659     pub unsafe fn GetBuffer<T: ::windows::runtime::Interface>(&self, buffer: u32) -> ::windows::runtime::Result<T> {
9660         let mut result__ = ::std::option::Option::None;
9661         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(buffer), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
9662     }
9663     #[cfg(feature = "Win32_Foundation")]
SetFullscreenState<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, fullscreen: Param0, ptarget: Param1) -> ::windows::runtime::Result<()>9664     pub unsafe fn SetFullscreenState<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, fullscreen: Param0, ptarget: Param1) -> ::windows::runtime::Result<()> {
9665         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), fullscreen.into_param().abi(), ptarget.into_param().abi()).ok()
9666     }
9667     #[cfg(feature = "Win32_Foundation")]
GetFullscreenState(&self, pfullscreen: *mut super::super::Foundation::BOOL, pptarget: *mut ::std::option::Option<IDXGIOutput>) -> ::windows::runtime::Result<()>9668     pub unsafe fn GetFullscreenState(&self, pfullscreen: *mut super::super::Foundation::BOOL, pptarget: *mut ::std::option::Option<IDXGIOutput>) -> ::windows::runtime::Result<()> {
9669         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(pfullscreen), ::std::mem::transmute(pptarget)).ok()
9670     }
9671     #[cfg(feature = "Win32_Foundation")]
GetDesc(&self) -> ::windows::runtime::Result<DXGI_SWAP_CHAIN_DESC>9672     pub unsafe fn GetDesc(&self) -> ::windows::runtime::Result<DXGI_SWAP_CHAIN_DESC> {
9673         let mut result__: <DXGI_SWAP_CHAIN_DESC as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9674         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_SWAP_CHAIN_DESC>(result__)
9675     }
ResizeBuffers(&self, buffercount: u32, width: u32, height: u32, newformat: DXGI_FORMAT, swapchainflags: u32) -> ::windows::runtime::Result<()>9676     pub unsafe fn ResizeBuffers(&self, buffercount: u32, width: u32, height: u32, newformat: DXGI_FORMAT, swapchainflags: u32) -> ::windows::runtime::Result<()> {
9677         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(buffercount), ::std::mem::transmute(width), ::std::mem::transmute(height), ::std::mem::transmute(newformat), ::std::mem::transmute(swapchainflags)).ok()
9678     }
ResizeTarget(&self, pnewtargetparameters: *const DXGI_MODE_DESC) -> ::windows::runtime::Result<()>9679     pub unsafe fn ResizeTarget(&self, pnewtargetparameters: *const DXGI_MODE_DESC) -> ::windows::runtime::Result<()> {
9680         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(pnewtargetparameters)).ok()
9681     }
GetContainingOutput(&self) -> ::windows::runtime::Result<IDXGIOutput>9682     pub unsafe fn GetContainingOutput(&self) -> ::windows::runtime::Result<IDXGIOutput> {
9683         let mut result__: <IDXGIOutput as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9684         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDXGIOutput>(result__)
9685     }
GetFrameStatistics(&self) -> ::windows::runtime::Result<DXGI_FRAME_STATISTICS>9686     pub unsafe fn GetFrameStatistics(&self) -> ::windows::runtime::Result<DXGI_FRAME_STATISTICS> {
9687         let mut result__: <DXGI_FRAME_STATISTICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9688         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_FRAME_STATISTICS>(result__)
9689     }
GetLastPresentCount(&self) -> ::windows::runtime::Result<u32>9690     pub unsafe fn GetLastPresentCount(&self) -> ::windows::runtime::Result<u32> {
9691         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9692         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
9693     }
9694     #[cfg(feature = "Win32_Foundation")]
GetDesc1(&self) -> ::windows::runtime::Result<DXGI_SWAP_CHAIN_DESC1>9695     pub unsafe fn GetDesc1(&self) -> ::windows::runtime::Result<DXGI_SWAP_CHAIN_DESC1> {
9696         let mut result__: <DXGI_SWAP_CHAIN_DESC1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9697         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_SWAP_CHAIN_DESC1>(result__)
9698     }
9699     #[cfg(feature = "Win32_Foundation")]
GetFullscreenDesc(&self) -> ::windows::runtime::Result<DXGI_SWAP_CHAIN_FULLSCREEN_DESC>9700     pub unsafe fn GetFullscreenDesc(&self) -> ::windows::runtime::Result<DXGI_SWAP_CHAIN_FULLSCREEN_DESC> {
9701         let mut result__: <DXGI_SWAP_CHAIN_FULLSCREEN_DESC as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9702         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_SWAP_CHAIN_FULLSCREEN_DESC>(result__)
9703     }
9704     #[cfg(feature = "Win32_Foundation")]
GetHwnd(&self) -> ::windows::runtime::Result<super::super::Foundation::HWND>9705     pub unsafe fn GetHwnd(&self) -> ::windows::runtime::Result<super::super::Foundation::HWND> {
9706         let mut result__: <super::super::Foundation::HWND as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9707         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::HWND>(result__)
9708     }
GetCoreWindow<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>9709     pub unsafe fn GetCoreWindow<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
9710         let mut result__ = ::std::option::Option::None;
9711         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
9712     }
9713     #[cfg(feature = "Win32_Foundation")]
Present1(&self, syncinterval: u32, presentflags: u32, ppresentparameters: *const DXGI_PRESENT_PARAMETERS) -> ::windows::runtime::Result<()>9714     pub unsafe fn Present1(&self, syncinterval: u32, presentflags: u32, ppresentparameters: *const DXGI_PRESENT_PARAMETERS) -> ::windows::runtime::Result<()> {
9715         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), ::std::mem::transmute(syncinterval), ::std::mem::transmute(presentflags), ::std::mem::transmute(ppresentparameters)).ok()
9716     }
9717     #[cfg(feature = "Win32_Foundation")]
IsTemporaryMonoSupported(&self) -> super::super::Foundation::BOOL9718     pub unsafe fn IsTemporaryMonoSupported(&self) -> super::super::Foundation::BOOL {
9719         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self)))
9720     }
GetRestrictToOutput(&self) -> ::windows::runtime::Result<IDXGIOutput>9721     pub unsafe fn GetRestrictToOutput(&self) -> ::windows::runtime::Result<IDXGIOutput> {
9722         let mut result__: <IDXGIOutput as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9723         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDXGIOutput>(result__)
9724     }
SetBackgroundColor(&self, pcolor: *const DXGI_RGBA) -> ::windows::runtime::Result<()>9725     pub unsafe fn SetBackgroundColor(&self, pcolor: *const DXGI_RGBA) -> ::windows::runtime::Result<()> {
9726         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), ::std::mem::transmute(pcolor)).ok()
9727     }
GetBackgroundColor(&self) -> ::windows::runtime::Result<DXGI_RGBA>9728     pub unsafe fn GetBackgroundColor(&self) -> ::windows::runtime::Result<DXGI_RGBA> {
9729         let mut result__: <DXGI_RGBA as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9730         (::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_RGBA>(result__)
9731     }
SetRotation(&self, rotation: DXGI_MODE_ROTATION) -> ::windows::runtime::Result<()>9732     pub unsafe fn SetRotation(&self, rotation: DXGI_MODE_ROTATION) -> ::windows::runtime::Result<()> {
9733         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), ::std::mem::transmute(rotation)).ok()
9734     }
GetRotation(&self) -> ::windows::runtime::Result<DXGI_MODE_ROTATION>9735     pub unsafe fn GetRotation(&self) -> ::windows::runtime::Result<DXGI_MODE_ROTATION> {
9736         let mut result__: <DXGI_MODE_ROTATION as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9737         (::windows::runtime::Interface::vtable(self).28)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_MODE_ROTATION>(result__)
9738     }
9739 }
9740 unsafe impl ::windows::runtime::Interface for IDXGISwapChain1 {
9741     type Vtable = IDXGISwapChain1_abi;
9742     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2030716407, 3394, 18550, [152, 58, 10, 85, 207, 230, 244, 170]);
9743 }
9744 impl ::std::convert::From<IDXGISwapChain1> for ::windows::runtime::IUnknown {
from(value: IDXGISwapChain1) -> Self9745     fn from(value: IDXGISwapChain1) -> Self {
9746         unsafe { ::std::mem::transmute(value) }
9747     }
9748 }
9749 impl ::std::convert::From<&IDXGISwapChain1> for ::windows::runtime::IUnknown {
from(value: &IDXGISwapChain1) -> Self9750     fn from(value: &IDXGISwapChain1) -> Self {
9751         ::std::convert::From::from(::std::clone::Clone::clone(value))
9752     }
9753 }
9754 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGISwapChain1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>9755     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
9756         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
9757     }
9758 }
9759 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGISwapChain1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>9760     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
9761         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
9762     }
9763 }
9764 impl ::std::convert::From<IDXGISwapChain1> for IDXGISwapChain {
from(value: IDXGISwapChain1) -> Self9765     fn from(value: IDXGISwapChain1) -> Self {
9766         unsafe { ::std::mem::transmute(value) }
9767     }
9768 }
9769 impl ::std::convert::From<&IDXGISwapChain1> for IDXGISwapChain {
from(value: &IDXGISwapChain1) -> Self9770     fn from(value: &IDXGISwapChain1) -> Self {
9771         ::std::convert::From::from(::std::clone::Clone::clone(value))
9772     }
9773 }
9774 impl<'a> ::windows::runtime::IntoParam<'a, IDXGISwapChain> for IDXGISwapChain1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain>9775     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain> {
9776         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGISwapChain>::into(self))
9777     }
9778 }
9779 impl<'a> ::windows::runtime::IntoParam<'a, IDXGISwapChain> for &IDXGISwapChain1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain>9780     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain> {
9781         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGISwapChain>::into(::std::clone::Clone::clone(self)))
9782     }
9783 }
9784 impl ::std::convert::From<IDXGISwapChain1> for IDXGIDeviceSubObject {
from(value: IDXGISwapChain1) -> Self9785     fn from(value: IDXGISwapChain1) -> Self {
9786         unsafe { ::std::mem::transmute(value) }
9787     }
9788 }
9789 impl ::std::convert::From<&IDXGISwapChain1> for IDXGIDeviceSubObject {
from(value: &IDXGISwapChain1) -> Self9790     fn from(value: &IDXGISwapChain1) -> Self {
9791         ::std::convert::From::from(::std::clone::Clone::clone(value))
9792     }
9793 }
9794 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDeviceSubObject> for IDXGISwapChain1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject>9795     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject> {
9796         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDeviceSubObject>::into(self))
9797     }
9798 }
9799 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDeviceSubObject> for &IDXGISwapChain1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject>9800     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject> {
9801         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDeviceSubObject>::into(::std::clone::Clone::clone(self)))
9802     }
9803 }
9804 impl ::std::convert::From<IDXGISwapChain1> for IDXGIObject {
from(value: IDXGISwapChain1) -> Self9805     fn from(value: IDXGISwapChain1) -> Self {
9806         unsafe { ::std::mem::transmute(value) }
9807     }
9808 }
9809 impl ::std::convert::From<&IDXGISwapChain1> for IDXGIObject {
from(value: &IDXGISwapChain1) -> Self9810     fn from(value: &IDXGISwapChain1) -> Self {
9811         ::std::convert::From::from(::std::clone::Clone::clone(value))
9812     }
9813 }
9814 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGISwapChain1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>9815     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
9816         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
9817     }
9818 }
9819 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGISwapChain1 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>9820     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
9821         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
9822     }
9823 }
9824 #[repr(C)]
9825 #[doc(hidden)]
9826 pub struct IDXGISwapChain1_abi(
9827     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9828     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
9829     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
9830     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
9831     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9832     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
9833     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
9834     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppdevice: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
9835     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, syncinterval: u32, flags: u32) -> ::windows::runtime::HRESULT,
9836     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, buffer: u32, riid: *const ::windows::runtime::GUID, ppsurface: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
9837     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fullscreen: super::super::Foundation::BOOL, ptarget: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9838     #[cfg(not(feature = "Win32_Foundation"))] usize,
9839     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pfullscreen: *mut super::super::Foundation::BOOL, pptarget: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9840     #[cfg(not(feature = "Win32_Foundation"))] usize,
9841     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_SWAP_CHAIN_DESC) -> ::windows::runtime::HRESULT,
9842     #[cfg(not(feature = "Win32_Foundation"))] usize,
9843     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, buffercount: u32, width: u32, height: u32, newformat: DXGI_FORMAT, swapchainflags: u32) -> ::windows::runtime::HRESULT,
9844     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pnewtargetparameters: *const DXGI_MODE_DESC) -> ::windows::runtime::HRESULT,
9845     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppoutput: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9846     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pstats: *mut DXGI_FRAME_STATISTICS) -> ::windows::runtime::HRESULT,
9847     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, plastpresentcount: *mut u32) -> ::windows::runtime::HRESULT,
9848     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_SWAP_CHAIN_DESC1) -> ::windows::runtime::HRESULT,
9849     #[cfg(not(feature = "Win32_Foundation"))] usize,
9850     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_SWAP_CHAIN_FULLSCREEN_DESC) -> ::windows::runtime::HRESULT,
9851     #[cfg(not(feature = "Win32_Foundation"))] usize,
9852     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, phwnd: *mut super::super::Foundation::HWND) -> ::windows::runtime::HRESULT,
9853     #[cfg(not(feature = "Win32_Foundation"))] usize,
9854     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, refiid: *const ::windows::runtime::GUID, ppunk: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
9855     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, syncinterval: u32, presentflags: u32, ppresentparameters: *const DXGI_PRESENT_PARAMETERS) -> ::windows::runtime::HRESULT,
9856     #[cfg(not(feature = "Win32_Foundation"))] usize,
9857     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
9858     #[cfg(not(feature = "Win32_Foundation"))] usize,
9859     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pprestricttooutput: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9860     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcolor: *const DXGI_RGBA) -> ::windows::runtime::HRESULT,
9861     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcolor: *mut DXGI_RGBA) -> ::windows::runtime::HRESULT,
9862     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, rotation: DXGI_MODE_ROTATION) -> ::windows::runtime::HRESULT,
9863     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, protation: *mut DXGI_MODE_ROTATION) -> ::windows::runtime::HRESULT,
9864 );
9865 #[repr(transparent)]
9866 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
9867 pub struct IDXGISwapChain2(::windows::runtime::IUnknown);
9868 impl IDXGISwapChain2 {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>9869     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
9870         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
9871     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>9872     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
9873         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
9874     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>9875     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
9876         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
9877     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>9878     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
9879         let mut result__ = ::std::option::Option::None;
9880         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
9881     }
GetDevice<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>9882     pub unsafe fn GetDevice<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
9883         let mut result__ = ::std::option::Option::None;
9884         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
9885     }
Present(&self, syncinterval: u32, flags: u32) -> ::windows::runtime::Result<()>9886     pub unsafe fn Present(&self, syncinterval: u32, flags: u32) -> ::windows::runtime::Result<()> {
9887         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(syncinterval), ::std::mem::transmute(flags)).ok()
9888     }
GetBuffer<T: ::windows::runtime::Interface>(&self, buffer: u32) -> ::windows::runtime::Result<T>9889     pub unsafe fn GetBuffer<T: ::windows::runtime::Interface>(&self, buffer: u32) -> ::windows::runtime::Result<T> {
9890         let mut result__ = ::std::option::Option::None;
9891         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(buffer), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
9892     }
9893     #[cfg(feature = "Win32_Foundation")]
SetFullscreenState<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, fullscreen: Param0, ptarget: Param1) -> ::windows::runtime::Result<()>9894     pub unsafe fn SetFullscreenState<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, fullscreen: Param0, ptarget: Param1) -> ::windows::runtime::Result<()> {
9895         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), fullscreen.into_param().abi(), ptarget.into_param().abi()).ok()
9896     }
9897     #[cfg(feature = "Win32_Foundation")]
GetFullscreenState(&self, pfullscreen: *mut super::super::Foundation::BOOL, pptarget: *mut ::std::option::Option<IDXGIOutput>) -> ::windows::runtime::Result<()>9898     pub unsafe fn GetFullscreenState(&self, pfullscreen: *mut super::super::Foundation::BOOL, pptarget: *mut ::std::option::Option<IDXGIOutput>) -> ::windows::runtime::Result<()> {
9899         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(pfullscreen), ::std::mem::transmute(pptarget)).ok()
9900     }
9901     #[cfg(feature = "Win32_Foundation")]
GetDesc(&self) -> ::windows::runtime::Result<DXGI_SWAP_CHAIN_DESC>9902     pub unsafe fn GetDesc(&self) -> ::windows::runtime::Result<DXGI_SWAP_CHAIN_DESC> {
9903         let mut result__: <DXGI_SWAP_CHAIN_DESC as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9904         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_SWAP_CHAIN_DESC>(result__)
9905     }
ResizeBuffers(&self, buffercount: u32, width: u32, height: u32, newformat: DXGI_FORMAT, swapchainflags: u32) -> ::windows::runtime::Result<()>9906     pub unsafe fn ResizeBuffers(&self, buffercount: u32, width: u32, height: u32, newformat: DXGI_FORMAT, swapchainflags: u32) -> ::windows::runtime::Result<()> {
9907         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(buffercount), ::std::mem::transmute(width), ::std::mem::transmute(height), ::std::mem::transmute(newformat), ::std::mem::transmute(swapchainflags)).ok()
9908     }
ResizeTarget(&self, pnewtargetparameters: *const DXGI_MODE_DESC) -> ::windows::runtime::Result<()>9909     pub unsafe fn ResizeTarget(&self, pnewtargetparameters: *const DXGI_MODE_DESC) -> ::windows::runtime::Result<()> {
9910         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(pnewtargetparameters)).ok()
9911     }
GetContainingOutput(&self) -> ::windows::runtime::Result<IDXGIOutput>9912     pub unsafe fn GetContainingOutput(&self) -> ::windows::runtime::Result<IDXGIOutput> {
9913         let mut result__: <IDXGIOutput as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9914         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDXGIOutput>(result__)
9915     }
GetFrameStatistics(&self) -> ::windows::runtime::Result<DXGI_FRAME_STATISTICS>9916     pub unsafe fn GetFrameStatistics(&self) -> ::windows::runtime::Result<DXGI_FRAME_STATISTICS> {
9917         let mut result__: <DXGI_FRAME_STATISTICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9918         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_FRAME_STATISTICS>(result__)
9919     }
GetLastPresentCount(&self) -> ::windows::runtime::Result<u32>9920     pub unsafe fn GetLastPresentCount(&self) -> ::windows::runtime::Result<u32> {
9921         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9922         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
9923     }
9924     #[cfg(feature = "Win32_Foundation")]
GetDesc1(&self) -> ::windows::runtime::Result<DXGI_SWAP_CHAIN_DESC1>9925     pub unsafe fn GetDesc1(&self) -> ::windows::runtime::Result<DXGI_SWAP_CHAIN_DESC1> {
9926         let mut result__: <DXGI_SWAP_CHAIN_DESC1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9927         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_SWAP_CHAIN_DESC1>(result__)
9928     }
9929     #[cfg(feature = "Win32_Foundation")]
GetFullscreenDesc(&self) -> ::windows::runtime::Result<DXGI_SWAP_CHAIN_FULLSCREEN_DESC>9930     pub unsafe fn GetFullscreenDesc(&self) -> ::windows::runtime::Result<DXGI_SWAP_CHAIN_FULLSCREEN_DESC> {
9931         let mut result__: <DXGI_SWAP_CHAIN_FULLSCREEN_DESC as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9932         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_SWAP_CHAIN_FULLSCREEN_DESC>(result__)
9933     }
9934     #[cfg(feature = "Win32_Foundation")]
GetHwnd(&self) -> ::windows::runtime::Result<super::super::Foundation::HWND>9935     pub unsafe fn GetHwnd(&self) -> ::windows::runtime::Result<super::super::Foundation::HWND> {
9936         let mut result__: <super::super::Foundation::HWND as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9937         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::HWND>(result__)
9938     }
GetCoreWindow<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>9939     pub unsafe fn GetCoreWindow<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
9940         let mut result__ = ::std::option::Option::None;
9941         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
9942     }
9943     #[cfg(feature = "Win32_Foundation")]
Present1(&self, syncinterval: u32, presentflags: u32, ppresentparameters: *const DXGI_PRESENT_PARAMETERS) -> ::windows::runtime::Result<()>9944     pub unsafe fn Present1(&self, syncinterval: u32, presentflags: u32, ppresentparameters: *const DXGI_PRESENT_PARAMETERS) -> ::windows::runtime::Result<()> {
9945         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), ::std::mem::transmute(syncinterval), ::std::mem::transmute(presentflags), ::std::mem::transmute(ppresentparameters)).ok()
9946     }
9947     #[cfg(feature = "Win32_Foundation")]
IsTemporaryMonoSupported(&self) -> super::super::Foundation::BOOL9948     pub unsafe fn IsTemporaryMonoSupported(&self) -> super::super::Foundation::BOOL {
9949         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self)))
9950     }
GetRestrictToOutput(&self) -> ::windows::runtime::Result<IDXGIOutput>9951     pub unsafe fn GetRestrictToOutput(&self) -> ::windows::runtime::Result<IDXGIOutput> {
9952         let mut result__: <IDXGIOutput as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9953         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDXGIOutput>(result__)
9954     }
SetBackgroundColor(&self, pcolor: *const DXGI_RGBA) -> ::windows::runtime::Result<()>9955     pub unsafe fn SetBackgroundColor(&self, pcolor: *const DXGI_RGBA) -> ::windows::runtime::Result<()> {
9956         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), ::std::mem::transmute(pcolor)).ok()
9957     }
GetBackgroundColor(&self) -> ::windows::runtime::Result<DXGI_RGBA>9958     pub unsafe fn GetBackgroundColor(&self) -> ::windows::runtime::Result<DXGI_RGBA> {
9959         let mut result__: <DXGI_RGBA as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9960         (::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_RGBA>(result__)
9961     }
SetRotation(&self, rotation: DXGI_MODE_ROTATION) -> ::windows::runtime::Result<()>9962     pub unsafe fn SetRotation(&self, rotation: DXGI_MODE_ROTATION) -> ::windows::runtime::Result<()> {
9963         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), ::std::mem::transmute(rotation)).ok()
9964     }
GetRotation(&self) -> ::windows::runtime::Result<DXGI_MODE_ROTATION>9965     pub unsafe fn GetRotation(&self) -> ::windows::runtime::Result<DXGI_MODE_ROTATION> {
9966         let mut result__: <DXGI_MODE_ROTATION as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9967         (::windows::runtime::Interface::vtable(self).28)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_MODE_ROTATION>(result__)
9968     }
SetSourceSize(&self, width: u32, height: u32) -> ::windows::runtime::Result<()>9969     pub unsafe fn SetSourceSize(&self, width: u32, height: u32) -> ::windows::runtime::Result<()> {
9970         (::windows::runtime::Interface::vtable(self).29)(::std::mem::transmute_copy(self), ::std::mem::transmute(width), ::std::mem::transmute(height)).ok()
9971     }
GetSourceSize(&self, pwidth: *mut u32, pheight: *mut u32) -> ::windows::runtime::Result<()>9972     pub unsafe fn GetSourceSize(&self, pwidth: *mut u32, pheight: *mut u32) -> ::windows::runtime::Result<()> {
9973         (::windows::runtime::Interface::vtable(self).30)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwidth), ::std::mem::transmute(pheight)).ok()
9974     }
SetMaximumFrameLatency(&self, maxlatency: u32) -> ::windows::runtime::Result<()>9975     pub unsafe fn SetMaximumFrameLatency(&self, maxlatency: u32) -> ::windows::runtime::Result<()> {
9976         (::windows::runtime::Interface::vtable(self).31)(::std::mem::transmute_copy(self), ::std::mem::transmute(maxlatency)).ok()
9977     }
GetMaximumFrameLatency(&self) -> ::windows::runtime::Result<u32>9978     pub unsafe fn GetMaximumFrameLatency(&self) -> ::windows::runtime::Result<u32> {
9979         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9980         (::windows::runtime::Interface::vtable(self).32)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
9981     }
9982     #[cfg(feature = "Win32_Foundation")]
GetFrameLatencyWaitableObject(&self) -> super::super::Foundation::HANDLE9983     pub unsafe fn GetFrameLatencyWaitableObject(&self) -> super::super::Foundation::HANDLE {
9984         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).33)(::std::mem::transmute_copy(self)))
9985     }
SetMatrixTransform(&self, pmatrix: *const DXGI_MATRIX_3X2_F) -> ::windows::runtime::Result<()>9986     pub unsafe fn SetMatrixTransform(&self, pmatrix: *const DXGI_MATRIX_3X2_F) -> ::windows::runtime::Result<()> {
9987         (::windows::runtime::Interface::vtable(self).34)(::std::mem::transmute_copy(self), ::std::mem::transmute(pmatrix)).ok()
9988     }
GetMatrixTransform(&self) -> ::windows::runtime::Result<DXGI_MATRIX_3X2_F>9989     pub unsafe fn GetMatrixTransform(&self) -> ::windows::runtime::Result<DXGI_MATRIX_3X2_F> {
9990         let mut result__: <DXGI_MATRIX_3X2_F as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9991         (::windows::runtime::Interface::vtable(self).35)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_MATRIX_3X2_F>(result__)
9992     }
9993 }
9994 unsafe impl ::windows::runtime::Interface for IDXGISwapChain2 {
9995     type Vtable = IDXGISwapChain2_abi;
9996     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2831035076, 6559, 18758, [179, 49, 121, 89, 159, 185, 141, 231]);
9997 }
9998 impl ::std::convert::From<IDXGISwapChain2> for ::windows::runtime::IUnknown {
from(value: IDXGISwapChain2) -> Self9999     fn from(value: IDXGISwapChain2) -> Self {
10000         unsafe { ::std::mem::transmute(value) }
10001     }
10002 }
10003 impl ::std::convert::From<&IDXGISwapChain2> for ::windows::runtime::IUnknown {
from(value: &IDXGISwapChain2) -> Self10004     fn from(value: &IDXGISwapChain2) -> Self {
10005         ::std::convert::From::from(::std::clone::Clone::clone(value))
10006     }
10007 }
10008 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGISwapChain2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>10009     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
10010         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
10011     }
10012 }
10013 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGISwapChain2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>10014     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
10015         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
10016     }
10017 }
10018 impl ::std::convert::From<IDXGISwapChain2> for IDXGISwapChain1 {
from(value: IDXGISwapChain2) -> Self10019     fn from(value: IDXGISwapChain2) -> Self {
10020         unsafe { ::std::mem::transmute(value) }
10021     }
10022 }
10023 impl ::std::convert::From<&IDXGISwapChain2> for IDXGISwapChain1 {
from(value: &IDXGISwapChain2) -> Self10024     fn from(value: &IDXGISwapChain2) -> Self {
10025         ::std::convert::From::from(::std::clone::Clone::clone(value))
10026     }
10027 }
10028 impl<'a> ::windows::runtime::IntoParam<'a, IDXGISwapChain1> for IDXGISwapChain2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain1>10029     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain1> {
10030         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGISwapChain1>::into(self))
10031     }
10032 }
10033 impl<'a> ::windows::runtime::IntoParam<'a, IDXGISwapChain1> for &IDXGISwapChain2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain1>10034     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain1> {
10035         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGISwapChain1>::into(::std::clone::Clone::clone(self)))
10036     }
10037 }
10038 impl ::std::convert::From<IDXGISwapChain2> for IDXGISwapChain {
from(value: IDXGISwapChain2) -> Self10039     fn from(value: IDXGISwapChain2) -> Self {
10040         unsafe { ::std::mem::transmute(value) }
10041     }
10042 }
10043 impl ::std::convert::From<&IDXGISwapChain2> for IDXGISwapChain {
from(value: &IDXGISwapChain2) -> Self10044     fn from(value: &IDXGISwapChain2) -> Self {
10045         ::std::convert::From::from(::std::clone::Clone::clone(value))
10046     }
10047 }
10048 impl<'a> ::windows::runtime::IntoParam<'a, IDXGISwapChain> for IDXGISwapChain2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain>10049     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain> {
10050         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGISwapChain>::into(self))
10051     }
10052 }
10053 impl<'a> ::windows::runtime::IntoParam<'a, IDXGISwapChain> for &IDXGISwapChain2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain>10054     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain> {
10055         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGISwapChain>::into(::std::clone::Clone::clone(self)))
10056     }
10057 }
10058 impl ::std::convert::From<IDXGISwapChain2> for IDXGIDeviceSubObject {
from(value: IDXGISwapChain2) -> Self10059     fn from(value: IDXGISwapChain2) -> Self {
10060         unsafe { ::std::mem::transmute(value) }
10061     }
10062 }
10063 impl ::std::convert::From<&IDXGISwapChain2> for IDXGIDeviceSubObject {
from(value: &IDXGISwapChain2) -> Self10064     fn from(value: &IDXGISwapChain2) -> Self {
10065         ::std::convert::From::from(::std::clone::Clone::clone(value))
10066     }
10067 }
10068 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDeviceSubObject> for IDXGISwapChain2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject>10069     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject> {
10070         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDeviceSubObject>::into(self))
10071     }
10072 }
10073 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDeviceSubObject> for &IDXGISwapChain2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject>10074     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject> {
10075         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDeviceSubObject>::into(::std::clone::Clone::clone(self)))
10076     }
10077 }
10078 impl ::std::convert::From<IDXGISwapChain2> for IDXGIObject {
from(value: IDXGISwapChain2) -> Self10079     fn from(value: IDXGISwapChain2) -> Self {
10080         unsafe { ::std::mem::transmute(value) }
10081     }
10082 }
10083 impl ::std::convert::From<&IDXGISwapChain2> for IDXGIObject {
from(value: &IDXGISwapChain2) -> Self10084     fn from(value: &IDXGISwapChain2) -> Self {
10085         ::std::convert::From::from(::std::clone::Clone::clone(value))
10086     }
10087 }
10088 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGISwapChain2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>10089     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
10090         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
10091     }
10092 }
10093 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGISwapChain2 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>10094     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
10095         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
10096     }
10097 }
10098 #[repr(C)]
10099 #[doc(hidden)]
10100 pub struct IDXGISwapChain2_abi(
10101     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10102     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10103     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10104     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
10105     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10106     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
10107     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
10108     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppdevice: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
10109     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, syncinterval: u32, flags: u32) -> ::windows::runtime::HRESULT,
10110     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, buffer: u32, riid: *const ::windows::runtime::GUID, ppsurface: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
10111     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fullscreen: super::super::Foundation::BOOL, ptarget: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10112     #[cfg(not(feature = "Win32_Foundation"))] usize,
10113     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pfullscreen: *mut super::super::Foundation::BOOL, pptarget: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10114     #[cfg(not(feature = "Win32_Foundation"))] usize,
10115     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_SWAP_CHAIN_DESC) -> ::windows::runtime::HRESULT,
10116     #[cfg(not(feature = "Win32_Foundation"))] usize,
10117     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, buffercount: u32, width: u32, height: u32, newformat: DXGI_FORMAT, swapchainflags: u32) -> ::windows::runtime::HRESULT,
10118     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pnewtargetparameters: *const DXGI_MODE_DESC) -> ::windows::runtime::HRESULT,
10119     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppoutput: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10120     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pstats: *mut DXGI_FRAME_STATISTICS) -> ::windows::runtime::HRESULT,
10121     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, plastpresentcount: *mut u32) -> ::windows::runtime::HRESULT,
10122     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_SWAP_CHAIN_DESC1) -> ::windows::runtime::HRESULT,
10123     #[cfg(not(feature = "Win32_Foundation"))] usize,
10124     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_SWAP_CHAIN_FULLSCREEN_DESC) -> ::windows::runtime::HRESULT,
10125     #[cfg(not(feature = "Win32_Foundation"))] usize,
10126     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, phwnd: *mut super::super::Foundation::HWND) -> ::windows::runtime::HRESULT,
10127     #[cfg(not(feature = "Win32_Foundation"))] usize,
10128     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, refiid: *const ::windows::runtime::GUID, ppunk: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
10129     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, syncinterval: u32, presentflags: u32, ppresentparameters: *const DXGI_PRESENT_PARAMETERS) -> ::windows::runtime::HRESULT,
10130     #[cfg(not(feature = "Win32_Foundation"))] usize,
10131     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
10132     #[cfg(not(feature = "Win32_Foundation"))] usize,
10133     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pprestricttooutput: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10134     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcolor: *const DXGI_RGBA) -> ::windows::runtime::HRESULT,
10135     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcolor: *mut DXGI_RGBA) -> ::windows::runtime::HRESULT,
10136     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, rotation: DXGI_MODE_ROTATION) -> ::windows::runtime::HRESULT,
10137     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, protation: *mut DXGI_MODE_ROTATION) -> ::windows::runtime::HRESULT,
10138     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, width: u32, height: u32) -> ::windows::runtime::HRESULT,
10139     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwidth: *mut u32, pheight: *mut u32) -> ::windows::runtime::HRESULT,
10140     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, maxlatency: u32) -> ::windows::runtime::HRESULT,
10141     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pmaxlatency: *mut u32) -> ::windows::runtime::HRESULT,
10142     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::HANDLE,
10143     #[cfg(not(feature = "Win32_Foundation"))] usize,
10144     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pmatrix: *const DXGI_MATRIX_3X2_F) -> ::windows::runtime::HRESULT,
10145     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pmatrix: *mut DXGI_MATRIX_3X2_F) -> ::windows::runtime::HRESULT,
10146 );
10147 #[repr(transparent)]
10148 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
10149 pub struct IDXGISwapChain3(::windows::runtime::IUnknown);
10150 impl IDXGISwapChain3 {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>10151     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
10152         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
10153     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>10154     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
10155         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
10156     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>10157     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
10158         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
10159     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>10160     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
10161         let mut result__ = ::std::option::Option::None;
10162         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
10163     }
GetDevice<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>10164     pub unsafe fn GetDevice<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
10165         let mut result__ = ::std::option::Option::None;
10166         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
10167     }
Present(&self, syncinterval: u32, flags: u32) -> ::windows::runtime::Result<()>10168     pub unsafe fn Present(&self, syncinterval: u32, flags: u32) -> ::windows::runtime::Result<()> {
10169         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(syncinterval), ::std::mem::transmute(flags)).ok()
10170     }
GetBuffer<T: ::windows::runtime::Interface>(&self, buffer: u32) -> ::windows::runtime::Result<T>10171     pub unsafe fn GetBuffer<T: ::windows::runtime::Interface>(&self, buffer: u32) -> ::windows::runtime::Result<T> {
10172         let mut result__ = ::std::option::Option::None;
10173         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(buffer), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
10174     }
10175     #[cfg(feature = "Win32_Foundation")]
SetFullscreenState<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, fullscreen: Param0, ptarget: Param1) -> ::windows::runtime::Result<()>10176     pub unsafe fn SetFullscreenState<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, fullscreen: Param0, ptarget: Param1) -> ::windows::runtime::Result<()> {
10177         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), fullscreen.into_param().abi(), ptarget.into_param().abi()).ok()
10178     }
10179     #[cfg(feature = "Win32_Foundation")]
GetFullscreenState(&self, pfullscreen: *mut super::super::Foundation::BOOL, pptarget: *mut ::std::option::Option<IDXGIOutput>) -> ::windows::runtime::Result<()>10180     pub unsafe fn GetFullscreenState(&self, pfullscreen: *mut super::super::Foundation::BOOL, pptarget: *mut ::std::option::Option<IDXGIOutput>) -> ::windows::runtime::Result<()> {
10181         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(pfullscreen), ::std::mem::transmute(pptarget)).ok()
10182     }
10183     #[cfg(feature = "Win32_Foundation")]
GetDesc(&self) -> ::windows::runtime::Result<DXGI_SWAP_CHAIN_DESC>10184     pub unsafe fn GetDesc(&self) -> ::windows::runtime::Result<DXGI_SWAP_CHAIN_DESC> {
10185         let mut result__: <DXGI_SWAP_CHAIN_DESC as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10186         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_SWAP_CHAIN_DESC>(result__)
10187     }
ResizeBuffers(&self, buffercount: u32, width: u32, height: u32, newformat: DXGI_FORMAT, swapchainflags: u32) -> ::windows::runtime::Result<()>10188     pub unsafe fn ResizeBuffers(&self, buffercount: u32, width: u32, height: u32, newformat: DXGI_FORMAT, swapchainflags: u32) -> ::windows::runtime::Result<()> {
10189         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(buffercount), ::std::mem::transmute(width), ::std::mem::transmute(height), ::std::mem::transmute(newformat), ::std::mem::transmute(swapchainflags)).ok()
10190     }
ResizeTarget(&self, pnewtargetparameters: *const DXGI_MODE_DESC) -> ::windows::runtime::Result<()>10191     pub unsafe fn ResizeTarget(&self, pnewtargetparameters: *const DXGI_MODE_DESC) -> ::windows::runtime::Result<()> {
10192         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(pnewtargetparameters)).ok()
10193     }
GetContainingOutput(&self) -> ::windows::runtime::Result<IDXGIOutput>10194     pub unsafe fn GetContainingOutput(&self) -> ::windows::runtime::Result<IDXGIOutput> {
10195         let mut result__: <IDXGIOutput as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10196         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDXGIOutput>(result__)
10197     }
GetFrameStatistics(&self) -> ::windows::runtime::Result<DXGI_FRAME_STATISTICS>10198     pub unsafe fn GetFrameStatistics(&self) -> ::windows::runtime::Result<DXGI_FRAME_STATISTICS> {
10199         let mut result__: <DXGI_FRAME_STATISTICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10200         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_FRAME_STATISTICS>(result__)
10201     }
GetLastPresentCount(&self) -> ::windows::runtime::Result<u32>10202     pub unsafe fn GetLastPresentCount(&self) -> ::windows::runtime::Result<u32> {
10203         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10204         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
10205     }
10206     #[cfg(feature = "Win32_Foundation")]
GetDesc1(&self) -> ::windows::runtime::Result<DXGI_SWAP_CHAIN_DESC1>10207     pub unsafe fn GetDesc1(&self) -> ::windows::runtime::Result<DXGI_SWAP_CHAIN_DESC1> {
10208         let mut result__: <DXGI_SWAP_CHAIN_DESC1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10209         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_SWAP_CHAIN_DESC1>(result__)
10210     }
10211     #[cfg(feature = "Win32_Foundation")]
GetFullscreenDesc(&self) -> ::windows::runtime::Result<DXGI_SWAP_CHAIN_FULLSCREEN_DESC>10212     pub unsafe fn GetFullscreenDesc(&self) -> ::windows::runtime::Result<DXGI_SWAP_CHAIN_FULLSCREEN_DESC> {
10213         let mut result__: <DXGI_SWAP_CHAIN_FULLSCREEN_DESC as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10214         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_SWAP_CHAIN_FULLSCREEN_DESC>(result__)
10215     }
10216     #[cfg(feature = "Win32_Foundation")]
GetHwnd(&self) -> ::windows::runtime::Result<super::super::Foundation::HWND>10217     pub unsafe fn GetHwnd(&self) -> ::windows::runtime::Result<super::super::Foundation::HWND> {
10218         let mut result__: <super::super::Foundation::HWND as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10219         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::HWND>(result__)
10220     }
GetCoreWindow<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>10221     pub unsafe fn GetCoreWindow<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
10222         let mut result__ = ::std::option::Option::None;
10223         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
10224     }
10225     #[cfg(feature = "Win32_Foundation")]
Present1(&self, syncinterval: u32, presentflags: u32, ppresentparameters: *const DXGI_PRESENT_PARAMETERS) -> ::windows::runtime::Result<()>10226     pub unsafe fn Present1(&self, syncinterval: u32, presentflags: u32, ppresentparameters: *const DXGI_PRESENT_PARAMETERS) -> ::windows::runtime::Result<()> {
10227         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), ::std::mem::transmute(syncinterval), ::std::mem::transmute(presentflags), ::std::mem::transmute(ppresentparameters)).ok()
10228     }
10229     #[cfg(feature = "Win32_Foundation")]
IsTemporaryMonoSupported(&self) -> super::super::Foundation::BOOL10230     pub unsafe fn IsTemporaryMonoSupported(&self) -> super::super::Foundation::BOOL {
10231         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self)))
10232     }
GetRestrictToOutput(&self) -> ::windows::runtime::Result<IDXGIOutput>10233     pub unsafe fn GetRestrictToOutput(&self) -> ::windows::runtime::Result<IDXGIOutput> {
10234         let mut result__: <IDXGIOutput as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10235         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDXGIOutput>(result__)
10236     }
SetBackgroundColor(&self, pcolor: *const DXGI_RGBA) -> ::windows::runtime::Result<()>10237     pub unsafe fn SetBackgroundColor(&self, pcolor: *const DXGI_RGBA) -> ::windows::runtime::Result<()> {
10238         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), ::std::mem::transmute(pcolor)).ok()
10239     }
GetBackgroundColor(&self) -> ::windows::runtime::Result<DXGI_RGBA>10240     pub unsafe fn GetBackgroundColor(&self) -> ::windows::runtime::Result<DXGI_RGBA> {
10241         let mut result__: <DXGI_RGBA as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10242         (::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_RGBA>(result__)
10243     }
SetRotation(&self, rotation: DXGI_MODE_ROTATION) -> ::windows::runtime::Result<()>10244     pub unsafe fn SetRotation(&self, rotation: DXGI_MODE_ROTATION) -> ::windows::runtime::Result<()> {
10245         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), ::std::mem::transmute(rotation)).ok()
10246     }
GetRotation(&self) -> ::windows::runtime::Result<DXGI_MODE_ROTATION>10247     pub unsafe fn GetRotation(&self) -> ::windows::runtime::Result<DXGI_MODE_ROTATION> {
10248         let mut result__: <DXGI_MODE_ROTATION as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10249         (::windows::runtime::Interface::vtable(self).28)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_MODE_ROTATION>(result__)
10250     }
SetSourceSize(&self, width: u32, height: u32) -> ::windows::runtime::Result<()>10251     pub unsafe fn SetSourceSize(&self, width: u32, height: u32) -> ::windows::runtime::Result<()> {
10252         (::windows::runtime::Interface::vtable(self).29)(::std::mem::transmute_copy(self), ::std::mem::transmute(width), ::std::mem::transmute(height)).ok()
10253     }
GetSourceSize(&self, pwidth: *mut u32, pheight: *mut u32) -> ::windows::runtime::Result<()>10254     pub unsafe fn GetSourceSize(&self, pwidth: *mut u32, pheight: *mut u32) -> ::windows::runtime::Result<()> {
10255         (::windows::runtime::Interface::vtable(self).30)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwidth), ::std::mem::transmute(pheight)).ok()
10256     }
SetMaximumFrameLatency(&self, maxlatency: u32) -> ::windows::runtime::Result<()>10257     pub unsafe fn SetMaximumFrameLatency(&self, maxlatency: u32) -> ::windows::runtime::Result<()> {
10258         (::windows::runtime::Interface::vtable(self).31)(::std::mem::transmute_copy(self), ::std::mem::transmute(maxlatency)).ok()
10259     }
GetMaximumFrameLatency(&self) -> ::windows::runtime::Result<u32>10260     pub unsafe fn GetMaximumFrameLatency(&self) -> ::windows::runtime::Result<u32> {
10261         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10262         (::windows::runtime::Interface::vtable(self).32)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
10263     }
10264     #[cfg(feature = "Win32_Foundation")]
GetFrameLatencyWaitableObject(&self) -> super::super::Foundation::HANDLE10265     pub unsafe fn GetFrameLatencyWaitableObject(&self) -> super::super::Foundation::HANDLE {
10266         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).33)(::std::mem::transmute_copy(self)))
10267     }
SetMatrixTransform(&self, pmatrix: *const DXGI_MATRIX_3X2_F) -> ::windows::runtime::Result<()>10268     pub unsafe fn SetMatrixTransform(&self, pmatrix: *const DXGI_MATRIX_3X2_F) -> ::windows::runtime::Result<()> {
10269         (::windows::runtime::Interface::vtable(self).34)(::std::mem::transmute_copy(self), ::std::mem::transmute(pmatrix)).ok()
10270     }
GetMatrixTransform(&self) -> ::windows::runtime::Result<DXGI_MATRIX_3X2_F>10271     pub unsafe fn GetMatrixTransform(&self) -> ::windows::runtime::Result<DXGI_MATRIX_3X2_F> {
10272         let mut result__: <DXGI_MATRIX_3X2_F as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10273         (::windows::runtime::Interface::vtable(self).35)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_MATRIX_3X2_F>(result__)
10274     }
GetCurrentBackBufferIndex(&self) -> u3210275     pub unsafe fn GetCurrentBackBufferIndex(&self) -> u32 {
10276         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).36)(::std::mem::transmute_copy(self)))
10277     }
CheckColorSpaceSupport(&self, colorspace: DXGI_COLOR_SPACE_TYPE) -> ::windows::runtime::Result<u32>10278     pub unsafe fn CheckColorSpaceSupport(&self, colorspace: DXGI_COLOR_SPACE_TYPE) -> ::windows::runtime::Result<u32> {
10279         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10280         (::windows::runtime::Interface::vtable(self).37)(::std::mem::transmute_copy(self), ::std::mem::transmute(colorspace), &mut result__).from_abi::<u32>(result__)
10281     }
SetColorSpace1(&self, colorspace: DXGI_COLOR_SPACE_TYPE) -> ::windows::runtime::Result<()>10282     pub unsafe fn SetColorSpace1(&self, colorspace: DXGI_COLOR_SPACE_TYPE) -> ::windows::runtime::Result<()> {
10283         (::windows::runtime::Interface::vtable(self).38)(::std::mem::transmute_copy(self), ::std::mem::transmute(colorspace)).ok()
10284     }
ResizeBuffers1(&self, buffercount: u32, width: u32, height: u32, format: DXGI_FORMAT, swapchainflags: u32, pcreationnodemask: *const u32, pppresentqueue: *const ::std::option::Option<::windows::runtime::IUnknown>) -> ::windows::runtime::Result<()>10285     pub unsafe fn ResizeBuffers1(&self, buffercount: u32, width: u32, height: u32, format: DXGI_FORMAT, swapchainflags: u32, pcreationnodemask: *const u32, pppresentqueue: *const ::std::option::Option<::windows::runtime::IUnknown>) -> ::windows::runtime::Result<()> {
10286         (::windows::runtime::Interface::vtable(self).39)(::std::mem::transmute_copy(self), ::std::mem::transmute(buffercount), ::std::mem::transmute(width), ::std::mem::transmute(height), ::std::mem::transmute(format), ::std::mem::transmute(swapchainflags), ::std::mem::transmute(pcreationnodemask), ::std::mem::transmute(pppresentqueue)).ok()
10287     }
10288 }
10289 unsafe impl ::windows::runtime::Interface for IDXGISwapChain3 {
10290     type Vtable = IDXGISwapChain3_abi;
10291     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2497289179, 61944, 19120, [178, 54, 125, 160, 23, 14, 218, 177]);
10292 }
10293 impl ::std::convert::From<IDXGISwapChain3> for ::windows::runtime::IUnknown {
from(value: IDXGISwapChain3) -> Self10294     fn from(value: IDXGISwapChain3) -> Self {
10295         unsafe { ::std::mem::transmute(value) }
10296     }
10297 }
10298 impl ::std::convert::From<&IDXGISwapChain3> for ::windows::runtime::IUnknown {
from(value: &IDXGISwapChain3) -> Self10299     fn from(value: &IDXGISwapChain3) -> Self {
10300         ::std::convert::From::from(::std::clone::Clone::clone(value))
10301     }
10302 }
10303 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGISwapChain3 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>10304     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
10305         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
10306     }
10307 }
10308 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGISwapChain3 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>10309     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
10310         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
10311     }
10312 }
10313 impl ::std::convert::From<IDXGISwapChain3> for IDXGISwapChain2 {
from(value: IDXGISwapChain3) -> Self10314     fn from(value: IDXGISwapChain3) -> Self {
10315         unsafe { ::std::mem::transmute(value) }
10316     }
10317 }
10318 impl ::std::convert::From<&IDXGISwapChain3> for IDXGISwapChain2 {
from(value: &IDXGISwapChain3) -> Self10319     fn from(value: &IDXGISwapChain3) -> Self {
10320         ::std::convert::From::from(::std::clone::Clone::clone(value))
10321     }
10322 }
10323 impl<'a> ::windows::runtime::IntoParam<'a, IDXGISwapChain2> for IDXGISwapChain3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain2>10324     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain2> {
10325         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGISwapChain2>::into(self))
10326     }
10327 }
10328 impl<'a> ::windows::runtime::IntoParam<'a, IDXGISwapChain2> for &IDXGISwapChain3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain2>10329     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain2> {
10330         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGISwapChain2>::into(::std::clone::Clone::clone(self)))
10331     }
10332 }
10333 impl ::std::convert::From<IDXGISwapChain3> for IDXGISwapChain1 {
from(value: IDXGISwapChain3) -> Self10334     fn from(value: IDXGISwapChain3) -> Self {
10335         unsafe { ::std::mem::transmute(value) }
10336     }
10337 }
10338 impl ::std::convert::From<&IDXGISwapChain3> for IDXGISwapChain1 {
from(value: &IDXGISwapChain3) -> Self10339     fn from(value: &IDXGISwapChain3) -> Self {
10340         ::std::convert::From::from(::std::clone::Clone::clone(value))
10341     }
10342 }
10343 impl<'a> ::windows::runtime::IntoParam<'a, IDXGISwapChain1> for IDXGISwapChain3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain1>10344     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain1> {
10345         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGISwapChain1>::into(self))
10346     }
10347 }
10348 impl<'a> ::windows::runtime::IntoParam<'a, IDXGISwapChain1> for &IDXGISwapChain3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain1>10349     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain1> {
10350         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGISwapChain1>::into(::std::clone::Clone::clone(self)))
10351     }
10352 }
10353 impl ::std::convert::From<IDXGISwapChain3> for IDXGISwapChain {
from(value: IDXGISwapChain3) -> Self10354     fn from(value: IDXGISwapChain3) -> Self {
10355         unsafe { ::std::mem::transmute(value) }
10356     }
10357 }
10358 impl ::std::convert::From<&IDXGISwapChain3> for IDXGISwapChain {
from(value: &IDXGISwapChain3) -> Self10359     fn from(value: &IDXGISwapChain3) -> Self {
10360         ::std::convert::From::from(::std::clone::Clone::clone(value))
10361     }
10362 }
10363 impl<'a> ::windows::runtime::IntoParam<'a, IDXGISwapChain> for IDXGISwapChain3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain>10364     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain> {
10365         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGISwapChain>::into(self))
10366     }
10367 }
10368 impl<'a> ::windows::runtime::IntoParam<'a, IDXGISwapChain> for &IDXGISwapChain3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain>10369     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain> {
10370         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGISwapChain>::into(::std::clone::Clone::clone(self)))
10371     }
10372 }
10373 impl ::std::convert::From<IDXGISwapChain3> for IDXGIDeviceSubObject {
from(value: IDXGISwapChain3) -> Self10374     fn from(value: IDXGISwapChain3) -> Self {
10375         unsafe { ::std::mem::transmute(value) }
10376     }
10377 }
10378 impl ::std::convert::From<&IDXGISwapChain3> for IDXGIDeviceSubObject {
from(value: &IDXGISwapChain3) -> Self10379     fn from(value: &IDXGISwapChain3) -> Self {
10380         ::std::convert::From::from(::std::clone::Clone::clone(value))
10381     }
10382 }
10383 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDeviceSubObject> for IDXGISwapChain3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject>10384     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject> {
10385         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDeviceSubObject>::into(self))
10386     }
10387 }
10388 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDeviceSubObject> for &IDXGISwapChain3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject>10389     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject> {
10390         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDeviceSubObject>::into(::std::clone::Clone::clone(self)))
10391     }
10392 }
10393 impl ::std::convert::From<IDXGISwapChain3> for IDXGIObject {
from(value: IDXGISwapChain3) -> Self10394     fn from(value: IDXGISwapChain3) -> Self {
10395         unsafe { ::std::mem::transmute(value) }
10396     }
10397 }
10398 impl ::std::convert::From<&IDXGISwapChain3> for IDXGIObject {
from(value: &IDXGISwapChain3) -> Self10399     fn from(value: &IDXGISwapChain3) -> Self {
10400         ::std::convert::From::from(::std::clone::Clone::clone(value))
10401     }
10402 }
10403 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGISwapChain3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>10404     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
10405         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
10406     }
10407 }
10408 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGISwapChain3 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>10409     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
10410         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
10411     }
10412 }
10413 #[repr(C)]
10414 #[doc(hidden)]
10415 pub struct IDXGISwapChain3_abi(
10416     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10417     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10418     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10419     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
10420     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10421     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
10422     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
10423     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppdevice: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
10424     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, syncinterval: u32, flags: u32) -> ::windows::runtime::HRESULT,
10425     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, buffer: u32, riid: *const ::windows::runtime::GUID, ppsurface: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
10426     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fullscreen: super::super::Foundation::BOOL, ptarget: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10427     #[cfg(not(feature = "Win32_Foundation"))] usize,
10428     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pfullscreen: *mut super::super::Foundation::BOOL, pptarget: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10429     #[cfg(not(feature = "Win32_Foundation"))] usize,
10430     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_SWAP_CHAIN_DESC) -> ::windows::runtime::HRESULT,
10431     #[cfg(not(feature = "Win32_Foundation"))] usize,
10432     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, buffercount: u32, width: u32, height: u32, newformat: DXGI_FORMAT, swapchainflags: u32) -> ::windows::runtime::HRESULT,
10433     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pnewtargetparameters: *const DXGI_MODE_DESC) -> ::windows::runtime::HRESULT,
10434     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppoutput: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10435     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pstats: *mut DXGI_FRAME_STATISTICS) -> ::windows::runtime::HRESULT,
10436     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, plastpresentcount: *mut u32) -> ::windows::runtime::HRESULT,
10437     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_SWAP_CHAIN_DESC1) -> ::windows::runtime::HRESULT,
10438     #[cfg(not(feature = "Win32_Foundation"))] usize,
10439     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_SWAP_CHAIN_FULLSCREEN_DESC) -> ::windows::runtime::HRESULT,
10440     #[cfg(not(feature = "Win32_Foundation"))] usize,
10441     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, phwnd: *mut super::super::Foundation::HWND) -> ::windows::runtime::HRESULT,
10442     #[cfg(not(feature = "Win32_Foundation"))] usize,
10443     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, refiid: *const ::windows::runtime::GUID, ppunk: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
10444     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, syncinterval: u32, presentflags: u32, ppresentparameters: *const DXGI_PRESENT_PARAMETERS) -> ::windows::runtime::HRESULT,
10445     #[cfg(not(feature = "Win32_Foundation"))] usize,
10446     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
10447     #[cfg(not(feature = "Win32_Foundation"))] usize,
10448     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pprestricttooutput: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10449     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcolor: *const DXGI_RGBA) -> ::windows::runtime::HRESULT,
10450     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcolor: *mut DXGI_RGBA) -> ::windows::runtime::HRESULT,
10451     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, rotation: DXGI_MODE_ROTATION) -> ::windows::runtime::HRESULT,
10452     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, protation: *mut DXGI_MODE_ROTATION) -> ::windows::runtime::HRESULT,
10453     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, width: u32, height: u32) -> ::windows::runtime::HRESULT,
10454     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwidth: *mut u32, pheight: *mut u32) -> ::windows::runtime::HRESULT,
10455     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, maxlatency: u32) -> ::windows::runtime::HRESULT,
10456     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pmaxlatency: *mut u32) -> ::windows::runtime::HRESULT,
10457     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::HANDLE,
10458     #[cfg(not(feature = "Win32_Foundation"))] usize,
10459     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pmatrix: *const DXGI_MATRIX_3X2_F) -> ::windows::runtime::HRESULT,
10460     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pmatrix: *mut DXGI_MATRIX_3X2_F) -> ::windows::runtime::HRESULT,
10461     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10462     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, colorspace: DXGI_COLOR_SPACE_TYPE, pcolorspacesupport: *mut u32) -> ::windows::runtime::HRESULT,
10463     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, colorspace: DXGI_COLOR_SPACE_TYPE) -> ::windows::runtime::HRESULT,
10464     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, buffercount: u32, width: u32, height: u32, format: DXGI_FORMAT, swapchainflags: u32, pcreationnodemask: *const u32, pppresentqueue: *const ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10465 );
10466 #[repr(transparent)]
10467 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
10468 pub struct IDXGISwapChain4(::windows::runtime::IUnknown);
10469 impl IDXGISwapChain4 {
SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>10470     pub unsafe fn SetPrivateData(&self, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
10471         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(datasize), ::std::mem::transmute(pdata)).ok()
10472     }
SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()>10473     pub unsafe fn SetPrivateDataInterface<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, name: *const ::windows::runtime::GUID, punknown: Param1) -> ::windows::runtime::Result<()> {
10474         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), punknown.into_param().abi()).ok()
10475     }
GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>10476     pub unsafe fn GetPrivateData(&self, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
10477         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(name), ::std::mem::transmute(pdatasize), ::std::mem::transmute(pdata)).ok()
10478     }
GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>10479     pub unsafe fn GetParent<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
10480         let mut result__ = ::std::option::Option::None;
10481         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
10482     }
GetDevice<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>10483     pub unsafe fn GetDevice<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
10484         let mut result__ = ::std::option::Option::None;
10485         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
10486     }
Present(&self, syncinterval: u32, flags: u32) -> ::windows::runtime::Result<()>10487     pub unsafe fn Present(&self, syncinterval: u32, flags: u32) -> ::windows::runtime::Result<()> {
10488         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(syncinterval), ::std::mem::transmute(flags)).ok()
10489     }
GetBuffer<T: ::windows::runtime::Interface>(&self, buffer: u32) -> ::windows::runtime::Result<T>10490     pub unsafe fn GetBuffer<T: ::windows::runtime::Interface>(&self, buffer: u32) -> ::windows::runtime::Result<T> {
10491         let mut result__ = ::std::option::Option::None;
10492         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(buffer), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
10493     }
10494     #[cfg(feature = "Win32_Foundation")]
SetFullscreenState<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, fullscreen: Param0, ptarget: Param1) -> ::windows::runtime::Result<()>10495     pub unsafe fn SetFullscreenState<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, IDXGIOutput>>(&self, fullscreen: Param0, ptarget: Param1) -> ::windows::runtime::Result<()> {
10496         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), fullscreen.into_param().abi(), ptarget.into_param().abi()).ok()
10497     }
10498     #[cfg(feature = "Win32_Foundation")]
GetFullscreenState(&self, pfullscreen: *mut super::super::Foundation::BOOL, pptarget: *mut ::std::option::Option<IDXGIOutput>) -> ::windows::runtime::Result<()>10499     pub unsafe fn GetFullscreenState(&self, pfullscreen: *mut super::super::Foundation::BOOL, pptarget: *mut ::std::option::Option<IDXGIOutput>) -> ::windows::runtime::Result<()> {
10500         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(pfullscreen), ::std::mem::transmute(pptarget)).ok()
10501     }
10502     #[cfg(feature = "Win32_Foundation")]
GetDesc(&self) -> ::windows::runtime::Result<DXGI_SWAP_CHAIN_DESC>10503     pub unsafe fn GetDesc(&self) -> ::windows::runtime::Result<DXGI_SWAP_CHAIN_DESC> {
10504         let mut result__: <DXGI_SWAP_CHAIN_DESC as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10505         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_SWAP_CHAIN_DESC>(result__)
10506     }
ResizeBuffers(&self, buffercount: u32, width: u32, height: u32, newformat: DXGI_FORMAT, swapchainflags: u32) -> ::windows::runtime::Result<()>10507     pub unsafe fn ResizeBuffers(&self, buffercount: u32, width: u32, height: u32, newformat: DXGI_FORMAT, swapchainflags: u32) -> ::windows::runtime::Result<()> {
10508         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(buffercount), ::std::mem::transmute(width), ::std::mem::transmute(height), ::std::mem::transmute(newformat), ::std::mem::transmute(swapchainflags)).ok()
10509     }
ResizeTarget(&self, pnewtargetparameters: *const DXGI_MODE_DESC) -> ::windows::runtime::Result<()>10510     pub unsafe fn ResizeTarget(&self, pnewtargetparameters: *const DXGI_MODE_DESC) -> ::windows::runtime::Result<()> {
10511         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(pnewtargetparameters)).ok()
10512     }
GetContainingOutput(&self) -> ::windows::runtime::Result<IDXGIOutput>10513     pub unsafe fn GetContainingOutput(&self) -> ::windows::runtime::Result<IDXGIOutput> {
10514         let mut result__: <IDXGIOutput as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10515         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDXGIOutput>(result__)
10516     }
GetFrameStatistics(&self) -> ::windows::runtime::Result<DXGI_FRAME_STATISTICS>10517     pub unsafe fn GetFrameStatistics(&self) -> ::windows::runtime::Result<DXGI_FRAME_STATISTICS> {
10518         let mut result__: <DXGI_FRAME_STATISTICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10519         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_FRAME_STATISTICS>(result__)
10520     }
GetLastPresentCount(&self) -> ::windows::runtime::Result<u32>10521     pub unsafe fn GetLastPresentCount(&self) -> ::windows::runtime::Result<u32> {
10522         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10523         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
10524     }
10525     #[cfg(feature = "Win32_Foundation")]
GetDesc1(&self) -> ::windows::runtime::Result<DXGI_SWAP_CHAIN_DESC1>10526     pub unsafe fn GetDesc1(&self) -> ::windows::runtime::Result<DXGI_SWAP_CHAIN_DESC1> {
10527         let mut result__: <DXGI_SWAP_CHAIN_DESC1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10528         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_SWAP_CHAIN_DESC1>(result__)
10529     }
10530     #[cfg(feature = "Win32_Foundation")]
GetFullscreenDesc(&self) -> ::windows::runtime::Result<DXGI_SWAP_CHAIN_FULLSCREEN_DESC>10531     pub unsafe fn GetFullscreenDesc(&self) -> ::windows::runtime::Result<DXGI_SWAP_CHAIN_FULLSCREEN_DESC> {
10532         let mut result__: <DXGI_SWAP_CHAIN_FULLSCREEN_DESC as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10533         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_SWAP_CHAIN_FULLSCREEN_DESC>(result__)
10534     }
10535     #[cfg(feature = "Win32_Foundation")]
GetHwnd(&self) -> ::windows::runtime::Result<super::super::Foundation::HWND>10536     pub unsafe fn GetHwnd(&self) -> ::windows::runtime::Result<super::super::Foundation::HWND> {
10537         let mut result__: <super::super::Foundation::HWND as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10538         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::HWND>(result__)
10539     }
GetCoreWindow<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T>10540     pub unsafe fn GetCoreWindow<T: ::windows::runtime::Interface>(&self) -> ::windows::runtime::Result<T> {
10541         let mut result__ = ::std::option::Option::None;
10542         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), &<T as ::windows::runtime::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
10543     }
10544     #[cfg(feature = "Win32_Foundation")]
Present1(&self, syncinterval: u32, presentflags: u32, ppresentparameters: *const DXGI_PRESENT_PARAMETERS) -> ::windows::runtime::Result<()>10545     pub unsafe fn Present1(&self, syncinterval: u32, presentflags: u32, ppresentparameters: *const DXGI_PRESENT_PARAMETERS) -> ::windows::runtime::Result<()> {
10546         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), ::std::mem::transmute(syncinterval), ::std::mem::transmute(presentflags), ::std::mem::transmute(ppresentparameters)).ok()
10547     }
10548     #[cfg(feature = "Win32_Foundation")]
IsTemporaryMonoSupported(&self) -> super::super::Foundation::BOOL10549     pub unsafe fn IsTemporaryMonoSupported(&self) -> super::super::Foundation::BOOL {
10550         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self)))
10551     }
GetRestrictToOutput(&self) -> ::windows::runtime::Result<IDXGIOutput>10552     pub unsafe fn GetRestrictToOutput(&self) -> ::windows::runtime::Result<IDXGIOutput> {
10553         let mut result__: <IDXGIOutput as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10554         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDXGIOutput>(result__)
10555     }
SetBackgroundColor(&self, pcolor: *const DXGI_RGBA) -> ::windows::runtime::Result<()>10556     pub unsafe fn SetBackgroundColor(&self, pcolor: *const DXGI_RGBA) -> ::windows::runtime::Result<()> {
10557         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), ::std::mem::transmute(pcolor)).ok()
10558     }
GetBackgroundColor(&self) -> ::windows::runtime::Result<DXGI_RGBA>10559     pub unsafe fn GetBackgroundColor(&self) -> ::windows::runtime::Result<DXGI_RGBA> {
10560         let mut result__: <DXGI_RGBA as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10561         (::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_RGBA>(result__)
10562     }
SetRotation(&self, rotation: DXGI_MODE_ROTATION) -> ::windows::runtime::Result<()>10563     pub unsafe fn SetRotation(&self, rotation: DXGI_MODE_ROTATION) -> ::windows::runtime::Result<()> {
10564         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), ::std::mem::transmute(rotation)).ok()
10565     }
GetRotation(&self) -> ::windows::runtime::Result<DXGI_MODE_ROTATION>10566     pub unsafe fn GetRotation(&self) -> ::windows::runtime::Result<DXGI_MODE_ROTATION> {
10567         let mut result__: <DXGI_MODE_ROTATION as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10568         (::windows::runtime::Interface::vtable(self).28)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_MODE_ROTATION>(result__)
10569     }
SetSourceSize(&self, width: u32, height: u32) -> ::windows::runtime::Result<()>10570     pub unsafe fn SetSourceSize(&self, width: u32, height: u32) -> ::windows::runtime::Result<()> {
10571         (::windows::runtime::Interface::vtable(self).29)(::std::mem::transmute_copy(self), ::std::mem::transmute(width), ::std::mem::transmute(height)).ok()
10572     }
GetSourceSize(&self, pwidth: *mut u32, pheight: *mut u32) -> ::windows::runtime::Result<()>10573     pub unsafe fn GetSourceSize(&self, pwidth: *mut u32, pheight: *mut u32) -> ::windows::runtime::Result<()> {
10574         (::windows::runtime::Interface::vtable(self).30)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwidth), ::std::mem::transmute(pheight)).ok()
10575     }
SetMaximumFrameLatency(&self, maxlatency: u32) -> ::windows::runtime::Result<()>10576     pub unsafe fn SetMaximumFrameLatency(&self, maxlatency: u32) -> ::windows::runtime::Result<()> {
10577         (::windows::runtime::Interface::vtable(self).31)(::std::mem::transmute_copy(self), ::std::mem::transmute(maxlatency)).ok()
10578     }
GetMaximumFrameLatency(&self) -> ::windows::runtime::Result<u32>10579     pub unsafe fn GetMaximumFrameLatency(&self) -> ::windows::runtime::Result<u32> {
10580         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10581         (::windows::runtime::Interface::vtable(self).32)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
10582     }
10583     #[cfg(feature = "Win32_Foundation")]
GetFrameLatencyWaitableObject(&self) -> super::super::Foundation::HANDLE10584     pub unsafe fn GetFrameLatencyWaitableObject(&self) -> super::super::Foundation::HANDLE {
10585         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).33)(::std::mem::transmute_copy(self)))
10586     }
SetMatrixTransform(&self, pmatrix: *const DXGI_MATRIX_3X2_F) -> ::windows::runtime::Result<()>10587     pub unsafe fn SetMatrixTransform(&self, pmatrix: *const DXGI_MATRIX_3X2_F) -> ::windows::runtime::Result<()> {
10588         (::windows::runtime::Interface::vtable(self).34)(::std::mem::transmute_copy(self), ::std::mem::transmute(pmatrix)).ok()
10589     }
GetMatrixTransform(&self) -> ::windows::runtime::Result<DXGI_MATRIX_3X2_F>10590     pub unsafe fn GetMatrixTransform(&self) -> ::windows::runtime::Result<DXGI_MATRIX_3X2_F> {
10591         let mut result__: <DXGI_MATRIX_3X2_F as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10592         (::windows::runtime::Interface::vtable(self).35)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_MATRIX_3X2_F>(result__)
10593     }
GetCurrentBackBufferIndex(&self) -> u3210594     pub unsafe fn GetCurrentBackBufferIndex(&self) -> u32 {
10595         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).36)(::std::mem::transmute_copy(self)))
10596     }
CheckColorSpaceSupport(&self, colorspace: DXGI_COLOR_SPACE_TYPE) -> ::windows::runtime::Result<u32>10597     pub unsafe fn CheckColorSpaceSupport(&self, colorspace: DXGI_COLOR_SPACE_TYPE) -> ::windows::runtime::Result<u32> {
10598         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10599         (::windows::runtime::Interface::vtable(self).37)(::std::mem::transmute_copy(self), ::std::mem::transmute(colorspace), &mut result__).from_abi::<u32>(result__)
10600     }
SetColorSpace1(&self, colorspace: DXGI_COLOR_SPACE_TYPE) -> ::windows::runtime::Result<()>10601     pub unsafe fn SetColorSpace1(&self, colorspace: DXGI_COLOR_SPACE_TYPE) -> ::windows::runtime::Result<()> {
10602         (::windows::runtime::Interface::vtable(self).38)(::std::mem::transmute_copy(self), ::std::mem::transmute(colorspace)).ok()
10603     }
ResizeBuffers1(&self, buffercount: u32, width: u32, height: u32, format: DXGI_FORMAT, swapchainflags: u32, pcreationnodemask: *const u32, pppresentqueue: *const ::std::option::Option<::windows::runtime::IUnknown>) -> ::windows::runtime::Result<()>10604     pub unsafe fn ResizeBuffers1(&self, buffercount: u32, width: u32, height: u32, format: DXGI_FORMAT, swapchainflags: u32, pcreationnodemask: *const u32, pppresentqueue: *const ::std::option::Option<::windows::runtime::IUnknown>) -> ::windows::runtime::Result<()> {
10605         (::windows::runtime::Interface::vtable(self).39)(::std::mem::transmute_copy(self), ::std::mem::transmute(buffercount), ::std::mem::transmute(width), ::std::mem::transmute(height), ::std::mem::transmute(format), ::std::mem::transmute(swapchainflags), ::std::mem::transmute(pcreationnodemask), ::std::mem::transmute(pppresentqueue)).ok()
10606     }
SetHDRMetaData(&self, r#type: DXGI_HDR_METADATA_TYPE, size: u32, pmetadata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()>10607     pub unsafe fn SetHDRMetaData(&self, r#type: DXGI_HDR_METADATA_TYPE, size: u32, pmetadata: *const ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
10608         (::windows::runtime::Interface::vtable(self).40)(::std::mem::transmute_copy(self), ::std::mem::transmute(r#type), ::std::mem::transmute(size), ::std::mem::transmute(pmetadata)).ok()
10609     }
10610 }
10611 unsafe impl ::windows::runtime::Interface for IDXGISwapChain4 {
10612     type Vtable = IDXGISwapChain4_abi;
10613     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1029201242, 48458, 18590, [177, 244, 61, 188, 182, 69, 47, 251]);
10614 }
10615 impl ::std::convert::From<IDXGISwapChain4> for ::windows::runtime::IUnknown {
from(value: IDXGISwapChain4) -> Self10616     fn from(value: IDXGISwapChain4) -> Self {
10617         unsafe { ::std::mem::transmute(value) }
10618     }
10619 }
10620 impl ::std::convert::From<&IDXGISwapChain4> for ::windows::runtime::IUnknown {
from(value: &IDXGISwapChain4) -> Self10621     fn from(value: &IDXGISwapChain4) -> Self {
10622         ::std::convert::From::from(::std::clone::Clone::clone(value))
10623     }
10624 }
10625 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGISwapChain4 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>10626     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
10627         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
10628     }
10629 }
10630 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGISwapChain4 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>10631     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
10632         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
10633     }
10634 }
10635 impl ::std::convert::From<IDXGISwapChain4> for IDXGISwapChain3 {
from(value: IDXGISwapChain4) -> Self10636     fn from(value: IDXGISwapChain4) -> Self {
10637         unsafe { ::std::mem::transmute(value) }
10638     }
10639 }
10640 impl ::std::convert::From<&IDXGISwapChain4> for IDXGISwapChain3 {
from(value: &IDXGISwapChain4) -> Self10641     fn from(value: &IDXGISwapChain4) -> Self {
10642         ::std::convert::From::from(::std::clone::Clone::clone(value))
10643     }
10644 }
10645 impl<'a> ::windows::runtime::IntoParam<'a, IDXGISwapChain3> for IDXGISwapChain4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain3>10646     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain3> {
10647         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGISwapChain3>::into(self))
10648     }
10649 }
10650 impl<'a> ::windows::runtime::IntoParam<'a, IDXGISwapChain3> for &IDXGISwapChain4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain3>10651     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain3> {
10652         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGISwapChain3>::into(::std::clone::Clone::clone(self)))
10653     }
10654 }
10655 impl ::std::convert::From<IDXGISwapChain4> for IDXGISwapChain2 {
from(value: IDXGISwapChain4) -> Self10656     fn from(value: IDXGISwapChain4) -> Self {
10657         unsafe { ::std::mem::transmute(value) }
10658     }
10659 }
10660 impl ::std::convert::From<&IDXGISwapChain4> for IDXGISwapChain2 {
from(value: &IDXGISwapChain4) -> Self10661     fn from(value: &IDXGISwapChain4) -> Self {
10662         ::std::convert::From::from(::std::clone::Clone::clone(value))
10663     }
10664 }
10665 impl<'a> ::windows::runtime::IntoParam<'a, IDXGISwapChain2> for IDXGISwapChain4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain2>10666     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain2> {
10667         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGISwapChain2>::into(self))
10668     }
10669 }
10670 impl<'a> ::windows::runtime::IntoParam<'a, IDXGISwapChain2> for &IDXGISwapChain4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain2>10671     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain2> {
10672         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGISwapChain2>::into(::std::clone::Clone::clone(self)))
10673     }
10674 }
10675 impl ::std::convert::From<IDXGISwapChain4> for IDXGISwapChain1 {
from(value: IDXGISwapChain4) -> Self10676     fn from(value: IDXGISwapChain4) -> Self {
10677         unsafe { ::std::mem::transmute(value) }
10678     }
10679 }
10680 impl ::std::convert::From<&IDXGISwapChain4> for IDXGISwapChain1 {
from(value: &IDXGISwapChain4) -> Self10681     fn from(value: &IDXGISwapChain4) -> Self {
10682         ::std::convert::From::from(::std::clone::Clone::clone(value))
10683     }
10684 }
10685 impl<'a> ::windows::runtime::IntoParam<'a, IDXGISwapChain1> for IDXGISwapChain4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain1>10686     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain1> {
10687         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGISwapChain1>::into(self))
10688     }
10689 }
10690 impl<'a> ::windows::runtime::IntoParam<'a, IDXGISwapChain1> for &IDXGISwapChain4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain1>10691     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain1> {
10692         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGISwapChain1>::into(::std::clone::Clone::clone(self)))
10693     }
10694 }
10695 impl ::std::convert::From<IDXGISwapChain4> for IDXGISwapChain {
from(value: IDXGISwapChain4) -> Self10696     fn from(value: IDXGISwapChain4) -> Self {
10697         unsafe { ::std::mem::transmute(value) }
10698     }
10699 }
10700 impl ::std::convert::From<&IDXGISwapChain4> for IDXGISwapChain {
from(value: &IDXGISwapChain4) -> Self10701     fn from(value: &IDXGISwapChain4) -> Self {
10702         ::std::convert::From::from(::std::clone::Clone::clone(value))
10703     }
10704 }
10705 impl<'a> ::windows::runtime::IntoParam<'a, IDXGISwapChain> for IDXGISwapChain4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain>10706     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain> {
10707         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGISwapChain>::into(self))
10708     }
10709 }
10710 impl<'a> ::windows::runtime::IntoParam<'a, IDXGISwapChain> for &IDXGISwapChain4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain>10711     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGISwapChain> {
10712         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGISwapChain>::into(::std::clone::Clone::clone(self)))
10713     }
10714 }
10715 impl ::std::convert::From<IDXGISwapChain4> for IDXGIDeviceSubObject {
from(value: IDXGISwapChain4) -> Self10716     fn from(value: IDXGISwapChain4) -> Self {
10717         unsafe { ::std::mem::transmute(value) }
10718     }
10719 }
10720 impl ::std::convert::From<&IDXGISwapChain4> for IDXGIDeviceSubObject {
from(value: &IDXGISwapChain4) -> Self10721     fn from(value: &IDXGISwapChain4) -> Self {
10722         ::std::convert::From::from(::std::clone::Clone::clone(value))
10723     }
10724 }
10725 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDeviceSubObject> for IDXGISwapChain4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject>10726     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject> {
10727         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDeviceSubObject>::into(self))
10728     }
10729 }
10730 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIDeviceSubObject> for &IDXGISwapChain4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject>10731     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIDeviceSubObject> {
10732         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIDeviceSubObject>::into(::std::clone::Clone::clone(self)))
10733     }
10734 }
10735 impl ::std::convert::From<IDXGISwapChain4> for IDXGIObject {
from(value: IDXGISwapChain4) -> Self10736     fn from(value: IDXGISwapChain4) -> Self {
10737         unsafe { ::std::mem::transmute(value) }
10738     }
10739 }
10740 impl ::std::convert::From<&IDXGISwapChain4> for IDXGIObject {
from(value: &IDXGISwapChain4) -> Self10741     fn from(value: &IDXGISwapChain4) -> Self {
10742         ::std::convert::From::from(::std::clone::Clone::clone(value))
10743     }
10744 }
10745 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for IDXGISwapChain4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>10746     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
10747         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(self))
10748     }
10749 }
10750 impl<'a> ::windows::runtime::IntoParam<'a, IDXGIObject> for &IDXGISwapChain4 {
into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject>10751     fn into_param(self) -> ::windows::runtime::Param<'a, IDXGIObject> {
10752         ::windows::runtime::Param::Owned(::std::convert::Into::<IDXGIObject>::into(::std::clone::Clone::clone(self)))
10753     }
10754 }
10755 #[repr(C)]
10756 #[doc(hidden)]
10757 pub struct IDXGISwapChain4_abi(
10758     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10759     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10760     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10761     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, datasize: u32, pdata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
10762     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, punknown: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10763     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: *const ::windows::runtime::GUID, pdatasize: *mut u32, pdata: *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
10764     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppparent: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
10765     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppdevice: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
10766     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, syncinterval: u32, flags: u32) -> ::windows::runtime::HRESULT,
10767     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, buffer: u32, riid: *const ::windows::runtime::GUID, ppsurface: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
10768     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fullscreen: super::super::Foundation::BOOL, ptarget: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10769     #[cfg(not(feature = "Win32_Foundation"))] usize,
10770     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pfullscreen: *mut super::super::Foundation::BOOL, pptarget: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10771     #[cfg(not(feature = "Win32_Foundation"))] usize,
10772     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_SWAP_CHAIN_DESC) -> ::windows::runtime::HRESULT,
10773     #[cfg(not(feature = "Win32_Foundation"))] usize,
10774     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, buffercount: u32, width: u32, height: u32, newformat: DXGI_FORMAT, swapchainflags: u32) -> ::windows::runtime::HRESULT,
10775     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pnewtargetparameters: *const DXGI_MODE_DESC) -> ::windows::runtime::HRESULT,
10776     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppoutput: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10777     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pstats: *mut DXGI_FRAME_STATISTICS) -> ::windows::runtime::HRESULT,
10778     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, plastpresentcount: *mut u32) -> ::windows::runtime::HRESULT,
10779     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_SWAP_CHAIN_DESC1) -> ::windows::runtime::HRESULT,
10780     #[cfg(not(feature = "Win32_Foundation"))] usize,
10781     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdesc: *mut DXGI_SWAP_CHAIN_FULLSCREEN_DESC) -> ::windows::runtime::HRESULT,
10782     #[cfg(not(feature = "Win32_Foundation"))] usize,
10783     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, phwnd: *mut super::super::Foundation::HWND) -> ::windows::runtime::HRESULT,
10784     #[cfg(not(feature = "Win32_Foundation"))] usize,
10785     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, refiid: *const ::windows::runtime::GUID, ppunk: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
10786     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, syncinterval: u32, presentflags: u32, ppresentparameters: *const DXGI_PRESENT_PARAMETERS) -> ::windows::runtime::HRESULT,
10787     #[cfg(not(feature = "Win32_Foundation"))] usize,
10788     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
10789     #[cfg(not(feature = "Win32_Foundation"))] usize,
10790     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pprestricttooutput: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10791     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcolor: *const DXGI_RGBA) -> ::windows::runtime::HRESULT,
10792     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcolor: *mut DXGI_RGBA) -> ::windows::runtime::HRESULT,
10793     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, rotation: DXGI_MODE_ROTATION) -> ::windows::runtime::HRESULT,
10794     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, protation: *mut DXGI_MODE_ROTATION) -> ::windows::runtime::HRESULT,
10795     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, width: u32, height: u32) -> ::windows::runtime::HRESULT,
10796     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwidth: *mut u32, pheight: *mut u32) -> ::windows::runtime::HRESULT,
10797     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, maxlatency: u32) -> ::windows::runtime::HRESULT,
10798     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pmaxlatency: *mut u32) -> ::windows::runtime::HRESULT,
10799     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::HANDLE,
10800     #[cfg(not(feature = "Win32_Foundation"))] usize,
10801     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pmatrix: *const DXGI_MATRIX_3X2_F) -> ::windows::runtime::HRESULT,
10802     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pmatrix: *mut DXGI_MATRIX_3X2_F) -> ::windows::runtime::HRESULT,
10803     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10804     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, colorspace: DXGI_COLOR_SPACE_TYPE, pcolorspacesupport: *mut u32) -> ::windows::runtime::HRESULT,
10805     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, colorspace: DXGI_COLOR_SPACE_TYPE) -> ::windows::runtime::HRESULT,
10806     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, buffercount: u32, width: u32, height: u32, format: DXGI_FORMAT, swapchainflags: u32, pcreationnodemask: *const u32, pppresentqueue: *const ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10807     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, r#type: DXGI_HDR_METADATA_TYPE, size: u32, pmetadata: *const ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
10808 );
10809 #[repr(transparent)]
10810 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
10811 pub struct IDXGISwapChainMedia(::windows::runtime::IUnknown);
10812 impl IDXGISwapChainMedia {
GetFrameStatisticsMedia(&self) -> ::windows::runtime::Result<DXGI_FRAME_STATISTICS_MEDIA>10813     pub unsafe fn GetFrameStatisticsMedia(&self) -> ::windows::runtime::Result<DXGI_FRAME_STATISTICS_MEDIA> {
10814         let mut result__: <DXGI_FRAME_STATISTICS_MEDIA as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10815         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DXGI_FRAME_STATISTICS_MEDIA>(result__)
10816     }
SetPresentDuration(&self, duration: u32) -> ::windows::runtime::Result<()>10817     pub unsafe fn SetPresentDuration(&self, duration: u32) -> ::windows::runtime::Result<()> {
10818         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(duration)).ok()
10819     }
CheckPresentDurationSupport(&self, desiredpresentduration: u32, pclosestsmallerpresentduration: *mut u32, pclosestlargerpresentduration: *mut u32) -> ::windows::runtime::Result<()>10820     pub unsafe fn CheckPresentDurationSupport(&self, desiredpresentduration: u32, pclosestsmallerpresentduration: *mut u32, pclosestlargerpresentduration: *mut u32) -> ::windows::runtime::Result<()> {
10821         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(desiredpresentduration), ::std::mem::transmute(pclosestsmallerpresentduration), ::std::mem::transmute(pclosestlargerpresentduration)).ok()
10822     }
10823 }
10824 unsafe impl ::windows::runtime::Interface for IDXGISwapChainMedia {
10825     type Vtable = IDXGISwapChainMedia_abi;
10826     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3717576971, 61535, 20330, [189, 101, 37, 191, 178, 100, 189, 132]);
10827 }
10828 impl ::std::convert::From<IDXGISwapChainMedia> for ::windows::runtime::IUnknown {
from(value: IDXGISwapChainMedia) -> Self10829     fn from(value: IDXGISwapChainMedia) -> Self {
10830         unsafe { ::std::mem::transmute(value) }
10831     }
10832 }
10833 impl ::std::convert::From<&IDXGISwapChainMedia> for ::windows::runtime::IUnknown {
from(value: &IDXGISwapChainMedia) -> Self10834     fn from(value: &IDXGISwapChainMedia) -> Self {
10835         ::std::convert::From::from(::std::clone::Clone::clone(value))
10836     }
10837 }
10838 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGISwapChainMedia {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>10839     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
10840         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
10841     }
10842 }
10843 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGISwapChainMedia {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>10844     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
10845         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
10846     }
10847 }
10848 #[repr(C)]
10849 #[doc(hidden)]
10850 pub struct IDXGISwapChainMedia_abi(
10851     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10852     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10853     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10854     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pstats: *mut DXGI_FRAME_STATISTICS_MEDIA) -> ::windows::runtime::HRESULT,
10855     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, duration: u32) -> ::windows::runtime::HRESULT,
10856     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, desiredpresentduration: u32, pclosestsmallerpresentduration: *mut u32, pclosestlargerpresentduration: *mut u32) -> ::windows::runtime::HRESULT,
10857 );
10858 #[repr(transparent)]
10859 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
10860 pub struct IDXGraphicsAnalysis(::windows::runtime::IUnknown);
10861 impl IDXGraphicsAnalysis {
BeginCapture(&self)10862     pub unsafe fn BeginCapture(&self) {
10863         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)))
10864     }
EndCapture(&self)10865     pub unsafe fn EndCapture(&self) {
10866         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)))
10867     }
10868 }
10869 unsafe impl ::windows::runtime::Interface for IDXGraphicsAnalysis {
10870     type Vtable = IDXGraphicsAnalysis_abi;
10871     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2670007572, 40269, 18690, [157, 96, 24, 152, 138, 183, 212, 181]);
10872 }
10873 impl ::std::convert::From<IDXGraphicsAnalysis> for ::windows::runtime::IUnknown {
from(value: IDXGraphicsAnalysis) -> Self10874     fn from(value: IDXGraphicsAnalysis) -> Self {
10875         unsafe { ::std::mem::transmute(value) }
10876     }
10877 }
10878 impl ::std::convert::From<&IDXGraphicsAnalysis> for ::windows::runtime::IUnknown {
from(value: &IDXGraphicsAnalysis) -> Self10879     fn from(value: &IDXGraphicsAnalysis) -> Self {
10880         ::std::convert::From::from(::std::clone::Clone::clone(value))
10881     }
10882 }
10883 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDXGraphicsAnalysis {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>10884     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
10885         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
10886     }
10887 }
10888 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDXGraphicsAnalysis {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>10889     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
10890         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
10891     }
10892 }
10893 #[repr(C)]
10894 #[doc(hidden)]
10895 pub struct IDXGraphicsAnalysis_abi(
10896     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10897     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10898     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10899     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr),
10900     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr),
10901 );
10902 pub const _FACDXGI: u32 = 2170u32;
10903