1 #![allow(unused_variables, non_upper_case_globals, non_snake_case, unused_unsafe, non_camel_case_types, dead_code, clippy::all)]
2 pub const CLSID_DxcAssembler: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3609779048, 63747, 20352, [148, 205, 220, 207, 118, 236, 113, 81]);
3 pub const CLSID_DxcCompiler: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1944202643, 59086, 18419, [181, 191, 240, 102, 79, 57, 193, 176]);
4 pub const CLSID_DxcCompilerArgs: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1045868162, 8781, 18191, [161, 161, 254, 48, 22, 238, 159, 157]);
5 pub const CLSID_DxcContainerBuilder: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2484290196, 16671, 17780, [180, 208, 135, 65, 226, 82, 64, 210]);
6 pub const CLSID_DxcContainerReflection: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3119858825, 21944, 16396, [186, 58, 22, 117, 228, 114, 139, 145]);
7 pub const CLSID_DxcDiaDataSource: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3441388403, 10928, 18509, [142, 220, 235, 231, 164, 60, 160, 159]);
8 pub const CLSID_DxcLibrary: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1648744111, 26336, 18685, [128, 180, 77, 39, 23, 150, 116, 140]);
9 pub const CLSID_DxcLinker: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4016734343, 45290, 19798, [158, 69, 208, 126, 26, 139, 120, 6]);
10 pub const CLSID_DxcOptimizer: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2922174367, 52258, 17727, [155, 107, 177, 36, 231, 165, 32, 76]);
11 pub const CLSID_DxcPdbUtils: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1415716347, 62158, 17790, [174, 140, 236, 53, 95, 174, 236, 124]);
12 pub const CLSID_DxcValidator: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2359550485, 63272, 19699, [140, 221, 136, 175, 145, 117, 135, 161]);
13 pub const D3DCOMPILER_DLL: &'static str = "d3dcompiler_47.dll";
14 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
15 #[repr(transparent)]
16 pub struct D3DCOMPILER_STRIP_FLAGS(pub i32);
17 pub const D3DCOMPILER_STRIP_REFLECTION_DATA: D3DCOMPILER_STRIP_FLAGS = D3DCOMPILER_STRIP_FLAGS(1i32);
18 pub const D3DCOMPILER_STRIP_DEBUG_INFO: D3DCOMPILER_STRIP_FLAGS = D3DCOMPILER_STRIP_FLAGS(2i32);
19 pub const D3DCOMPILER_STRIP_TEST_BLOBS: D3DCOMPILER_STRIP_FLAGS = D3DCOMPILER_STRIP_FLAGS(4i32);
20 pub const D3DCOMPILER_STRIP_PRIVATE_DATA: D3DCOMPILER_STRIP_FLAGS = D3DCOMPILER_STRIP_FLAGS(8i32);
21 pub const D3DCOMPILER_STRIP_ROOT_SIGNATURE: D3DCOMPILER_STRIP_FLAGS = D3DCOMPILER_STRIP_FLAGS(16i32);
22 pub const D3DCOMPILER_STRIP_FORCE_DWORD: D3DCOMPILER_STRIP_FLAGS = D3DCOMPILER_STRIP_FLAGS(2147483647i32);
23 impl ::std::convert::From<i32> for D3DCOMPILER_STRIP_FLAGS {
24     fn from(value: i32) -> Self {
25         Self(value)
26     }
27 }
28 unsafe impl ::windows::runtime::Abi for D3DCOMPILER_STRIP_FLAGS {
29     type Abi = Self;
30     type DefaultType = Self;
31 }
32 pub const D3DCOMPILE_ALL_RESOURCES_BOUND: u32 = 2097152u32;
33 pub const D3DCOMPILE_AVOID_FLOW_CONTROL: u32 = 512u32;
34 pub const D3DCOMPILE_DEBUG: u32 = 1u32;
35 pub const D3DCOMPILE_DEBUG_NAME_FOR_BINARY: u32 = 8388608u32;
36 pub const D3DCOMPILE_DEBUG_NAME_FOR_SOURCE: u32 = 4194304u32;
37 pub const D3DCOMPILE_EFFECT_ALLOW_SLOW_OPS: u32 = 2u32;
38 pub const D3DCOMPILE_EFFECT_CHILD_EFFECT: u32 = 1u32;
39 pub const D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY: u32 = 4096u32;
40 pub const D3DCOMPILE_ENABLE_STRICTNESS: u32 = 2048u32;
41 pub const D3DCOMPILE_ENABLE_UNBOUNDED_DESCRIPTOR_TABLES: u32 = 1048576u32;
42 pub const D3DCOMPILE_FLAGS2_FORCE_ROOT_SIGNATURE_1_0: u32 = 16u32;
43 pub const D3DCOMPILE_FLAGS2_FORCE_ROOT_SIGNATURE_1_1: u32 = 32u32;
44 pub const D3DCOMPILE_FLAGS2_FORCE_ROOT_SIGNATURE_LATEST: u32 = 0u32;
45 pub const D3DCOMPILE_FORCE_PS_SOFTWARE_NO_OPT: u32 = 128u32;
46 pub const D3DCOMPILE_FORCE_VS_SOFTWARE_NO_OPT: u32 = 64u32;
47 pub const D3DCOMPILE_IEEE_STRICTNESS: u32 = 8192u32;
48 pub const D3DCOMPILE_NO_PRESHADER: u32 = 256u32;
49 pub const D3DCOMPILE_OPTIMIZATION_LEVEL0: u32 = 16384u32;
50 pub const D3DCOMPILE_OPTIMIZATION_LEVEL1: u32 = 0u32;
51 pub const D3DCOMPILE_OPTIMIZATION_LEVEL2: u32 = 49152u32;
52 pub const D3DCOMPILE_OPTIMIZATION_LEVEL3: u32 = 32768u32;
53 pub const D3DCOMPILE_PACK_MATRIX_COLUMN_MAJOR: u32 = 16u32;
54 pub const D3DCOMPILE_PACK_MATRIX_ROW_MAJOR: u32 = 8u32;
55 pub const D3DCOMPILE_PARTIAL_PRECISION: u32 = 32u32;
56 pub const D3DCOMPILE_PREFER_FLOW_CONTROL: u32 = 1024u32;
57 pub const D3DCOMPILE_RESERVED16: u32 = 65536u32;
58 pub const D3DCOMPILE_RESERVED17: u32 = 131072u32;
59 pub const D3DCOMPILE_RESOURCES_MAY_ALIAS: u32 = 524288u32;
60 pub const D3DCOMPILE_SECDATA_MERGE_UAV_SLOTS: u32 = 1u32;
61 pub const D3DCOMPILE_SECDATA_PRESERVE_TEMPLATE_SLOTS: u32 = 2u32;
62 pub const D3DCOMPILE_SECDATA_REQUIRE_TEMPLATE_MATCH: u32 = 4u32;
63 pub const D3DCOMPILE_SKIP_OPTIMIZATION: u32 = 4u32;
64 pub const D3DCOMPILE_SKIP_VALIDATION: u32 = 2u32;
65 pub const D3DCOMPILE_WARNINGS_ARE_ERRORS: u32 = 262144u32;
66 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D11"))]
67 #[inline]
68 pub unsafe fn D3DCompile<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PSTR>, Param4: ::windows::runtime::IntoParam<'a, super::Direct3D11::ID3DInclude>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::PSTR>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::PSTR>>(
69     psrcdata: *const ::std::ffi::c_void,
70     srcdatasize: usize,
71     psourcename: Param2,
72     pdefines: *const super::Direct3D11::D3D_SHADER_MACRO,
73     pinclude: Param4,
74     pentrypoint: Param5,
75     ptarget: Param6,
76     flags1: u32,
77     flags2: u32,
78     ppcode: *mut ::std::option::Option<super::Direct3D11::ID3DBlob>,
79     pperrormsgs: *mut ::std::option::Option<super::Direct3D11::ID3DBlob>,
80 ) -> ::windows::runtime::Result<()> {
81     #[cfg(windows)]
82     {
83         #[link(name = "windows")]
84         extern "system" {
data_widget_class_init(DataWidgetClass * klass)85             fn D3DCompile(psrcdata: *const ::std::ffi::c_void, srcdatasize: usize, psourcename: super::super::Foundation::PSTR, pdefines: *const super::Direct3D11::D3D_SHADER_MACRO, pinclude: ::windows::runtime::RawPtr, pentrypoint: super::super::Foundation::PSTR, ptarget: super::super::Foundation::PSTR, flags1: u32, flags2: u32, ppcode: *mut ::windows::runtime::RawPtr, pperrormsgs: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT;
86         }
87         D3DCompile(
88             ::std::mem::transmute(psrcdata),
89             ::std::mem::transmute(srcdatasize),
90             psourcename.into_param().abi(),
91             ::std::mem::transmute(pdefines),
92             pinclude.into_param().abi(),
93             pentrypoint.into_param().abi(),
94             ptarget.into_param().abi(),
95             ::std::mem::transmute(flags1),
data_widget_init(DataWidget * dwid,G_GNUC_UNUSED DataWidgetClass * klass)96             ::std::mem::transmute(flags2),
97             ::std::mem::transmute(ppcode),
98             ::std::mem::transmute(pperrormsgs),
99         )
100         .ok()
101     }
102     #[cfg(not(windows))]
103     unimplemented!("Unsupported target OS");
104 }
105 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D11"))]
106 #[inline]
107 pub unsafe fn D3DCompile2<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PSTR>, Param4: ::windows::runtime::IntoParam<'a, super::Direct3D11::ID3DInclude>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::PSTR>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::PSTR>>(
108     psrcdata: *const ::std::ffi::c_void,
109     srcdatasize: usize,
110     psourcename: Param2,
111     pdefines: *const super::Direct3D11::D3D_SHADER_MACRO,
112     pinclude: Param4,
113     pentrypoint: Param5,
114     ptarget: Param6,
115     flags1: u32,
116     flags2: u32,
117     secondarydataflags: u32,
118     psecondarydata: *const ::std::ffi::c_void,
119     secondarydatasize: usize,
120     ppcode: *mut ::std::option::Option<super::Direct3D11::ID3DBlob>,
121     pperrormsgs: *mut ::std::option::Option<super::Direct3D11::ID3DBlob>,
122 ) -> ::windows::runtime::Result<()> {
123     #[cfg(windows)]
124     {
125         #[link(name = "windows")]
126         extern "system" {
127             fn D3DCompile2(
128                 psrcdata: *const ::std::ffi::c_void,
129                 srcdatasize: usize,
130                 psourcename: super::super::Foundation::PSTR,
data_widget_get_type(void)131                 pdefines: *const super::Direct3D11::D3D_SHADER_MACRO,
132                 pinclude: ::windows::runtime::RawPtr,
133                 pentrypoint: super::super::Foundation::PSTR,
134                 ptarget: super::super::Foundation::PSTR,
135                 flags1: u32,
136                 flags2: u32,
137                 secondarydataflags: u32,
138                 psecondarydata: *const ::std::ffi::c_void,
139                 secondarydatasize: usize,
140                 ppcode: *mut ::windows::runtime::RawPtr,
141                 pperrormsgs: *mut ::windows::runtime::RawPtr,
142             ) -> ::windows::runtime::HRESULT;
143         }
144         D3DCompile2(
145             ::std::mem::transmute(psrcdata),
146             ::std::mem::transmute(srcdatasize),
147             psourcename.into_param().abi(),
148             ::std::mem::transmute(pdefines),
149             pinclude.into_param().abi(),
150             pentrypoint.into_param().abi(),
151             ptarget.into_param().abi(),
152             ::std::mem::transmute(flags1),
153             ::std::mem::transmute(flags2),
data_part_free_func(DataPart * part)154             ::std::mem::transmute(secondarydataflags),
155             ::std::mem::transmute(psecondarydata),
156             ::std::mem::transmute(secondarydatasize),
157             ::std::mem::transmute(ppcode),
158             ::std::mem::transmute(pperrormsgs),
159         )
160         .ok()
161     }
162     #[cfg(not(windows))]
163     unimplemented!("Unsupported target OS");
164 }
165 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D11"))]
166 #[inline]
167 pub unsafe fn D3DCompileFromFile<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::Direct3D11::ID3DInclude>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PSTR>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::PSTR>>(
168     pfilename: Param0,
169     pdefines: *const super::Direct3D11::D3D_SHADER_MACRO,
170     pinclude: Param2,
171     pentrypoint: Param3,
172     ptarget: Param4,
173     flags1: u32,
174     flags2: u32,
175     ppcode: *mut ::std::option::Option<super::Direct3D11::ID3DBlob>,
176     pperrormsgs: *mut ::std::option::Option<super::Direct3D11::ID3DBlob>,
177 ) -> ::windows::runtime::Result<()> {
178     #[cfg(windows)]
179     {
180         #[link(name = "windows")]
181         extern "system" {
182             fn D3DCompileFromFile(pfilename: super::super::Foundation::PWSTR, pdefines: *const super::Direct3D11::D3D_SHADER_MACRO, pinclude: ::windows::runtime::RawPtr, pentrypoint: super::super::Foundation::PSTR, ptarget: super::super::Foundation::PSTR, flags1: u32, flags2: u32, ppcode: *mut ::windows::runtime::RawPtr, pperrormsgs: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT;
183         }
create_or_reuse_part(DataWidget * dwid,DataSource * source,gboolean * out_reused)184         D3DCompileFromFile(pfilename.into_param().abi(), ::std::mem::transmute(pdefines), pinclude.into_param().abi(), pentrypoint.into_param().abi(), ptarget.into_param().abi(), ::std::mem::transmute(flags1), ::std::mem::transmute(flags2), ::std::mem::transmute(ppcode), ::std::mem::transmute(pperrormsgs)).ok()
185     }
186     #[cfg(not(windows))]
187     unimplemented!("Unsupported target OS");
188 }
189 #[cfg(feature = "Win32_Graphics_Direct3D11")]
190 #[inline]
191 pub unsafe fn D3DCompressShaders(unumshaders: u32, pshaderdata: *const D3D_SHADER_DATA, uflags: u32) -> ::windows::runtime::Result<super::Direct3D11::ID3DBlob> {
192     #[cfg(windows)]
193     {
194         #[link(name = "windows")]
195         extern "system" {
196             fn D3DCompressShaders(unumshaders: u32, pshaderdata: *const D3D_SHADER_DATA, uflags: u32, ppcompresseddata: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT;
197         }
198         let mut result__: <super::Direct3D11::ID3DBlob as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
199         D3DCompressShaders(::std::mem::transmute(unumshaders), ::std::mem::transmute(pshaderdata), ::std::mem::transmute(uflags), &mut result__).from_abi::<super::Direct3D11::ID3DBlob>(result__)
200     }
201     #[cfg(not(windows))]
202     unimplemented!("Unsupported target OS");
203 }
204 #[cfg(feature = "Win32_Graphics_Direct3D11")]
205 #[inline]
206 pub unsafe fn D3DCreateBlob(size: usize) -> ::windows::runtime::Result<super::Direct3D11::ID3DBlob> {
207     #[cfg(windows)]
208     {
209         #[link(name = "windows")]
210         extern "system" {
211             fn D3DCreateBlob(size: usize, ppblob: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT;
212         }
213         let mut result__: <super::Direct3D11::ID3DBlob as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
214         D3DCreateBlob(::std::mem::transmute(size), &mut result__).from_abi::<super::Direct3D11::ID3DBlob>(result__)
215     }
216     #[cfg(not(windows))]
217     unimplemented!("Unsupported target OS");
218 }
219 #[cfg(feature = "Win32_Graphics_Direct3D11")]
220 #[inline]
221 pub unsafe fn D3DCreateFunctionLinkingGraph(uflags: u32) -> ::windows::runtime::Result<super::Direct3D11::ID3D11FunctionLinkingGraph> {
222     #[cfg(windows)]
223     {
224         #[link(name = "windows")]
225         extern "system" {
226             fn D3DCreateFunctionLinkingGraph(uflags: u32, ppfunctionlinkinggraph: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT;
227         }
228         let mut result__: <super::Direct3D11::ID3D11FunctionLinkingGraph as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
229         D3DCreateFunctionLinkingGraph(::std::mem::transmute(uflags), &mut result__).from_abi::<super::Direct3D11::ID3D11FunctionLinkingGraph>(result__)
230     }
231     #[cfg(not(windows))]
232     unimplemented!("Unsupported target OS");
233 }
234 #[cfg(feature = "Win32_Graphics_Direct3D11")]
235 #[inline]
236 pub unsafe fn D3DCreateLinker() -> ::windows::runtime::Result<super::Direct3D11::ID3D11Linker> {
237     #[cfg(windows)]
238     {
239         #[link(name = "windows")]
240         extern "system" {
241             fn D3DCreateLinker(pplinker: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT;
242         }
243         let mut result__: <super::Direct3D11::ID3D11Linker as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
244         D3DCreateLinker(&mut result__).from_abi::<super::Direct3D11::ID3D11Linker>(result__)
245     }
246     #[cfg(not(windows))]
247     unimplemented!("Unsupported target OS");
248 }
249 #[cfg(feature = "Win32_Graphics_Direct3D11")]
250 #[inline]
251 pub unsafe fn D3DDecompressShaders(psrcdata: *const ::std::ffi::c_void, srcdatasize: usize, unumshaders: u32, ustartindex: u32, pindices: *const u32, uflags: u32, ppshaders: *mut ::std::option::Option<super::Direct3D11::ID3DBlob>, ptotalshaders: *mut u32) -> ::windows::runtime::Result<()> {
252     #[cfg(windows)]
253     {
254         #[link(name = "windows")]
255         extern "system" {
256             fn D3DDecompressShaders(psrcdata: *const ::std::ffi::c_void, srcdatasize: usize, unumshaders: u32, ustartindex: u32, pindices: *const u32, uflags: u32, ppshaders: *mut ::windows::runtime::RawPtr, ptotalshaders: *mut u32) -> ::windows::runtime::HRESULT;
257         }
258         D3DDecompressShaders(::std::mem::transmute(psrcdata), ::std::mem::transmute(srcdatasize), ::std::mem::transmute(unumshaders), ::std::mem::transmute(ustartindex), ::std::mem::transmute(pindices), ::std::mem::transmute(uflags), ::std::mem::transmute(ppshaders), ::std::mem::transmute(ptotalshaders)).ok()
259     }
260     #[cfg(not(windows))]
261     unimplemented!("Unsupported target OS");
262 }
263 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D11"))]
264 #[inline]
265 pub unsafe fn D3DDisassemble<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PSTR>>(psrcdata: *const ::std::ffi::c_void, srcdatasize: usize, flags: u32, szcomments: Param3) -> ::windows::runtime::Result<super::Direct3D11::ID3DBlob> {
266     #[cfg(windows)]
267     {
268         #[link(name = "windows")]
269         extern "system" {
270             fn D3DDisassemble(psrcdata: *const ::std::ffi::c_void, srcdatasize: usize, flags: u32, szcomments: super::super::Foundation::PSTR, ppdisassembly: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT;
271         }
272         let mut result__: <super::Direct3D11::ID3DBlob as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
273         D3DDisassemble(::std::mem::transmute(psrcdata), ::std::mem::transmute(srcdatasize), ::std::mem::transmute(flags), szcomments.into_param().abi(), &mut result__).from_abi::<super::Direct3D11::ID3DBlob>(result__)
274     }
275     #[cfg(not(windows))]
276     unimplemented!("Unsupported target OS");
make_paned_list(gint size,gboolean horiz)277 }
278 #[cfg(all(feature = "Win32_Graphics_Direct3D10", feature = "Win32_Graphics_Direct3D11"))]
279 #[inline]
280 pub unsafe fn D3DDisassemble10Effect<'a, Param0: ::windows::runtime::IntoParam<'a, super::Direct3D10::ID3D10Effect>>(peffect: Param0, flags: u32) -> ::windows::runtime::Result<super::Direct3D11::ID3DBlob> {
281     #[cfg(windows)]
282     {
283         #[link(name = "windows")]
284         extern "system" {
285             fn D3DDisassemble10Effect(peffect: ::windows::runtime::RawPtr, flags: u32, ppdisassembly: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT;
286         }
287         let mut result__: <super::Direct3D11::ID3DBlob as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
288         D3DDisassemble10Effect(peffect.into_param().abi(), ::std::mem::transmute(flags), &mut result__).from_abi::<super::Direct3D11::ID3DBlob>(result__)
289     }
290     #[cfg(not(windows))]
291     unimplemented!("Unsupported target OS");
292 }
293 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D11"))]
294 #[inline]
295 pub unsafe fn D3DDisassembleRegion<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PSTR>>(psrcdata: *const ::std::ffi::c_void, srcdatasize: usize, flags: u32, szcomments: Param3, startbyteoffset: usize, numinsts: usize, pfinishbyteoffset: *mut usize, ppdisassembly: *mut ::std::option::Option<super::Direct3D11::ID3DBlob>) -> ::windows::runtime::Result<()> {
296     #[cfg(windows)]
297     {
pack_in_paned_list(GSList * paned_list,gint length,gint pos,GtkWidget * wid)298         #[link(name = "windows")]
299         extern "system" {
300             fn D3DDisassembleRegion(psrcdata: *const ::std::ffi::c_void, srcdatasize: usize, flags: u32, szcomments: super::super::Foundation::PSTR, startbyteoffset: usize, numinsts: usize, pfinishbyteoffset: *mut usize, ppdisassembly: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT;
301         }
302         D3DDisassembleRegion(::std::mem::transmute(psrcdata), ::std::mem::transmute(srcdatasize), ::std::mem::transmute(flags), szcomments.into_param().abi(), ::std::mem::transmute(startbyteoffset), ::std::mem::transmute(numinsts), ::std::mem::transmute(pfinishbyteoffset), ::std::mem::transmute(ppdisassembly)).ok()
303     }
304     #[cfg(not(windows))]
305     unimplemented!("Unsupported target OS");
306 }
307 #[cfg(feature = "Win32_Graphics_Direct3D11")]
308 #[inline]
309 pub unsafe fn D3DGetBlobPart(psrcdata: *const ::std::ffi::c_void, srcdatasize: usize, part: D3D_BLOB_PART, flags: u32) -> ::windows::runtime::Result<super::Direct3D11::ID3DBlob> {
310     #[cfg(windows)]
311     {
remove_data_source_mitem_activated_cb(G_GNUC_UNUSED GtkMenuItem * mitem,DataPart * part)312         #[link(name = "windows")]
313         extern "system" {
314             fn D3DGetBlobPart(psrcdata: *const ::std::ffi::c_void, srcdatasize: usize, part: D3D_BLOB_PART, flags: u32, pppart: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT;
315         }
316         let mut result__: <super::Direct3D11::ID3DBlob as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
317         D3DGetBlobPart(::std::mem::transmute(psrcdata), ::std::mem::transmute(srcdatasize), ::std::mem::transmute(part), ::std::mem::transmute(flags), &mut result__).from_abi::<super::Direct3D11::ID3DBlob>(result__)
data_source_props_activated_cb(GtkCheckMenuItem * mitem,DataPart * part)318     }
319     #[cfg(not(windows))]
320     unimplemented!("Unsupported target OS");
321 }
322 #[cfg(feature = "Win32_Graphics_Direct3D11")]
323 #[inline]
324 pub unsafe fn D3DGetDebugInfo(psrcdata: *const ::std::ffi::c_void, srcdatasize: usize) -> ::windows::runtime::Result<super::Direct3D11::ID3DBlob> {
325     #[cfg(windows)]
326     {
327         #[link(name = "windows")]
328         extern "system" {
329             fn D3DGetDebugInfo(psrcdata: *const ::std::ffi::c_void, srcdatasize: usize, ppdebuginfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT;
330         }
331         let mut result__: <super::Direct3D11::ID3DBlob as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
332         D3DGetDebugInfo(::std::mem::transmute(psrcdata), ::std::mem::transmute(srcdatasize), &mut result__).from_abi::<super::Direct3D11::ID3DBlob>(result__)
333     }
334     #[cfg(not(windows))]
335     unimplemented!("Unsupported target OS");
336 }
337 #[cfg(feature = "Win32_Graphics_Direct3D11")]
data_source_menu_clicked_cb(G_GNUC_UNUSED GtkButton * button,DataPart * part)338 #[inline]
339 pub unsafe fn D3DGetInputAndOutputSignatureBlob(psrcdata: *const ::std::ffi::c_void, srcdatasize: usize) -> ::windows::runtime::Result<super::Direct3D11::ID3DBlob> {
340     #[cfg(windows)]
341     {
342         #[link(name = "windows")]
343         extern "system" {
344             fn D3DGetInputAndOutputSignatureBlob(psrcdata: *const ::std::ffi::c_void, srcdatasize: usize, ppsignatureblob: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT;
345         }
346         let mut result__: <super::Direct3D11::ID3DBlob as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
347         D3DGetInputAndOutputSignatureBlob(::std::mem::transmute(psrcdata), ::std::mem::transmute(srcdatasize), &mut result__).from_abi::<super::Direct3D11::ID3DBlob>(result__)
348     }
349     #[cfg(not(windows))]
350     unimplemented!("Unsupported target OS");
351 }
352 #[cfg(feature = "Win32_Graphics_Direct3D11")]
353 #[inline]
354 pub unsafe fn D3DGetInputSignatureBlob(psrcdata: *const ::std::ffi::c_void, srcdatasize: usize) -> ::windows::runtime::Result<super::Direct3D11::ID3DBlob> {
355     #[cfg(windows)]
356     {
357         #[link(name = "windows")]
358         extern "system" {
359             fn D3DGetInputSignatureBlob(psrcdata: *const ::std::ffi::c_void, srcdatasize: usize, ppsignatureblob: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT;
360         }
361         let mut result__: <super::Direct3D11::ID3DBlob as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
362         D3DGetInputSignatureBlob(::std::mem::transmute(psrcdata), ::std::mem::transmute(srcdatasize), &mut result__).from_abi::<super::Direct3D11::ID3DBlob>(result__)
363     }
364     #[cfg(not(windows))]
365     unimplemented!("Unsupported target OS");
366 }
367 #[cfg(feature = "Win32_Graphics_Direct3D11")]
368 #[inline]
369 pub unsafe fn D3DGetOutputSignatureBlob(psrcdata: *const ::std::ffi::c_void, srcdatasize: usize) -> ::windows::runtime::Result<super::Direct3D11::ID3DBlob> {
update_layout(DataWidget * dwid)370     #[cfg(windows)]
371     {
372         #[link(name = "windows")]
373         extern "system" {
374             fn D3DGetOutputSignatureBlob(psrcdata: *const ::std::ffi::c_void, srcdatasize: usize, ppsignatureblob: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT;
375         }
376         let mut result__: <super::Direct3D11::ID3DBlob as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
377         D3DGetOutputSignatureBlob(::std::mem::transmute(psrcdata), ::std::mem::transmute(srcdatasize), &mut result__).from_abi::<super::Direct3D11::ID3DBlob>(result__)
378     }
379     #[cfg(not(windows))]
380     unimplemented!("Unsupported target OS");
381 }
382 #[inline]
383 pub unsafe fn D3DGetTraceInstructionOffsets(psrcdata: *const ::std::ffi::c_void, srcdatasize: usize, flags: u32, startinstindex: usize, numinsts: usize, poffsets: *mut usize, ptotalinsts: *mut usize) -> ::windows::runtime::Result<()> {
384     #[cfg(windows)]
385     {
386         #[link(name = "windows")]
387         extern "system" {
388             fn D3DGetTraceInstructionOffsets(psrcdata: *const ::std::ffi::c_void, srcdatasize: usize, flags: u32, startinstindex: usize, numinsts: usize, poffsets: *mut usize, ptotalinsts: *mut usize) -> ::windows::runtime::HRESULT;
389         }
390         D3DGetTraceInstructionOffsets(::std::mem::transmute(psrcdata), ::std::mem::transmute(srcdatasize), ::std::mem::transmute(flags), ::std::mem::transmute(startinstindex), ::std::mem::transmute(numinsts), ::std::mem::transmute(poffsets), ::std::mem::transmute(ptotalinsts)).ok()
391     }
392     #[cfg(not(windows))]
393     unimplemented!("Unsupported target OS");
394 }
395 #[cfg(feature = "Win32_Graphics_Direct3D11")]
396 #[inline]
397 pub unsafe fn D3DLoadModule(psrcdata: *const ::std::ffi::c_void, cbsrcdatasize: usize) -> ::windows::runtime::Result<super::Direct3D11::ID3D11Module> {
398     #[cfg(windows)]
399     {
400         #[link(name = "windows")]
401         extern "system" {
402             fn D3DLoadModule(psrcdata: *const ::std::ffi::c_void, cbsrcdatasize: usize, ppmodule: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT;
403         }
404         let mut result__: <super::Direct3D11::ID3D11Module as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
405         D3DLoadModule(::std::mem::transmute(psrcdata), ::std::mem::transmute(cbsrcdatasize), &mut result__).from_abi::<super::Direct3D11::ID3D11Module>(result__)
406     }
407     #[cfg(not(windows))]
408     unimplemented!("Unsupported target OS");
409 }
410 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D11"))]
411 #[inline]
412 pub unsafe fn D3DPreprocess<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PSTR>, Param4: ::windows::runtime::IntoParam<'a, super::Direct3D11::ID3DInclude>>(
413     psrcdata: *const ::std::ffi::c_void,
414     srcdatasize: usize,
415     psourcename: Param2,
416     pdefines: *const super::Direct3D11::D3D_SHADER_MACRO,
417     pinclude: Param4,
418     ppcodetext: *mut ::std::option::Option<super::Direct3D11::ID3DBlob>,
419     pperrormsgs: *mut ::std::option::Option<super::Direct3D11::ID3DBlob>,
420 ) -> ::windows::runtime::Result<()> {
421     #[cfg(windows)]
422     {
423         #[link(name = "windows")]
424         extern "system" {
425             fn D3DPreprocess(psrcdata: *const ::std::ffi::c_void, srcdatasize: usize, psourcename: super::super::Foundation::PSTR, pdefines: *const super::Direct3D11::D3D_SHADER_MACRO, pinclude: ::windows::runtime::RawPtr, ppcodetext: *mut ::windows::runtime::RawPtr, pperrormsgs: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT;
426         }
427         D3DPreprocess(::std::mem::transmute(psrcdata), ::std::mem::transmute(srcdatasize), psourcename.into_param().abi(), ::std::mem::transmute(pdefines), pinclude.into_param().abi(), ::std::mem::transmute(ppcodetext), ::std::mem::transmute(pperrormsgs)).ok()
428     }
429     #[cfg(not(windows))]
430     unimplemented!("Unsupported target OS");
431 }
432 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D11"))]
433 #[inline]
434 pub unsafe fn D3DReadFileToBlob<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(pfilename: Param0) -> ::windows::runtime::Result<super::Direct3D11::ID3DBlob> {
435     #[cfg(windows)]
436     {
437         #[link(name = "windows")]
438         extern "system" {
439             fn D3DReadFileToBlob(pfilename: super::super::Foundation::PWSTR, ppcontents: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT;
440         }
441         let mut result__: <super::Direct3D11::ID3DBlob as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
442         D3DReadFileToBlob(pfilename.into_param().abi(), &mut result__).from_abi::<super::Direct3D11::ID3DBlob>(result__)
443     }
444     #[cfg(not(windows))]
445     unimplemented!("Unsupported target OS");
446 }
447 #[inline]
448 pub unsafe fn D3DReflect(psrcdata: *const ::std::ffi::c_void, srcdatasize: usize, pinterface: *const ::windows::runtime::GUID, ppreflector: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
449     #[cfg(windows)]
450     {
451         #[link(name = "windows")]
452         extern "system" {
453             fn D3DReflect(psrcdata: *const ::std::ffi::c_void, srcdatasize: usize, pinterface: *const ::windows::runtime::GUID, ppreflector: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT;
454         }
455         D3DReflect(::std::mem::transmute(psrcdata), ::std::mem::transmute(srcdatasize), ::std::mem::transmute(pinterface), ::std::mem::transmute(ppreflector)).ok()
456     }
457     #[cfg(not(windows))]
458     unimplemented!("Unsupported target OS");
459 }
460 #[inline]
461 pub unsafe fn D3DReflectLibrary(psrcdata: *const ::std::ffi::c_void, srcdatasize: usize, riid: *const ::windows::runtime::GUID, ppreflector: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
462     #[cfg(windows)]
463     {
464         #[link(name = "windows")]
465         extern "system" {
466             fn D3DReflectLibrary(psrcdata: *const ::std::ffi::c_void, srcdatasize: usize, riid: *const ::windows::runtime::GUID, ppreflector: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT;
467         }
468         D3DReflectLibrary(::std::mem::transmute(psrcdata), ::std::mem::transmute(srcdatasize), ::std::mem::transmute(riid), ::std::mem::transmute(ppreflector)).ok()
469     }
470     #[cfg(not(windows))]
471     unimplemented!("Unsupported target OS");
472 }
473 #[cfg(feature = "Win32_Graphics_Direct3D11")]
474 #[inline]
475 pub unsafe fn D3DSetBlobPart(psrcdata: *const ::std::ffi::c_void, srcdatasize: usize, part: D3D_BLOB_PART, flags: u32, ppart: *const ::std::ffi::c_void, partsize: usize) -> ::windows::runtime::Result<super::Direct3D11::ID3DBlob> {
476     #[cfg(windows)]
477     {
478         #[link(name = "windows")]
479         extern "system" {
480             fn D3DSetBlobPart(psrcdata: *const ::std::ffi::c_void, srcdatasize: usize, part: D3D_BLOB_PART, flags: u32, ppart: *const ::std::ffi::c_void, partsize: usize, ppnewshader: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT;
481         }
482         let mut result__: <super::Direct3D11::ID3DBlob as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
483         D3DSetBlobPart(::std::mem::transmute(psrcdata), ::std::mem::transmute(srcdatasize), ::std::mem::transmute(part), ::std::mem::transmute(flags), ::std::mem::transmute(ppart), ::std::mem::transmute(partsize), &mut result__).from_abi::<super::Direct3D11::ID3DBlob>(result__)
484     }
485     #[cfg(not(windows))]
486     unimplemented!("Unsupported target OS");
487 }
488 #[cfg(feature = "Win32_Graphics_Direct3D11")]
489 #[inline]
490 pub unsafe fn D3DStripShader(pshaderbytecode: *const ::std::ffi::c_void, bytecodelength: usize, ustripflags: u32) -> ::windows::runtime::Result<super::Direct3D11::ID3DBlob> {
491     #[cfg(windows)]
492     {
493         #[link(name = "windows")]
494         extern "system" {
495             fn D3DStripShader(pshaderbytecode: *const ::std::ffi::c_void, bytecodelength: usize, ustripflags: u32, ppstrippedblob: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT;
496         }
497         let mut result__: <super::Direct3D11::ID3DBlob as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
498         D3DStripShader(::std::mem::transmute(pshaderbytecode), ::std::mem::transmute(bytecodelength), ::std::mem::transmute(ustripflags), &mut result__).from_abi::<super::Direct3D11::ID3DBlob>(result__)
499     }
500     #[cfg(not(windows))]
501     unimplemented!("Unsupported target OS");
502 }
503 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D11"))]
504 #[inline]
505 pub unsafe fn D3DWriteBlobToFile<'a, Param0: ::windows::runtime::IntoParam<'a, super::Direct3D11::ID3DBlob>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(pblob: Param0, pfilename: Param1, boverwrite: Param2) -> ::windows::runtime::Result<()> {
506     #[cfg(windows)]
507     {
508         #[link(name = "windows")]
509         extern "system" {
510             fn D3DWriteBlobToFile(pblob: ::windows::runtime::RawPtr, pfilename: super::super::Foundation::PWSTR, boverwrite: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT;
511         }
512         D3DWriteBlobToFile(pblob.into_param().abi(), pfilename.into_param().abi(), boverwrite.into_param().abi()).ok()
513     }
514     #[cfg(not(windows))]
515     unimplemented!("Unsupported target OS");
516 }
517 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
518 #[repr(transparent)]
519 pub struct D3D_BLOB_PART(pub i32);
520 pub const D3D_BLOB_INPUT_SIGNATURE_BLOB: D3D_BLOB_PART = D3D_BLOB_PART(0i32);
521 pub const D3D_BLOB_OUTPUT_SIGNATURE_BLOB: D3D_BLOB_PART = D3D_BLOB_PART(1i32);
522 pub const D3D_BLOB_INPUT_AND_OUTPUT_SIGNATURE_BLOB: D3D_BLOB_PART = D3D_BLOB_PART(2i32);
523 pub const D3D_BLOB_PATCH_CONSTANT_SIGNATURE_BLOB: D3D_BLOB_PART = D3D_BLOB_PART(3i32);
524 pub const D3D_BLOB_ALL_SIGNATURE_BLOB: D3D_BLOB_PART = D3D_BLOB_PART(4i32);
525 pub const D3D_BLOB_DEBUG_INFO: D3D_BLOB_PART = D3D_BLOB_PART(5i32);
526 pub const D3D_BLOB_LEGACY_SHADER: D3D_BLOB_PART = D3D_BLOB_PART(6i32);
527 pub const D3D_BLOB_XNA_PREPASS_SHADER: D3D_BLOB_PART = D3D_BLOB_PART(7i32);
528 pub const D3D_BLOB_XNA_SHADER: D3D_BLOB_PART = D3D_BLOB_PART(8i32);
mgr_list_changed_cb(G_GNUC_UNUSED DataSourceManager * mgr,DataWidget * dwid)529 pub const D3D_BLOB_PDB: D3D_BLOB_PART = D3D_BLOB_PART(9i32);
530 pub const D3D_BLOB_PRIVATE_DATA: D3D_BLOB_PART = D3D_BLOB_PART(10i32);
531 pub const D3D_BLOB_ROOT_SIGNATURE: D3D_BLOB_PART = D3D_BLOB_PART(11i32);
532 pub const D3D_BLOB_DEBUG_NAME: D3D_BLOB_PART = D3D_BLOB_PART(12i32);
533 pub const D3D_BLOB_TEST_ALTERNATE_SHADER: D3D_BLOB_PART = D3D_BLOB_PART(32768i32);
534 pub const D3D_BLOB_TEST_COMPILE_DETAILS: D3D_BLOB_PART = D3D_BLOB_PART(32769i32);
535 pub const D3D_BLOB_TEST_COMPILE_PERF: D3D_BLOB_PART = D3D_BLOB_PART(32770i32);
536 pub const D3D_BLOB_TEST_COMPILE_REPORT: D3D_BLOB_PART = D3D_BLOB_PART(32771i32);
537 impl ::std::convert::From<i32> for D3D_BLOB_PART {
538     fn from(value: i32) -> Self {
539         Self(value)
data_widget_new(DataSourceManager * mgr)540     }
541 }
542 unsafe impl ::windows::runtime::Abi for D3D_BLOB_PART {
543     type Abi = Self;
544     type DefaultType = Self;
545 }
546 pub const D3D_COMPILER_VERSION: u32 = 47u32;
547 pub const D3D_COMPILE_STANDARD_FILE_INCLUDE: u32 = 1u32;
548 pub const D3D_COMPRESS_SHADER_KEEP_ALL_PARTS: u32 = 1u32;
549 pub const D3D_DISASM_DISABLE_DEBUG_INFO: u32 = 16u32;
550 pub const D3D_DISASM_ENABLE_COLOR_CODE: u32 = 1u32;
551 pub const D3D_DISASM_ENABLE_DEFAULT_VALUE_PRINTS: u32 = 2u32;
552 pub const D3D_DISASM_ENABLE_INSTRUCTION_CYCLE: u32 = 8u32;
553 pub const D3D_DISASM_ENABLE_INSTRUCTION_NUMBERING: u32 = 4u32;
554 pub const D3D_DISASM_ENABLE_INSTRUCTION_OFFSET: u32 = 32u32;
555 pub const D3D_DISASM_INSTRUCTION_ONLY: u32 = 64u32;
556 pub const D3D_DISASM_PRINT_HEX_LITERALS: u32 = 128u32;
data_part_free(DataPart * part,GSList * all_parts)557 pub const D3D_GET_INST_OFFSETS_INCLUDE_NON_EXECUTABLE: u32 = 1u32;
558 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
559 #[repr(C)]
560 pub struct D3D_SHADER_DATA {
561     pub pBytecode: *mut ::std::ffi::c_void,
562     pub BytecodeLength: usize,
563 }
564 impl D3D_SHADER_DATA {}
565 impl ::std::default::Default for D3D_SHADER_DATA {
566     fn default() -> Self {
567         unsafe { ::std::mem::zeroed() }
568     }
569 }
570 impl ::std::fmt::Debug for D3D_SHADER_DATA {
571     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
572         fmt.debug_struct("D3D_SHADER_DATA").field("pBytecode", &self.pBytecode).field("BytecodeLength", &self.BytecodeLength).finish()
573     }
574 }
575 impl ::std::cmp::PartialEq for D3D_SHADER_DATA {
576     fn eq(&self, other: &Self) -> bool {
577         self.pBytecode == other.pBytecode && self.BytecodeLength == other.BytecodeLength
578     }
579 }
580 impl ::std::cmp::Eq for D3D_SHADER_DATA {}
581 unsafe impl ::windows::runtime::Abi for D3D_SHADER_DATA {
582     type Abi = Self;
583     type DefaultType = Self;
584 }
585 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
586 #[repr(transparent)]
587 pub struct DXC_CP(pub u32);
588 pub const DXC_CP_ACP: DXC_CP = DXC_CP(0u32);
589 pub const DXC_CP_UTF16: DXC_CP = DXC_CP(1200u32);
590 pub const DXC_CP_UTF8: DXC_CP = DXC_CP(65001u32);
591 impl ::std::convert::From<u32> for DXC_CP {
592     fn from(value: u32) -> Self {
593         Self(value)
594     }
data_part_find(DataWidget * dwid,DataSource * source)595 }
596 unsafe impl ::windows::runtime::Abi for DXC_CP {
597     type Abi = Self;
598     type DefaultType = Self;
599 }
600 impl ::std::ops::BitOr for DXC_CP {
601     type Output = Self;
602     fn bitor(self, rhs: Self) -> Self {
603         Self(self.0 | rhs.0)
604     }
605 }
data_part_show_error(DataPart * part,GError * error)606 impl ::std::ops::BitAnd for DXC_CP {
607     type Output = Self;
608     fn bitand(self, rhs: Self) -> Self {
609         Self(self.0 & rhs.0)
610     }
611 }
612 impl ::std::ops::BitOrAssign for DXC_CP {
613     fn bitor_assign(&mut self, rhs: Self) {
614         self.0.bitor_assign(rhs.0)
615     }
616 }
617 impl ::std::ops::BitAndAssign for DXC_CP {
618     fn bitand_assign(&mut self, rhs: Self) {
619         self.0.bitand_assign(rhs.0)
620     }
621 }
622 impl ::std::ops::Not for DXC_CP {
623     type Output = Self;
624     fn not(self) -> Self {
source_exec_started_cb_timeout(DataPart * part)625         Self(self.0.not())
626     }
627 }
628 pub const DXC_HASHFLAG_INCLUDES_SOURCE: u32 = 1u32;
629 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
630 #[repr(transparent)]
631 pub struct DXC_OUT_KIND(pub i32);
632 pub const DXC_OUT_NONE: DXC_OUT_KIND = DXC_OUT_KIND(0i32);
633 pub const DXC_OUT_OBJECT: DXC_OUT_KIND = DXC_OUT_KIND(1i32);
source_exec_started_cb(G_GNUC_UNUSED DataSource * source,DataPart * part)634 pub const DXC_OUT_ERRORS: DXC_OUT_KIND = DXC_OUT_KIND(2i32);
635 pub const DXC_OUT_PDB: DXC_OUT_KIND = DXC_OUT_KIND(3i32);
636 pub const DXC_OUT_SHADER_HASH: DXC_OUT_KIND = DXC_OUT_KIND(4i32);
637 pub const DXC_OUT_DISASSEMBLY: DXC_OUT_KIND = DXC_OUT_KIND(5i32);
638 pub const DXC_OUT_HLSL: DXC_OUT_KIND = DXC_OUT_KIND(6i32);
639 pub const DXC_OUT_TEXT: DXC_OUT_KIND = DXC_OUT_KIND(7i32);
640 pub const DXC_OUT_REFLECTION: DXC_OUT_KIND = DXC_OUT_KIND(8i32);
641 pub const DXC_OUT_ROOT_SIGNATURE: DXC_OUT_KIND = DXC_OUT_KIND(9i32);
642 pub const DXC_OUT_EXTRA_OUTPUTS: DXC_OUT_KIND = DXC_OUT_KIND(10i32);
643 pub const DXC_OUT_FORCE_DWORD: DXC_OUT_KIND = DXC_OUT_KIND(-1i32);
644 impl ::std::convert::From<i32> for DXC_OUT_KIND {
645     fn from(value: i32) -> Self {
replace_double_underscores(const gchar * str)646         Self(value)
647     }
648 }
649 unsafe impl ::windows::runtime::Abi for DXC_OUT_KIND {
650     type Abi = Self;
651     type DefaultType = Self;
652 }
653 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
654 #[repr(C)]
655 #[cfg(feature = "Win32_Foundation")]
656 pub struct DxcArgPair {
657     pub pName: super::super::Foundation::PWSTR,
658     pub pValue: super::super::Foundation::PWSTR,
customize_form_grid(UiFormGrid * cwid)659 }
660 #[cfg(feature = "Win32_Foundation")]
661 impl DxcArgPair {}
662 #[cfg(feature = "Win32_Foundation")]
663 impl ::std::default::Default for DxcArgPair {
664     fn default() -> Self {
665         unsafe { ::std::mem::zeroed() }
666     }
667 }
668 #[cfg(feature = "Win32_Foundation")]
669 impl ::std::fmt::Debug for DxcArgPair {
670     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
671         fmt.debug_struct("DxcArgPair").field("pName", &self.pName).field("pValue", &self.pValue).finish()
672     }
673 }
674 #[cfg(feature = "Win32_Foundation")]
675 impl ::std::cmp::PartialEq for DxcArgPair {
676     fn eq(&self, other: &Self) -> bool {
677         self.pName == other.pName && self.pValue == other.pValue
678     }
679 }
680 #[cfg(feature = "Win32_Foundation")]
681 impl ::std::cmp::Eq for DxcArgPair {}
682 #[cfg(feature = "Win32_Foundation")]
683 unsafe impl ::windows::runtime::Abi for DxcArgPair {
684     type Abi = Self;
685     type DefaultType = Self;
686 }
687 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
688 #[repr(C)]
689 pub struct DxcBuffer {
690     pub Ptr: *mut ::std::ffi::c_void,
691     pub Size: usize,
692     pub Encoding: u32,
693 }
694 impl DxcBuffer {}
695 impl ::std::default::Default for DxcBuffer {
source_exec_finished_cb(G_GNUC_UNUSED DataSource * source,GError * error,DataPart * part)696     fn default() -> Self {
697         unsafe { ::std::mem::zeroed() }
698     }
699 }
700 impl ::std::fmt::Debug for DxcBuffer {
701     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
702         fmt.debug_struct("DxcBuffer").field("Ptr", &self.Ptr).field("Size", &self.Size).field("Encoding", &self.Encoding).finish()
703     }
704 }
705 impl ::std::cmp::PartialEq for DxcBuffer {
706     fn eq(&self, other: &Self) -> bool {
707         self.Ptr == other.Ptr && self.Size == other.Size && self.Encoding == other.Encoding
708     }
709 }
710 impl ::std::cmp::Eq for DxcBuffer {}
711 unsafe impl ::windows::runtime::Abi for DxcBuffer {
712     type Abi = Self;
713     type DefaultType = Self;
714 }
715 #[inline]
716 pub unsafe fn DxcCreateInstance(rclsid: *const ::windows::runtime::GUID, riid: *const ::windows::runtime::GUID, ppv: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
717     #[cfg(windows)]
718     {
719         #[link(name = "windows")]
720         extern "system" {
721             fn DxcCreateInstance(rclsid: *const ::windows::runtime::GUID, riid: *const ::windows::runtime::GUID, ppv: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT;
722         }
723         DxcCreateInstance(::std::mem::transmute(rclsid), ::std::mem::transmute(riid), ::std::mem::transmute(ppv)).ok()
724     }
725     #[cfg(not(windows))]
726     unimplemented!("Unsupported target OS");
727 }
728 #[cfg(feature = "Win32_System_Com")]
729 #[inline]
730 pub unsafe fn DxcCreateInstance2<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::System::Com::IMalloc>>(pmalloc: Param0, rclsid: *const ::windows::runtime::GUID, riid: *const ::windows::runtime::GUID, ppv: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
731     #[cfg(windows)]
732     {
733         #[link(name = "windows")]
734         extern "system" {
735             fn DxcCreateInstance2(pmalloc: ::windows::runtime::RawPtr, rclsid: *const ::windows::runtime::GUID, riid: *const ::windows::runtime::GUID, ppv: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT;
736         }
737         DxcCreateInstance2(pmalloc.into_param().abi(), ::std::mem::transmute(rclsid), ::std::mem::transmute(riid), ::std::mem::transmute(ppv)).ok()
738     }
739     #[cfg(not(windows))]
740     unimplemented!("Unsupported target OS");
741 }
742 #[cfg(feature = "Win32_System_Com")]
743 pub type DxcCreateInstance2Proc = unsafe extern "system" fn(pmalloc: ::windows::runtime::RawPtr, rclsid: *const ::windows::runtime::GUID, riid: *const ::windows::runtime::GUID, ppv: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT;
744 pub type DxcCreateInstanceProc = unsafe extern "system" fn(rclsid: *const ::windows::runtime::GUID, riid: *const ::windows::runtime::GUID, ppv: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT;
745 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
746 #[repr(C)]
747 #[cfg(feature = "Win32_Foundation")]
748 pub struct DxcDefine {
formgrid_data_set_changed_cb(UiFormGrid * cwid,DataPart * part)749     pub Name: super::super::Foundation::PWSTR,
750     pub Value: super::super::Foundation::PWSTR,
751 }
752 #[cfg(feature = "Win32_Foundation")]
753 impl DxcDefine {}
754 #[cfg(feature = "Win32_Foundation")]
755 impl ::std::default::Default for DxcDefine {
756     fn default() -> Self {
757         unsafe { ::std::mem::zeroed() }
758     }
759 }
760 #[cfg(feature = "Win32_Foundation")]
761 impl ::std::fmt::Debug for DxcDefine {
762     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
763         fmt.debug_struct("DxcDefine").field("Name", &self.Name).field("Value", &self.Value).finish()
764     }
765 }
766 #[cfg(feature = "Win32_Foundation")]
767 impl ::std::cmp::PartialEq for DxcDefine {
768     fn eq(&self, other: &Self) -> bool {
769         self.Name == other.Name && self.Value == other.Value
770     }
771 }
772 #[cfg(feature = "Win32_Foundation")]
773 impl ::std::cmp::Eq for DxcDefine {}
774 #[cfg(feature = "Win32_Foundation")]
775 unsafe impl ::windows::runtime::Abi for DxcDefine {
776     type Abi = Self;
777     type DefaultType = Self;
778 }
779 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
780 #[repr(C)]
781 pub struct DxcShaderHash {
782     pub Flags: u32,
783     pub HashDigest: [u8; 16],
784 }
785 impl DxcShaderHash {}
786 impl ::std::default::Default for DxcShaderHash {
787     fn default() -> Self {
788         unsafe { ::std::mem::zeroed() }
789     }
790 }
791 impl ::std::fmt::Debug for DxcShaderHash {
792     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
793         fmt.debug_struct("DxcShaderHash").field("Flags", &self.Flags).field("HashDigest", &self.HashDigest).finish()
794     }
795 }
796 impl ::std::cmp::PartialEq for DxcShaderHash {
797     fn eq(&self, other: &Self) -> bool {
798         self.Flags == other.Flags && self.HashDigest == other.HashDigest
799     }
800 }
801 impl ::std::cmp::Eq for DxcShaderHash {}
802 unsafe impl ::windows::runtime::Abi for DxcShaderHash {
803     type Abi = Self;
804     type DefaultType = Self;
805 }
806 pub const DxcValidatorFlags_Default: u32 = 0u32;
807 pub const DxcValidatorFlags_InPlaceEdit: u32 = 1u32;
808 pub const DxcValidatorFlags_ModuleOnly: u32 = 4u32;
809 pub const DxcValidatorFlags_RootSignatureOnly: u32 = 2u32;
810 pub const DxcValidatorFlags_ValidMask: u32 = 7u32;
811 pub const DxcVersionInfoFlags_Debug: u32 = 1u32;
812 pub const DxcVersionInfoFlags_Internal: u32 = 2u32;
813 pub const DxcVersionInfoFlags_None: u32 = 0u32;
814 #[repr(transparent)]
815 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
816 pub struct IDxcAssembler(::windows::runtime::IUnknown);
817 impl IDxcAssembler {
818     pub unsafe fn AssembleToContainer<'a, Param0: ::windows::runtime::IntoParam<'a, IDxcBlob>>(&self, pshader: Param0) -> ::windows::runtime::Result<IDxcOperationResult> {
819         let mut result__: <IDxcOperationResult as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
820         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), pshader.into_param().abi(), &mut result__).from_abi::<IDxcOperationResult>(result__)
821     }
822 }
823 unsafe impl ::windows::runtime::Interface for IDxcAssembler {
824     type Vtable = IDxcAssembler_abi;
825     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(153057830, 7199, 18760, [144, 75, 230, 227, 168, 167, 113, 213]);
826 }
827 impl ::std::convert::From<IDxcAssembler> for ::windows::runtime::IUnknown {
data_part_selection_changed_cb(G_GNUC_UNUSED GdauiDataSelector * gdauidataselector,DataPart * part)828     fn from(value: IDxcAssembler) -> Self {
829         unsafe { ::std::mem::transmute(value) }
830     }
831 }
832 impl ::std::convert::From<&IDxcAssembler> for ::windows::runtime::IUnknown {
833     fn from(value: &IDxcAssembler) -> Self {
834         ::std::convert::From::from(::std::clone::Clone::clone(value))
835     }
836 }
837 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDxcAssembler {
838     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
839         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
840     }
841 }
842 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDxcAssembler {
843     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
844         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
845     }
846 }
847 #[repr(C)]
848 #[doc(hidden)]
849 pub struct IDxcAssembler_abi(
850     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
851     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
compute_sources_dependencies(DataPart * part,GError ** error)852     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
853     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pshader: ::windows::runtime::RawPtr, ppresult: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
854 );
855 #[repr(transparent)]
856 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
857 pub struct IDxcBlob(::windows::runtime::IUnknown);
858 impl IDxcBlob {
859     pub unsafe fn GetBufferPointer(&self) -> *mut ::std::ffi::c_void {
860         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)))
861     }
862     pub unsafe fn GetBufferSize(&self) -> usize {
863         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)))
864     }
865 }
866 unsafe impl ::windows::runtime::Interface for IDxcBlob {
867     type Vtable = IDxcBlob_abi;
868     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2342910728, 20885, 16610, [172, 88, 13, 152, 156, 58, 1, 2]);
869 }
870 impl ::std::convert::From<IDxcBlob> for ::windows::runtime::IUnknown {
871     fn from(value: IDxcBlob) -> Self {
872         unsafe { ::std::mem::transmute(value) }
873     }
874 }
875 impl ::std::convert::From<&IDxcBlob> for ::windows::runtime::IUnknown {
876     fn from(value: &IDxcBlob) -> Self {
877         ::std::convert::From::from(::std::clone::Clone::clone(value))
878     }
879 }
880 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDxcBlob {
881     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
882         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
883     }
884 }
885 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDxcBlob {
886     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
887         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
888     }
889 }
890 #[repr(C)]
891 #[doc(hidden)]
892 pub struct IDxcBlob_abi(
893     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
894     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
895     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
896     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> *mut ::std::ffi::c_void,
897     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> usize,
898 );
899 #[repr(transparent)]
900 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
901 pub struct IDxcBlobEncoding(::windows::runtime::IUnknown);
902 impl IDxcBlobEncoding {
903     pub unsafe fn GetBufferPointer(&self) -> *mut ::std::ffi::c_void {
904         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)))
905     }
906     pub unsafe fn GetBufferSize(&self) -> usize {
907         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)))
908     }
909     #[cfg(feature = "Win32_Foundation")]
910     pub unsafe fn GetEncoding(&self, pknown: *mut super::super::Foundation::BOOL, pcodepage: *mut DXC_CP) -> ::windows::runtime::Result<()> {
911         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(pknown), ::std::mem::transmute(pcodepage)).ok()
912     }
913 }
914 unsafe impl ::windows::runtime::Interface for IDxcBlobEncoding {
915     type Vtable = IDxcBlobEncoding_abi;
916     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1916916772, 9798, 16785, [151, 192, 152, 233, 110, 66, 252, 104]);
917 }
918 impl ::std::convert::From<IDxcBlobEncoding> for ::windows::runtime::IUnknown {
919     fn from(value: IDxcBlobEncoding) -> Self {
920         unsafe { ::std::mem::transmute(value) }
921     }
922 }
923 impl ::std::convert::From<&IDxcBlobEncoding> for ::windows::runtime::IUnknown {
924     fn from(value: &IDxcBlobEncoding) -> Self {
925         ::std::convert::From::from(::std::clone::Clone::clone(value))
926     }
data_widget_get_export(DataWidget * dwid,DataSource * source)927 }
928 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDxcBlobEncoding {
929     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
930         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
931     }
932 }
933 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDxcBlobEncoding {
934     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
935         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
936     }
937 }
938 impl ::std::convert::From<IDxcBlobEncoding> for IDxcBlob {
939     fn from(value: IDxcBlobEncoding) -> Self {
940         unsafe { ::std::mem::transmute(value) }
941     }
942 }
943 impl ::std::convert::From<&IDxcBlobEncoding> for IDxcBlob {
data_widget_rerun(DataWidget * dwid)944     fn from(value: &IDxcBlobEncoding) -> Self {
945         ::std::convert::From::from(::std::clone::Clone::clone(value))
946     }
947 }
948 impl<'a> ::windows::runtime::IntoParam<'a, IDxcBlob> for IDxcBlobEncoding {
949     fn into_param(self) -> ::windows::runtime::Param<'a, IDxcBlob> {
950         ::windows::runtime::Param::Owned(::std::convert::Into::<IDxcBlob>::into(self))
951     }
952 }
953 impl<'a> ::windows::runtime::IntoParam<'a, IDxcBlob> for &IDxcBlobEncoding {
954     fn into_param(self) -> ::windows::runtime::Param<'a, IDxcBlob> {
955         ::windows::runtime::Param::Owned(::std::convert::Into::<IDxcBlob>::into(::std::clone::Clone::clone(self)))
956     }
957 }
958 #[repr(C)]
959 #[doc(hidden)]
960 pub struct IDxcBlobEncoding_abi(
961     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
962     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
963     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
964     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> *mut ::std::ffi::c_void,
965     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> usize,
966     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pknown: *mut super::super::Foundation::BOOL, pcodepage: *mut DXC_CP) -> ::windows::runtime::HRESULT,
967     #[cfg(not(feature = "Win32_Foundation"))] usize,
968 );
969 #[repr(transparent)]
970 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
971 pub struct IDxcBlobUtf16(::windows::runtime::IUnknown);
972 impl IDxcBlobUtf16 {
973     pub unsafe fn GetBufferPointer(&self) -> *mut ::std::ffi::c_void {
974         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)))
975     }
976     pub unsafe fn GetBufferSize(&self) -> usize {
977         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)))
978     }
979     #[cfg(feature = "Win32_Foundation")]
980     pub unsafe fn GetEncoding(&self, pknown: *mut super::super::Foundation::BOOL, pcodepage: *mut DXC_CP) -> ::windows::runtime::Result<()> {
981         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(pknown), ::std::mem::transmute(pcodepage)).ok()
982     }
983     #[cfg(feature = "Win32_Foundation")]
984     pub unsafe fn GetStringPointer(&self) -> super::super::Foundation::PWSTR {
985         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self)))
986     }
987     pub unsafe fn GetStringLength(&self) -> usize {
988         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self)))
989     }
990 }
991 unsafe impl ::windows::runtime::Interface for IDxcBlobUtf16 {
992     type Vtable = IDxcBlobUtf16_abi;
993     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2750959275, 4010, 18814, [163, 156, 238, 110, 214, 11, 45, 132]);
994 }
995 impl ::std::convert::From<IDxcBlobUtf16> for ::windows::runtime::IUnknown {
996     fn from(value: IDxcBlobUtf16) -> Self {
997         unsafe { ::std::mem::transmute(value) }
998     }
999 }
1000 impl ::std::convert::From<&IDxcBlobUtf16> for ::windows::runtime::IUnknown {
1001     fn from(value: &IDxcBlobUtf16) -> Self {
1002         ::std::convert::From::from(::std::clone::Clone::clone(value))
1003     }
1004 }
1005 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDxcBlobUtf16 {
1006     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1007         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1008     }
1009 }
1010 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDxcBlobUtf16 {
1011     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1012         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1013     }
1014 }
1015 impl ::std::convert::From<IDxcBlobUtf16> for IDxcBlobEncoding {
1016     fn from(value: IDxcBlobUtf16) -> Self {
1017         unsafe { ::std::mem::transmute(value) }
1018     }
1019 }
1020 impl ::std::convert::From<&IDxcBlobUtf16> for IDxcBlobEncoding {
1021     fn from(value: &IDxcBlobUtf16) -> Self {
1022         ::std::convert::From::from(::std::clone::Clone::clone(value))
1023     }
1024 }
1025 impl<'a> ::windows::runtime::IntoParam<'a, IDxcBlobEncoding> for IDxcBlobUtf16 {
1026     fn into_param(self) -> ::windows::runtime::Param<'a, IDxcBlobEncoding> {
1027         ::windows::runtime::Param::Owned(::std::convert::Into::<IDxcBlobEncoding>::into(self))
1028     }
1029 }
1030 impl<'a> ::windows::runtime::IntoParam<'a, IDxcBlobEncoding> for &IDxcBlobUtf16 {
1031     fn into_param(self) -> ::windows::runtime::Param<'a, IDxcBlobEncoding> {
1032         ::windows::runtime::Param::Owned(::std::convert::Into::<IDxcBlobEncoding>::into(::std::clone::Clone::clone(self)))
1033     }
1034 }
1035 impl ::std::convert::From<IDxcBlobUtf16> for IDxcBlob {
1036     fn from(value: IDxcBlobUtf16) -> Self {
1037         unsafe { ::std::mem::transmute(value) }
1038     }
1039 }
1040 impl ::std::convert::From<&IDxcBlobUtf16> for IDxcBlob {
1041     fn from(value: &IDxcBlobUtf16) -> Self {
1042         ::std::convert::From::from(::std::clone::Clone::clone(value))
1043     }
1044 }
1045 impl<'a> ::windows::runtime::IntoParam<'a, IDxcBlob> for IDxcBlobUtf16 {
1046     fn into_param(self) -> ::windows::runtime::Param<'a, IDxcBlob> {
1047         ::windows::runtime::Param::Owned(::std::convert::Into::<IDxcBlob>::into(self))
1048     }
1049 }
1050 impl<'a> ::windows::runtime::IntoParam<'a, IDxcBlob> for &IDxcBlobUtf16 {
1051     fn into_param(self) -> ::windows::runtime::Param<'a, IDxcBlob> {
1052         ::windows::runtime::Param::Owned(::std::convert::Into::<IDxcBlob>::into(::std::clone::Clone::clone(self)))
1053     }
1054 }
1055 #[repr(C)]
1056 #[doc(hidden)]
1057 pub struct IDxcBlobUtf16_abi(
1058     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1059     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1060     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1061     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> *mut ::std::ffi::c_void,
1062     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> usize,
1063     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pknown: *mut super::super::Foundation::BOOL, pcodepage: *mut DXC_CP) -> ::windows::runtime::HRESULT,
1064     #[cfg(not(feature = "Win32_Foundation"))] usize,
1065     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::PWSTR,
1066     #[cfg(not(feature = "Win32_Foundation"))] usize,
1067     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> usize,
1068 );
1069 #[repr(transparent)]
1070 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1071 pub struct IDxcBlobUtf8(::windows::runtime::IUnknown);
1072 impl IDxcBlobUtf8 {
1073     pub unsafe fn GetBufferPointer(&self) -> *mut ::std::ffi::c_void {
1074         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)))
1075     }
1076     pub unsafe fn GetBufferSize(&self) -> usize {
1077         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)))
1078     }
1079     #[cfg(feature = "Win32_Foundation")]
1080     pub unsafe fn GetEncoding(&self, pknown: *mut super::super::Foundation::BOOL, pcodepage: *mut DXC_CP) -> ::windows::runtime::Result<()> {
1081         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(pknown), ::std::mem::transmute(pcodepage)).ok()
1082     }
1083     #[cfg(feature = "Win32_Foundation")]
1084     pub unsafe fn GetStringPointer(&self) -> super::super::Foundation::PSTR {
1085         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self)))
1086     }
1087     pub unsafe fn GetStringLength(&self) -> usize {
1088         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self)))
1089     }
1090 }
1091 unsafe impl ::windows::runtime::Interface for IDxcBlobUtf8 {
1092     type Vtable = IDxcBlobUtf8_abi;
1093     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1034303177, 47729, 16420, [163, 1, 48, 203, 241, 37, 48, 91]);
1094 }
1095 impl ::std::convert::From<IDxcBlobUtf8> for ::windows::runtime::IUnknown {
1096     fn from(value: IDxcBlobUtf8) -> Self {
1097         unsafe { ::std::mem::transmute(value) }
1098     }
1099 }
1100 impl ::std::convert::From<&IDxcBlobUtf8> for ::windows::runtime::IUnknown {
1101     fn from(value: &IDxcBlobUtf8) -> Self {
1102         ::std::convert::From::from(::std::clone::Clone::clone(value))
1103     }
1104 }
1105 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDxcBlobUtf8 {
1106     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1107         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1108     }
1109 }
1110 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDxcBlobUtf8 {
1111     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1112         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1113     }
1114 }
1115 impl ::std::convert::From<IDxcBlobUtf8> for IDxcBlobEncoding {
1116     fn from(value: IDxcBlobUtf8) -> Self {
1117         unsafe { ::std::mem::transmute(value) }
1118     }
1119 }
1120 impl ::std::convert::From<&IDxcBlobUtf8> for IDxcBlobEncoding {
1121     fn from(value: &IDxcBlobUtf8) -> Self {
1122         ::std::convert::From::from(::std::clone::Clone::clone(value))
1123     }
1124 }
1125 impl<'a> ::windows::runtime::IntoParam<'a, IDxcBlobEncoding> for IDxcBlobUtf8 {
1126     fn into_param(self) -> ::windows::runtime::Param<'a, IDxcBlobEncoding> {
1127         ::windows::runtime::Param::Owned(::std::convert::Into::<IDxcBlobEncoding>::into(self))
1128     }
1129 }
1130 impl<'a> ::windows::runtime::IntoParam<'a, IDxcBlobEncoding> for &IDxcBlobUtf8 {
1131     fn into_param(self) -> ::windows::runtime::Param<'a, IDxcBlobEncoding> {
1132         ::windows::runtime::Param::Owned(::std::convert::Into::<IDxcBlobEncoding>::into(::std::clone::Clone::clone(self)))
1133     }
1134 }
1135 impl ::std::convert::From<IDxcBlobUtf8> for IDxcBlob {
1136     fn from(value: IDxcBlobUtf8) -> Self {
1137         unsafe { ::std::mem::transmute(value) }
1138     }
1139 }
1140 impl ::std::convert::From<&IDxcBlobUtf8> for IDxcBlob {
1141     fn from(value: &IDxcBlobUtf8) -> Self {
1142         ::std::convert::From::from(::std::clone::Clone::clone(value))
1143     }
1144 }
1145 impl<'a> ::windows::runtime::IntoParam<'a, IDxcBlob> for IDxcBlobUtf8 {
1146     fn into_param(self) -> ::windows::runtime::Param<'a, IDxcBlob> {
1147         ::windows::runtime::Param::Owned(::std::convert::Into::<IDxcBlob>::into(self))
1148     }
1149 }
1150 impl<'a> ::windows::runtime::IntoParam<'a, IDxcBlob> for &IDxcBlobUtf8 {
1151     fn into_param(self) -> ::windows::runtime::Param<'a, IDxcBlob> {
1152         ::windows::runtime::Param::Owned(::std::convert::Into::<IDxcBlob>::into(::std::clone::Clone::clone(self)))
1153     }
1154 }
1155 #[repr(C)]
1156 #[doc(hidden)]
1157 pub struct IDxcBlobUtf8_abi(
1158     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1159     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1160     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1161     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> *mut ::std::ffi::c_void,
1162     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> usize,
1163     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pknown: *mut super::super::Foundation::BOOL, pcodepage: *mut DXC_CP) -> ::windows::runtime::HRESULT,
1164     #[cfg(not(feature = "Win32_Foundation"))] usize,
1165     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::PSTR,
1166     #[cfg(not(feature = "Win32_Foundation"))] usize,
1167     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> usize,
1168 );
1169 #[repr(transparent)]
1170 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1171 pub struct IDxcCompiler(::windows::runtime::IUnknown);
1172 impl IDxcCompiler {
1173     #[cfg(feature = "Win32_Foundation")]
1174     pub unsafe fn Compile<'a, Param0: ::windows::runtime::IntoParam<'a, IDxcBlob>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param8: ::windows::runtime::IntoParam<'a, IDxcIncludeHandler>>(
1175         &self,
1176         psource: Param0,
1177         psourcename: Param1,
1178         pentrypoint: Param2,
1179         ptargetprofile: Param3,
1180         parguments: *const super::super::Foundation::PWSTR,
1181         argcount: u32,
1182         pdefines: *const DxcDefine,
1183         definecount: u32,
1184         pincludehandler: Param8,
1185     ) -> ::windows::runtime::Result<IDxcOperationResult> {
1186         let mut result__: <IDxcOperationResult as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1187         (::windows::runtime::Interface::vtable(self).3)(
1188             ::std::mem::transmute_copy(self),
1189             psource.into_param().abi(),
1190             psourcename.into_param().abi(),
1191             pentrypoint.into_param().abi(),
1192             ptargetprofile.into_param().abi(),
1193             ::std::mem::transmute(parguments),
1194             ::std::mem::transmute(argcount),
1195             ::std::mem::transmute(pdefines),
1196             ::std::mem::transmute(definecount),
1197             pincludehandler.into_param().abi(),
1198             &mut result__,
1199         )
1200         .from_abi::<IDxcOperationResult>(result__)
1201     }
1202     #[cfg(feature = "Win32_Foundation")]
1203     pub unsafe fn Preprocess<'a, Param0: ::windows::runtime::IntoParam<'a, IDxcBlob>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param6: ::windows::runtime::IntoParam<'a, IDxcIncludeHandler>>(&self, psource: Param0, psourcename: Param1, parguments: *const super::super::Foundation::PWSTR, argcount: u32, pdefines: *const DxcDefine, definecount: u32, pincludehandler: Param6) -> ::windows::runtime::Result<IDxcOperationResult> {
1204         let mut result__: <IDxcOperationResult as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1205         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), psource.into_param().abi(), psourcename.into_param().abi(), ::std::mem::transmute(parguments), ::std::mem::transmute(argcount), ::std::mem::transmute(pdefines), ::std::mem::transmute(definecount), pincludehandler.into_param().abi(), &mut result__).from_abi::<IDxcOperationResult>(result__)
1206     }
1207     pub unsafe fn Disassemble<'a, Param0: ::windows::runtime::IntoParam<'a, IDxcBlob>>(&self, psource: Param0) -> ::windows::runtime::Result<IDxcBlobEncoding> {
1208         let mut result__: <IDxcBlobEncoding as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1209         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), psource.into_param().abi(), &mut result__).from_abi::<IDxcBlobEncoding>(result__)
1210     }
1211 }
1212 unsafe impl ::windows::runtime::Interface for IDxcCompiler {
1213     type Vtable = IDxcCompiler_abi;
1214     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2350975987, 287, 17442, [141, 112, 111, 154, 203, 141, 182, 23]);
1215 }
1216 impl ::std::convert::From<IDxcCompiler> for ::windows::runtime::IUnknown {
1217     fn from(value: IDxcCompiler) -> Self {
1218         unsafe { ::std::mem::transmute(value) }
1219     }
1220 }
1221 impl ::std::convert::From<&IDxcCompiler> for ::windows::runtime::IUnknown {
1222     fn from(value: &IDxcCompiler) -> Self {
1223         ::std::convert::From::from(::std::clone::Clone::clone(value))
1224     }
1225 }
1226 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDxcCompiler {
1227     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1228         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1229     }
1230 }
1231 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDxcCompiler {
1232     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1233         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1234     }
1235 }
1236 #[repr(C)]
1237 #[doc(hidden)]
1238 pub struct IDxcCompiler_abi(
1239     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1240     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1241     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1242     #[cfg(feature = "Win32_Foundation")]
1243     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, psource: ::windows::runtime::RawPtr, psourcename: super::super::Foundation::PWSTR, pentrypoint: super::super::Foundation::PWSTR, ptargetprofile: super::super::Foundation::PWSTR, parguments: *const super::super::Foundation::PWSTR, argcount: u32, pdefines: *const DxcDefine, definecount: u32, pincludehandler: ::windows::runtime::RawPtr, ppresult: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1244     #[cfg(not(feature = "Win32_Foundation"))] usize,
1245     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, psource: ::windows::runtime::RawPtr, psourcename: super::super::Foundation::PWSTR, parguments: *const super::super::Foundation::PWSTR, argcount: u32, pdefines: *const DxcDefine, definecount: u32, pincludehandler: ::windows::runtime::RawPtr, ppresult: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1246     #[cfg(not(feature = "Win32_Foundation"))] usize,
1247     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, psource: ::windows::runtime::RawPtr, ppdisassembly: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1248 );
1249 #[repr(transparent)]
1250 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1251 pub struct IDxcCompiler2(::windows::runtime::IUnknown);
1252 impl IDxcCompiler2 {
1253     #[cfg(feature = "Win32_Foundation")]
1254     pub unsafe fn Compile<'a, Param0: ::windows::runtime::IntoParam<'a, IDxcBlob>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param8: ::windows::runtime::IntoParam<'a, IDxcIncludeHandler>>(
1255         &self,
1256         psource: Param0,
1257         psourcename: Param1,
1258         pentrypoint: Param2,
1259         ptargetprofile: Param3,
1260         parguments: *const super::super::Foundation::PWSTR,
1261         argcount: u32,
1262         pdefines: *const DxcDefine,
1263         definecount: u32,
1264         pincludehandler: Param8,
1265     ) -> ::windows::runtime::Result<IDxcOperationResult> {
1266         let mut result__: <IDxcOperationResult as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1267         (::windows::runtime::Interface::vtable(self).3)(
1268             ::std::mem::transmute_copy(self),
1269             psource.into_param().abi(),
1270             psourcename.into_param().abi(),
1271             pentrypoint.into_param().abi(),
1272             ptargetprofile.into_param().abi(),
1273             ::std::mem::transmute(parguments),
1274             ::std::mem::transmute(argcount),
1275             ::std::mem::transmute(pdefines),
1276             ::std::mem::transmute(definecount),
1277             pincludehandler.into_param().abi(),
1278             &mut result__,
1279         )
1280         .from_abi::<IDxcOperationResult>(result__)
1281     }
1282     #[cfg(feature = "Win32_Foundation")]
1283     pub unsafe fn Preprocess<'a, Param0: ::windows::runtime::IntoParam<'a, IDxcBlob>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param6: ::windows::runtime::IntoParam<'a, IDxcIncludeHandler>>(&self, psource: Param0, psourcename: Param1, parguments: *const super::super::Foundation::PWSTR, argcount: u32, pdefines: *const DxcDefine, definecount: u32, pincludehandler: Param6) -> ::windows::runtime::Result<IDxcOperationResult> {
1284         let mut result__: <IDxcOperationResult as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1285         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), psource.into_param().abi(), psourcename.into_param().abi(), ::std::mem::transmute(parguments), ::std::mem::transmute(argcount), ::std::mem::transmute(pdefines), ::std::mem::transmute(definecount), pincludehandler.into_param().abi(), &mut result__).from_abi::<IDxcOperationResult>(result__)
1286     }
1287     pub unsafe fn Disassemble<'a, Param0: ::windows::runtime::IntoParam<'a, IDxcBlob>>(&self, psource: Param0) -> ::windows::runtime::Result<IDxcBlobEncoding> {
1288         let mut result__: <IDxcBlobEncoding as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1289         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), psource.into_param().abi(), &mut result__).from_abi::<IDxcBlobEncoding>(result__)
1290     }
1291     #[cfg(feature = "Win32_Foundation")]
1292     pub unsafe fn CompileWithDebug<'a, Param0: ::windows::runtime::IntoParam<'a, IDxcBlob>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param8: ::windows::runtime::IntoParam<'a, IDxcIncludeHandler>>(
1293         &self,
1294         psource: Param0,
1295         psourcename: Param1,
1296         pentrypoint: Param2,
1297         ptargetprofile: Param3,
1298         parguments: *const super::super::Foundation::PWSTR,
1299         argcount: u32,
1300         pdefines: *const DxcDefine,
1301         definecount: u32,
1302         pincludehandler: Param8,
1303         ppresult: *mut ::std::option::Option<IDxcOperationResult>,
1304         ppdebugblobname: *mut super::super::Foundation::PWSTR,
1305         ppdebugblob: *mut ::std::option::Option<IDxcBlob>,
1306     ) -> ::windows::runtime::Result<()> {
1307         (::windows::runtime::Interface::vtable(self).6)(
1308             ::std::mem::transmute_copy(self),
1309             psource.into_param().abi(),
1310             psourcename.into_param().abi(),
1311             pentrypoint.into_param().abi(),
1312             ptargetprofile.into_param().abi(),
1313             ::std::mem::transmute(parguments),
1314             ::std::mem::transmute(argcount),
1315             ::std::mem::transmute(pdefines),
1316             ::std::mem::transmute(definecount),
1317             pincludehandler.into_param().abi(),
1318             ::std::mem::transmute(ppresult),
1319             ::std::mem::transmute(ppdebugblobname),
1320             ::std::mem::transmute(ppdebugblob),
1321         )
1322         .ok()
1323     }
1324 }
1325 unsafe impl ::windows::runtime::Interface for IDxcCompiler2 {
1326     type Vtable = IDxcCompiler2_abi;
1327     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2684725721, 47291, 17812, [181, 201, 14, 99, 59, 236, 77, 55]);
1328 }
1329 impl ::std::convert::From<IDxcCompiler2> for ::windows::runtime::IUnknown {
1330     fn from(value: IDxcCompiler2) -> Self {
1331         unsafe { ::std::mem::transmute(value) }
1332     }
1333 }
1334 impl ::std::convert::From<&IDxcCompiler2> for ::windows::runtime::IUnknown {
1335     fn from(value: &IDxcCompiler2) -> Self {
1336         ::std::convert::From::from(::std::clone::Clone::clone(value))
1337     }
1338 }
1339 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDxcCompiler2 {
1340     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1341         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1342     }
1343 }
1344 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDxcCompiler2 {
1345     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1346         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1347     }
1348 }
1349 impl ::std::convert::From<IDxcCompiler2> for IDxcCompiler {
1350     fn from(value: IDxcCompiler2) -> Self {
1351         unsafe { ::std::mem::transmute(value) }
1352     }
1353 }
1354 impl ::std::convert::From<&IDxcCompiler2> for IDxcCompiler {
1355     fn from(value: &IDxcCompiler2) -> Self {
1356         ::std::convert::From::from(::std::clone::Clone::clone(value))
1357     }
1358 }
1359 impl<'a> ::windows::runtime::IntoParam<'a, IDxcCompiler> for IDxcCompiler2 {
1360     fn into_param(self) -> ::windows::runtime::Param<'a, IDxcCompiler> {
1361         ::windows::runtime::Param::Owned(::std::convert::Into::<IDxcCompiler>::into(self))
1362     }
1363 }
1364 impl<'a> ::windows::runtime::IntoParam<'a, IDxcCompiler> for &IDxcCompiler2 {
1365     fn into_param(self) -> ::windows::runtime::Param<'a, IDxcCompiler> {
1366         ::windows::runtime::Param::Owned(::std::convert::Into::<IDxcCompiler>::into(::std::clone::Clone::clone(self)))
1367     }
1368 }
1369 #[repr(C)]
1370 #[doc(hidden)]
1371 pub struct IDxcCompiler2_abi(
1372     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1373     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1374     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1375     #[cfg(feature = "Win32_Foundation")]
1376     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, psource: ::windows::runtime::RawPtr, psourcename: super::super::Foundation::PWSTR, pentrypoint: super::super::Foundation::PWSTR, ptargetprofile: super::super::Foundation::PWSTR, parguments: *const super::super::Foundation::PWSTR, argcount: u32, pdefines: *const DxcDefine, definecount: u32, pincludehandler: ::windows::runtime::RawPtr, ppresult: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1377     #[cfg(not(feature = "Win32_Foundation"))] usize,
1378     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, psource: ::windows::runtime::RawPtr, psourcename: super::super::Foundation::PWSTR, parguments: *const super::super::Foundation::PWSTR, argcount: u32, pdefines: *const DxcDefine, definecount: u32, pincludehandler: ::windows::runtime::RawPtr, ppresult: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1379     #[cfg(not(feature = "Win32_Foundation"))] usize,
1380     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, psource: ::windows::runtime::RawPtr, ppdisassembly: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1381     #[cfg(feature = "Win32_Foundation")]
1382     pub  unsafe extern "system" fn(
1383         this: ::windows::runtime::RawPtr,
1384         psource: ::windows::runtime::RawPtr,
1385         psourcename: super::super::Foundation::PWSTR,
1386         pentrypoint: super::super::Foundation::PWSTR,
1387         ptargetprofile: super::super::Foundation::PWSTR,
1388         parguments: *const super::super::Foundation::PWSTR,
1389         argcount: u32,
1390         pdefines: *const DxcDefine,
1391         definecount: u32,
1392         pincludehandler: ::windows::runtime::RawPtr,
1393         ppresult: *mut ::windows::runtime::RawPtr,
1394         ppdebugblobname: *mut super::super::Foundation::PWSTR,
1395         ppdebugblob: *mut ::windows::runtime::RawPtr,
1396     ) -> ::windows::runtime::HRESULT,
1397     #[cfg(not(feature = "Win32_Foundation"))] usize,
1398 );
1399 #[repr(transparent)]
1400 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1401 pub struct IDxcCompiler3(::windows::runtime::IUnknown);
1402 impl IDxcCompiler3 {
1403     #[cfg(feature = "Win32_Foundation")]
1404     pub unsafe fn Compile<'a, Param3: ::windows::runtime::IntoParam<'a, IDxcIncludeHandler>>(&self, psource: *const DxcBuffer, parguments: *const super::super::Foundation::PWSTR, argcount: u32, pincludehandler: Param3, riid: *const ::windows::runtime::GUID, ppresult: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
1405         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(psource), ::std::mem::transmute(parguments), ::std::mem::transmute(argcount), pincludehandler.into_param().abi(), ::std::mem::transmute(riid), ::std::mem::transmute(ppresult)).ok()
1406     }
1407     pub unsafe fn Disassemble(&self, pobject: *const DxcBuffer, riid: *const ::windows::runtime::GUID, ppresult: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
1408         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(pobject), ::std::mem::transmute(riid), ::std::mem::transmute(ppresult)).ok()
1409     }
1410 }
1411 unsafe impl ::windows::runtime::Interface for IDxcCompiler3 {
1412     type Vtable = IDxcCompiler3_abi;
1413     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(579552903, 23146, 18224, [144, 12, 151, 2, 178, 32, 63, 84]);
1414 }
1415 impl ::std::convert::From<IDxcCompiler3> for ::windows::runtime::IUnknown {
1416     fn from(value: IDxcCompiler3) -> Self {
1417         unsafe { ::std::mem::transmute(value) }
1418     }
1419 }
1420 impl ::std::convert::From<&IDxcCompiler3> for ::windows::runtime::IUnknown {
1421     fn from(value: &IDxcCompiler3) -> Self {
1422         ::std::convert::From::from(::std::clone::Clone::clone(value))
1423     }
1424 }
1425 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDxcCompiler3 {
1426     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1427         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1428     }
1429 }
1430 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDxcCompiler3 {
1431     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1432         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1433     }
1434 }
1435 #[repr(C)]
1436 #[doc(hidden)]
1437 pub struct IDxcCompiler3_abi(
1438     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1439     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1440     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1441     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, psource: *const DxcBuffer, parguments: *const super::super::Foundation::PWSTR, argcount: u32, pincludehandler: ::windows::runtime::RawPtr, riid: *const ::windows::runtime::GUID, ppresult: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
1442     #[cfg(not(feature = "Win32_Foundation"))] usize,
1443     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pobject: *const DxcBuffer, riid: *const ::windows::runtime::GUID, ppresult: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
1444 );
1445 #[repr(transparent)]
1446 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1447 pub struct IDxcCompilerArgs(::windows::runtime::IUnknown);
1448 impl IDxcCompilerArgs {
1449     #[cfg(feature = "Win32_Foundation")]
1450     pub unsafe fn GetArguments(&self) -> *mut super::super::Foundation::PWSTR {
1451         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)))
1452     }
1453     pub unsafe fn GetCount(&self) -> u32 {
1454         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)))
1455     }
1456     #[cfg(feature = "Win32_Foundation")]
1457     pub unsafe fn AddArguments(&self, parguments: *const super::super::Foundation::PWSTR, argcount: u32) -> ::windows::runtime::Result<()> {
1458         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(parguments), ::std::mem::transmute(argcount)).ok()
1459     }
1460     #[cfg(feature = "Win32_Foundation")]
1461     pub unsafe fn AddArgumentsUTF8(&self, parguments: *const super::super::Foundation::PSTR, argcount: u32) -> ::windows::runtime::Result<()> {
1462         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(parguments), ::std::mem::transmute(argcount)).ok()
1463     }
1464     #[cfg(feature = "Win32_Foundation")]
1465     pub unsafe fn AddDefines(&self, pdefines: *const DxcDefine, definecount: u32) -> ::windows::runtime::Result<()> {
1466         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(pdefines), ::std::mem::transmute(definecount)).ok()
1467     }
1468 }
1469 unsafe impl ::windows::runtime::Interface for IDxcCompilerArgs {
1470     type Vtable = IDxcCompilerArgs_abi;
1471     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1945108010, 28892, 17912, [150, 144, 239, 246, 76, 2, 66, 157]);
1472 }
1473 impl ::std::convert::From<IDxcCompilerArgs> for ::windows::runtime::IUnknown {
1474     fn from(value: IDxcCompilerArgs) -> Self {
1475         unsafe { ::std::mem::transmute(value) }
1476     }
1477 }
1478 impl ::std::convert::From<&IDxcCompilerArgs> for ::windows::runtime::IUnknown {
1479     fn from(value: &IDxcCompilerArgs) -> Self {
1480         ::std::convert::From::from(::std::clone::Clone::clone(value))
1481     }
1482 }
1483 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDxcCompilerArgs {
1484     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1485         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1486     }
1487 }
1488 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDxcCompilerArgs {
1489     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1490         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1491     }
1492 }
1493 #[repr(C)]
1494 #[doc(hidden)]
1495 pub struct IDxcCompilerArgs_abi(
1496     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1497     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1498     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1499     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> *mut super::super::Foundation::PWSTR,
1500     #[cfg(not(feature = "Win32_Foundation"))] usize,
1501     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1502     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, parguments: *const super::super::Foundation::PWSTR, argcount: u32) -> ::windows::runtime::HRESULT,
1503     #[cfg(not(feature = "Win32_Foundation"))] usize,
1504     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, parguments: *const super::super::Foundation::PSTR, argcount: u32) -> ::windows::runtime::HRESULT,
1505     #[cfg(not(feature = "Win32_Foundation"))] usize,
1506     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdefines: *const DxcDefine, definecount: u32) -> ::windows::runtime::HRESULT,
1507     #[cfg(not(feature = "Win32_Foundation"))] usize,
1508 );
1509 #[repr(transparent)]
1510 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1511 pub struct IDxcContainerBuilder(::windows::runtime::IUnknown);
1512 impl IDxcContainerBuilder {
1513     pub unsafe fn Load<'a, Param0: ::windows::runtime::IntoParam<'a, IDxcBlob>>(&self, pdxilcontainerheader: Param0) -> ::windows::runtime::Result<()> {
1514         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), pdxilcontainerheader.into_param().abi()).ok()
1515     }
1516     pub unsafe fn AddPart<'a, Param1: ::windows::runtime::IntoParam<'a, IDxcBlob>>(&self, fourcc: u32, psource: Param1) -> ::windows::runtime::Result<()> {
1517         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(fourcc), psource.into_param().abi()).ok()
1518     }
1519     pub unsafe fn RemovePart(&self, fourcc: u32) -> ::windows::runtime::Result<()> {
1520         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(fourcc)).ok()
1521     }
1522     pub unsafe fn SerializeContainer(&self) -> ::windows::runtime::Result<IDxcOperationResult> {
1523         let mut result__: <IDxcOperationResult as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1524         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDxcOperationResult>(result__)
1525     }
1526 }
1527 unsafe impl ::windows::runtime::Interface for IDxcContainerBuilder {
1528     type Vtable = IDxcContainerBuilder_abi;
1529     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(860561232, 8850, 19253, [153, 161, 37, 88, 141, 140, 23, 254]);
1530 }
1531 impl ::std::convert::From<IDxcContainerBuilder> for ::windows::runtime::IUnknown {
1532     fn from(value: IDxcContainerBuilder) -> Self {
1533         unsafe { ::std::mem::transmute(value) }
1534     }
1535 }
1536 impl ::std::convert::From<&IDxcContainerBuilder> for ::windows::runtime::IUnknown {
1537     fn from(value: &IDxcContainerBuilder) -> Self {
1538         ::std::convert::From::from(::std::clone::Clone::clone(value))
1539     }
1540 }
1541 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDxcContainerBuilder {
1542     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1543         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1544     }
1545 }
1546 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDxcContainerBuilder {
1547     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1548         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1549     }
1550 }
1551 #[repr(C)]
1552 #[doc(hidden)]
1553 pub struct IDxcContainerBuilder_abi(
1554     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1555     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1556     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1557     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdxilcontainerheader: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1558     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fourcc: u32, psource: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1559     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fourcc: u32) -> ::windows::runtime::HRESULT,
1560     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppresult: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1561 );
1562 #[repr(transparent)]
1563 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1564 pub struct IDxcContainerReflection(::windows::runtime::IUnknown);
1565 impl IDxcContainerReflection {
1566     pub unsafe fn Load<'a, Param0: ::windows::runtime::IntoParam<'a, IDxcBlob>>(&self, pcontainer: Param0) -> ::windows::runtime::Result<()> {
1567         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), pcontainer.into_param().abi()).ok()
1568     }
1569     pub unsafe fn GetPartCount(&self) -> ::windows::runtime::Result<u32> {
1570         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1571         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
1572     }
1573     pub unsafe fn GetPartKind(&self, idx: u32) -> ::windows::runtime::Result<u32> {
1574         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1575         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(idx), &mut result__).from_abi::<u32>(result__)
1576     }
1577     pub unsafe fn GetPartContent(&self, idx: u32) -> ::windows::runtime::Result<IDxcBlob> {
1578         let mut result__: <IDxcBlob as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1579         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(idx), &mut result__).from_abi::<IDxcBlob>(result__)
1580     }
1581     pub unsafe fn FindFirstPartKind(&self, kind: u32) -> ::windows::runtime::Result<u32> {
1582         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1583         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(kind), &mut result__).from_abi::<u32>(result__)
1584     }
1585     pub unsafe fn GetPartReflection(&self, idx: u32, iid: *const ::windows::runtime::GUID, ppvobject: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
1586         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(idx), ::std::mem::transmute(iid), ::std::mem::transmute(ppvobject)).ok()
1587     }
1588 }
1589 unsafe impl ::windows::runtime::Interface for IDxcContainerReflection {
1590     type Vtable = IDxcContainerReflection_abi;
1591     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3535936294, 33616, 19420, [151, 106, 51, 28, 230, 244, 197, 76]);
1592 }
1593 impl ::std::convert::From<IDxcContainerReflection> for ::windows::runtime::IUnknown {
1594     fn from(value: IDxcContainerReflection) -> Self {
1595         unsafe { ::std::mem::transmute(value) }
1596     }
1597 }
1598 impl ::std::convert::From<&IDxcContainerReflection> for ::windows::runtime::IUnknown {
1599     fn from(value: &IDxcContainerReflection) -> Self {
1600         ::std::convert::From::from(::std::clone::Clone::clone(value))
1601     }
1602 }
1603 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDxcContainerReflection {
1604     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1605         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1606     }
1607 }
1608 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDxcContainerReflection {
1609     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1610         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1611     }
1612 }
1613 #[repr(C)]
1614 #[doc(hidden)]
1615 pub struct IDxcContainerReflection_abi(
1616     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1617     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1618     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1619     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcontainer: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1620     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, presult: *mut u32) -> ::windows::runtime::HRESULT,
1621     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, idx: u32, presult: *mut u32) -> ::windows::runtime::HRESULT,
1622     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, idx: u32, ppresult: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1623     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, kind: u32, presult: *mut u32) -> ::windows::runtime::HRESULT,
1624     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, idx: u32, iid: *const ::windows::runtime::GUID, ppvobject: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
1625 );
1626 #[repr(transparent)]
1627 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1628 pub struct IDxcExtraOutputs(::windows::runtime::IUnknown);
1629 impl IDxcExtraOutputs {
1630     pub unsafe fn GetOutputCount(&self) -> u32 {
1631         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)))
1632     }
1633     pub unsafe fn GetOutput(&self, uindex: u32, iid: *const ::windows::runtime::GUID, ppvobject: *mut *mut ::std::ffi::c_void, ppoutputtype: *mut ::std::option::Option<IDxcBlobUtf16>, ppoutputname: *mut ::std::option::Option<IDxcBlobUtf16>) -> ::windows::runtime::Result<()> {
1634         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(uindex), ::std::mem::transmute(iid), ::std::mem::transmute(ppvobject), ::std::mem::transmute(ppoutputtype), ::std::mem::transmute(ppoutputname)).ok()
1635     }
1636 }
1637 unsafe impl ::windows::runtime::Interface for IDxcExtraOutputs {
1638     type Vtable = IDxcExtraOutputs_abi;
1639     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(832255906, 42434, 18762, [165, 222, 72, 1, 178, 250, 249, 137]);
1640 }
1641 impl ::std::convert::From<IDxcExtraOutputs> for ::windows::runtime::IUnknown {
1642     fn from(value: IDxcExtraOutputs) -> Self {
1643         unsafe { ::std::mem::transmute(value) }
1644     }
1645 }
1646 impl ::std::convert::From<&IDxcExtraOutputs> for ::windows::runtime::IUnknown {
1647     fn from(value: &IDxcExtraOutputs) -> Self {
1648         ::std::convert::From::from(::std::clone::Clone::clone(value))
1649     }
1650 }
1651 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDxcExtraOutputs {
1652     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1653         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1654     }
1655 }
1656 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDxcExtraOutputs {
1657     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1658         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1659     }
1660 }
1661 #[repr(C)]
1662 #[doc(hidden)]
1663 pub struct IDxcExtraOutputs_abi(
1664     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1665     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1666     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1667     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1668     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, uindex: u32, iid: *const ::windows::runtime::GUID, ppvobject: *mut *mut ::std::ffi::c_void, ppoutputtype: *mut ::windows::runtime::RawPtr, ppoutputname: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1669 );
1670 #[repr(transparent)]
1671 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1672 pub struct IDxcIncludeHandler(::windows::runtime::IUnknown);
1673 impl IDxcIncludeHandler {
1674     #[cfg(feature = "Win32_Foundation")]
1675     pub unsafe fn LoadSource<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, pfilename: Param0) -> ::windows::runtime::Result<IDxcBlob> {
1676         let mut result__: <IDxcBlob as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1677         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), pfilename.into_param().abi(), &mut result__).from_abi::<IDxcBlob>(result__)
1678     }
1679 }
1680 unsafe impl ::windows::runtime::Interface for IDxcIncludeHandler {
1681     type Vtable = IDxcIncludeHandler_abi;
1682     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2137128061, 38157, 18047, [179, 227, 60, 2, 251, 73, 24, 124]);
1683 }
1684 impl ::std::convert::From<IDxcIncludeHandler> for ::windows::runtime::IUnknown {
1685     fn from(value: IDxcIncludeHandler) -> Self {
1686         unsafe { ::std::mem::transmute(value) }
1687     }
1688 }
1689 impl ::std::convert::From<&IDxcIncludeHandler> for ::windows::runtime::IUnknown {
1690     fn from(value: &IDxcIncludeHandler) -> Self {
1691         ::std::convert::From::from(::std::clone::Clone::clone(value))
1692     }
1693 }
1694 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDxcIncludeHandler {
1695     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1696         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1697     }
1698 }
1699 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDxcIncludeHandler {
1700     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1701         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1702     }
1703 }
1704 #[repr(C)]
1705 #[doc(hidden)]
1706 pub struct IDxcIncludeHandler_abi(
1707     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1708     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1709     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1710     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pfilename: super::super::Foundation::PWSTR, ppincludesource: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1711     #[cfg(not(feature = "Win32_Foundation"))] usize,
1712 );
1713 #[repr(transparent)]
1714 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1715 pub struct IDxcLibrary(::windows::runtime::IUnknown);
1716 impl IDxcLibrary {
1717     #[cfg(feature = "Win32_System_Com")]
1718     pub unsafe fn SetMalloc<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::System::Com::IMalloc>>(&self, pmalloc: Param0) -> ::windows::runtime::Result<()> {
1719         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), pmalloc.into_param().abi()).ok()
1720     }
1721     pub unsafe fn CreateBlobFromBlob<'a, Param0: ::windows::runtime::IntoParam<'a, IDxcBlob>>(&self, pblob: Param0, offset: u32, length: u32) -> ::windows::runtime::Result<IDxcBlob> {
1722         let mut result__: <IDxcBlob as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1723         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), pblob.into_param().abi(), ::std::mem::transmute(offset), ::std::mem::transmute(length), &mut result__).from_abi::<IDxcBlob>(result__)
1724     }
1725     #[cfg(feature = "Win32_Foundation")]
1726     pub unsafe fn CreateBlobFromFile<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, pfilename: Param0, codepage: *const DXC_CP) -> ::windows::runtime::Result<IDxcBlobEncoding> {
1727         let mut result__: <IDxcBlobEncoding as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1728         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), pfilename.into_param().abi(), ::std::mem::transmute(codepage), &mut result__).from_abi::<IDxcBlobEncoding>(result__)
1729     }
1730     pub unsafe fn CreateBlobWithEncodingFromPinned(&self, ptext: *const ::std::ffi::c_void, size: u32, codepage: DXC_CP) -> ::windows::runtime::Result<IDxcBlobEncoding> {
1731         let mut result__: <IDxcBlobEncoding as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1732         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(ptext), ::std::mem::transmute(size), ::std::mem::transmute(codepage), &mut result__).from_abi::<IDxcBlobEncoding>(result__)
1733     }
1734     pub unsafe fn CreateBlobWithEncodingOnHeapCopy(&self, ptext: *const ::std::ffi::c_void, size: u32, codepage: DXC_CP) -> ::windows::runtime::Result<IDxcBlobEncoding> {
1735         let mut result__: <IDxcBlobEncoding as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1736         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(ptext), ::std::mem::transmute(size), ::std::mem::transmute(codepage), &mut result__).from_abi::<IDxcBlobEncoding>(result__)
1737     }
1738     #[cfg(feature = "Win32_System_Com")]
1739     pub unsafe fn CreateBlobWithEncodingOnMalloc<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::System::Com::IMalloc>>(&self, ptext: *const ::std::ffi::c_void, pimalloc: Param1, size: u32, codepage: DXC_CP) -> ::windows::runtime::Result<IDxcBlobEncoding> {
1740         let mut result__: <IDxcBlobEncoding as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1741         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(ptext), pimalloc.into_param().abi(), ::std::mem::transmute(size), ::std::mem::transmute(codepage), &mut result__).from_abi::<IDxcBlobEncoding>(result__)
1742     }
1743     pub unsafe fn CreateIncludeHandler(&self) -> ::windows::runtime::Result<IDxcIncludeHandler> {
1744         let mut result__: <IDxcIncludeHandler as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1745         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDxcIncludeHandler>(result__)
1746     }
1747     #[cfg(feature = "Win32_System_Com")]
1748     pub unsafe fn CreateStreamFromBlobReadOnly<'a, Param0: ::windows::runtime::IntoParam<'a, IDxcBlob>>(&self, pblob: Param0) -> ::windows::runtime::Result<super::super::System::Com::IStream> {
1749         let mut result__: <super::super::System::Com::IStream as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1750         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), pblob.into_param().abi(), &mut result__).from_abi::<super::super::System::Com::IStream>(result__)
1751     }
1752     pub unsafe fn GetBlobAsUtf8<'a, Param0: ::windows::runtime::IntoParam<'a, IDxcBlob>>(&self, pblob: Param0) -> ::windows::runtime::Result<IDxcBlobEncoding> {
1753         let mut result__: <IDxcBlobEncoding as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1754         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), pblob.into_param().abi(), &mut result__).from_abi::<IDxcBlobEncoding>(result__)
1755     }
1756     pub unsafe fn GetBlobAsUtf16<'a, Param0: ::windows::runtime::IntoParam<'a, IDxcBlob>>(&self, pblob: Param0) -> ::windows::runtime::Result<IDxcBlobEncoding> {
1757         let mut result__: <IDxcBlobEncoding as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1758         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), pblob.into_param().abi(), &mut result__).from_abi::<IDxcBlobEncoding>(result__)
1759     }
1760 }
1761 unsafe impl ::windows::runtime::Interface for IDxcLibrary {
1762     type Vtable = IDxcLibrary_abi;
1763     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3844099527, 53644, 19516, [189, 251, 133, 22, 115, 152, 15, 231]);
1764 }
1765 impl ::std::convert::From<IDxcLibrary> for ::windows::runtime::IUnknown {
1766     fn from(value: IDxcLibrary) -> Self {
1767         unsafe { ::std::mem::transmute(value) }
1768     }
1769 }
1770 impl ::std::convert::From<&IDxcLibrary> for ::windows::runtime::IUnknown {
1771     fn from(value: &IDxcLibrary) -> Self {
1772         ::std::convert::From::from(::std::clone::Clone::clone(value))
1773     }
1774 }
1775 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDxcLibrary {
1776     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1777         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1778     }
1779 }
1780 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDxcLibrary {
1781     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1782         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1783     }
1784 }
1785 #[repr(C)]
1786 #[doc(hidden)]
1787 pub struct IDxcLibrary_abi(
1788     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1789     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1790     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1791     #[cfg(feature = "Win32_System_Com")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pmalloc: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1792     #[cfg(not(feature = "Win32_System_Com"))] usize,
1793     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pblob: ::windows::runtime::RawPtr, offset: u32, length: u32, ppresult: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1794     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pfilename: super::super::Foundation::PWSTR, codepage: *const DXC_CP, pblobencoding: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1795     #[cfg(not(feature = "Win32_Foundation"))] usize,
1796     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ptext: *const ::std::ffi::c_void, size: u32, codepage: DXC_CP, pblobencoding: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1797     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ptext: *const ::std::ffi::c_void, size: u32, codepage: DXC_CP, pblobencoding: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1798     #[cfg(feature = "Win32_System_Com")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ptext: *const ::std::ffi::c_void, pimalloc: ::windows::runtime::RawPtr, size: u32, codepage: DXC_CP, pblobencoding: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1799     #[cfg(not(feature = "Win32_System_Com"))] usize,
1800     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppresult: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1801     #[cfg(feature = "Win32_System_Com")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pblob: ::windows::runtime::RawPtr, ppstream: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1802     #[cfg(not(feature = "Win32_System_Com"))] usize,
1803     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pblob: ::windows::runtime::RawPtr, pblobencoding: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1804     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pblob: ::windows::runtime::RawPtr, pblobencoding: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1805 );
1806 #[repr(transparent)]
1807 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1808 pub struct IDxcLinker(::windows::runtime::IUnknown);
1809 impl IDxcLinker {
1810     #[cfg(feature = "Win32_Foundation")]
1811     pub unsafe fn RegisterLibrary<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, IDxcBlob>>(&self, plibname: Param0, plib: Param1) -> ::windows::runtime::Result<()> {
1812         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), plibname.into_param().abi(), plib.into_param().abi()).ok()
1813     }
1814     #[cfg(feature = "Win32_Foundation")]
1815     pub unsafe fn Link<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, pentryname: Param0, ptargetprofile: Param1, plibnames: *const super::super::Foundation::PWSTR, libcount: u32, parguments: *const super::super::Foundation::PWSTR, argcount: u32) -> ::windows::runtime::Result<IDxcOperationResult> {
1816         let mut result__: <IDxcOperationResult as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1817         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), pentryname.into_param().abi(), ptargetprofile.into_param().abi(), ::std::mem::transmute(plibnames), ::std::mem::transmute(libcount), ::std::mem::transmute(parguments), ::std::mem::transmute(argcount), &mut result__).from_abi::<IDxcOperationResult>(result__)
1818     }
1819 }
1820 unsafe impl ::windows::runtime::Interface for IDxcLinker {
1821     type Vtable = IDxcLinker_abi;
1822     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4055219754, 25309, 17191, [161, 194, 66, 172, 30, 30, 120, 230]);
1823 }
1824 impl ::std::convert::From<IDxcLinker> for ::windows::runtime::IUnknown {
1825     fn from(value: IDxcLinker) -> Self {
1826         unsafe { ::std::mem::transmute(value) }
1827     }
1828 }
1829 impl ::std::convert::From<&IDxcLinker> for ::windows::runtime::IUnknown {
1830     fn from(value: &IDxcLinker) -> Self {
1831         ::std::convert::From::from(::std::clone::Clone::clone(value))
1832     }
1833 }
1834 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDxcLinker {
1835     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1836         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1837     }
1838 }
1839 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDxcLinker {
1840     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1841         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1842     }
1843 }
1844 #[repr(C)]
1845 #[doc(hidden)]
1846 pub struct IDxcLinker_abi(
1847     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1848     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1849     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1850     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, plibname: super::super::Foundation::PWSTR, plib: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1851     #[cfg(not(feature = "Win32_Foundation"))] usize,
1852     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pentryname: super::super::Foundation::PWSTR, ptargetprofile: super::super::Foundation::PWSTR, plibnames: *const super::super::Foundation::PWSTR, libcount: u32, parguments: *const super::super::Foundation::PWSTR, argcount: u32, ppresult: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1853     #[cfg(not(feature = "Win32_Foundation"))] usize,
1854 );
1855 #[repr(transparent)]
1856 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1857 pub struct IDxcOperationResult(::windows::runtime::IUnknown);
1858 impl IDxcOperationResult {
1859     pub unsafe fn GetStatus(&self) -> ::windows::runtime::Result<::windows::runtime::HRESULT> {
1860         let mut result__: <::windows::runtime::HRESULT as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1861         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), &mut result__).from_abi::<::windows::runtime::HRESULT>(result__)
1862     }
1863     pub unsafe fn GetResult(&self) -> ::windows::runtime::Result<IDxcBlob> {
1864         let mut result__: <IDxcBlob as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1865         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDxcBlob>(result__)
1866     }
1867     pub unsafe fn GetErrorBuffer(&self) -> ::windows::runtime::Result<IDxcBlobEncoding> {
1868         let mut result__: <IDxcBlobEncoding as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1869         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDxcBlobEncoding>(result__)
1870     }
1871 }
1872 unsafe impl ::windows::runtime::Interface for IDxcOperationResult {
1873     type Vtable = IDxcOperationResult_abi;
1874     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3470477386, 54505, 17498, [185, 145, 202, 33, 202, 21, 125, 194]);
1875 }
1876 impl ::std::convert::From<IDxcOperationResult> for ::windows::runtime::IUnknown {
1877     fn from(value: IDxcOperationResult) -> Self {
1878         unsafe { ::std::mem::transmute(value) }
1879     }
1880 }
1881 impl ::std::convert::From<&IDxcOperationResult> for ::windows::runtime::IUnknown {
1882     fn from(value: &IDxcOperationResult) -> Self {
1883         ::std::convert::From::from(::std::clone::Clone::clone(value))
1884     }
1885 }
1886 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDxcOperationResult {
1887     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1888         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1889     }
1890 }
1891 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDxcOperationResult {
1892     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1893         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1894     }
1895 }
1896 #[repr(C)]
1897 #[doc(hidden)]
1898 pub struct IDxcOperationResult_abi(
1899     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1900     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1901     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1902     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pstatus: *mut ::windows::runtime::HRESULT) -> ::windows::runtime::HRESULT,
1903     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppresult: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1904     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pperrors: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1905 );
1906 #[repr(transparent)]
1907 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1908 pub struct IDxcOptimizer(::windows::runtime::IUnknown);
1909 impl IDxcOptimizer {
1910     pub unsafe fn GetAvailablePassCount(&self) -> ::windows::runtime::Result<u32> {
1911         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1912         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
1913     }
1914     pub unsafe fn GetAvailablePass(&self, index: u32) -> ::windows::runtime::Result<IDxcOptimizerPass> {
1915         let mut result__: <IDxcOptimizerPass as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1916         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), &mut result__).from_abi::<IDxcOptimizerPass>(result__)
1917     }
1918     #[cfg(feature = "Win32_Foundation")]
1919     pub unsafe fn RunOptimizer<'a, Param0: ::windows::runtime::IntoParam<'a, IDxcBlob>>(&self, pblob: Param0, ppoptions: *const super::super::Foundation::PWSTR, optioncount: u32, poutputmodule: *mut ::std::option::Option<IDxcBlob>, ppoutputtext: *mut ::std::option::Option<IDxcBlobEncoding>) -> ::windows::runtime::Result<()> {
1920         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), pblob.into_param().abi(), ::std::mem::transmute(ppoptions), ::std::mem::transmute(optioncount), ::std::mem::transmute(poutputmodule), ::std::mem::transmute(ppoutputtext)).ok()
1921     }
1922 }
1923 unsafe impl ::windows::runtime::Interface for IDxcOptimizer {
1924     type Vtable = IDxcOptimizer_abi;
1925     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(628362798, 40122, 16411, [145, 25, 79, 180, 47, 57, 242, 112]);
1926 }
1927 impl ::std::convert::From<IDxcOptimizer> for ::windows::runtime::IUnknown {
1928     fn from(value: IDxcOptimizer) -> Self {
1929         unsafe { ::std::mem::transmute(value) }
1930     }
1931 }
1932 impl ::std::convert::From<&IDxcOptimizer> for ::windows::runtime::IUnknown {
1933     fn from(value: &IDxcOptimizer) -> Self {
1934         ::std::convert::From::from(::std::clone::Clone::clone(value))
1935     }
1936 }
1937 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDxcOptimizer {
1938     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1939         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1940     }
1941 }
1942 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDxcOptimizer {
1943     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1944         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1945     }
1946 }
1947 #[repr(C)]
1948 #[doc(hidden)]
1949 pub struct IDxcOptimizer_abi(
1950     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1951     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1952     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1953     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcount: *mut u32) -> ::windows::runtime::HRESULT,
1954     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, ppresult: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1955     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pblob: ::windows::runtime::RawPtr, ppoptions: *const super::super::Foundation::PWSTR, optioncount: u32, poutputmodule: *mut ::windows::runtime::RawPtr, ppoutputtext: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1956     #[cfg(not(feature = "Win32_Foundation"))] usize,
1957 );
1958 #[repr(transparent)]
1959 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1960 pub struct IDxcOptimizerPass(::windows::runtime::IUnknown);
1961 impl IDxcOptimizerPass {
1962     #[cfg(feature = "Win32_Foundation")]
1963     pub unsafe fn GetOptionName(&self) -> ::windows::runtime::Result<super::super::Foundation::PWSTR> {
1964         let mut result__: <super::super::Foundation::PWSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1965         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::PWSTR>(result__)
1966     }
1967     #[cfg(feature = "Win32_Foundation")]
1968     pub unsafe fn GetDescription(&self) -> ::windows::runtime::Result<super::super::Foundation::PWSTR> {
1969         let mut result__: <super::super::Foundation::PWSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1970         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::PWSTR>(result__)
1971     }
1972     pub unsafe fn GetOptionArgCount(&self) -> ::windows::runtime::Result<u32> {
1973         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1974         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
1975     }
1976     #[cfg(feature = "Win32_Foundation")]
1977     pub unsafe fn GetOptionArgName(&self, argindex: u32) -> ::windows::runtime::Result<super::super::Foundation::PWSTR> {
1978         let mut result__: <super::super::Foundation::PWSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1979         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(argindex), &mut result__).from_abi::<super::super::Foundation::PWSTR>(result__)
1980     }
1981     #[cfg(feature = "Win32_Foundation")]
1982     pub unsafe fn GetOptionArgDescription(&self, argindex: u32) -> ::windows::runtime::Result<super::super::Foundation::PWSTR> {
1983         let mut result__: <super::super::Foundation::PWSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1984         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(argindex), &mut result__).from_abi::<super::super::Foundation::PWSTR>(result__)
1985     }
1986 }
1987 unsafe impl ::windows::runtime::Interface for IDxcOptimizerPass {
1988     type Vtable = IDxcOptimizerPass_abi;
1989     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2922174367, 52258, 17727, [155, 107, 177, 36, 231, 165, 32, 76]);
1990 }
1991 impl ::std::convert::From<IDxcOptimizerPass> for ::windows::runtime::IUnknown {
1992     fn from(value: IDxcOptimizerPass) -> Self {
1993         unsafe { ::std::mem::transmute(value) }
1994     }
1995 }
1996 impl ::std::convert::From<&IDxcOptimizerPass> for ::windows::runtime::IUnknown {
1997     fn from(value: &IDxcOptimizerPass) -> Self {
1998         ::std::convert::From::from(::std::clone::Clone::clone(value))
1999     }
2000 }
2001 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDxcOptimizerPass {
2002     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2003         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2004     }
2005 }
2006 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDxcOptimizerPass {
2007     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2008         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2009     }
2010 }
2011 #[repr(C)]
2012 #[doc(hidden)]
2013 pub struct IDxcOptimizerPass_abi(
2014     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2015     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2016     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2017     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppresult: *mut super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
2018     #[cfg(not(feature = "Win32_Foundation"))] usize,
2019     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppresult: *mut super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
2020     #[cfg(not(feature = "Win32_Foundation"))] usize,
2021     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcount: *mut u32) -> ::windows::runtime::HRESULT,
2022     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, argindex: u32, ppresult: *mut super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
2023     #[cfg(not(feature = "Win32_Foundation"))] usize,
2024     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, argindex: u32, ppresult: *mut super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
2025     #[cfg(not(feature = "Win32_Foundation"))] usize,
2026 );
2027 #[repr(transparent)]
2028 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2029 pub struct IDxcPdbUtils(::windows::runtime::IUnknown);
2030 impl IDxcPdbUtils {
2031     pub unsafe fn Load<'a, Param0: ::windows::runtime::IntoParam<'a, IDxcBlob>>(&self, ppdbordxil: Param0) -> ::windows::runtime::Result<()> {
2032         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ppdbordxil.into_param().abi()).ok()
2033     }
2034     pub unsafe fn GetSourceCount(&self) -> ::windows::runtime::Result<u32> {
2035         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2036         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
2037     }
2038     pub unsafe fn GetSource(&self, uindex: u32) -> ::windows::runtime::Result<IDxcBlobEncoding> {
2039         let mut result__: <IDxcBlobEncoding as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2040         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(uindex), &mut result__).from_abi::<IDxcBlobEncoding>(result__)
2041     }
2042     #[cfg(feature = "Win32_Foundation")]
2043     pub unsafe fn GetSourceName(&self, uindex: u32) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2044         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2045         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(uindex), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2046     }
2047     pub unsafe fn GetFlagCount(&self) -> ::windows::runtime::Result<u32> {
2048         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2049         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
2050     }
2051     #[cfg(feature = "Win32_Foundation")]
2052     pub unsafe fn GetFlag(&self, uindex: u32) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2053         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2054         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(uindex), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2055     }
2056     pub unsafe fn GetArgCount(&self) -> ::windows::runtime::Result<u32> {
2057         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2058         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
2059     }
2060     #[cfg(feature = "Win32_Foundation")]
2061     pub unsafe fn GetArg(&self, uindex: u32) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2062         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2063         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(uindex), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2064     }
2065     pub unsafe fn GetArgPairCount(&self) -> ::windows::runtime::Result<u32> {
2066         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2067         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
2068     }
2069     #[cfg(feature = "Win32_Foundation")]
2070     pub unsafe fn GetArgPair(&self, uindex: u32, pname: *mut super::super::Foundation::BSTR, pvalue: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
2071         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(uindex), ::std::mem::transmute(pname), ::std::mem::transmute(pvalue)).ok()
2072     }
2073     pub unsafe fn GetDefineCount(&self) -> ::windows::runtime::Result<u32> {
2074         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2075         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
2076     }
2077     #[cfg(feature = "Win32_Foundation")]
2078     pub unsafe fn GetDefine(&self, uindex: u32) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2079         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2080         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(uindex), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2081     }
2082     #[cfg(feature = "Win32_Foundation")]
2083     pub unsafe fn GetTargetProfile(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2084         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2085         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2086     }
2087     #[cfg(feature = "Win32_Foundation")]
2088     pub unsafe fn GetEntryPoint(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2089         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2090         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2091     }
2092     #[cfg(feature = "Win32_Foundation")]
2093     pub unsafe fn GetMainFileName(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2094         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2095         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2096     }
2097     pub unsafe fn GetHash(&self) -> ::windows::runtime::Result<IDxcBlob> {
2098         let mut result__: <IDxcBlob as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2099         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDxcBlob>(result__)
2100     }
2101     #[cfg(feature = "Win32_Foundation")]
2102     pub unsafe fn GetName(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2103         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2104         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2105     }
2106     #[cfg(feature = "Win32_Foundation")]
2107     pub unsafe fn IsFullPDB(&self) -> super::super::Foundation::BOOL {
2108         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self)))
2109     }
2110     pub unsafe fn GetFullPDB(&self) -> ::windows::runtime::Result<IDxcBlob> {
2111         let mut result__: <IDxcBlob as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2112         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDxcBlob>(result__)
2113     }
2114     pub unsafe fn GetVersionInfo(&self) -> ::windows::runtime::Result<IDxcVersionInfo> {
2115         let mut result__: <IDxcVersionInfo as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2116         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDxcVersionInfo>(result__)
2117     }
2118     pub unsafe fn SetCompiler<'a, Param0: ::windows::runtime::IntoParam<'a, IDxcCompiler3>>(&self, pcompiler: Param0) -> ::windows::runtime::Result<()> {
2119         (::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self), pcompiler.into_param().abi()).ok()
2120     }
2121     pub unsafe fn CompileForFullPDB(&self) -> ::windows::runtime::Result<IDxcResult> {
2122         let mut result__: <IDxcResult as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2123         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDxcResult>(result__)
2124     }
2125     #[cfg(feature = "Win32_Foundation")]
2126     pub unsafe fn OverrideArgs(&self, pargpairs: *const DxcArgPair, unumargpairs: u32) -> ::windows::runtime::Result<()> {
2127         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), ::std::mem::transmute(pargpairs), ::std::mem::transmute(unumargpairs)).ok()
2128     }
2129     #[cfg(feature = "Win32_Foundation")]
2130     pub unsafe fn OverrideRootSignature<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, prootsignature: Param0) -> ::windows::runtime::Result<()> {
2131         (::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self), prootsignature.into_param().abi()).ok()
2132     }
2133 }
2134 unsafe impl ::windows::runtime::Interface for IDxcPdbUtils {
2135     type Vtable = IDxcPdbUtils_abi;
2136     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3871958142, 40298, 19515, [185, 76, 82, 75, 90, 108, 52, 61]);
2137 }
2138 impl ::std::convert::From<IDxcPdbUtils> for ::windows::runtime::IUnknown {
2139     fn from(value: IDxcPdbUtils) -> Self {
2140         unsafe { ::std::mem::transmute(value) }
2141     }
2142 }
2143 impl ::std::convert::From<&IDxcPdbUtils> for ::windows::runtime::IUnknown {
2144     fn from(value: &IDxcPdbUtils) -> Self {
2145         ::std::convert::From::from(::std::clone::Clone::clone(value))
2146     }
2147 }
2148 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDxcPdbUtils {
2149     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2150         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2151     }
2152 }
2153 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDxcPdbUtils {
2154     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2155         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2156     }
2157 }
2158 #[repr(C)]
2159 #[doc(hidden)]
2160 pub struct IDxcPdbUtils_abi(
2161     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2162     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2163     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2164     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppdbordxil: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2165     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcount: *mut u32) -> ::windows::runtime::HRESULT,
2166     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, uindex: u32, ppresult: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2167     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, uindex: u32, presult: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2168     #[cfg(not(feature = "Win32_Foundation"))] usize,
2169     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcount: *mut u32) -> ::windows::runtime::HRESULT,
2170     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, uindex: u32, presult: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2171     #[cfg(not(feature = "Win32_Foundation"))] usize,
2172     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcount: *mut u32) -> ::windows::runtime::HRESULT,
2173     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, uindex: u32, presult: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2174     #[cfg(not(feature = "Win32_Foundation"))] usize,
2175     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcount: *mut u32) -> ::windows::runtime::HRESULT,
2176     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, uindex: u32, pname: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, pvalue: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2177     #[cfg(not(feature = "Win32_Foundation"))] usize,
2178     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcount: *mut u32) -> ::windows::runtime::HRESULT,
2179     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, uindex: u32, presult: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2180     #[cfg(not(feature = "Win32_Foundation"))] usize,
2181     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, presult: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2182     #[cfg(not(feature = "Win32_Foundation"))] usize,
2183     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, presult: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2184     #[cfg(not(feature = "Win32_Foundation"))] usize,
2185     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, presult: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2186     #[cfg(not(feature = "Win32_Foundation"))] usize,
2187     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppresult: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2188     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, presult: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2189     #[cfg(not(feature = "Win32_Foundation"))] usize,
2190     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
2191     #[cfg(not(feature = "Win32_Foundation"))] usize,
2192     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppfullpdb: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2193     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppversioninfo: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2194     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcompiler: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2195     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppresult: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2196     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pargpairs: *const DxcArgPair, unumargpairs: u32) -> ::windows::runtime::HRESULT,
2197     #[cfg(not(feature = "Win32_Foundation"))] usize,
2198     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, prootsignature: super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
2199     #[cfg(not(feature = "Win32_Foundation"))] usize,
2200 );
2201 #[repr(transparent)]
2202 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2203 pub struct IDxcResult(::windows::runtime::IUnknown);
2204 impl IDxcResult {
2205     pub unsafe fn GetStatus(&self) -> ::windows::runtime::Result<::windows::runtime::HRESULT> {
2206         let mut result__: <::windows::runtime::HRESULT as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2207         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), &mut result__).from_abi::<::windows::runtime::HRESULT>(result__)
2208     }
2209     pub unsafe fn GetResult(&self) -> ::windows::runtime::Result<IDxcBlob> {
2210         let mut result__: <IDxcBlob as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2211         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDxcBlob>(result__)
2212     }
2213     pub unsafe fn GetErrorBuffer(&self) -> ::windows::runtime::Result<IDxcBlobEncoding> {
2214         let mut result__: <IDxcBlobEncoding as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2215         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDxcBlobEncoding>(result__)
2216     }
2217     #[cfg(feature = "Win32_Foundation")]
2218     pub unsafe fn HasOutput(&self, dxcoutkind: DXC_OUT_KIND) -> super::super::Foundation::BOOL {
2219         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(dxcoutkind)))
2220     }
2221     pub unsafe fn GetOutput(&self, dxcoutkind: DXC_OUT_KIND, iid: *const ::windows::runtime::GUID, ppvobject: *mut *mut ::std::ffi::c_void, ppoutputname: *mut ::std::option::Option<IDxcBlobUtf16>) -> ::windows::runtime::Result<()> {
2222         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(dxcoutkind), ::std::mem::transmute(iid), ::std::mem::transmute(ppvobject), ::std::mem::transmute(ppoutputname)).ok()
2223     }
2224     pub unsafe fn GetNumOutputs(&self) -> u32 {
2225         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self)))
2226     }
2227     pub unsafe fn GetOutputByIndex(&self, index: u32) -> DXC_OUT_KIND {
2228         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(index)))
2229     }
2230     pub unsafe fn PrimaryOutput(&self) -> DXC_OUT_KIND {
2231         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self)))
2232     }
2233 }
2234 unsafe impl ::windows::runtime::Interface for IDxcResult {
2235     type Vtable = IDxcResult_abi;
2236     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1479830746, 56807, 17559, [148, 97, 111, 135, 175, 94, 6, 89]);
2237 }
2238 impl ::std::convert::From<IDxcResult> for ::windows::runtime::IUnknown {
2239     fn from(value: IDxcResult) -> Self {
2240         unsafe { ::std::mem::transmute(value) }
2241     }
2242 }
2243 impl ::std::convert::From<&IDxcResult> for ::windows::runtime::IUnknown {
2244     fn from(value: &IDxcResult) -> Self {
2245         ::std::convert::From::from(::std::clone::Clone::clone(value))
2246     }
2247 }
2248 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDxcResult {
2249     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2250         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2251     }
2252 }
2253 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDxcResult {
2254     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2255         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2256     }
2257 }
2258 impl ::std::convert::From<IDxcResult> for IDxcOperationResult {
2259     fn from(value: IDxcResult) -> Self {
2260         unsafe { ::std::mem::transmute(value) }
2261     }
2262 }
2263 impl ::std::convert::From<&IDxcResult> for IDxcOperationResult {
2264     fn from(value: &IDxcResult) -> Self {
2265         ::std::convert::From::from(::std::clone::Clone::clone(value))
2266     }
2267 }
2268 impl<'a> ::windows::runtime::IntoParam<'a, IDxcOperationResult> for IDxcResult {
2269     fn into_param(self) -> ::windows::runtime::Param<'a, IDxcOperationResult> {
2270         ::windows::runtime::Param::Owned(::std::convert::Into::<IDxcOperationResult>::into(self))
2271     }
2272 }
2273 impl<'a> ::windows::runtime::IntoParam<'a, IDxcOperationResult> for &IDxcResult {
2274     fn into_param(self) -> ::windows::runtime::Param<'a, IDxcOperationResult> {
2275         ::windows::runtime::Param::Owned(::std::convert::Into::<IDxcOperationResult>::into(::std::clone::Clone::clone(self)))
2276     }
2277 }
2278 #[repr(C)]
2279 #[doc(hidden)]
2280 pub struct IDxcResult_abi(
2281     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2282     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2283     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2284     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pstatus: *mut ::windows::runtime::HRESULT) -> ::windows::runtime::HRESULT,
2285     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppresult: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2286     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pperrors: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2287     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dxcoutkind: DXC_OUT_KIND) -> super::super::Foundation::BOOL,
2288     #[cfg(not(feature = "Win32_Foundation"))] usize,
2289     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dxcoutkind: DXC_OUT_KIND, iid: *const ::windows::runtime::GUID, ppvobject: *mut *mut ::std::ffi::c_void, ppoutputname: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2290     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2291     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32) -> DXC_OUT_KIND,
2292     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DXC_OUT_KIND,
2293 );
2294 #[repr(transparent)]
2295 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2296 pub struct IDxcUtils(::windows::runtime::IUnknown);
2297 impl IDxcUtils {
2298     pub unsafe fn CreateBlobFromBlob<'a, Param0: ::windows::runtime::IntoParam<'a, IDxcBlob>>(&self, pblob: Param0, offset: u32, length: u32) -> ::windows::runtime::Result<IDxcBlob> {
2299         let mut result__: <IDxcBlob as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2300         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), pblob.into_param().abi(), ::std::mem::transmute(offset), ::std::mem::transmute(length), &mut result__).from_abi::<IDxcBlob>(result__)
2301     }
2302     pub unsafe fn CreateBlobFromPinned(&self, pdata: *const ::std::ffi::c_void, size: u32, codepage: DXC_CP) -> ::windows::runtime::Result<IDxcBlobEncoding> {
2303         let mut result__: <IDxcBlobEncoding as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2304         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(pdata), ::std::mem::transmute(size), ::std::mem::transmute(codepage), &mut result__).from_abi::<IDxcBlobEncoding>(result__)
2305     }
2306     #[cfg(feature = "Win32_System_Com")]
2307     pub unsafe fn MoveToBlob<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::System::Com::IMalloc>>(&self, pdata: *const ::std::ffi::c_void, pimalloc: Param1, size: u32, codepage: DXC_CP) -> ::windows::runtime::Result<IDxcBlobEncoding> {
2308         let mut result__: <IDxcBlobEncoding as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2309         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(pdata), pimalloc.into_param().abi(), ::std::mem::transmute(size), ::std::mem::transmute(codepage), &mut result__).from_abi::<IDxcBlobEncoding>(result__)
2310     }
2311     pub unsafe fn CreateBlob(&self, pdata: *const ::std::ffi::c_void, size: u32, codepage: DXC_CP) -> ::windows::runtime::Result<IDxcBlobEncoding> {
2312         let mut result__: <IDxcBlobEncoding as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2313         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(pdata), ::std::mem::transmute(size), ::std::mem::transmute(codepage), &mut result__).from_abi::<IDxcBlobEncoding>(result__)
2314     }
2315     #[cfg(feature = "Win32_Foundation")]
2316     pub unsafe fn LoadFile<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, pfilename: Param0, pcodepage: *const DXC_CP) -> ::windows::runtime::Result<IDxcBlobEncoding> {
2317         let mut result__: <IDxcBlobEncoding as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2318         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), pfilename.into_param().abi(), ::std::mem::transmute(pcodepage), &mut result__).from_abi::<IDxcBlobEncoding>(result__)
2319     }
2320     #[cfg(feature = "Win32_System_Com")]
2321     pub unsafe fn CreateReadOnlyStreamFromBlob<'a, Param0: ::windows::runtime::IntoParam<'a, IDxcBlob>>(&self, pblob: Param0) -> ::windows::runtime::Result<super::super::System::Com::IStream> {
2322         let mut result__: <super::super::System::Com::IStream as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2323         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), pblob.into_param().abi(), &mut result__).from_abi::<super::super::System::Com::IStream>(result__)
2324     }
2325     pub unsafe fn CreateDefaultIncludeHandler(&self) -> ::windows::runtime::Result<IDxcIncludeHandler> {
2326         let mut result__: <IDxcIncludeHandler as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2327         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDxcIncludeHandler>(result__)
2328     }
2329     pub unsafe fn GetBlobAsUtf8<'a, Param0: ::windows::runtime::IntoParam<'a, IDxcBlob>>(&self, pblob: Param0) -> ::windows::runtime::Result<IDxcBlobUtf8> {
2330         let mut result__: <IDxcBlobUtf8 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2331         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), pblob.into_param().abi(), &mut result__).from_abi::<IDxcBlobUtf8>(result__)
2332     }
2333     pub unsafe fn GetBlobAsUtf16<'a, Param0: ::windows::runtime::IntoParam<'a, IDxcBlob>>(&self, pblob: Param0) -> ::windows::runtime::Result<IDxcBlobUtf16> {
2334         let mut result__: <IDxcBlobUtf16 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2335         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), pblob.into_param().abi(), &mut result__).from_abi::<IDxcBlobUtf16>(result__)
2336     }
2337     pub unsafe fn GetDxilContainerPart(&self, pshader: *const DxcBuffer, dxcpart: u32, pppartdata: *mut *mut ::std::ffi::c_void, ppartsizeinbytes: *mut u32) -> ::windows::runtime::Result<()> {
2338         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(pshader), ::std::mem::transmute(dxcpart), ::std::mem::transmute(pppartdata), ::std::mem::transmute(ppartsizeinbytes)).ok()
2339     }
2340     pub unsafe fn CreateReflection(&self, pdata: *const DxcBuffer, iid: *const ::windows::runtime::GUID, ppvreflection: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
2341         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(pdata), ::std::mem::transmute(iid), ::std::mem::transmute(ppvreflection)).ok()
2342     }
2343     #[cfg(feature = "Win32_Foundation")]
2344     pub unsafe fn BuildArguments<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, psourcename: Param0, pentrypoint: Param1, ptargetprofile: Param2, parguments: *const super::super::Foundation::PWSTR, argcount: u32, pdefines: *const DxcDefine, definecount: u32) -> ::windows::runtime::Result<IDxcCompilerArgs> {
2345         let mut result__: <IDxcCompilerArgs as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2346         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), psourcename.into_param().abi(), pentrypoint.into_param().abi(), ptargetprofile.into_param().abi(), ::std::mem::transmute(parguments), ::std::mem::transmute(argcount), ::std::mem::transmute(pdefines), ::std::mem::transmute(definecount), &mut result__).from_abi::<IDxcCompilerArgs>(result__)
2347     }
2348     pub unsafe fn GetPDBContents<'a, Param0: ::windows::runtime::IntoParam<'a, IDxcBlob>>(&self, ppdbblob: Param0, pphash: *mut ::std::option::Option<IDxcBlob>, ppcontainer: *mut ::std::option::Option<IDxcBlob>) -> ::windows::runtime::Result<()> {
2349         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ppdbblob.into_param().abi(), ::std::mem::transmute(pphash), ::std::mem::transmute(ppcontainer)).ok()
2350     }
2351 }
2352 unsafe impl ::windows::runtime::Interface for IDxcUtils {
2353     type Vtable = IDxcUtils_abi;
2354     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1174783179, 8217, 18730, [173, 164, 101, 242, 11, 183, 214, 127]);
2355 }
2356 impl ::std::convert::From<IDxcUtils> for ::windows::runtime::IUnknown {
2357     fn from(value: IDxcUtils) -> Self {
2358         unsafe { ::std::mem::transmute(value) }
2359     }
2360 }
2361 impl ::std::convert::From<&IDxcUtils> for ::windows::runtime::IUnknown {
2362     fn from(value: &IDxcUtils) -> Self {
2363         ::std::convert::From::from(::std::clone::Clone::clone(value))
2364     }
2365 }
2366 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDxcUtils {
2367     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2368         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2369     }
2370 }
2371 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDxcUtils {
2372     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2373         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2374     }
2375 }
2376 #[repr(C)]
2377 #[doc(hidden)]
2378 pub struct IDxcUtils_abi(
2379     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2380     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2381     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2382     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pblob: ::windows::runtime::RawPtr, offset: u32, length: u32, ppresult: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2383     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdata: *const ::std::ffi::c_void, size: u32, codepage: DXC_CP, pblobencoding: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2384     #[cfg(feature = "Win32_System_Com")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdata: *const ::std::ffi::c_void, pimalloc: ::windows::runtime::RawPtr, size: u32, codepage: DXC_CP, pblobencoding: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2385     #[cfg(not(feature = "Win32_System_Com"))] usize,
2386     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdata: *const ::std::ffi::c_void, size: u32, codepage: DXC_CP, pblobencoding: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2387     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pfilename: super::super::Foundation::PWSTR, pcodepage: *const DXC_CP, pblobencoding: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2388     #[cfg(not(feature = "Win32_Foundation"))] usize,
2389     #[cfg(feature = "Win32_System_Com")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pblob: ::windows::runtime::RawPtr, ppstream: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2390     #[cfg(not(feature = "Win32_System_Com"))] usize,
2391     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppresult: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2392     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pblob: ::windows::runtime::RawPtr, pblobencoding: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2393     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pblob: ::windows::runtime::RawPtr, pblobencoding: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2394     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pshader: *const DxcBuffer, dxcpart: u32, pppartdata: *mut *mut ::std::ffi::c_void, ppartsizeinbytes: *mut u32) -> ::windows::runtime::HRESULT,
2395     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdata: *const DxcBuffer, iid: *const ::windows::runtime::GUID, ppvreflection: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
2396     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, psourcename: super::super::Foundation::PWSTR, pentrypoint: super::super::Foundation::PWSTR, ptargetprofile: super::super::Foundation::PWSTR, parguments: *const super::super::Foundation::PWSTR, argcount: u32, pdefines: *const DxcDefine, definecount: u32, ppargs: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2397     #[cfg(not(feature = "Win32_Foundation"))] usize,
2398     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppdbblob: ::windows::runtime::RawPtr, pphash: *mut ::windows::runtime::RawPtr, ppcontainer: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2399 );
2400 #[repr(transparent)]
2401 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2402 pub struct IDxcValidator(::windows::runtime::IUnknown);
2403 impl IDxcValidator {
2404     pub unsafe fn Validate<'a, Param0: ::windows::runtime::IntoParam<'a, IDxcBlob>>(&self, pshader: Param0, flags: u32) -> ::windows::runtime::Result<IDxcOperationResult> {
2405         let mut result__: <IDxcOperationResult as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2406         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), pshader.into_param().abi(), ::std::mem::transmute(flags), &mut result__).from_abi::<IDxcOperationResult>(result__)
2407     }
2408 }
2409 unsafe impl ::windows::runtime::Interface for IDxcValidator {
2410     type Vtable = IDxcValidator_abi;
2411     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2800233426, 8151, 18470, [152, 17, 40, 87, 231, 151, 244, 154]);
2412 }
2413 impl ::std::convert::From<IDxcValidator> for ::windows::runtime::IUnknown {
2414     fn from(value: IDxcValidator) -> Self {
2415         unsafe { ::std::mem::transmute(value) }
2416     }
2417 }
2418 impl ::std::convert::From<&IDxcValidator> for ::windows::runtime::IUnknown {
2419     fn from(value: &IDxcValidator) -> Self {
2420         ::std::convert::From::from(::std::clone::Clone::clone(value))
2421     }
2422 }
2423 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDxcValidator {
2424     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2425         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2426     }
2427 }
2428 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDxcValidator {
2429     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2430         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2431     }
2432 }
2433 #[repr(C)]
2434 #[doc(hidden)]
2435 pub struct IDxcValidator_abi(
2436     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2437     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2438     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2439     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pshader: ::windows::runtime::RawPtr, flags: u32, ppresult: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2440 );
2441 #[repr(transparent)]
2442 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2443 pub struct IDxcValidator2(::windows::runtime::IUnknown);
2444 impl IDxcValidator2 {
2445     pub unsafe fn Validate<'a, Param0: ::windows::runtime::IntoParam<'a, IDxcBlob>>(&self, pshader: Param0, flags: u32) -> ::windows::runtime::Result<IDxcOperationResult> {
2446         let mut result__: <IDxcOperationResult as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2447         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), pshader.into_param().abi(), ::std::mem::transmute(flags), &mut result__).from_abi::<IDxcOperationResult>(result__)
2448     }
2449     pub unsafe fn ValidateWithDebug<'a, Param0: ::windows::runtime::IntoParam<'a, IDxcBlob>>(&self, pshader: Param0, flags: u32, poptdebugbitcode: *const DxcBuffer) -> ::windows::runtime::Result<IDxcOperationResult> {
2450         let mut result__: <IDxcOperationResult as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2451         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), pshader.into_param().abi(), ::std::mem::transmute(flags), ::std::mem::transmute(poptdebugbitcode), &mut result__).from_abi::<IDxcOperationResult>(result__)
2452     }
2453 }
2454 unsafe impl ::windows::runtime::Interface for IDxcValidator2 {
2455     type Vtable = IDxcValidator2_abi;
2456     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1166942161, 45490, 18256, [166, 225, 156, 16, 240, 59, 237, 146]);
2457 }
2458 impl ::std::convert::From<IDxcValidator2> for ::windows::runtime::IUnknown {
2459     fn from(value: IDxcValidator2) -> Self {
2460         unsafe { ::std::mem::transmute(value) }
2461     }
2462 }
2463 impl ::std::convert::From<&IDxcValidator2> for ::windows::runtime::IUnknown {
2464     fn from(value: &IDxcValidator2) -> Self {
2465         ::std::convert::From::from(::std::clone::Clone::clone(value))
2466     }
2467 }
2468 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDxcValidator2 {
2469     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2470         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2471     }
2472 }
2473 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDxcValidator2 {
2474     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2475         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2476     }
2477 }
2478 impl ::std::convert::From<IDxcValidator2> for IDxcValidator {
2479     fn from(value: IDxcValidator2) -> Self {
2480         unsafe { ::std::mem::transmute(value) }
2481     }
2482 }
2483 impl ::std::convert::From<&IDxcValidator2> for IDxcValidator {
2484     fn from(value: &IDxcValidator2) -> Self {
2485         ::std::convert::From::from(::std::clone::Clone::clone(value))
2486     }
2487 }
2488 impl<'a> ::windows::runtime::IntoParam<'a, IDxcValidator> for IDxcValidator2 {
2489     fn into_param(self) -> ::windows::runtime::Param<'a, IDxcValidator> {
2490         ::windows::runtime::Param::Owned(::std::convert::Into::<IDxcValidator>::into(self))
2491     }
2492 }
2493 impl<'a> ::windows::runtime::IntoParam<'a, IDxcValidator> for &IDxcValidator2 {
2494     fn into_param(self) -> ::windows::runtime::Param<'a, IDxcValidator> {
2495         ::windows::runtime::Param::Owned(::std::convert::Into::<IDxcValidator>::into(::std::clone::Clone::clone(self)))
2496     }
2497 }
2498 #[repr(C)]
2499 #[doc(hidden)]
2500 pub struct IDxcValidator2_abi(
2501     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2502     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2503     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2504     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pshader: ::windows::runtime::RawPtr, flags: u32, ppresult: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2505     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pshader: ::windows::runtime::RawPtr, flags: u32, poptdebugbitcode: *const DxcBuffer, ppresult: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2506 );
2507 #[repr(transparent)]
2508 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2509 pub struct IDxcVersionInfo(::windows::runtime::IUnknown);
2510 impl IDxcVersionInfo {
2511     pub unsafe fn GetVersion(&self, pmajor: *mut u32, pminor: *mut u32) -> ::windows::runtime::Result<()> {
2512         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(pmajor), ::std::mem::transmute(pminor)).ok()
2513     }
2514     pub unsafe fn GetFlags(&self) -> ::windows::runtime::Result<u32> {
2515         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2516         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
2517     }
2518 }
2519 unsafe impl ::windows::runtime::Interface for IDxcVersionInfo {
2520     type Vtable = IDxcVersionInfo_abi;
2521     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2957990736, 8281, 20242, [168, 255, 161, 224, 205, 225, 204, 126]);
2522 }
2523 impl ::std::convert::From<IDxcVersionInfo> for ::windows::runtime::IUnknown {
2524     fn from(value: IDxcVersionInfo) -> Self {
2525         unsafe { ::std::mem::transmute(value) }
2526     }
2527 }
2528 impl ::std::convert::From<&IDxcVersionInfo> for ::windows::runtime::IUnknown {
2529     fn from(value: &IDxcVersionInfo) -> Self {
2530         ::std::convert::From::from(::std::clone::Clone::clone(value))
2531     }
2532 }
2533 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDxcVersionInfo {
2534     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2535         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2536     }
2537 }
2538 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDxcVersionInfo {
2539     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2540         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2541     }
2542 }
2543 #[repr(C)]
2544 #[doc(hidden)]
2545 pub struct IDxcVersionInfo_abi(
2546     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2547     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2548     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2549     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pmajor: *mut u32, pminor: *mut u32) -> ::windows::runtime::HRESULT,
2550     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pflags: *mut u32) -> ::windows::runtime::HRESULT,
2551 );
2552 #[repr(transparent)]
2553 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2554 pub struct IDxcVersionInfo2(::windows::runtime::IUnknown);
2555 impl IDxcVersionInfo2 {
2556     pub unsafe fn GetVersion(&self, pmajor: *mut u32, pminor: *mut u32) -> ::windows::runtime::Result<()> {
2557         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(pmajor), ::std::mem::transmute(pminor)).ok()
2558     }
2559     pub unsafe fn GetFlags(&self) -> ::windows::runtime::Result<u32> {
2560         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2561         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
2562     }
2563     pub unsafe fn GetCommitInfo(&self, pcommitcount: *mut u32, pcommithash: *mut *mut i8) -> ::windows::runtime::Result<()> {
2564         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(pcommitcount), ::std::mem::transmute(pcommithash)).ok()
2565     }
2566 }
2567 unsafe impl ::windows::runtime::Interface for IDxcVersionInfo2 {
2568     type Vtable = IDxcVersionInfo2_abi;
2569     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4217963716, 17136, 19298, [156, 70, 152, 58, 247, 218, 124, 131]);
2570 }
2571 impl ::std::convert::From<IDxcVersionInfo2> for ::windows::runtime::IUnknown {
2572     fn from(value: IDxcVersionInfo2) -> Self {
2573         unsafe { ::std::mem::transmute(value) }
2574     }
2575 }
2576 impl ::std::convert::From<&IDxcVersionInfo2> for ::windows::runtime::IUnknown {
2577     fn from(value: &IDxcVersionInfo2) -> Self {
2578         ::std::convert::From::from(::std::clone::Clone::clone(value))
2579     }
2580 }
2581 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDxcVersionInfo2 {
2582     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2583         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2584     }
2585 }
2586 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDxcVersionInfo2 {
2587     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2588         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2589     }
2590 }
2591 impl ::std::convert::From<IDxcVersionInfo2> for IDxcVersionInfo {
2592     fn from(value: IDxcVersionInfo2) -> Self {
2593         unsafe { ::std::mem::transmute(value) }
2594     }
2595 }
2596 impl ::std::convert::From<&IDxcVersionInfo2> for IDxcVersionInfo {
2597     fn from(value: &IDxcVersionInfo2) -> Self {
2598         ::std::convert::From::from(::std::clone::Clone::clone(value))
2599     }
2600 }
2601 impl<'a> ::windows::runtime::IntoParam<'a, IDxcVersionInfo> for IDxcVersionInfo2 {
2602     fn into_param(self) -> ::windows::runtime::Param<'a, IDxcVersionInfo> {
2603         ::windows::runtime::Param::Owned(::std::convert::Into::<IDxcVersionInfo>::into(self))
2604     }
2605 }
2606 impl<'a> ::windows::runtime::IntoParam<'a, IDxcVersionInfo> for &IDxcVersionInfo2 {
2607     fn into_param(self) -> ::windows::runtime::Param<'a, IDxcVersionInfo> {
2608         ::windows::runtime::Param::Owned(::std::convert::Into::<IDxcVersionInfo>::into(::std::clone::Clone::clone(self)))
2609     }
2610 }
2611 #[repr(C)]
2612 #[doc(hidden)]
2613 pub struct IDxcVersionInfo2_abi(
2614     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2615     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2616     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2617     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pmajor: *mut u32, pminor: *mut u32) -> ::windows::runtime::HRESULT,
2618     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pflags: *mut u32) -> ::windows::runtime::HRESULT,
2619     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcommitcount: *mut u32, pcommithash: *mut *mut i8) -> ::windows::runtime::HRESULT,
2620 );
2621 #[repr(transparent)]
2622 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2623 pub struct IDxcVersionInfo3(::windows::runtime::IUnknown);
2624 impl IDxcVersionInfo3 {
2625     pub unsafe fn GetCustomVersionString(&self) -> ::windows::runtime::Result<*mut i8> {
2626         let mut result__: <*mut i8 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2627         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), &mut result__).from_abi::<*mut i8>(result__)
2628     }
2629 }
2630 unsafe impl ::windows::runtime::Interface for IDxcVersionInfo3 {
2631     type Vtable = IDxcVersionInfo3_abi;
2632     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1578362947, 40229, 18236, [154, 210, 3, 178, 208, 180, 75, 30]);
2633 }
2634 impl ::std::convert::From<IDxcVersionInfo3> for ::windows::runtime::IUnknown {
2635     fn from(value: IDxcVersionInfo3) -> Self {
2636         unsafe { ::std::mem::transmute(value) }
2637     }
2638 }
2639 impl ::std::convert::From<&IDxcVersionInfo3> for ::windows::runtime::IUnknown {
2640     fn from(value: &IDxcVersionInfo3) -> Self {
2641         ::std::convert::From::from(::std::clone::Clone::clone(value))
2642     }
2643 }
2644 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDxcVersionInfo3 {
2645     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2646         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2647     }
2648 }
2649 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDxcVersionInfo3 {
2650     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2651         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2652     }
2653 }
2654 #[repr(C)]
2655 #[doc(hidden)]
2656 pub struct IDxcVersionInfo3_abi(
2657     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2658     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2659     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2660     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pversionstring: *mut *mut i8) -> ::windows::runtime::HRESULT,
2661 );
2662 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D11"))]
2663 pub type pD3DCompile = unsafe extern "system" fn(psrcdata: *const ::std::ffi::c_void, srcdatasize: usize, pfilename: super::super::Foundation::PSTR, pdefines: *const super::Direct3D11::D3D_SHADER_MACRO, pinclude: ::windows::runtime::RawPtr, pentrypoint: super::super::Foundation::PSTR, ptarget: super::super::Foundation::PSTR, flags1: u32, flags2: u32, ppcode: *mut ::windows::runtime::RawPtr, pperrormsgs: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT;
2664 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D11"))]
2665 pub type pD3DDisassemble = unsafe extern "system" fn(psrcdata: *const ::std::ffi::c_void, srcdatasize: usize, flags: u32, szcomments: super::super::Foundation::PSTR, ppdisassembly: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT;
2666 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D11"))]
2667 pub type pD3DPreprocess = unsafe extern "system" fn(psrcdata: *const ::std::ffi::c_void, srcdatasize: usize, pfilename: super::super::Foundation::PSTR, pdefines: *const super::Direct3D11::D3D_SHADER_MACRO, pinclude: ::windows::runtime::RawPtr, ppcodetext: *mut ::windows::runtime::RawPtr, pperrormsgs: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT;
2668