/*** Autogenerated by WIDL 11.16 from include/vkd3d_d3d10_1shader.idl - Do not edit ***/

#ifdef _WIN32
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif
#include <rpc.h>
#include <rpcndr.h>
#endif

#ifndef COM_NO_WINDOWS_H
#include <windows.h>
#include <ole2.h>
#endif

#ifndef __vkd3d_d3d10_1shader_h__
#define __vkd3d_d3d10_1shader_h__

/* Forward declarations */

#ifndef __ID3D10ShaderReflection1_FWD_DEFINED__
#define __ID3D10ShaderReflection1_FWD_DEFINED__
typedef interface ID3D10ShaderReflection1 ID3D10ShaderReflection1;
#ifdef __cplusplus
interface ID3D10ShaderReflection1;
#endif /* __cplusplus */
#endif

/* Headers for imported files */

#include <vkd3d_d3d10shader.h>

#ifdef __cplusplus
extern "C" {
#endif

/*****************************************************************************
 * ID3D10ShaderReflection1 interface
 */
#ifndef __ID3D10ShaderReflection1_INTERFACE_DEFINED__
#define __ID3D10ShaderReflection1_INTERFACE_DEFINED__

DEFINE_GUID(IID_ID3D10ShaderReflection1, 0xc3457783, 0xa846, 0x47ce, 0x95,0x20, 0xce,0xa6,0xf6,0x6e,0x74,0x47);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("c3457783-a846-47ce-9520-cea6f66e7447")
ID3D10ShaderReflection1 : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE GetDesc(
        D3D10_SHADER_DESC *desc) = 0;

    virtual ID3D10ShaderReflectionConstantBuffer * STDMETHODCALLTYPE GetConstantBufferByIndex(
        UINT index) = 0;

    virtual ID3D10ShaderReflectionConstantBuffer * STDMETHODCALLTYPE GetConstantBufferByName(
        const char *name) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetResourceBindingDesc(
        UINT index,
        D3D10_SHADER_INPUT_BIND_DESC *desc) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetInputParameterDesc(
        UINT index,
        D3D10_SIGNATURE_PARAMETER_DESC *desc) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetOutputParameterDesc(
        UINT index,
        D3D10_SIGNATURE_PARAMETER_DESC *desc) = 0;

    virtual ID3D10ShaderReflectionVariable * STDMETHODCALLTYPE GetVariableByName(
        const char *name) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetResourceBindingDescByName(
        const char *name,
        D3D10_SHADER_INPUT_BIND_DESC *desc) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetMovInstructionCount(
        UINT *count) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetMovcInstructionCount(
        UINT *count) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetConversionInstructionCount(
        UINT *count) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetBitwiseInstructionCount(
        UINT *count) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetGSInputPrimitive(
        D3D_PRIMITIVE *primitive) = 0;

    virtual HRESULT STDMETHODCALLTYPE IsLevel9Shader(
        BOOL *level9_shader) = 0;

    virtual HRESULT STDMETHODCALLTYPE IsSampleFrequencyShader(
        BOOL *sample_frequency) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ID3D10ShaderReflection1, 0xc3457783, 0xa846, 0x47ce, 0x95,0x20, 0xce,0xa6,0xf6,0x6e,0x74,0x47)
#endif
#else
typedef struct ID3D10ShaderReflection1Vtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ID3D10ShaderReflection1 *This,
        REFIID riid,
        void **object);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ID3D10ShaderReflection1 *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ID3D10ShaderReflection1 *This);

    /*** ID3D10ShaderReflection1 methods ***/
    HRESULT (STDMETHODCALLTYPE *GetDesc)(
        ID3D10ShaderReflection1 *This,
        D3D10_SHADER_DESC *desc);

    ID3D10ShaderReflectionConstantBuffer * (STDMETHODCALLTYPE *GetConstantBufferByIndex)(
        ID3D10ShaderReflection1 *This,
        UINT index);

    ID3D10ShaderReflectionConstantBuffer * (STDMETHODCALLTYPE *GetConstantBufferByName)(
        ID3D10ShaderReflection1 *This,
        const char *name);

    HRESULT (STDMETHODCALLTYPE *GetResourceBindingDesc)(
        ID3D10ShaderReflection1 *This,
        UINT index,
        D3D10_SHADER_INPUT_BIND_DESC *desc);

    HRESULT (STDMETHODCALLTYPE *GetInputParameterDesc)(
        ID3D10ShaderReflection1 *This,
        UINT index,
        D3D10_SIGNATURE_PARAMETER_DESC *desc);

    HRESULT (STDMETHODCALLTYPE *GetOutputParameterDesc)(
        ID3D10ShaderReflection1 *This,
        UINT index,
        D3D10_SIGNATURE_PARAMETER_DESC *desc);

    ID3D10ShaderReflectionVariable * (STDMETHODCALLTYPE *GetVariableByName)(
        ID3D10ShaderReflection1 *This,
        const char *name);

    HRESULT (STDMETHODCALLTYPE *GetResourceBindingDescByName)(
        ID3D10ShaderReflection1 *This,
        const char *name,
        D3D10_SHADER_INPUT_BIND_DESC *desc);

    HRESULT (STDMETHODCALLTYPE *GetMovInstructionCount)(
        ID3D10ShaderReflection1 *This,
        UINT *count);

    HRESULT (STDMETHODCALLTYPE *GetMovcInstructionCount)(
        ID3D10ShaderReflection1 *This,
        UINT *count);

    HRESULT (STDMETHODCALLTYPE *GetConversionInstructionCount)(
        ID3D10ShaderReflection1 *This,
        UINT *count);

    HRESULT (STDMETHODCALLTYPE *GetBitwiseInstructionCount)(
        ID3D10ShaderReflection1 *This,
        UINT *count);

    HRESULT (STDMETHODCALLTYPE *GetGSInputPrimitive)(
        ID3D10ShaderReflection1 *This,
        D3D_PRIMITIVE *primitive);

    HRESULT (STDMETHODCALLTYPE *IsLevel9Shader)(
        ID3D10ShaderReflection1 *This,
        BOOL *level9_shader);

    HRESULT (STDMETHODCALLTYPE *IsSampleFrequencyShader)(
        ID3D10ShaderReflection1 *This,
        BOOL *sample_frequency);

    END_INTERFACE
} ID3D10ShaderReflection1Vtbl;

interface ID3D10ShaderReflection1 {
    CONST_VTBL ID3D10ShaderReflection1Vtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define ID3D10ShaderReflection1_QueryInterface(This,riid,object) (This)->lpVtbl->QueryInterface(This,riid,object)
#define ID3D10ShaderReflection1_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ID3D10ShaderReflection1_Release(This) (This)->lpVtbl->Release(This)
/*** ID3D10ShaderReflection1 methods ***/
#define ID3D10ShaderReflection1_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
#define ID3D10ShaderReflection1_GetConstantBufferByIndex(This,index) (This)->lpVtbl->GetConstantBufferByIndex(This,index)
#define ID3D10ShaderReflection1_GetConstantBufferByName(This,name) (This)->lpVtbl->GetConstantBufferByName(This,name)
#define ID3D10ShaderReflection1_GetResourceBindingDesc(This,index,desc) (This)->lpVtbl->GetResourceBindingDesc(This,index,desc)
#define ID3D10ShaderReflection1_GetInputParameterDesc(This,index,desc) (This)->lpVtbl->GetInputParameterDesc(This,index,desc)
#define ID3D10ShaderReflection1_GetOutputParameterDesc(This,index,desc) (This)->lpVtbl->GetOutputParameterDesc(This,index,desc)
#define ID3D10ShaderReflection1_GetVariableByName(This,name) (This)->lpVtbl->GetVariableByName(This,name)
#define ID3D10ShaderReflection1_GetResourceBindingDescByName(This,name,desc) (This)->lpVtbl->GetResourceBindingDescByName(This,name,desc)
#define ID3D10ShaderReflection1_GetMovInstructionCount(This,count) (This)->lpVtbl->GetMovInstructionCount(This,count)
#define ID3D10ShaderReflection1_GetMovcInstructionCount(This,count) (This)->lpVtbl->GetMovcInstructionCount(This,count)
#define ID3D10ShaderReflection1_GetConversionInstructionCount(This,count) (This)->lpVtbl->GetConversionInstructionCount(This,count)
#define ID3D10ShaderReflection1_GetBitwiseInstructionCount(This,count) (This)->lpVtbl->GetBitwiseInstructionCount(This,count)
#define ID3D10ShaderReflection1_GetGSInputPrimitive(This,primitive) (This)->lpVtbl->GetGSInputPrimitive(This,primitive)
#define ID3D10ShaderReflection1_IsLevel9Shader(This,level9_shader) (This)->lpVtbl->IsLevel9Shader(This,level9_shader)
#define ID3D10ShaderReflection1_IsSampleFrequencyShader(This,sample_frequency) (This)->lpVtbl->IsSampleFrequencyShader(This,sample_frequency)
#else
/*** IUnknown methods ***/
static inline HRESULT ID3D10ShaderReflection1_QueryInterface(ID3D10ShaderReflection1* This,REFIID riid,void **object) {
    return This->lpVtbl->QueryInterface(This,riid,object);
}
static inline ULONG ID3D10ShaderReflection1_AddRef(ID3D10ShaderReflection1* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG ID3D10ShaderReflection1_Release(ID3D10ShaderReflection1* This) {
    return This->lpVtbl->Release(This);
}
/*** ID3D10ShaderReflection1 methods ***/
static inline HRESULT ID3D10ShaderReflection1_GetDesc(ID3D10ShaderReflection1* This,D3D10_SHADER_DESC *desc) {
    return This->lpVtbl->GetDesc(This,desc);
}
static inline ID3D10ShaderReflectionConstantBuffer * ID3D10ShaderReflection1_GetConstantBufferByIndex(ID3D10ShaderReflection1* This,UINT index) {
    return This->lpVtbl->GetConstantBufferByIndex(This,index);
}
static inline ID3D10ShaderReflectionConstantBuffer * ID3D10ShaderReflection1_GetConstantBufferByName(ID3D10ShaderReflection1* This,const char *name) {
    return This->lpVtbl->GetConstantBufferByName(This,name);
}
static inline HRESULT ID3D10ShaderReflection1_GetResourceBindingDesc(ID3D10ShaderReflection1* This,UINT index,D3D10_SHADER_INPUT_BIND_DESC *desc) {
    return This->lpVtbl->GetResourceBindingDesc(This,index,desc);
}
static inline HRESULT ID3D10ShaderReflection1_GetInputParameterDesc(ID3D10ShaderReflection1* This,UINT index,D3D10_SIGNATURE_PARAMETER_DESC *desc) {
    return This->lpVtbl->GetInputParameterDesc(This,index,desc);
}
static inline HRESULT ID3D10ShaderReflection1_GetOutputParameterDesc(ID3D10ShaderReflection1* This,UINT index,D3D10_SIGNATURE_PARAMETER_DESC *desc) {
    return This->lpVtbl->GetOutputParameterDesc(This,index,desc);
}
static inline ID3D10ShaderReflectionVariable * ID3D10ShaderReflection1_GetVariableByName(ID3D10ShaderReflection1* This,const char *name) {
    return This->lpVtbl->GetVariableByName(This,name);
}
static inline HRESULT ID3D10ShaderReflection1_GetResourceBindingDescByName(ID3D10ShaderReflection1* This,const char *name,D3D10_SHADER_INPUT_BIND_DESC *desc) {
    return This->lpVtbl->GetResourceBindingDescByName(This,name,desc);
}
static inline HRESULT ID3D10ShaderReflection1_GetMovInstructionCount(ID3D10ShaderReflection1* This,UINT *count) {
    return This->lpVtbl->GetMovInstructionCount(This,count);
}
static inline HRESULT ID3D10ShaderReflection1_GetMovcInstructionCount(ID3D10ShaderReflection1* This,UINT *count) {
    return This->lpVtbl->GetMovcInstructionCount(This,count);
}
static inline HRESULT ID3D10ShaderReflection1_GetConversionInstructionCount(ID3D10ShaderReflection1* This,UINT *count) {
    return This->lpVtbl->GetConversionInstructionCount(This,count);
}
static inline HRESULT ID3D10ShaderReflection1_GetBitwiseInstructionCount(ID3D10ShaderReflection1* This,UINT *count) {
    return This->lpVtbl->GetBitwiseInstructionCount(This,count);
}
static inline HRESULT ID3D10ShaderReflection1_GetGSInputPrimitive(ID3D10ShaderReflection1* This,D3D_PRIMITIVE *primitive) {
    return This->lpVtbl->GetGSInputPrimitive(This,primitive);
}
static inline HRESULT ID3D10ShaderReflection1_IsLevel9Shader(ID3D10ShaderReflection1* This,BOOL *level9_shader) {
    return This->lpVtbl->IsLevel9Shader(This,level9_shader);
}
static inline HRESULT ID3D10ShaderReflection1_IsSampleFrequencyShader(ID3D10ShaderReflection1* This,BOOL *sample_frequency) {
    return This->lpVtbl->IsSampleFrequencyShader(This,sample_frequency);
}
#endif
#endif

#endif


#endif  /* __ID3D10ShaderReflection1_INTERFACE_DEFINED__ */

/* Begin additional prototypes for all interfaces */


/* End additional prototypes */

#ifdef __cplusplus
}
#endif

#endif /* __vkd3d_d3d10_1shader_h__ */
