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