1 /*** Autogenerated by WIDL 6.4 from include/d3d12shader.idl - Do not edit ***/
2 
3 #ifdef _WIN32
4 #ifndef __REQUIRED_RPCNDR_H_VERSION__
5 #define __REQUIRED_RPCNDR_H_VERSION__ 475
6 #endif
7 #include <rpc.h>
8 #include <rpcndr.h>
9 #endif
10 
11 #ifndef COM_NO_WINDOWS_H
12 #include <windows.h>
13 #include <ole2.h>
14 #endif
15 
16 #ifndef __d3d12shader_h__
17 #define __d3d12shader_h__
18 
19 /* Forward declarations */
20 
21 #ifndef __ID3D12ShaderReflectionType_FWD_DEFINED__
22 #define __ID3D12ShaderReflectionType_FWD_DEFINED__
23 typedef interface ID3D12ShaderReflectionType ID3D12ShaderReflectionType;
24 #ifdef __cplusplus
25 interface ID3D12ShaderReflectionType;
26 #endif /* __cplusplus */
27 #endif
28 
29 #ifndef __ID3D12ShaderReflectionVariable_FWD_DEFINED__
30 #define __ID3D12ShaderReflectionVariable_FWD_DEFINED__
31 typedef interface ID3D12ShaderReflectionVariable ID3D12ShaderReflectionVariable;
32 #ifdef __cplusplus
33 interface ID3D12ShaderReflectionVariable;
34 #endif /* __cplusplus */
35 #endif
36 
37 #ifndef __ID3D12ShaderReflectionConstantBuffer_FWD_DEFINED__
38 #define __ID3D12ShaderReflectionConstantBuffer_FWD_DEFINED__
39 typedef interface ID3D12ShaderReflectionConstantBuffer ID3D12ShaderReflectionConstantBuffer;
40 #ifdef __cplusplus
41 interface ID3D12ShaderReflectionConstantBuffer;
42 #endif /* __cplusplus */
43 #endif
44 
45 #ifndef __ID3D12ShaderReflection_FWD_DEFINED__
46 #define __ID3D12ShaderReflection_FWD_DEFINED__
47 typedef interface ID3D12ShaderReflection ID3D12ShaderReflection;
48 #ifdef __cplusplus
49 interface ID3D12ShaderReflection;
50 #endif /* __cplusplus */
51 #endif
52 
53 #ifndef __ID3D12FunctionParameterReflection_FWD_DEFINED__
54 #define __ID3D12FunctionParameterReflection_FWD_DEFINED__
55 typedef interface ID3D12FunctionParameterReflection ID3D12FunctionParameterReflection;
56 #ifdef __cplusplus
57 interface ID3D12FunctionParameterReflection;
58 #endif /* __cplusplus */
59 #endif
60 
61 #ifndef __ID3D12FunctionReflection_FWD_DEFINED__
62 #define __ID3D12FunctionReflection_FWD_DEFINED__
63 typedef interface ID3D12FunctionReflection ID3D12FunctionReflection;
64 #ifdef __cplusplus
65 interface ID3D12FunctionReflection;
66 #endif /* __cplusplus */
67 #endif
68 
69 #ifndef __ID3D12LibraryReflection_FWD_DEFINED__
70 #define __ID3D12LibraryReflection_FWD_DEFINED__
71 typedef interface ID3D12LibraryReflection ID3D12LibraryReflection;
72 #ifdef __cplusplus
73 interface ID3D12LibraryReflection;
74 #endif /* __cplusplus */
75 #endif
76 
77 /* Headers for imported files */
78 
79 #include <oaidl.h>
80 #include <ocidl.h>
81 #include <d3dcommon.h>
82 
83 #ifdef __cplusplus
84 extern "C" {
85 #endif
86 
87 typedef enum D3D12_SHADER_VERSION_TYPE {
88     D3D12_SHVER_PIXEL_SHADER = 0x0,
89     D3D12_SHVER_VERTEX_SHADER = 0x1,
90     D3D12_SHVER_GEOMETRY_SHADER = 0x2,
91     D3D12_SHVER_HULL_SHADER = 0x3,
92     D3D12_SHVER_DOMAIN_SHADER = 0x4,
93     D3D12_SHVER_COMPUTE_SHADER = 0x5,
94     D3D12_SHVER_RESERVED0 = 0xfff0
95 } D3D12_SHADER_VERSION_TYPE;
96 typedef struct _D3D12_SHADER_DESC {
97     UINT Version;
98     const char *Creator;
99     UINT Flags;
100     UINT ConstantBuffers;
101     UINT BoundResources;
102     UINT InputParameters;
103     UINT OutputParameters;
104     UINT InstructionCount;
105     UINT TempRegisterCount;
106     UINT TempArrayCount;
107     UINT DefCount;
108     UINT DclCount;
109     UINT TextureNormalInstructions;
110     UINT TextureLoadInstructions;
111     UINT TextureCompInstructions;
112     UINT TextureBiasInstructions;
113     UINT TextureGradientInstructions;
114     UINT FloatInstructionCount;
115     UINT IntInstructionCount;
116     UINT UintInstructionCount;
117     UINT StaticFlowControlCount;
118     UINT DynamicFlowControlCount;
119     UINT MacroInstructionCount;
120     UINT ArrayInstructionCount;
121     UINT CutInstructionCount;
122     UINT EmitInstructionCount;
123     D3D_PRIMITIVE_TOPOLOGY GSOutputTopology;
124     UINT GSMaxOutputVertexCount;
125     D3D_PRIMITIVE InputPrimitive;
126     UINT PatchConstantParameters;
127     UINT cGSInstanceCount;
128     UINT cControlPoints;
129     D3D_TESSELLATOR_OUTPUT_PRIMITIVE HSOutputPrimitive;
130     D3D_TESSELLATOR_PARTITIONING HSPartitioning;
131     D3D_TESSELLATOR_DOMAIN TessellatorDomain;
132     UINT cBarrierInstructions;
133     UINT cInterlockedInstructions;
134     UINT cTextureStoreInstructions;
135 } D3D12_SHADER_DESC;
136 typedef struct _D3D12_SHADER_VARIABLE_DESC {
137     const char *Name;
138     UINT StartOffset;
139     UINT Size;
140     UINT uFlags;
141     void *DefaultValue;
142     UINT StartTexture;
143     UINT TextureSize;
144     UINT StartSampler;
145     UINT SamplerSize;
146 } D3D12_SHADER_VARIABLE_DESC;
147 typedef struct _D3D12_SHADER_TYPE_DESC {
148     D3D_SHADER_VARIABLE_CLASS Class;
149     D3D_SHADER_VARIABLE_TYPE Type;
150     UINT Rows;
151     UINT Columns;
152     UINT Elements;
153     UINT Members;
154     UINT Offset;
155     const char *Name;
156 } D3D12_SHADER_TYPE_DESC;
157 typedef struct _D3D12_SHADER_BUFFER_DESC {
158     const char *Name;
159     D3D_CBUFFER_TYPE Type;
160     UINT Variables;
161     UINT Size;
162     UINT uFlags;
163 } D3D12_SHADER_BUFFER_DESC;
164 typedef struct _D3D12_SHADER_INPUT_BIND_DESC {
165     const char *Name;
166     D3D_SHADER_INPUT_TYPE Type;
167     UINT BindPoint;
168     UINT BindCount;
169     UINT uFlags;
170     D3D_RESOURCE_RETURN_TYPE ReturnType;
171     D3D_SRV_DIMENSION Dimension;
172     UINT NumSamples;
173     UINT Space;
174     UINT uID;
175 } D3D12_SHADER_INPUT_BIND_DESC;
176 typedef struct _D3D12_SIGNATURE_PARAMETER_DESC {
177     const char *SemanticName;
178     UINT SemanticIndex;
179     UINT Register;
180     D3D_NAME SystemValueType;
181     D3D_REGISTER_COMPONENT_TYPE ComponentType;
182     BYTE Mask;
183     BYTE ReadWriteMask;
184     UINT Stream;
185     D3D_MIN_PRECISION MinPrecision;
186 } D3D12_SIGNATURE_PARAMETER_DESC;
187 typedef struct _D3D12_PARAMETER_DESC {
188     const char *Name;
189     const char *SemanticName;
190     D3D_SHADER_VARIABLE_TYPE Type;
191     D3D_SHADER_VARIABLE_CLASS Class;
192     UINT Rows;
193     UINT Columns;
194     D3D_INTERPOLATION_MODE InterpolationMode;
195     D3D_PARAMETER_FLAGS Flags;
196     UINT FirstInRegister;
197     UINT FirstInComponent;
198     UINT FirstOutRegister;
199     UINT FirstOutComponent;
200 } D3D12_PARAMETER_DESC;
201 typedef struct _D3D12_FUNCTION_DESC {
202     UINT Version;
203     const char *Creator;
204     UINT Flags;
205     UINT ConstantBuffers;
206     UINT BoundResources;
207     UINT InstructionCount;
208     UINT TempRegisterCount;
209     UINT TempArrayCount;
210     UINT DefCount;
211     UINT DclCount;
212     UINT TextureNormalInstructions;
213     UINT TextureLoadInstructions;
214     UINT TextureCompInstructions;
215     UINT TextureBiasInstructions;
216     UINT TextureGradientInstructions;
217     UINT FloatInstructionCount;
218     UINT IntInstructionCount;
219     UINT UintInstructionCount;
220     UINT StaticFlowControlCount;
221     UINT DynamicFlowControlCount;
222     UINT MacroInstructionCount;
223     UINT ArrayInstructionCount;
224     UINT MovInstructionCount;
225     UINT MovcInstructionCount;
226     UINT ConversionInstructionCount;
227     UINT BitwiseInstructionCount;
228     D3D_FEATURE_LEVEL MinFeatureLevel;
229     UINT64 RequiredFeatureFlags;
230     const char *Name;
231     INT FunctionParameterCount;
232     WINBOOL HasReturn;
233     WINBOOL Has10Level9VertexShader;
234     WINBOOL Has10Level9PixelShader;
235 } D3D12_FUNCTION_DESC;
236 typedef struct _D3D12_LIBRARY_DESC {
237     const char *Creator;
238     UINT Flags;
239     UINT FunctionCount;
240 } D3D12_LIBRARY_DESC;
241 #ifndef __ID3D12ShaderReflectionConstantBuffer_FWD_DEFINED__
242 #define __ID3D12ShaderReflectionConstantBuffer_FWD_DEFINED__
243 typedef interface ID3D12ShaderReflectionConstantBuffer ID3D12ShaderReflectionConstantBuffer;
244 #ifdef __cplusplus
245 interface ID3D12ShaderReflectionConstantBuffer;
246 #endif /* __cplusplus */
247 #endif
248 
249 /*****************************************************************************
250  * ID3D12ShaderReflectionType interface
251  */
252 #ifndef __ID3D12ShaderReflectionType_INTERFACE_DEFINED__
253 #define __ID3D12ShaderReflectionType_INTERFACE_DEFINED__
254 
255 DEFINE_GUID(IID_ID3D12ShaderReflectionType, 0xe913c351, 0x783d, 0x48ca, 0xa1,0xd1, 0x4f,0x30,0x62,0x84,0xad,0x56);
256 #if defined(__cplusplus) && !defined(CINTERFACE)
257 MIDL_INTERFACE("e913c351-783d-48ca-a1d1-4f306284ad56")
258 ID3D12ShaderReflectionType
259 {
260 
261     BEGIN_INTERFACE
262 
263     virtual HRESULT STDMETHODCALLTYPE GetDesc(
264         D3D12_SHADER_TYPE_DESC *desc) = 0;
265 
266     virtual ID3D12ShaderReflectionType * STDMETHODCALLTYPE GetMemberTypeByIndex(
267         UINT index) = 0;
268 
269     virtual ID3D12ShaderReflectionType * STDMETHODCALLTYPE GetMemberTypeByName(
270         const char *name) = 0;
271 
272     virtual const char * STDMETHODCALLTYPE GetMemberTypeName(
273         UINT index) = 0;
274 
275     virtual HRESULT STDMETHODCALLTYPE IsEqual(
276         ID3D12ShaderReflectionType *type) = 0;
277 
278     virtual ID3D12ShaderReflectionType * STDMETHODCALLTYPE GetSubType(
279         ) = 0;
280 
281     virtual ID3D12ShaderReflectionType * STDMETHODCALLTYPE GetBaseClass(
282         ) = 0;
283 
284     virtual UINT STDMETHODCALLTYPE GetNumInterfaces(
285         ) = 0;
286 
287     virtual ID3D12ShaderReflectionType * STDMETHODCALLTYPE GetInterfaceByIndex(
288         UINT index) = 0;
289 
290     virtual HRESULT STDMETHODCALLTYPE IsOfType(
291         ID3D12ShaderReflectionType *type) = 0;
292 
293     virtual HRESULT STDMETHODCALLTYPE ImplementsInterface(
294         ID3D12ShaderReflectionType *base) = 0;
295 
296     END_INTERFACE
297 
298 };
299 #ifdef __CRT_UUID_DECL
300 __CRT_UUID_DECL(ID3D12ShaderReflectionType, 0xe913c351, 0x783d, 0x48ca, 0xa1,0xd1, 0x4f,0x30,0x62,0x84,0xad,0x56)
301 #endif
302 #else
303 typedef struct ID3D12ShaderReflectionTypeVtbl {
304     BEGIN_INTERFACE
305 
306     /*** ID3D12ShaderReflectionType methods ***/
307     HRESULT (STDMETHODCALLTYPE *GetDesc)(
308         ID3D12ShaderReflectionType *This,
309         D3D12_SHADER_TYPE_DESC *desc);
310 
311     ID3D12ShaderReflectionType * (STDMETHODCALLTYPE *GetMemberTypeByIndex)(
312         ID3D12ShaderReflectionType *This,
313         UINT index);
314 
315     ID3D12ShaderReflectionType * (STDMETHODCALLTYPE *GetMemberTypeByName)(
316         ID3D12ShaderReflectionType *This,
317         const char *name);
318 
319     const char * (STDMETHODCALLTYPE *GetMemberTypeName)(
320         ID3D12ShaderReflectionType *This,
321         UINT index);
322 
323     HRESULT (STDMETHODCALLTYPE *IsEqual)(
324         ID3D12ShaderReflectionType *This,
325         ID3D12ShaderReflectionType *type);
326 
327     ID3D12ShaderReflectionType * (STDMETHODCALLTYPE *GetSubType)(
328         ID3D12ShaderReflectionType *This);
329 
330     ID3D12ShaderReflectionType * (STDMETHODCALLTYPE *GetBaseClass)(
331         ID3D12ShaderReflectionType *This);
332 
333     UINT (STDMETHODCALLTYPE *GetNumInterfaces)(
334         ID3D12ShaderReflectionType *This);
335 
336     ID3D12ShaderReflectionType * (STDMETHODCALLTYPE *GetInterfaceByIndex)(
337         ID3D12ShaderReflectionType *This,
338         UINT index);
339 
340     HRESULT (STDMETHODCALLTYPE *IsOfType)(
341         ID3D12ShaderReflectionType *This,
342         ID3D12ShaderReflectionType *type);
343 
344     HRESULT (STDMETHODCALLTYPE *ImplementsInterface)(
345         ID3D12ShaderReflectionType *This,
346         ID3D12ShaderReflectionType *base);
347 
348     END_INTERFACE
349 } ID3D12ShaderReflectionTypeVtbl;
350 
351 interface ID3D12ShaderReflectionType {
352     CONST_VTBL ID3D12ShaderReflectionTypeVtbl* lpVtbl;
353 };
354 
355 #ifdef COBJMACROS
356 #ifndef WIDL_C_INLINE_WRAPPERS
357 /*** ID3D12ShaderReflectionType methods ***/
358 #define ID3D12ShaderReflectionType_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
359 #define ID3D12ShaderReflectionType_GetMemberTypeByIndex(This,index) (This)->lpVtbl->GetMemberTypeByIndex(This,index)
360 #define ID3D12ShaderReflectionType_GetMemberTypeByName(This,name) (This)->lpVtbl->GetMemberTypeByName(This,name)
361 #define ID3D12ShaderReflectionType_GetMemberTypeName(This,index) (This)->lpVtbl->GetMemberTypeName(This,index)
362 #define ID3D12ShaderReflectionType_IsEqual(This,type) (This)->lpVtbl->IsEqual(This,type)
363 #define ID3D12ShaderReflectionType_GetSubType(This) (This)->lpVtbl->GetSubType(This)
364 #define ID3D12ShaderReflectionType_GetBaseClass(This) (This)->lpVtbl->GetBaseClass(This)
365 #define ID3D12ShaderReflectionType_GetNumInterfaces(This) (This)->lpVtbl->GetNumInterfaces(This)
366 #define ID3D12ShaderReflectionType_GetInterfaceByIndex(This,index) (This)->lpVtbl->GetInterfaceByIndex(This,index)
367 #define ID3D12ShaderReflectionType_IsOfType(This,type) (This)->lpVtbl->IsOfType(This,type)
368 #define ID3D12ShaderReflectionType_ImplementsInterface(This,base) (This)->lpVtbl->ImplementsInterface(This,base)
369 #else
370 /*** ID3D12ShaderReflectionType methods ***/
371 static FORCEINLINE HRESULT ID3D12ShaderReflectionType_GetDesc(ID3D12ShaderReflectionType* This,D3D12_SHADER_TYPE_DESC *desc) {
372     return This->lpVtbl->GetDesc(This,desc);
373 }
374 static FORCEINLINE ID3D12ShaderReflectionType * ID3D12ShaderReflectionType_GetMemberTypeByIndex(ID3D12ShaderReflectionType* This,UINT index) {
375     return This->lpVtbl->GetMemberTypeByIndex(This,index);
376 }
377 static FORCEINLINE ID3D12ShaderReflectionType * ID3D12ShaderReflectionType_GetMemberTypeByName(ID3D12ShaderReflectionType* This,const char *name) {
378     return This->lpVtbl->GetMemberTypeByName(This,name);
379 }
380 static FORCEINLINE const char * ID3D12ShaderReflectionType_GetMemberTypeName(ID3D12ShaderReflectionType* This,UINT index) {
381     return This->lpVtbl->GetMemberTypeName(This,index);
382 }
383 static FORCEINLINE HRESULT ID3D12ShaderReflectionType_IsEqual(ID3D12ShaderReflectionType* This,ID3D12ShaderReflectionType *type) {
384     return This->lpVtbl->IsEqual(This,type);
385 }
386 static FORCEINLINE ID3D12ShaderReflectionType * ID3D12ShaderReflectionType_GetSubType(ID3D12ShaderReflectionType* This) {
387     return This->lpVtbl->GetSubType(This);
388 }
389 static FORCEINLINE ID3D12ShaderReflectionType * ID3D12ShaderReflectionType_GetBaseClass(ID3D12ShaderReflectionType* This) {
390     return This->lpVtbl->GetBaseClass(This);
391 }
392 static FORCEINLINE UINT ID3D12ShaderReflectionType_GetNumInterfaces(ID3D12ShaderReflectionType* This) {
393     return This->lpVtbl->GetNumInterfaces(This);
394 }
395 static FORCEINLINE ID3D12ShaderReflectionType * ID3D12ShaderReflectionType_GetInterfaceByIndex(ID3D12ShaderReflectionType* This,UINT index) {
396     return This->lpVtbl->GetInterfaceByIndex(This,index);
397 }
398 static FORCEINLINE HRESULT ID3D12ShaderReflectionType_IsOfType(ID3D12ShaderReflectionType* This,ID3D12ShaderReflectionType *type) {
399     return This->lpVtbl->IsOfType(This,type);
400 }
401 static FORCEINLINE HRESULT ID3D12ShaderReflectionType_ImplementsInterface(ID3D12ShaderReflectionType* This,ID3D12ShaderReflectionType *base) {
402     return This->lpVtbl->ImplementsInterface(This,base);
403 }
404 #endif
405 #endif
406 
407 #endif
408 
409 
410 #endif  /* __ID3D12ShaderReflectionType_INTERFACE_DEFINED__ */
411 
412 /*****************************************************************************
413  * ID3D12ShaderReflectionVariable interface
414  */
415 #ifndef __ID3D12ShaderReflectionVariable_INTERFACE_DEFINED__
416 #define __ID3D12ShaderReflectionVariable_INTERFACE_DEFINED__
417 
418 DEFINE_GUID(IID_ID3D12ShaderReflectionVariable, 0x8337a8a6, 0xa216, 0x444a, 0xb2,0xf4, 0x31,0x47,0x33,0xa7,0x3a,0xea);
419 #if defined(__cplusplus) && !defined(CINTERFACE)
420 MIDL_INTERFACE("8337a8a6-a216-444a-b2f4-314733a73aea")
421 ID3D12ShaderReflectionVariable
422 {
423 
424     BEGIN_INTERFACE
425 
426     virtual HRESULT STDMETHODCALLTYPE GetDesc(
427         D3D12_SHADER_VARIABLE_DESC *desc) = 0;
428 
429     virtual ID3D12ShaderReflectionType * STDMETHODCALLTYPE GetType(
430         ) = 0;
431 
432     virtual ID3D12ShaderReflectionConstantBuffer * STDMETHODCALLTYPE GetBuffer(
433         ) = 0;
434 
435     virtual UINT STDMETHODCALLTYPE GetInterfaceSlot(
436         UINT index) = 0;
437 
438     END_INTERFACE
439 
440 };
441 #ifdef __CRT_UUID_DECL
442 __CRT_UUID_DECL(ID3D12ShaderReflectionVariable, 0x8337a8a6, 0xa216, 0x444a, 0xb2,0xf4, 0x31,0x47,0x33,0xa7,0x3a,0xea)
443 #endif
444 #else
445 typedef struct ID3D12ShaderReflectionVariableVtbl {
446     BEGIN_INTERFACE
447 
448     /*** ID3D12ShaderReflectionVariable methods ***/
449     HRESULT (STDMETHODCALLTYPE *GetDesc)(
450         ID3D12ShaderReflectionVariable *This,
451         D3D12_SHADER_VARIABLE_DESC *desc);
452 
453     ID3D12ShaderReflectionType * (STDMETHODCALLTYPE *GetType)(
454         ID3D12ShaderReflectionVariable *This);
455 
456     ID3D12ShaderReflectionConstantBuffer * (STDMETHODCALLTYPE *GetBuffer)(
457         ID3D12ShaderReflectionVariable *This);
458 
459     UINT (STDMETHODCALLTYPE *GetInterfaceSlot)(
460         ID3D12ShaderReflectionVariable *This,
461         UINT index);
462 
463     END_INTERFACE
464 } ID3D12ShaderReflectionVariableVtbl;
465 
466 interface ID3D12ShaderReflectionVariable {
467     CONST_VTBL ID3D12ShaderReflectionVariableVtbl* lpVtbl;
468 };
469 
470 #ifdef COBJMACROS
471 #ifndef WIDL_C_INLINE_WRAPPERS
472 /*** ID3D12ShaderReflectionVariable methods ***/
473 #define ID3D12ShaderReflectionVariable_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
474 #define ID3D12ShaderReflectionVariable_GetType(This) (This)->lpVtbl->GetType(This)
475 #define ID3D12ShaderReflectionVariable_GetBuffer(This) (This)->lpVtbl->GetBuffer(This)
476 #define ID3D12ShaderReflectionVariable_GetInterfaceSlot(This,index) (This)->lpVtbl->GetInterfaceSlot(This,index)
477 #else
478 /*** ID3D12ShaderReflectionVariable methods ***/
479 static FORCEINLINE HRESULT ID3D12ShaderReflectionVariable_GetDesc(ID3D12ShaderReflectionVariable* This,D3D12_SHADER_VARIABLE_DESC *desc) {
480     return This->lpVtbl->GetDesc(This,desc);
481 }
482 static FORCEINLINE ID3D12ShaderReflectionType * ID3D12ShaderReflectionVariable_GetType(ID3D12ShaderReflectionVariable* This) {
483     return This->lpVtbl->GetType(This);
484 }
485 static FORCEINLINE ID3D12ShaderReflectionConstantBuffer * ID3D12ShaderReflectionVariable_GetBuffer(ID3D12ShaderReflectionVariable* This) {
486     return This->lpVtbl->GetBuffer(This);
487 }
488 static FORCEINLINE UINT ID3D12ShaderReflectionVariable_GetInterfaceSlot(ID3D12ShaderReflectionVariable* This,UINT index) {
489     return This->lpVtbl->GetInterfaceSlot(This,index);
490 }
491 #endif
492 #endif
493 
494 #endif
495 
496 
497 #endif  /* __ID3D12ShaderReflectionVariable_INTERFACE_DEFINED__ */
498 
499 /*****************************************************************************
500  * ID3D12ShaderReflectionConstantBuffer interface
501  */
502 #ifndef __ID3D12ShaderReflectionConstantBuffer_INTERFACE_DEFINED__
503 #define __ID3D12ShaderReflectionConstantBuffer_INTERFACE_DEFINED__
504 
505 DEFINE_GUID(IID_ID3D12ShaderReflectionConstantBuffer, 0xc59598b4, 0x48b3, 0x4869, 0xb9,0xb1, 0xb1,0x61,0x8b,0x14,0xa8,0xb7);
506 #if defined(__cplusplus) && !defined(CINTERFACE)
507 MIDL_INTERFACE("c59598b4-48b3-4869-b9b1-b1618b14a8b7")
508 ID3D12ShaderReflectionConstantBuffer
509 {
510 
511     BEGIN_INTERFACE
512 
513     virtual HRESULT STDMETHODCALLTYPE GetDesc(
514         D3D12_SHADER_BUFFER_DESC *desc) = 0;
515 
516     virtual ID3D12ShaderReflectionVariable * STDMETHODCALLTYPE GetVariableByIndex(
517         UINT index) = 0;
518 
519     virtual ID3D12ShaderReflectionVariable * STDMETHODCALLTYPE GetVariableByName(
520         const char *name) = 0;
521 
522     END_INTERFACE
523 
524 };
525 #ifdef __CRT_UUID_DECL
526 __CRT_UUID_DECL(ID3D12ShaderReflectionConstantBuffer, 0xc59598b4, 0x48b3, 0x4869, 0xb9,0xb1, 0xb1,0x61,0x8b,0x14,0xa8,0xb7)
527 #endif
528 #else
529 typedef struct ID3D12ShaderReflectionConstantBufferVtbl {
530     BEGIN_INTERFACE
531 
532     /*** ID3D12ShaderReflectionConstantBuffer methods ***/
533     HRESULT (STDMETHODCALLTYPE *GetDesc)(
534         ID3D12ShaderReflectionConstantBuffer *This,
535         D3D12_SHADER_BUFFER_DESC *desc);
536 
537     ID3D12ShaderReflectionVariable * (STDMETHODCALLTYPE *GetVariableByIndex)(
538         ID3D12ShaderReflectionConstantBuffer *This,
539         UINT index);
540 
541     ID3D12ShaderReflectionVariable * (STDMETHODCALLTYPE *GetVariableByName)(
542         ID3D12ShaderReflectionConstantBuffer *This,
543         const char *name);
544 
545     END_INTERFACE
546 } ID3D12ShaderReflectionConstantBufferVtbl;
547 
548 interface ID3D12ShaderReflectionConstantBuffer {
549     CONST_VTBL ID3D12ShaderReflectionConstantBufferVtbl* lpVtbl;
550 };
551 
552 #ifdef COBJMACROS
553 #ifndef WIDL_C_INLINE_WRAPPERS
554 /*** ID3D12ShaderReflectionConstantBuffer methods ***/
555 #define ID3D12ShaderReflectionConstantBuffer_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
556 #define ID3D12ShaderReflectionConstantBuffer_GetVariableByIndex(This,index) (This)->lpVtbl->GetVariableByIndex(This,index)
557 #define ID3D12ShaderReflectionConstantBuffer_GetVariableByName(This,name) (This)->lpVtbl->GetVariableByName(This,name)
558 #else
559 /*** ID3D12ShaderReflectionConstantBuffer methods ***/
560 static FORCEINLINE HRESULT ID3D12ShaderReflectionConstantBuffer_GetDesc(ID3D12ShaderReflectionConstantBuffer* This,D3D12_SHADER_BUFFER_DESC *desc) {
561     return This->lpVtbl->GetDesc(This,desc);
562 }
563 static FORCEINLINE ID3D12ShaderReflectionVariable * ID3D12ShaderReflectionConstantBuffer_GetVariableByIndex(ID3D12ShaderReflectionConstantBuffer* This,UINT index) {
564     return This->lpVtbl->GetVariableByIndex(This,index);
565 }
566 static FORCEINLINE ID3D12ShaderReflectionVariable * ID3D12ShaderReflectionConstantBuffer_GetVariableByName(ID3D12ShaderReflectionConstantBuffer* This,const char *name) {
567     return This->lpVtbl->GetVariableByName(This,name);
568 }
569 #endif
570 #endif
571 
572 #endif
573 
574 
575 #endif  /* __ID3D12ShaderReflectionConstantBuffer_INTERFACE_DEFINED__ */
576 
577 /*****************************************************************************
578  * ID3D12ShaderReflection interface
579  */
580 #ifndef __ID3D12ShaderReflection_INTERFACE_DEFINED__
581 #define __ID3D12ShaderReflection_INTERFACE_DEFINED__
582 
583 DEFINE_GUID(IID_ID3D12ShaderReflection, 0x5a58797d, 0xa72c, 0x478d, 0x8b,0xa2, 0xef,0xc6,0xb0,0xef,0xe8,0x8e);
584 #if defined(__cplusplus) && !defined(CINTERFACE)
585 MIDL_INTERFACE("5a58797d-a72c-478d-8ba2-efc6b0efe88e")
586 ID3D12ShaderReflection : public IUnknown
587 {
588     virtual HRESULT STDMETHODCALLTYPE GetDesc(
589         D3D12_SHADER_DESC *desc) = 0;
590 
591     virtual ID3D12ShaderReflectionConstantBuffer * STDMETHODCALLTYPE GetConstantBufferByIndex(
592         UINT index) = 0;
593 
594     virtual ID3D12ShaderReflectionConstantBuffer * STDMETHODCALLTYPE GetConstantBufferByName(
595         const char *name) = 0;
596 
597     virtual HRESULT STDMETHODCALLTYPE GetResourceBindingDesc(
598         UINT index,
599         D3D12_SHADER_INPUT_BIND_DESC *desc) = 0;
600 
601     virtual HRESULT STDMETHODCALLTYPE GetInputParameterDesc(
602         UINT index,
603         D3D12_SIGNATURE_PARAMETER_DESC *desc) = 0;
604 
605     virtual HRESULT STDMETHODCALLTYPE GetOutputParameterDesc(
606         UINT index,
607         D3D12_SIGNATURE_PARAMETER_DESC *desc) = 0;
608 
609     virtual HRESULT STDMETHODCALLTYPE GetPatchConstantParameterDesc(
610         UINT index,
611         D3D12_SIGNATURE_PARAMETER_DESC *desc) = 0;
612 
613     virtual ID3D12ShaderReflectionVariable * STDMETHODCALLTYPE GetVariableByName(
614         const char *name) = 0;
615 
616     virtual HRESULT STDMETHODCALLTYPE GetResourceBindingDescByName(
617         const char *name,
618         D3D12_SHADER_INPUT_BIND_DESC *desc) = 0;
619 
620     virtual UINT STDMETHODCALLTYPE GetMovInstructionCount(
621         ) = 0;
622 
623     virtual UINT STDMETHODCALLTYPE GetMovcInstructionCount(
624         ) = 0;
625 
626     virtual UINT STDMETHODCALLTYPE GetConversionInstructionCount(
627         ) = 0;
628 
629     virtual UINT STDMETHODCALLTYPE GetBitwiseInstructionCount(
630         ) = 0;
631 
632     virtual D3D_PRIMITIVE STDMETHODCALLTYPE GetGSInputPrimitive(
633         ) = 0;
634 
635     virtual WINBOOL STDMETHODCALLTYPE IsSampleFrequencyShader(
636         ) = 0;
637 
638     virtual UINT STDMETHODCALLTYPE GetNumInterfaceSlots(
639         ) = 0;
640 
641     virtual HRESULT STDMETHODCALLTYPE GetMinFeatureLevel(
642         D3D_FEATURE_LEVEL *level) = 0;
643 
644     virtual UINT STDMETHODCALLTYPE GetThreadGroupSize(
645         UINT *sizex,
646         UINT *sizey,
647         UINT *sizez) = 0;
648 
649     virtual UINT64 STDMETHODCALLTYPE GetRequiresFlags(
650         ) = 0;
651 
652 };
653 #ifdef __CRT_UUID_DECL
654 __CRT_UUID_DECL(ID3D12ShaderReflection, 0x5a58797d, 0xa72c, 0x478d, 0x8b,0xa2, 0xef,0xc6,0xb0,0xef,0xe8,0x8e)
655 #endif
656 #else
657 typedef struct ID3D12ShaderReflectionVtbl {
658     BEGIN_INTERFACE
659 
660     /*** IUnknown methods ***/
661     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
662         ID3D12ShaderReflection *This,
663         REFIID riid,
664         void **ppvObject);
665 
666     ULONG (STDMETHODCALLTYPE *AddRef)(
667         ID3D12ShaderReflection *This);
668 
669     ULONG (STDMETHODCALLTYPE *Release)(
670         ID3D12ShaderReflection *This);
671 
672     /*** ID3D12ShaderReflection methods ***/
673     HRESULT (STDMETHODCALLTYPE *GetDesc)(
674         ID3D12ShaderReflection *This,
675         D3D12_SHADER_DESC *desc);
676 
677     ID3D12ShaderReflectionConstantBuffer * (STDMETHODCALLTYPE *GetConstantBufferByIndex)(
678         ID3D12ShaderReflection *This,
679         UINT index);
680 
681     ID3D12ShaderReflectionConstantBuffer * (STDMETHODCALLTYPE *GetConstantBufferByName)(
682         ID3D12ShaderReflection *This,
683         const char *name);
684 
685     HRESULT (STDMETHODCALLTYPE *GetResourceBindingDesc)(
686         ID3D12ShaderReflection *This,
687         UINT index,
688         D3D12_SHADER_INPUT_BIND_DESC *desc);
689 
690     HRESULT (STDMETHODCALLTYPE *GetInputParameterDesc)(
691         ID3D12ShaderReflection *This,
692         UINT index,
693         D3D12_SIGNATURE_PARAMETER_DESC *desc);
694 
695     HRESULT (STDMETHODCALLTYPE *GetOutputParameterDesc)(
696         ID3D12ShaderReflection *This,
697         UINT index,
698         D3D12_SIGNATURE_PARAMETER_DESC *desc);
699 
700     HRESULT (STDMETHODCALLTYPE *GetPatchConstantParameterDesc)(
701         ID3D12ShaderReflection *This,
702         UINT index,
703         D3D12_SIGNATURE_PARAMETER_DESC *desc);
704 
705     ID3D12ShaderReflectionVariable * (STDMETHODCALLTYPE *GetVariableByName)(
706         ID3D12ShaderReflection *This,
707         const char *name);
708 
709     HRESULT (STDMETHODCALLTYPE *GetResourceBindingDescByName)(
710         ID3D12ShaderReflection *This,
711         const char *name,
712         D3D12_SHADER_INPUT_BIND_DESC *desc);
713 
714     UINT (STDMETHODCALLTYPE *GetMovInstructionCount)(
715         ID3D12ShaderReflection *This);
716 
717     UINT (STDMETHODCALLTYPE *GetMovcInstructionCount)(
718         ID3D12ShaderReflection *This);
719 
720     UINT (STDMETHODCALLTYPE *GetConversionInstructionCount)(
721         ID3D12ShaderReflection *This);
722 
723     UINT (STDMETHODCALLTYPE *GetBitwiseInstructionCount)(
724         ID3D12ShaderReflection *This);
725 
726     D3D_PRIMITIVE (STDMETHODCALLTYPE *GetGSInputPrimitive)(
727         ID3D12ShaderReflection *This);
728 
729     WINBOOL (STDMETHODCALLTYPE *IsSampleFrequencyShader)(
730         ID3D12ShaderReflection *This);
731 
732     UINT (STDMETHODCALLTYPE *GetNumInterfaceSlots)(
733         ID3D12ShaderReflection *This);
734 
735     HRESULT (STDMETHODCALLTYPE *GetMinFeatureLevel)(
736         ID3D12ShaderReflection *This,
737         D3D_FEATURE_LEVEL *level);
738 
739     UINT (STDMETHODCALLTYPE *GetThreadGroupSize)(
740         ID3D12ShaderReflection *This,
741         UINT *sizex,
742         UINT *sizey,
743         UINT *sizez);
744 
745     UINT64 (STDMETHODCALLTYPE *GetRequiresFlags)(
746         ID3D12ShaderReflection *This);
747 
748     END_INTERFACE
749 } ID3D12ShaderReflectionVtbl;
750 
751 interface ID3D12ShaderReflection {
752     CONST_VTBL ID3D12ShaderReflectionVtbl* lpVtbl;
753 };
754 
755 #ifdef COBJMACROS
756 #ifndef WIDL_C_INLINE_WRAPPERS
757 /*** IUnknown methods ***/
758 #define ID3D12ShaderReflection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
759 #define ID3D12ShaderReflection_AddRef(This) (This)->lpVtbl->AddRef(This)
760 #define ID3D12ShaderReflection_Release(This) (This)->lpVtbl->Release(This)
761 /*** ID3D12ShaderReflection methods ***/
762 #define ID3D12ShaderReflection_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
763 #define ID3D12ShaderReflection_GetConstantBufferByIndex(This,index) (This)->lpVtbl->GetConstantBufferByIndex(This,index)
764 #define ID3D12ShaderReflection_GetConstantBufferByName(This,name) (This)->lpVtbl->GetConstantBufferByName(This,name)
765 #define ID3D12ShaderReflection_GetResourceBindingDesc(This,index,desc) (This)->lpVtbl->GetResourceBindingDesc(This,index,desc)
766 #define ID3D12ShaderReflection_GetInputParameterDesc(This,index,desc) (This)->lpVtbl->GetInputParameterDesc(This,index,desc)
767 #define ID3D12ShaderReflection_GetOutputParameterDesc(This,index,desc) (This)->lpVtbl->GetOutputParameterDesc(This,index,desc)
768 #define ID3D12ShaderReflection_GetPatchConstantParameterDesc(This,index,desc) (This)->lpVtbl->GetPatchConstantParameterDesc(This,index,desc)
769 #define ID3D12ShaderReflection_GetVariableByName(This,name) (This)->lpVtbl->GetVariableByName(This,name)
770 #define ID3D12ShaderReflection_GetResourceBindingDescByName(This,name,desc) (This)->lpVtbl->GetResourceBindingDescByName(This,name,desc)
771 #define ID3D12ShaderReflection_GetMovInstructionCount(This) (This)->lpVtbl->GetMovInstructionCount(This)
772 #define ID3D12ShaderReflection_GetMovcInstructionCount(This) (This)->lpVtbl->GetMovcInstructionCount(This)
773 #define ID3D12ShaderReflection_GetConversionInstructionCount(This) (This)->lpVtbl->GetConversionInstructionCount(This)
774 #define ID3D12ShaderReflection_GetBitwiseInstructionCount(This) (This)->lpVtbl->GetBitwiseInstructionCount(This)
775 #define ID3D12ShaderReflection_GetGSInputPrimitive(This) (This)->lpVtbl->GetGSInputPrimitive(This)
776 #define ID3D12ShaderReflection_IsSampleFrequencyShader(This) (This)->lpVtbl->IsSampleFrequencyShader(This)
777 #define ID3D12ShaderReflection_GetNumInterfaceSlots(This) (This)->lpVtbl->GetNumInterfaceSlots(This)
778 #define ID3D12ShaderReflection_GetMinFeatureLevel(This,level) (This)->lpVtbl->GetMinFeatureLevel(This,level)
779 #define ID3D12ShaderReflection_GetThreadGroupSize(This,sizex,sizey,sizez) (This)->lpVtbl->GetThreadGroupSize(This,sizex,sizey,sizez)
780 #define ID3D12ShaderReflection_GetRequiresFlags(This) (This)->lpVtbl->GetRequiresFlags(This)
781 #else
782 /*** IUnknown methods ***/
783 static FORCEINLINE HRESULT ID3D12ShaderReflection_QueryInterface(ID3D12ShaderReflection* This,REFIID riid,void **ppvObject) {
784     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
785 }
786 static FORCEINLINE ULONG ID3D12ShaderReflection_AddRef(ID3D12ShaderReflection* This) {
787     return This->lpVtbl->AddRef(This);
788 }
789 static FORCEINLINE ULONG ID3D12ShaderReflection_Release(ID3D12ShaderReflection* This) {
790     return This->lpVtbl->Release(This);
791 }
792 /*** ID3D12ShaderReflection methods ***/
793 static FORCEINLINE HRESULT ID3D12ShaderReflection_GetDesc(ID3D12ShaderReflection* This,D3D12_SHADER_DESC *desc) {
794     return This->lpVtbl->GetDesc(This,desc);
795 }
796 static FORCEINLINE ID3D12ShaderReflectionConstantBuffer * ID3D12ShaderReflection_GetConstantBufferByIndex(ID3D12ShaderReflection* This,UINT index) {
797     return This->lpVtbl->GetConstantBufferByIndex(This,index);
798 }
799 static FORCEINLINE ID3D12ShaderReflectionConstantBuffer * ID3D12ShaderReflection_GetConstantBufferByName(ID3D12ShaderReflection* This,const char *name) {
800     return This->lpVtbl->GetConstantBufferByName(This,name);
801 }
802 static FORCEINLINE HRESULT ID3D12ShaderReflection_GetResourceBindingDesc(ID3D12ShaderReflection* This,UINT index,D3D12_SHADER_INPUT_BIND_DESC *desc) {
803     return This->lpVtbl->GetResourceBindingDesc(This,index,desc);
804 }
805 static FORCEINLINE HRESULT ID3D12ShaderReflection_GetInputParameterDesc(ID3D12ShaderReflection* This,UINT index,D3D12_SIGNATURE_PARAMETER_DESC *desc) {
806     return This->lpVtbl->GetInputParameterDesc(This,index,desc);
807 }
808 static FORCEINLINE HRESULT ID3D12ShaderReflection_GetOutputParameterDesc(ID3D12ShaderReflection* This,UINT index,D3D12_SIGNATURE_PARAMETER_DESC *desc) {
809     return This->lpVtbl->GetOutputParameterDesc(This,index,desc);
810 }
811 static FORCEINLINE HRESULT ID3D12ShaderReflection_GetPatchConstantParameterDesc(ID3D12ShaderReflection* This,UINT index,D3D12_SIGNATURE_PARAMETER_DESC *desc) {
812     return This->lpVtbl->GetPatchConstantParameterDesc(This,index,desc);
813 }
814 static FORCEINLINE ID3D12ShaderReflectionVariable * ID3D12ShaderReflection_GetVariableByName(ID3D12ShaderReflection* This,const char *name) {
815     return This->lpVtbl->GetVariableByName(This,name);
816 }
817 static FORCEINLINE HRESULT ID3D12ShaderReflection_GetResourceBindingDescByName(ID3D12ShaderReflection* This,const char *name,D3D12_SHADER_INPUT_BIND_DESC *desc) {
818     return This->lpVtbl->GetResourceBindingDescByName(This,name,desc);
819 }
820 static FORCEINLINE UINT ID3D12ShaderReflection_GetMovInstructionCount(ID3D12ShaderReflection* This) {
821     return This->lpVtbl->GetMovInstructionCount(This);
822 }
823 static FORCEINLINE UINT ID3D12ShaderReflection_GetMovcInstructionCount(ID3D12ShaderReflection* This) {
824     return This->lpVtbl->GetMovcInstructionCount(This);
825 }
826 static FORCEINLINE UINT ID3D12ShaderReflection_GetConversionInstructionCount(ID3D12ShaderReflection* This) {
827     return This->lpVtbl->GetConversionInstructionCount(This);
828 }
829 static FORCEINLINE UINT ID3D12ShaderReflection_GetBitwiseInstructionCount(ID3D12ShaderReflection* This) {
830     return This->lpVtbl->GetBitwiseInstructionCount(This);
831 }
832 static FORCEINLINE D3D_PRIMITIVE ID3D12ShaderReflection_GetGSInputPrimitive(ID3D12ShaderReflection* This) {
833     return This->lpVtbl->GetGSInputPrimitive(This);
834 }
835 static FORCEINLINE WINBOOL ID3D12ShaderReflection_IsSampleFrequencyShader(ID3D12ShaderReflection* This) {
836     return This->lpVtbl->IsSampleFrequencyShader(This);
837 }
838 static FORCEINLINE UINT ID3D12ShaderReflection_GetNumInterfaceSlots(ID3D12ShaderReflection* This) {
839     return This->lpVtbl->GetNumInterfaceSlots(This);
840 }
841 static FORCEINLINE HRESULT ID3D12ShaderReflection_GetMinFeatureLevel(ID3D12ShaderReflection* This,D3D_FEATURE_LEVEL *level) {
842     return This->lpVtbl->GetMinFeatureLevel(This,level);
843 }
844 static FORCEINLINE UINT ID3D12ShaderReflection_GetThreadGroupSize(ID3D12ShaderReflection* This,UINT *sizex,UINT *sizey,UINT *sizez) {
845     return This->lpVtbl->GetThreadGroupSize(This,sizex,sizey,sizez);
846 }
847 static FORCEINLINE UINT64 ID3D12ShaderReflection_GetRequiresFlags(ID3D12ShaderReflection* This) {
848     return This->lpVtbl->GetRequiresFlags(This);
849 }
850 #endif
851 #endif
852 
853 #endif
854 
855 
856 #endif  /* __ID3D12ShaderReflection_INTERFACE_DEFINED__ */
857 
858 /*****************************************************************************
859  * ID3D12FunctionParameterReflection interface
860  */
861 #ifndef __ID3D12FunctionParameterReflection_INTERFACE_DEFINED__
862 #define __ID3D12FunctionParameterReflection_INTERFACE_DEFINED__
863 
864 DEFINE_GUID(IID_ID3D12FunctionParameterReflection, 0xec25f42d, 0x7006, 0x4f2b, 0xb3,0x3e, 0x02,0xcc,0x33,0x75,0x73,0x3f);
865 #if defined(__cplusplus) && !defined(CINTERFACE)
866 MIDL_INTERFACE("ec25f42d-7006-4f2b-b33e-02cc3375733f")
867 ID3D12FunctionParameterReflection
868 {
869 
870     BEGIN_INTERFACE
871 
872     virtual HRESULT STDMETHODCALLTYPE GetDesc(
873         D3D12_PARAMETER_DESC *desc) = 0;
874 
875     END_INTERFACE
876 
877 };
878 #ifdef __CRT_UUID_DECL
879 __CRT_UUID_DECL(ID3D12FunctionParameterReflection, 0xec25f42d, 0x7006, 0x4f2b, 0xb3,0x3e, 0x02,0xcc,0x33,0x75,0x73,0x3f)
880 #endif
881 #else
882 typedef struct ID3D12FunctionParameterReflectionVtbl {
883     BEGIN_INTERFACE
884 
885     /*** ID3D12FunctionParameterReflection methods ***/
886     HRESULT (STDMETHODCALLTYPE *GetDesc)(
887         ID3D12FunctionParameterReflection *This,
888         D3D12_PARAMETER_DESC *desc);
889 
890     END_INTERFACE
891 } ID3D12FunctionParameterReflectionVtbl;
892 
893 interface ID3D12FunctionParameterReflection {
894     CONST_VTBL ID3D12FunctionParameterReflectionVtbl* lpVtbl;
895 };
896 
897 #ifdef COBJMACROS
898 #ifndef WIDL_C_INLINE_WRAPPERS
899 /*** ID3D12FunctionParameterReflection methods ***/
900 #define ID3D12FunctionParameterReflection_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
901 #else
902 /*** ID3D12FunctionParameterReflection methods ***/
903 static FORCEINLINE HRESULT ID3D12FunctionParameterReflection_GetDesc(ID3D12FunctionParameterReflection* This,D3D12_PARAMETER_DESC *desc) {
904     return This->lpVtbl->GetDesc(This,desc);
905 }
906 #endif
907 #endif
908 
909 #endif
910 
911 
912 #endif  /* __ID3D12FunctionParameterReflection_INTERFACE_DEFINED__ */
913 
914 /*****************************************************************************
915  * ID3D12FunctionReflection interface
916  */
917 #ifndef __ID3D12FunctionReflection_INTERFACE_DEFINED__
918 #define __ID3D12FunctionReflection_INTERFACE_DEFINED__
919 
920 DEFINE_GUID(IID_ID3D12FunctionReflection, 0x1108795c, 0x2772, 0x4ba9, 0xb2,0xa8, 0xd4,0x64,0xdc,0x7e,0x27,0x99);
921 #if defined(__cplusplus) && !defined(CINTERFACE)
922 MIDL_INTERFACE("1108795c-2772-4ba9-b2a8-d464dc7e2799")
923 ID3D12FunctionReflection
924 {
925 
926     BEGIN_INTERFACE
927 
928     virtual HRESULT STDMETHODCALLTYPE GetDesc(
929         D3D12_FUNCTION_DESC *desc) = 0;
930 
931     virtual ID3D12ShaderReflectionConstantBuffer * STDMETHODCALLTYPE GetConstantBufferByIndex(
932         UINT index) = 0;
933 
934     virtual ID3D12ShaderReflectionConstantBuffer * STDMETHODCALLTYPE GetConstantBufferByName(
935         const char *name) = 0;
936 
937     virtual HRESULT STDMETHODCALLTYPE GetResourceBindingDesc(
938         UINT index,
939         D3D12_SHADER_INPUT_BIND_DESC *desc) = 0;
940 
941     virtual ID3D12ShaderReflectionVariable * STDMETHODCALLTYPE GetVariableByName(
942         const char *name) = 0;
943 
944     virtual HRESULT STDMETHODCALLTYPE GetResourceBindingDescByName(
945         const char *name,
946         D3D12_SHADER_INPUT_BIND_DESC *desc) = 0;
947 
948     virtual ID3D12FunctionParameterReflection * STDMETHODCALLTYPE GetFunctionParameter(
949         INT index) = 0;
950 
951     END_INTERFACE
952 
953 };
954 #ifdef __CRT_UUID_DECL
955 __CRT_UUID_DECL(ID3D12FunctionReflection, 0x1108795c, 0x2772, 0x4ba9, 0xb2,0xa8, 0xd4,0x64,0xdc,0x7e,0x27,0x99)
956 #endif
957 #else
958 typedef struct ID3D12FunctionReflectionVtbl {
959     BEGIN_INTERFACE
960 
961     /*** ID3D12FunctionReflection methods ***/
962     HRESULT (STDMETHODCALLTYPE *GetDesc)(
963         ID3D12FunctionReflection *This,
964         D3D12_FUNCTION_DESC *desc);
965 
966     ID3D12ShaderReflectionConstantBuffer * (STDMETHODCALLTYPE *GetConstantBufferByIndex)(
967         ID3D12FunctionReflection *This,
968         UINT index);
969 
970     ID3D12ShaderReflectionConstantBuffer * (STDMETHODCALLTYPE *GetConstantBufferByName)(
971         ID3D12FunctionReflection *This,
972         const char *name);
973 
974     HRESULT (STDMETHODCALLTYPE *GetResourceBindingDesc)(
975         ID3D12FunctionReflection *This,
976         UINT index,
977         D3D12_SHADER_INPUT_BIND_DESC *desc);
978 
979     ID3D12ShaderReflectionVariable * (STDMETHODCALLTYPE *GetVariableByName)(
980         ID3D12FunctionReflection *This,
981         const char *name);
982 
983     HRESULT (STDMETHODCALLTYPE *GetResourceBindingDescByName)(
984         ID3D12FunctionReflection *This,
985         const char *name,
986         D3D12_SHADER_INPUT_BIND_DESC *desc);
987 
988     ID3D12FunctionParameterReflection * (STDMETHODCALLTYPE *GetFunctionParameter)(
989         ID3D12FunctionReflection *This,
990         INT index);
991 
992     END_INTERFACE
993 } ID3D12FunctionReflectionVtbl;
994 
995 interface ID3D12FunctionReflection {
996     CONST_VTBL ID3D12FunctionReflectionVtbl* lpVtbl;
997 };
998 
999 #ifdef COBJMACROS
1000 #ifndef WIDL_C_INLINE_WRAPPERS
1001 /*** ID3D12FunctionReflection methods ***/
1002 #define ID3D12FunctionReflection_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
1003 #define ID3D12FunctionReflection_GetConstantBufferByIndex(This,index) (This)->lpVtbl->GetConstantBufferByIndex(This,index)
1004 #define ID3D12FunctionReflection_GetConstantBufferByName(This,name) (This)->lpVtbl->GetConstantBufferByName(This,name)
1005 #define ID3D12FunctionReflection_GetResourceBindingDesc(This,index,desc) (This)->lpVtbl->GetResourceBindingDesc(This,index,desc)
1006 #define ID3D12FunctionReflection_GetVariableByName(This,name) (This)->lpVtbl->GetVariableByName(This,name)
1007 #define ID3D12FunctionReflection_GetResourceBindingDescByName(This,name,desc) (This)->lpVtbl->GetResourceBindingDescByName(This,name,desc)
1008 #define ID3D12FunctionReflection_GetFunctionParameter(This,index) (This)->lpVtbl->GetFunctionParameter(This,index)
1009 #else
1010 /*** ID3D12FunctionReflection methods ***/
1011 static FORCEINLINE HRESULT ID3D12FunctionReflection_GetDesc(ID3D12FunctionReflection* This,D3D12_FUNCTION_DESC *desc) {
1012     return This->lpVtbl->GetDesc(This,desc);
1013 }
1014 static FORCEINLINE ID3D12ShaderReflectionConstantBuffer * ID3D12FunctionReflection_GetConstantBufferByIndex(ID3D12FunctionReflection* This,UINT index) {
1015     return This->lpVtbl->GetConstantBufferByIndex(This,index);
1016 }
1017 static FORCEINLINE ID3D12ShaderReflectionConstantBuffer * ID3D12FunctionReflection_GetConstantBufferByName(ID3D12FunctionReflection* This,const char *name) {
1018     return This->lpVtbl->GetConstantBufferByName(This,name);
1019 }
1020 static FORCEINLINE HRESULT ID3D12FunctionReflection_GetResourceBindingDesc(ID3D12FunctionReflection* This,UINT index,D3D12_SHADER_INPUT_BIND_DESC *desc) {
1021     return This->lpVtbl->GetResourceBindingDesc(This,index,desc);
1022 }
1023 static FORCEINLINE ID3D12ShaderReflectionVariable * ID3D12FunctionReflection_GetVariableByName(ID3D12FunctionReflection* This,const char *name) {
1024     return This->lpVtbl->GetVariableByName(This,name);
1025 }
1026 static FORCEINLINE HRESULT ID3D12FunctionReflection_GetResourceBindingDescByName(ID3D12FunctionReflection* This,const char *name,D3D12_SHADER_INPUT_BIND_DESC *desc) {
1027     return This->lpVtbl->GetResourceBindingDescByName(This,name,desc);
1028 }
1029 static FORCEINLINE ID3D12FunctionParameterReflection * ID3D12FunctionReflection_GetFunctionParameter(ID3D12FunctionReflection* This,INT index) {
1030     return This->lpVtbl->GetFunctionParameter(This,index);
1031 }
1032 #endif
1033 #endif
1034 
1035 #endif
1036 
1037 
1038 #endif  /* __ID3D12FunctionReflection_INTERFACE_DEFINED__ */
1039 
1040 /*****************************************************************************
1041  * ID3D12LibraryReflection interface
1042  */
1043 #ifndef __ID3D12LibraryReflection_INTERFACE_DEFINED__
1044 #define __ID3D12LibraryReflection_INTERFACE_DEFINED__
1045 
1046 DEFINE_GUID(IID_ID3D12LibraryReflection, 0x8e349d19, 0x54db, 0x4a56, 0x9d,0xc9, 0x11,0x9d,0x87,0xbd,0xb8,0x04);
1047 #if defined(__cplusplus) && !defined(CINTERFACE)
1048 MIDL_INTERFACE("8e349d19-54db-4a56-9dc9-119d87bdb804")
1049 ID3D12LibraryReflection : public IUnknown
1050 {
1051     virtual HRESULT STDMETHODCALLTYPE GetDesc(
1052         D3D12_LIBRARY_DESC *desc) = 0;
1053 
1054     virtual ID3D12FunctionReflection * STDMETHODCALLTYPE GetFunctionByIndex(
1055         INT index) = 0;
1056 
1057 };
1058 #ifdef __CRT_UUID_DECL
1059 __CRT_UUID_DECL(ID3D12LibraryReflection, 0x8e349d19, 0x54db, 0x4a56, 0x9d,0xc9, 0x11,0x9d,0x87,0xbd,0xb8,0x04)
1060 #endif
1061 #else
1062 typedef struct ID3D12LibraryReflectionVtbl {
1063     BEGIN_INTERFACE
1064 
1065     /*** IUnknown methods ***/
1066     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1067         ID3D12LibraryReflection *This,
1068         REFIID riid,
1069         void **ppvObject);
1070 
1071     ULONG (STDMETHODCALLTYPE *AddRef)(
1072         ID3D12LibraryReflection *This);
1073 
1074     ULONG (STDMETHODCALLTYPE *Release)(
1075         ID3D12LibraryReflection *This);
1076 
1077     /*** ID3D12LibraryReflection methods ***/
1078     HRESULT (STDMETHODCALLTYPE *GetDesc)(
1079         ID3D12LibraryReflection *This,
1080         D3D12_LIBRARY_DESC *desc);
1081 
1082     ID3D12FunctionReflection * (STDMETHODCALLTYPE *GetFunctionByIndex)(
1083         ID3D12LibraryReflection *This,
1084         INT index);
1085 
1086     END_INTERFACE
1087 } ID3D12LibraryReflectionVtbl;
1088 
1089 interface ID3D12LibraryReflection {
1090     CONST_VTBL ID3D12LibraryReflectionVtbl* lpVtbl;
1091 };
1092 
1093 #ifdef COBJMACROS
1094 #ifndef WIDL_C_INLINE_WRAPPERS
1095 /*** IUnknown methods ***/
1096 #define ID3D12LibraryReflection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1097 #define ID3D12LibraryReflection_AddRef(This) (This)->lpVtbl->AddRef(This)
1098 #define ID3D12LibraryReflection_Release(This) (This)->lpVtbl->Release(This)
1099 /*** ID3D12LibraryReflection methods ***/
1100 #define ID3D12LibraryReflection_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
1101 #define ID3D12LibraryReflection_GetFunctionByIndex(This,index) (This)->lpVtbl->GetFunctionByIndex(This,index)
1102 #else
1103 /*** IUnknown methods ***/
1104 static FORCEINLINE HRESULT ID3D12LibraryReflection_QueryInterface(ID3D12LibraryReflection* This,REFIID riid,void **ppvObject) {
1105     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1106 }
1107 static FORCEINLINE ULONG ID3D12LibraryReflection_AddRef(ID3D12LibraryReflection* This) {
1108     return This->lpVtbl->AddRef(This);
1109 }
1110 static FORCEINLINE ULONG ID3D12LibraryReflection_Release(ID3D12LibraryReflection* This) {
1111     return This->lpVtbl->Release(This);
1112 }
1113 /*** ID3D12LibraryReflection methods ***/
1114 static FORCEINLINE HRESULT ID3D12LibraryReflection_GetDesc(ID3D12LibraryReflection* This,D3D12_LIBRARY_DESC *desc) {
1115     return This->lpVtbl->GetDesc(This,desc);
1116 }
1117 static FORCEINLINE ID3D12FunctionReflection * ID3D12LibraryReflection_GetFunctionByIndex(ID3D12LibraryReflection* This,INT index) {
1118     return This->lpVtbl->GetFunctionByIndex(This,index);
1119 }
1120 #endif
1121 #endif
1122 
1123 #endif
1124 
1125 
1126 #endif  /* __ID3D12LibraryReflection_INTERFACE_DEFINED__ */
1127 
1128 /* Begin additional prototypes for all interfaces */
1129 
1130 
1131 /* End additional prototypes */
1132 
1133 #ifdef __cplusplus
1134 }
1135 #endif
1136 
1137 #endif /* __d3d12shader_h__ */
1138