/*** Autogenerated by WIDL 9.0 from include/d3d10effect.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 __d3d10effect_h__
#define __d3d10effect_h__

#ifndef __WIDL_INLINE
#if defined(__cplusplus) || defined(_MSC_VER)
#define __WIDL_INLINE inline
#elif defined(__GNUC__)
#define __WIDL_INLINE __inline__
#endif
#endif

/* Forward declarations */

#ifndef __ID3D10EffectType_FWD_DEFINED__
#define __ID3D10EffectType_FWD_DEFINED__
typedef interface ID3D10EffectType ID3D10EffectType;
#ifdef __cplusplus
interface ID3D10EffectType;
#endif /* __cplusplus */
#endif

#ifndef __ID3D10EffectVariable_FWD_DEFINED__
#define __ID3D10EffectVariable_FWD_DEFINED__
typedef interface ID3D10EffectVariable ID3D10EffectVariable;
#ifdef __cplusplus
interface ID3D10EffectVariable;
#endif /* __cplusplus */
#endif

#ifndef __ID3D10EffectConstantBuffer_FWD_DEFINED__
#define __ID3D10EffectConstantBuffer_FWD_DEFINED__
typedef interface ID3D10EffectConstantBuffer ID3D10EffectConstantBuffer;
#ifdef __cplusplus
interface ID3D10EffectConstantBuffer;
#endif /* __cplusplus */
#endif

#ifndef __ID3D10EffectScalarVariable_FWD_DEFINED__
#define __ID3D10EffectScalarVariable_FWD_DEFINED__
typedef interface ID3D10EffectScalarVariable ID3D10EffectScalarVariable;
#ifdef __cplusplus
interface ID3D10EffectScalarVariable;
#endif /* __cplusplus */
#endif

#ifndef __ID3D10EffectVectorVariable_FWD_DEFINED__
#define __ID3D10EffectVectorVariable_FWD_DEFINED__
typedef interface ID3D10EffectVectorVariable ID3D10EffectVectorVariable;
#ifdef __cplusplus
interface ID3D10EffectVectorVariable;
#endif /* __cplusplus */
#endif

#ifndef __ID3D10EffectMatrixVariable_FWD_DEFINED__
#define __ID3D10EffectMatrixVariable_FWD_DEFINED__
typedef interface ID3D10EffectMatrixVariable ID3D10EffectMatrixVariable;
#ifdef __cplusplus
interface ID3D10EffectMatrixVariable;
#endif /* __cplusplus */
#endif

#ifndef __ID3D10EffectStringVariable_FWD_DEFINED__
#define __ID3D10EffectStringVariable_FWD_DEFINED__
typedef interface ID3D10EffectStringVariable ID3D10EffectStringVariable;
#ifdef __cplusplus
interface ID3D10EffectStringVariable;
#endif /* __cplusplus */
#endif

#ifndef __ID3D10EffectShaderResourceVariable_FWD_DEFINED__
#define __ID3D10EffectShaderResourceVariable_FWD_DEFINED__
typedef interface ID3D10EffectShaderResourceVariable ID3D10EffectShaderResourceVariable;
#ifdef __cplusplus
interface ID3D10EffectShaderResourceVariable;
#endif /* __cplusplus */
#endif

#ifndef __ID3D10EffectRenderTargetViewVariable_FWD_DEFINED__
#define __ID3D10EffectRenderTargetViewVariable_FWD_DEFINED__
typedef interface ID3D10EffectRenderTargetViewVariable ID3D10EffectRenderTargetViewVariable;
#ifdef __cplusplus
interface ID3D10EffectRenderTargetViewVariable;
#endif /* __cplusplus */
#endif

#ifndef __ID3D10EffectDepthStencilViewVariable_FWD_DEFINED__
#define __ID3D10EffectDepthStencilViewVariable_FWD_DEFINED__
typedef interface ID3D10EffectDepthStencilViewVariable ID3D10EffectDepthStencilViewVariable;
#ifdef __cplusplus
interface ID3D10EffectDepthStencilViewVariable;
#endif /* __cplusplus */
#endif

#ifndef __ID3D10EffectShaderVariable_FWD_DEFINED__
#define __ID3D10EffectShaderVariable_FWD_DEFINED__
typedef interface ID3D10EffectShaderVariable ID3D10EffectShaderVariable;
#ifdef __cplusplus
interface ID3D10EffectShaderVariable;
#endif /* __cplusplus */
#endif

#ifndef __ID3D10EffectBlendVariable_FWD_DEFINED__
#define __ID3D10EffectBlendVariable_FWD_DEFINED__
typedef interface ID3D10EffectBlendVariable ID3D10EffectBlendVariable;
#ifdef __cplusplus
interface ID3D10EffectBlendVariable;
#endif /* __cplusplus */
#endif

#ifndef __ID3D10EffectDepthStencilVariable_FWD_DEFINED__
#define __ID3D10EffectDepthStencilVariable_FWD_DEFINED__
typedef interface ID3D10EffectDepthStencilVariable ID3D10EffectDepthStencilVariable;
#ifdef __cplusplus
interface ID3D10EffectDepthStencilVariable;
#endif /* __cplusplus */
#endif

#ifndef __ID3D10EffectRasterizerVariable_FWD_DEFINED__
#define __ID3D10EffectRasterizerVariable_FWD_DEFINED__
typedef interface ID3D10EffectRasterizerVariable ID3D10EffectRasterizerVariable;
#ifdef __cplusplus
interface ID3D10EffectRasterizerVariable;
#endif /* __cplusplus */
#endif

#ifndef __ID3D10EffectSamplerVariable_FWD_DEFINED__
#define __ID3D10EffectSamplerVariable_FWD_DEFINED__
typedef interface ID3D10EffectSamplerVariable ID3D10EffectSamplerVariable;
#ifdef __cplusplus
interface ID3D10EffectSamplerVariable;
#endif /* __cplusplus */
#endif

#ifndef __ID3D10EffectTechnique_FWD_DEFINED__
#define __ID3D10EffectTechnique_FWD_DEFINED__
typedef interface ID3D10EffectTechnique ID3D10EffectTechnique;
#ifdef __cplusplus
interface ID3D10EffectTechnique;
#endif /* __cplusplus */
#endif

#ifndef __ID3D10Effect_FWD_DEFINED__
#define __ID3D10Effect_FWD_DEFINED__
typedef interface ID3D10Effect ID3D10Effect;
#ifdef __cplusplus
interface ID3D10Effect;
#endif /* __cplusplus */
#endif

#ifndef __ID3D10EffectPool_FWD_DEFINED__
#define __ID3D10EffectPool_FWD_DEFINED__
typedef interface ID3D10EffectPool ID3D10EffectPool;
#ifdef __cplusplus
interface ID3D10EffectPool;
#endif /* __cplusplus */
#endif

#ifndef __ID3D10EffectPass_FWD_DEFINED__
#define __ID3D10EffectPass_FWD_DEFINED__
typedef interface ID3D10EffectPass ID3D10EffectPass;
#ifdef __cplusplus
interface ID3D10EffectPass;
#endif /* __cplusplus */
#endif

#ifndef __ID3D10StateBlock_FWD_DEFINED__
#define __ID3D10StateBlock_FWD_DEFINED__
typedef interface ID3D10StateBlock ID3D10StateBlock;
#ifdef __cplusplus
interface ID3D10StateBlock;
#endif /* __cplusplus */
#endif

/* Headers for imported files */

#include <d3d10.h>
#include <d3d10shader.h>

#ifdef __cplusplus
extern "C" {
#endif

#ifndef __ID3D10EffectConstantBuffer_FWD_DEFINED__
#define __ID3D10EffectConstantBuffer_FWD_DEFINED__
typedef interface ID3D10EffectConstantBuffer ID3D10EffectConstantBuffer;
#ifdef __cplusplus
interface ID3D10EffectConstantBuffer;
#endif /* __cplusplus */
#endif

#ifndef __ID3D10EffectBlendVariable_FWD_DEFINED__
#define __ID3D10EffectBlendVariable_FWD_DEFINED__
typedef interface ID3D10EffectBlendVariable ID3D10EffectBlendVariable;
#ifdef __cplusplus
interface ID3D10EffectBlendVariable;
#endif /* __cplusplus */
#endif

#ifndef __ID3D10EffectDepthStencilVariable_FWD_DEFINED__
#define __ID3D10EffectDepthStencilVariable_FWD_DEFINED__
typedef interface ID3D10EffectDepthStencilVariable ID3D10EffectDepthStencilVariable;
#ifdef __cplusplus
interface ID3D10EffectDepthStencilVariable;
#endif /* __cplusplus */
#endif

#ifndef __ID3D10EffectDepthStencilViewVariable_FWD_DEFINED__
#define __ID3D10EffectDepthStencilViewVariable_FWD_DEFINED__
typedef interface ID3D10EffectDepthStencilViewVariable ID3D10EffectDepthStencilViewVariable;
#ifdef __cplusplus
interface ID3D10EffectDepthStencilViewVariable;
#endif /* __cplusplus */
#endif

#ifndef __ID3D10EffectMatrixVariable_FWD_DEFINED__
#define __ID3D10EffectMatrixVariable_FWD_DEFINED__
typedef interface ID3D10EffectMatrixVariable ID3D10EffectMatrixVariable;
#ifdef __cplusplus
interface ID3D10EffectMatrixVariable;
#endif /* __cplusplus */
#endif

#ifndef __ID3D10EffectPass_FWD_DEFINED__
#define __ID3D10EffectPass_FWD_DEFINED__
typedef interface ID3D10EffectPass ID3D10EffectPass;
#ifdef __cplusplus
interface ID3D10EffectPass;
#endif /* __cplusplus */
#endif

#ifndef __ID3D10EffectRasterizerVariable_FWD_DEFINED__
#define __ID3D10EffectRasterizerVariable_FWD_DEFINED__
typedef interface ID3D10EffectRasterizerVariable ID3D10EffectRasterizerVariable;
#ifdef __cplusplus
interface ID3D10EffectRasterizerVariable;
#endif /* __cplusplus */
#endif

#ifndef __ID3D10EffectRenderTargetViewVariable_FWD_DEFINED__
#define __ID3D10EffectRenderTargetViewVariable_FWD_DEFINED__
typedef interface ID3D10EffectRenderTargetViewVariable ID3D10EffectRenderTargetViewVariable;
#ifdef __cplusplus
interface ID3D10EffectRenderTargetViewVariable;
#endif /* __cplusplus */
#endif

#ifndef __ID3D10EffectSamplerVariable_FWD_DEFINED__
#define __ID3D10EffectSamplerVariable_FWD_DEFINED__
typedef interface ID3D10EffectSamplerVariable ID3D10EffectSamplerVariable;
#ifdef __cplusplus
interface ID3D10EffectSamplerVariable;
#endif /* __cplusplus */
#endif

#ifndef __ID3D10EffectScalarVariable_FWD_DEFINED__
#define __ID3D10EffectScalarVariable_FWD_DEFINED__
typedef interface ID3D10EffectScalarVariable ID3D10EffectScalarVariable;
#ifdef __cplusplus
interface ID3D10EffectScalarVariable;
#endif /* __cplusplus */
#endif

#ifndef __ID3D10EffectShaderVariable_FWD_DEFINED__
#define __ID3D10EffectShaderVariable_FWD_DEFINED__
typedef interface ID3D10EffectShaderVariable ID3D10EffectShaderVariable;
#ifdef __cplusplus
interface ID3D10EffectShaderVariable;
#endif /* __cplusplus */
#endif

#ifndef __ID3D10EffectShaderResourceVariable_FWD_DEFINED__
#define __ID3D10EffectShaderResourceVariable_FWD_DEFINED__
typedef interface ID3D10EffectShaderResourceVariable ID3D10EffectShaderResourceVariable;
#ifdef __cplusplus
interface ID3D10EffectShaderResourceVariable;
#endif /* __cplusplus */
#endif

#ifndef __ID3D10EffectStringVariable_FWD_DEFINED__
#define __ID3D10EffectStringVariable_FWD_DEFINED__
typedef interface ID3D10EffectStringVariable ID3D10EffectStringVariable;
#ifdef __cplusplus
interface ID3D10EffectStringVariable;
#endif /* __cplusplus */
#endif

#ifndef __ID3D10EffectVectorVariable_FWD_DEFINED__
#define __ID3D10EffectVectorVariable_FWD_DEFINED__
typedef interface ID3D10EffectVectorVariable ID3D10EffectVectorVariable;
#ifdef __cplusplus
interface ID3D10EffectVectorVariable;
#endif /* __cplusplus */
#endif

#ifndef D3D10_BYTES_FROM_BITS
#define D3D10_BYTES_FROM_BITS(x) (((x) + 7) >> 3)
#endif
#define D3D10_EFFECT_VARIABLE_POOLED (0x1)

#define D3D10_EFFECT_VARIABLE_ANNOTATION (0x2)

#define D3D10_EFFECT_VARIABLE_EXPLICIT_BIND_POINT (0x4)

typedef enum _D3D10_DEVICE_STATE_TYPES {
    D3D10_DST_SO_BUFFERS = 1,
    D3D10_DST_OM_RENDER_TARGETS = 2,
    D3D10_DST_OM_DEPTH_STENCIL_STATE = 3,
    D3D10_DST_OM_BLEND_STATE = 4,
    D3D10_DST_VS = 5,
    D3D10_DST_VS_SAMPLERS = 6,
    D3D10_DST_VS_SHADER_RESOURCES = 7,
    D3D10_DST_VS_CONSTANT_BUFFERS = 8,
    D3D10_DST_GS = 9,
    D3D10_DST_GS_SAMPLERS = 10,
    D3D10_DST_GS_SHADER_RESOURCES = 11,
    D3D10_DST_GS_CONSTANT_BUFFERS = 12,
    D3D10_DST_PS = 13,
    D3D10_DST_PS_SAMPLERS = 14,
    D3D10_DST_PS_SHADER_RESOURCES = 15,
    D3D10_DST_PS_CONSTANT_BUFFERS = 16,
    D3D10_DST_IA_VERTEX_BUFFERS = 17,
    D3D10_DST_IA_INDEX_BUFFER = 18,
    D3D10_DST_IA_INPUT_LAYOUT = 19,
    D3D10_DST_IA_PRIMITIVE_TOPOLOGY = 20,
    D3D10_DST_RS_VIEWPORTS = 21,
    D3D10_DST_RS_SCISSOR_RECTS = 22,
    D3D10_DST_RS_RASTERIZER_STATE = 23,
    D3D10_DST_PREDICATION = 24
} D3D10_DEVICE_STATE_TYPES;
typedef struct _D3D10_EFFECT_TYPE_DESC {
    const char *TypeName;
    D3D10_SHADER_VARIABLE_CLASS Class;
    D3D10_SHADER_VARIABLE_TYPE Type;
    UINT Elements;
    UINT Members;
    UINT Rows;
    UINT Columns;
    UINT PackedSize;
    UINT UnpackedSize;
    UINT Stride;
} D3D10_EFFECT_TYPE_DESC;
typedef struct _D3D10_EFFECT_VARIABLE_DESC {
    const char *Name;
    const char *Semantic;
    UINT Flags;
    UINT Annotations;
    UINT BufferOffset;
    UINT ExplicitBindPoint;
} D3D10_EFFECT_VARIABLE_DESC;
typedef struct _D3D10_TECHNIQUE_DESC {
    const char *Name;
    UINT Passes;
    UINT Annotations;
} D3D10_TECHNIQUE_DESC;
typedef struct _D3D10_STATE_BLOCK_MASK {
    BYTE VS;
    BYTE VSSamplers[2];
    BYTE VSShaderResources[16];
    BYTE VSConstantBuffers[2];
    BYTE GS;
    BYTE GSSamplers[2];
    BYTE GSShaderResources[16];
    BYTE GSConstantBuffers[2];
    BYTE PS;
    BYTE PSSamplers[2];
    BYTE PSShaderResources[16];
    BYTE PSConstantBuffers[2];
    BYTE IAVertexBuffers[2];
    BYTE IAIndexBuffer;
    BYTE IAInputLayout;
    BYTE IAPrimitiveTopology;
    BYTE OMRenderTargets;
    BYTE OMDepthStencilState;
    BYTE OMBlendState;
    BYTE RSViewports;
    BYTE RSScissorRects;
    BYTE RSRasterizerState;
    BYTE SOBuffers;
    BYTE Predication;
} D3D10_STATE_BLOCK_MASK;
typedef struct _D3D10_EFFECT_DESC {
    BOOL IsChildEffect;
    UINT ConstantBuffers;
    UINT SharedConstantBuffers;
    UINT GlobalVariables;
    UINT SharedGlobalVariables;
    UINT Techniques;
} D3D10_EFFECT_DESC;
typedef struct _D3D10_EFFECT_SHADER_DESC {
    const BYTE *pInputSignature;
    BOOL IsInline;
    const BYTE *pBytecode;
    UINT BytecodeLength;
    const char *SODecl;
    UINT NumInputSignatureEntries;
    UINT NumOutputSignatureEntries;
} D3D10_EFFECT_SHADER_DESC;
typedef struct _D3D10_PASS_DESC {
    const char *Name;
    UINT Annotations;
    BYTE *pIAInputSignature;
    SIZE_T IAInputSignatureSize;
    UINT StencilRef;
    UINT SampleMask;
    FLOAT BlendFactor[4];
} D3D10_PASS_DESC;
typedef struct _D3D10_PASS_SHADER_DESC {
    ID3D10EffectShaderVariable *pShaderVariable;
    UINT ShaderIndex;
} D3D10_PASS_SHADER_DESC;
#define D3D10_EFFECT_COMPILE_CHILD_EFFECT (0x1)

#define D3D10_EFFECT_COMPILE_ALLOW_SLOW_OPS (0x2)

#define D3D10_EFFECT_SINGLE_THREADED (0x8)

/*****************************************************************************
 * ID3D10EffectType interface
 */
#ifndef __ID3D10EffectType_INTERFACE_DEFINED__
#define __ID3D10EffectType_INTERFACE_DEFINED__

DEFINE_GUID(IID_ID3D10EffectType, 0x4e9e1ddc, 0xcd9d, 0x4772, 0xa8,0x37, 0x00,0x18,0x0b,0x9b,0x88,0xfd);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("4e9e1ddc-cd9d-4772-a837-00180b9b88fd")
ID3D10EffectType
{

    BEGIN_INTERFACE

    virtual BOOL STDMETHODCALLTYPE IsValid(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetDesc(
        D3D10_EFFECT_TYPE_DESC *desc) = 0;

    virtual ID3D10EffectType * STDMETHODCALLTYPE GetMemberTypeByIndex(
        UINT index) = 0;

    virtual ID3D10EffectType * STDMETHODCALLTYPE GetMemberTypeByName(
        const char *name) = 0;

    virtual ID3D10EffectType * STDMETHODCALLTYPE GetMemberTypeBySemantic(
        const char *semantic) = 0;

    virtual const char * STDMETHODCALLTYPE GetMemberName(
        UINT index) = 0;

    virtual const char * STDMETHODCALLTYPE GetMemberSemantic(
        UINT index) = 0;

    END_INTERFACE

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ID3D10EffectType, 0x4e9e1ddc, 0xcd9d, 0x4772, 0xa8,0x37, 0x00,0x18,0x0b,0x9b,0x88,0xfd)
#endif
#else
typedef struct ID3D10EffectTypeVtbl {
    BEGIN_INTERFACE

    /*** ID3D10EffectType methods ***/
    BOOL (STDMETHODCALLTYPE *IsValid)(
        ID3D10EffectType *This);

    HRESULT (STDMETHODCALLTYPE *GetDesc)(
        ID3D10EffectType *This,
        D3D10_EFFECT_TYPE_DESC *desc);

    ID3D10EffectType * (STDMETHODCALLTYPE *GetMemberTypeByIndex)(
        ID3D10EffectType *This,
        UINT index);

    ID3D10EffectType * (STDMETHODCALLTYPE *GetMemberTypeByName)(
        ID3D10EffectType *This,
        const char *name);

    ID3D10EffectType * (STDMETHODCALLTYPE *GetMemberTypeBySemantic)(
        ID3D10EffectType *This,
        const char *semantic);

    const char * (STDMETHODCALLTYPE *GetMemberName)(
        ID3D10EffectType *This,
        UINT index);

    const char * (STDMETHODCALLTYPE *GetMemberSemantic)(
        ID3D10EffectType *This,
        UINT index);

    END_INTERFACE
} ID3D10EffectTypeVtbl;

interface ID3D10EffectType {
    CONST_VTBL ID3D10EffectTypeVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** ID3D10EffectType methods ***/
#define ID3D10EffectType_IsValid(This) (This)->lpVtbl->IsValid(This)
#define ID3D10EffectType_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
#define ID3D10EffectType_GetMemberTypeByIndex(This,index) (This)->lpVtbl->GetMemberTypeByIndex(This,index)
#define ID3D10EffectType_GetMemberTypeByName(This,name) (This)->lpVtbl->GetMemberTypeByName(This,name)
#define ID3D10EffectType_GetMemberTypeBySemantic(This,semantic) (This)->lpVtbl->GetMemberTypeBySemantic(This,semantic)
#define ID3D10EffectType_GetMemberName(This,index) (This)->lpVtbl->GetMemberName(This,index)
#define ID3D10EffectType_GetMemberSemantic(This,index) (This)->lpVtbl->GetMemberSemantic(This,index)
#else
/*** ID3D10EffectType methods ***/
static __WIDL_INLINE BOOL ID3D10EffectType_IsValid(ID3D10EffectType* This) {
    return This->lpVtbl->IsValid(This);
}
static __WIDL_INLINE HRESULT ID3D10EffectType_GetDesc(ID3D10EffectType* This,D3D10_EFFECT_TYPE_DESC *desc) {
    return This->lpVtbl->GetDesc(This,desc);
}
static __WIDL_INLINE ID3D10EffectType * ID3D10EffectType_GetMemberTypeByIndex(ID3D10EffectType* This,UINT index) {
    return This->lpVtbl->GetMemberTypeByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectType * ID3D10EffectType_GetMemberTypeByName(ID3D10EffectType* This,const char *name) {
    return This->lpVtbl->GetMemberTypeByName(This,name);
}
static __WIDL_INLINE ID3D10EffectType * ID3D10EffectType_GetMemberTypeBySemantic(ID3D10EffectType* This,const char *semantic) {
    return This->lpVtbl->GetMemberTypeBySemantic(This,semantic);
}
static __WIDL_INLINE const char * ID3D10EffectType_GetMemberName(ID3D10EffectType* This,UINT index) {
    return This->lpVtbl->GetMemberName(This,index);
}
static __WIDL_INLINE const char * ID3D10EffectType_GetMemberSemantic(ID3D10EffectType* This,UINT index) {
    return This->lpVtbl->GetMemberSemantic(This,index);
}
#endif
#endif

#endif


#endif  /* __ID3D10EffectType_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ID3D10EffectVariable interface
 */
#ifndef __ID3D10EffectVariable_INTERFACE_DEFINED__
#define __ID3D10EffectVariable_INTERFACE_DEFINED__

DEFINE_GUID(IID_ID3D10EffectVariable, 0xae897105, 0x00e6, 0x45bf, 0xbb,0x8e, 0x28,0x1d,0xd6,0xdb,0x8e,0x1b);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("ae897105-00e6-45bf-bb8e-281dd6db8e1b")
ID3D10EffectVariable
{

    BEGIN_INTERFACE

    virtual BOOL STDMETHODCALLTYPE IsValid(
        ) = 0;

    virtual ID3D10EffectType * STDMETHODCALLTYPE GetType(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetDesc(
        D3D10_EFFECT_VARIABLE_DESC *desc) = 0;

    virtual ID3D10EffectVariable * STDMETHODCALLTYPE GetAnnotationByIndex(
        UINT index) = 0;

    virtual ID3D10EffectVariable * STDMETHODCALLTYPE GetAnnotationByName(
        const char *name) = 0;

    virtual ID3D10EffectVariable * STDMETHODCALLTYPE GetMemberByIndex(
        UINT index) = 0;

    virtual ID3D10EffectVariable * STDMETHODCALLTYPE GetMemberByName(
        const char *name) = 0;

    virtual ID3D10EffectVariable * STDMETHODCALLTYPE GetMemberBySemantic(
        const char *semantic) = 0;

    virtual ID3D10EffectVariable * STDMETHODCALLTYPE GetElement(
        UINT index) = 0;

    virtual ID3D10EffectConstantBuffer * STDMETHODCALLTYPE GetParentConstantBuffer(
        ) = 0;

    virtual ID3D10EffectScalarVariable * STDMETHODCALLTYPE AsScalar(
        ) = 0;

    virtual ID3D10EffectVectorVariable * STDMETHODCALLTYPE AsVector(
        ) = 0;

    virtual ID3D10EffectMatrixVariable * STDMETHODCALLTYPE AsMatrix(
        ) = 0;

    virtual ID3D10EffectStringVariable * STDMETHODCALLTYPE AsString(
        ) = 0;

    virtual ID3D10EffectShaderResourceVariable * STDMETHODCALLTYPE AsShaderResource(
        ) = 0;

    virtual ID3D10EffectRenderTargetViewVariable * STDMETHODCALLTYPE AsRenderTargetView(
        ) = 0;

    virtual ID3D10EffectDepthStencilViewVariable * STDMETHODCALLTYPE AsDepthStencilView(
        ) = 0;

    virtual ID3D10EffectConstantBuffer * STDMETHODCALLTYPE AsConstantBuffer(
        ) = 0;

    virtual ID3D10EffectShaderVariable * STDMETHODCALLTYPE AsShader(
        ) = 0;

    virtual ID3D10EffectBlendVariable * STDMETHODCALLTYPE AsBlend(
        ) = 0;

    virtual ID3D10EffectDepthStencilVariable * STDMETHODCALLTYPE AsDepthStencil(
        ) = 0;

    virtual ID3D10EffectRasterizerVariable * STDMETHODCALLTYPE AsRasterizer(
        ) = 0;

    virtual ID3D10EffectSamplerVariable * STDMETHODCALLTYPE AsSampler(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetRawValue(
        void *data,
        UINT offset,
        UINT count) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetRawValue(
        void *data,
        UINT offset,
        UINT count) = 0;

    END_INTERFACE

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ID3D10EffectVariable, 0xae897105, 0x00e6, 0x45bf, 0xbb,0x8e, 0x28,0x1d,0xd6,0xdb,0x8e,0x1b)
#endif
#else
typedef struct ID3D10EffectVariableVtbl {
    BEGIN_INTERFACE

    /*** ID3D10EffectVariable methods ***/
    BOOL (STDMETHODCALLTYPE *IsValid)(
        ID3D10EffectVariable *This);

    ID3D10EffectType * (STDMETHODCALLTYPE *GetType)(
        ID3D10EffectVariable *This);

    HRESULT (STDMETHODCALLTYPE *GetDesc)(
        ID3D10EffectVariable *This,
        D3D10_EFFECT_VARIABLE_DESC *desc);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetAnnotationByIndex)(
        ID3D10EffectVariable *This,
        UINT index);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetAnnotationByName)(
        ID3D10EffectVariable *This,
        const char *name);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberByIndex)(
        ID3D10EffectVariable *This,
        UINT index);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberByName)(
        ID3D10EffectVariable *This,
        const char *name);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberBySemantic)(
        ID3D10EffectVariable *This,
        const char *semantic);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetElement)(
        ID3D10EffectVariable *This,
        UINT index);

    ID3D10EffectConstantBuffer * (STDMETHODCALLTYPE *GetParentConstantBuffer)(
        ID3D10EffectVariable *This);

    ID3D10EffectScalarVariable * (STDMETHODCALLTYPE *AsScalar)(
        ID3D10EffectVariable *This);

    ID3D10EffectVectorVariable * (STDMETHODCALLTYPE *AsVector)(
        ID3D10EffectVariable *This);

    ID3D10EffectMatrixVariable * (STDMETHODCALLTYPE *AsMatrix)(
        ID3D10EffectVariable *This);

    ID3D10EffectStringVariable * (STDMETHODCALLTYPE *AsString)(
        ID3D10EffectVariable *This);

    ID3D10EffectShaderResourceVariable * (STDMETHODCALLTYPE *AsShaderResource)(
        ID3D10EffectVariable *This);

    ID3D10EffectRenderTargetViewVariable * (STDMETHODCALLTYPE *AsRenderTargetView)(
        ID3D10EffectVariable *This);

    ID3D10EffectDepthStencilViewVariable * (STDMETHODCALLTYPE *AsDepthStencilView)(
        ID3D10EffectVariable *This);

    ID3D10EffectConstantBuffer * (STDMETHODCALLTYPE *AsConstantBuffer)(
        ID3D10EffectVariable *This);

    ID3D10EffectShaderVariable * (STDMETHODCALLTYPE *AsShader)(
        ID3D10EffectVariable *This);

    ID3D10EffectBlendVariable * (STDMETHODCALLTYPE *AsBlend)(
        ID3D10EffectVariable *This);

    ID3D10EffectDepthStencilVariable * (STDMETHODCALLTYPE *AsDepthStencil)(
        ID3D10EffectVariable *This);

    ID3D10EffectRasterizerVariable * (STDMETHODCALLTYPE *AsRasterizer)(
        ID3D10EffectVariable *This);

    ID3D10EffectSamplerVariable * (STDMETHODCALLTYPE *AsSampler)(
        ID3D10EffectVariable *This);

    HRESULT (STDMETHODCALLTYPE *SetRawValue)(
        ID3D10EffectVariable *This,
        void *data,
        UINT offset,
        UINT count);

    HRESULT (STDMETHODCALLTYPE *GetRawValue)(
        ID3D10EffectVariable *This,
        void *data,
        UINT offset,
        UINT count);

    END_INTERFACE
} ID3D10EffectVariableVtbl;

interface ID3D10EffectVariable {
    CONST_VTBL ID3D10EffectVariableVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** ID3D10EffectVariable methods ***/
#define ID3D10EffectVariable_IsValid(This) (This)->lpVtbl->IsValid(This)
#define ID3D10EffectVariable_GetType(This) (This)->lpVtbl->GetType(This)
#define ID3D10EffectVariable_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
#define ID3D10EffectVariable_GetAnnotationByIndex(This,index) (This)->lpVtbl->GetAnnotationByIndex(This,index)
#define ID3D10EffectVariable_GetAnnotationByName(This,name) (This)->lpVtbl->GetAnnotationByName(This,name)
#define ID3D10EffectVariable_GetMemberByIndex(This,index) (This)->lpVtbl->GetMemberByIndex(This,index)
#define ID3D10EffectVariable_GetMemberByName(This,name) (This)->lpVtbl->GetMemberByName(This,name)
#define ID3D10EffectVariable_GetMemberBySemantic(This,semantic) (This)->lpVtbl->GetMemberBySemantic(This,semantic)
#define ID3D10EffectVariable_GetElement(This,index) (This)->lpVtbl->GetElement(This,index)
#define ID3D10EffectVariable_GetParentConstantBuffer(This) (This)->lpVtbl->GetParentConstantBuffer(This)
#define ID3D10EffectVariable_AsScalar(This) (This)->lpVtbl->AsScalar(This)
#define ID3D10EffectVariable_AsVector(This) (This)->lpVtbl->AsVector(This)
#define ID3D10EffectVariable_AsMatrix(This) (This)->lpVtbl->AsMatrix(This)
#define ID3D10EffectVariable_AsString(This) (This)->lpVtbl->AsString(This)
#define ID3D10EffectVariable_AsShaderResource(This) (This)->lpVtbl->AsShaderResource(This)
#define ID3D10EffectVariable_AsRenderTargetView(This) (This)->lpVtbl->AsRenderTargetView(This)
#define ID3D10EffectVariable_AsDepthStencilView(This) (This)->lpVtbl->AsDepthStencilView(This)
#define ID3D10EffectVariable_AsConstantBuffer(This) (This)->lpVtbl->AsConstantBuffer(This)
#define ID3D10EffectVariable_AsShader(This) (This)->lpVtbl->AsShader(This)
#define ID3D10EffectVariable_AsBlend(This) (This)->lpVtbl->AsBlend(This)
#define ID3D10EffectVariable_AsDepthStencil(This) (This)->lpVtbl->AsDepthStencil(This)
#define ID3D10EffectVariable_AsRasterizer(This) (This)->lpVtbl->AsRasterizer(This)
#define ID3D10EffectVariable_AsSampler(This) (This)->lpVtbl->AsSampler(This)
#define ID3D10EffectVariable_SetRawValue(This,data,offset,count) (This)->lpVtbl->SetRawValue(This,data,offset,count)
#define ID3D10EffectVariable_GetRawValue(This,data,offset,count) (This)->lpVtbl->GetRawValue(This,data,offset,count)
#else
/*** ID3D10EffectVariable methods ***/
static __WIDL_INLINE BOOL ID3D10EffectVariable_IsValid(ID3D10EffectVariable* This) {
    return This->lpVtbl->IsValid(This);
}
static __WIDL_INLINE ID3D10EffectType * ID3D10EffectVariable_GetType(ID3D10EffectVariable* This) {
    return This->lpVtbl->GetType(This);
}
static __WIDL_INLINE HRESULT ID3D10EffectVariable_GetDesc(ID3D10EffectVariable* This,D3D10_EFFECT_VARIABLE_DESC *desc) {
    return This->lpVtbl->GetDesc(This,desc);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectVariable_GetAnnotationByIndex(ID3D10EffectVariable* This,UINT index) {
    return This->lpVtbl->GetAnnotationByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectVariable_GetAnnotationByName(ID3D10EffectVariable* This,const char *name) {
    return This->lpVtbl->GetAnnotationByName(This,name);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectVariable_GetMemberByIndex(ID3D10EffectVariable* This,UINT index) {
    return This->lpVtbl->GetMemberByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectVariable_GetMemberByName(ID3D10EffectVariable* This,const char *name) {
    return This->lpVtbl->GetMemberByName(This,name);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectVariable_GetMemberBySemantic(ID3D10EffectVariable* This,const char *semantic) {
    return This->lpVtbl->GetMemberBySemantic(This,semantic);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectVariable_GetElement(ID3D10EffectVariable* This,UINT index) {
    return This->lpVtbl->GetElement(This,index);
}
static __WIDL_INLINE ID3D10EffectConstantBuffer * ID3D10EffectVariable_GetParentConstantBuffer(ID3D10EffectVariable* This) {
    return This->lpVtbl->GetParentConstantBuffer(This);
}
static __WIDL_INLINE ID3D10EffectScalarVariable * ID3D10EffectVariable_AsScalar(ID3D10EffectVariable* This) {
    return This->lpVtbl->AsScalar(This);
}
static __WIDL_INLINE ID3D10EffectVectorVariable * ID3D10EffectVariable_AsVector(ID3D10EffectVariable* This) {
    return This->lpVtbl->AsVector(This);
}
static __WIDL_INLINE ID3D10EffectMatrixVariable * ID3D10EffectVariable_AsMatrix(ID3D10EffectVariable* This) {
    return This->lpVtbl->AsMatrix(This);
}
static __WIDL_INLINE ID3D10EffectStringVariable * ID3D10EffectVariable_AsString(ID3D10EffectVariable* This) {
    return This->lpVtbl->AsString(This);
}
static __WIDL_INLINE ID3D10EffectShaderResourceVariable * ID3D10EffectVariable_AsShaderResource(ID3D10EffectVariable* This) {
    return This->lpVtbl->AsShaderResource(This);
}
static __WIDL_INLINE ID3D10EffectRenderTargetViewVariable * ID3D10EffectVariable_AsRenderTargetView(ID3D10EffectVariable* This) {
    return This->lpVtbl->AsRenderTargetView(This);
}
static __WIDL_INLINE ID3D10EffectDepthStencilViewVariable * ID3D10EffectVariable_AsDepthStencilView(ID3D10EffectVariable* This) {
    return This->lpVtbl->AsDepthStencilView(This);
}
static __WIDL_INLINE ID3D10EffectConstantBuffer * ID3D10EffectVariable_AsConstantBuffer(ID3D10EffectVariable* This) {
    return This->lpVtbl->AsConstantBuffer(This);
}
static __WIDL_INLINE ID3D10EffectShaderVariable * ID3D10EffectVariable_AsShader(ID3D10EffectVariable* This) {
    return This->lpVtbl->AsShader(This);
}
static __WIDL_INLINE ID3D10EffectBlendVariable * ID3D10EffectVariable_AsBlend(ID3D10EffectVariable* This) {
    return This->lpVtbl->AsBlend(This);
}
static __WIDL_INLINE ID3D10EffectDepthStencilVariable * ID3D10EffectVariable_AsDepthStencil(ID3D10EffectVariable* This) {
    return This->lpVtbl->AsDepthStencil(This);
}
static __WIDL_INLINE ID3D10EffectRasterizerVariable * ID3D10EffectVariable_AsRasterizer(ID3D10EffectVariable* This) {
    return This->lpVtbl->AsRasterizer(This);
}
static __WIDL_INLINE ID3D10EffectSamplerVariable * ID3D10EffectVariable_AsSampler(ID3D10EffectVariable* This) {
    return This->lpVtbl->AsSampler(This);
}
static __WIDL_INLINE HRESULT ID3D10EffectVariable_SetRawValue(ID3D10EffectVariable* This,void *data,UINT offset,UINT count) {
    return This->lpVtbl->SetRawValue(This,data,offset,count);
}
static __WIDL_INLINE HRESULT ID3D10EffectVariable_GetRawValue(ID3D10EffectVariable* This,void *data,UINT offset,UINT count) {
    return This->lpVtbl->GetRawValue(This,data,offset,count);
}
#endif
#endif

#endif


#endif  /* __ID3D10EffectVariable_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ID3D10EffectConstantBuffer interface
 */
#ifndef __ID3D10EffectConstantBuffer_INTERFACE_DEFINED__
#define __ID3D10EffectConstantBuffer_INTERFACE_DEFINED__

DEFINE_GUID(IID_ID3D10EffectConstantBuffer, 0x56648f4d, 0xcc8b, 0x4444, 0xa5,0xad, 0xb5,0xa3,0xd7,0x6e,0x91,0xb3);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("56648f4d-cc8b-4444-a5ad-b5a3d76e91b3")
ID3D10EffectConstantBuffer : public ID3D10EffectVariable
{
    virtual HRESULT STDMETHODCALLTYPE SetConstantBuffer(
        ID3D10Buffer *buffer) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetConstantBuffer(
        ID3D10Buffer **buffer) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetTextureBuffer(
        ID3D10ShaderResourceView *view) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetTextureBuffer(
        ID3D10ShaderResourceView **view) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ID3D10EffectConstantBuffer, 0x56648f4d, 0xcc8b, 0x4444, 0xa5,0xad, 0xb5,0xa3,0xd7,0x6e,0x91,0xb3)
#endif
#else
typedef struct ID3D10EffectConstantBufferVtbl {
    BEGIN_INTERFACE

    /*** ID3D10EffectVariable methods ***/
    BOOL (STDMETHODCALLTYPE *IsValid)(
        ID3D10EffectConstantBuffer *This);

    ID3D10EffectType * (STDMETHODCALLTYPE *GetType)(
        ID3D10EffectConstantBuffer *This);

    HRESULT (STDMETHODCALLTYPE *GetDesc)(
        ID3D10EffectConstantBuffer *This,
        D3D10_EFFECT_VARIABLE_DESC *desc);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetAnnotationByIndex)(
        ID3D10EffectConstantBuffer *This,
        UINT index);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetAnnotationByName)(
        ID3D10EffectConstantBuffer *This,
        const char *name);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberByIndex)(
        ID3D10EffectConstantBuffer *This,
        UINT index);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberByName)(
        ID3D10EffectConstantBuffer *This,
        const char *name);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberBySemantic)(
        ID3D10EffectConstantBuffer *This,
        const char *semantic);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetElement)(
        ID3D10EffectConstantBuffer *This,
        UINT index);

    ID3D10EffectConstantBuffer * (STDMETHODCALLTYPE *GetParentConstantBuffer)(
        ID3D10EffectConstantBuffer *This);

    ID3D10EffectScalarVariable * (STDMETHODCALLTYPE *AsScalar)(
        ID3D10EffectConstantBuffer *This);

    ID3D10EffectVectorVariable * (STDMETHODCALLTYPE *AsVector)(
        ID3D10EffectConstantBuffer *This);

    ID3D10EffectMatrixVariable * (STDMETHODCALLTYPE *AsMatrix)(
        ID3D10EffectConstantBuffer *This);

    ID3D10EffectStringVariable * (STDMETHODCALLTYPE *AsString)(
        ID3D10EffectConstantBuffer *This);

    ID3D10EffectShaderResourceVariable * (STDMETHODCALLTYPE *AsShaderResource)(
        ID3D10EffectConstantBuffer *This);

    ID3D10EffectRenderTargetViewVariable * (STDMETHODCALLTYPE *AsRenderTargetView)(
        ID3D10EffectConstantBuffer *This);

    ID3D10EffectDepthStencilViewVariable * (STDMETHODCALLTYPE *AsDepthStencilView)(
        ID3D10EffectConstantBuffer *This);

    ID3D10EffectConstantBuffer * (STDMETHODCALLTYPE *AsConstantBuffer)(
        ID3D10EffectConstantBuffer *This);

    ID3D10EffectShaderVariable * (STDMETHODCALLTYPE *AsShader)(
        ID3D10EffectConstantBuffer *This);

    ID3D10EffectBlendVariable * (STDMETHODCALLTYPE *AsBlend)(
        ID3D10EffectConstantBuffer *This);

    ID3D10EffectDepthStencilVariable * (STDMETHODCALLTYPE *AsDepthStencil)(
        ID3D10EffectConstantBuffer *This);

    ID3D10EffectRasterizerVariable * (STDMETHODCALLTYPE *AsRasterizer)(
        ID3D10EffectConstantBuffer *This);

    ID3D10EffectSamplerVariable * (STDMETHODCALLTYPE *AsSampler)(
        ID3D10EffectConstantBuffer *This);

    HRESULT (STDMETHODCALLTYPE *SetRawValue)(
        ID3D10EffectConstantBuffer *This,
        void *data,
        UINT offset,
        UINT count);

    HRESULT (STDMETHODCALLTYPE *GetRawValue)(
        ID3D10EffectConstantBuffer *This,
        void *data,
        UINT offset,
        UINT count);

    /*** ID3D10EffectConstantBuffer methods ***/
    HRESULT (STDMETHODCALLTYPE *SetConstantBuffer)(
        ID3D10EffectConstantBuffer *This,
        ID3D10Buffer *buffer);

    HRESULT (STDMETHODCALLTYPE *GetConstantBuffer)(
        ID3D10EffectConstantBuffer *This,
        ID3D10Buffer **buffer);

    HRESULT (STDMETHODCALLTYPE *SetTextureBuffer)(
        ID3D10EffectConstantBuffer *This,
        ID3D10ShaderResourceView *view);

    HRESULT (STDMETHODCALLTYPE *GetTextureBuffer)(
        ID3D10EffectConstantBuffer *This,
        ID3D10ShaderResourceView **view);

    END_INTERFACE
} ID3D10EffectConstantBufferVtbl;

interface ID3D10EffectConstantBuffer {
    CONST_VTBL ID3D10EffectConstantBufferVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** ID3D10EffectVariable methods ***/
#define ID3D10EffectConstantBuffer_IsValid(This) (This)->lpVtbl->IsValid(This)
#define ID3D10EffectConstantBuffer_GetType(This) (This)->lpVtbl->GetType(This)
#define ID3D10EffectConstantBuffer_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
#define ID3D10EffectConstantBuffer_GetAnnotationByIndex(This,index) (This)->lpVtbl->GetAnnotationByIndex(This,index)
#define ID3D10EffectConstantBuffer_GetAnnotationByName(This,name) (This)->lpVtbl->GetAnnotationByName(This,name)
#define ID3D10EffectConstantBuffer_GetMemberByIndex(This,index) (This)->lpVtbl->GetMemberByIndex(This,index)
#define ID3D10EffectConstantBuffer_GetMemberByName(This,name) (This)->lpVtbl->GetMemberByName(This,name)
#define ID3D10EffectConstantBuffer_GetMemberBySemantic(This,semantic) (This)->lpVtbl->GetMemberBySemantic(This,semantic)
#define ID3D10EffectConstantBuffer_GetElement(This,index) (This)->lpVtbl->GetElement(This,index)
#define ID3D10EffectConstantBuffer_GetParentConstantBuffer(This) (This)->lpVtbl->GetParentConstantBuffer(This)
#define ID3D10EffectConstantBuffer_AsScalar(This) (This)->lpVtbl->AsScalar(This)
#define ID3D10EffectConstantBuffer_AsVector(This) (This)->lpVtbl->AsVector(This)
#define ID3D10EffectConstantBuffer_AsMatrix(This) (This)->lpVtbl->AsMatrix(This)
#define ID3D10EffectConstantBuffer_AsString(This) (This)->lpVtbl->AsString(This)
#define ID3D10EffectConstantBuffer_AsShaderResource(This) (This)->lpVtbl->AsShaderResource(This)
#define ID3D10EffectConstantBuffer_AsRenderTargetView(This) (This)->lpVtbl->AsRenderTargetView(This)
#define ID3D10EffectConstantBuffer_AsDepthStencilView(This) (This)->lpVtbl->AsDepthStencilView(This)
#define ID3D10EffectConstantBuffer_AsConstantBuffer(This) (This)->lpVtbl->AsConstantBuffer(This)
#define ID3D10EffectConstantBuffer_AsShader(This) (This)->lpVtbl->AsShader(This)
#define ID3D10EffectConstantBuffer_AsBlend(This) (This)->lpVtbl->AsBlend(This)
#define ID3D10EffectConstantBuffer_AsDepthStencil(This) (This)->lpVtbl->AsDepthStencil(This)
#define ID3D10EffectConstantBuffer_AsRasterizer(This) (This)->lpVtbl->AsRasterizer(This)
#define ID3D10EffectConstantBuffer_AsSampler(This) (This)->lpVtbl->AsSampler(This)
#define ID3D10EffectConstantBuffer_SetRawValue(This,data,offset,count) (This)->lpVtbl->SetRawValue(This,data,offset,count)
#define ID3D10EffectConstantBuffer_GetRawValue(This,data,offset,count) (This)->lpVtbl->GetRawValue(This,data,offset,count)
/*** ID3D10EffectConstantBuffer methods ***/
#define ID3D10EffectConstantBuffer_SetConstantBuffer(This,buffer) (This)->lpVtbl->SetConstantBuffer(This,buffer)
#define ID3D10EffectConstantBuffer_GetConstantBuffer(This,buffer) (This)->lpVtbl->GetConstantBuffer(This,buffer)
#define ID3D10EffectConstantBuffer_SetTextureBuffer(This,view) (This)->lpVtbl->SetTextureBuffer(This,view)
#define ID3D10EffectConstantBuffer_GetTextureBuffer(This,view) (This)->lpVtbl->GetTextureBuffer(This,view)
#else
/*** ID3D10EffectVariable methods ***/
static __WIDL_INLINE BOOL ID3D10EffectConstantBuffer_IsValid(ID3D10EffectConstantBuffer* This) {
    return This->lpVtbl->IsValid(This);
}
static __WIDL_INLINE ID3D10EffectType * ID3D10EffectConstantBuffer_GetType(ID3D10EffectConstantBuffer* This) {
    return This->lpVtbl->GetType(This);
}
static __WIDL_INLINE HRESULT ID3D10EffectConstantBuffer_GetDesc(ID3D10EffectConstantBuffer* This,D3D10_EFFECT_VARIABLE_DESC *desc) {
    return This->lpVtbl->GetDesc(This,desc);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectConstantBuffer_GetAnnotationByIndex(ID3D10EffectConstantBuffer* This,UINT index) {
    return This->lpVtbl->GetAnnotationByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectConstantBuffer_GetAnnotationByName(ID3D10EffectConstantBuffer* This,const char *name) {
    return This->lpVtbl->GetAnnotationByName(This,name);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectConstantBuffer_GetMemberByIndex(ID3D10EffectConstantBuffer* This,UINT index) {
    return This->lpVtbl->GetMemberByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectConstantBuffer_GetMemberByName(ID3D10EffectConstantBuffer* This,const char *name) {
    return This->lpVtbl->GetMemberByName(This,name);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectConstantBuffer_GetMemberBySemantic(ID3D10EffectConstantBuffer* This,const char *semantic) {
    return This->lpVtbl->GetMemberBySemantic(This,semantic);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectConstantBuffer_GetElement(ID3D10EffectConstantBuffer* This,UINT index) {
    return This->lpVtbl->GetElement(This,index);
}
static __WIDL_INLINE ID3D10EffectConstantBuffer * ID3D10EffectConstantBuffer_GetParentConstantBuffer(ID3D10EffectConstantBuffer* This) {
    return This->lpVtbl->GetParentConstantBuffer(This);
}
static __WIDL_INLINE ID3D10EffectScalarVariable * ID3D10EffectConstantBuffer_AsScalar(ID3D10EffectConstantBuffer* This) {
    return This->lpVtbl->AsScalar(This);
}
static __WIDL_INLINE ID3D10EffectVectorVariable * ID3D10EffectConstantBuffer_AsVector(ID3D10EffectConstantBuffer* This) {
    return This->lpVtbl->AsVector(This);
}
static __WIDL_INLINE ID3D10EffectMatrixVariable * ID3D10EffectConstantBuffer_AsMatrix(ID3D10EffectConstantBuffer* This) {
    return This->lpVtbl->AsMatrix(This);
}
static __WIDL_INLINE ID3D10EffectStringVariable * ID3D10EffectConstantBuffer_AsString(ID3D10EffectConstantBuffer* This) {
    return This->lpVtbl->AsString(This);
}
static __WIDL_INLINE ID3D10EffectShaderResourceVariable * ID3D10EffectConstantBuffer_AsShaderResource(ID3D10EffectConstantBuffer* This) {
    return This->lpVtbl->AsShaderResource(This);
}
static __WIDL_INLINE ID3D10EffectRenderTargetViewVariable * ID3D10EffectConstantBuffer_AsRenderTargetView(ID3D10EffectConstantBuffer* This) {
    return This->lpVtbl->AsRenderTargetView(This);
}
static __WIDL_INLINE ID3D10EffectDepthStencilViewVariable * ID3D10EffectConstantBuffer_AsDepthStencilView(ID3D10EffectConstantBuffer* This) {
    return This->lpVtbl->AsDepthStencilView(This);
}
static __WIDL_INLINE ID3D10EffectConstantBuffer * ID3D10EffectConstantBuffer_AsConstantBuffer(ID3D10EffectConstantBuffer* This) {
    return This->lpVtbl->AsConstantBuffer(This);
}
static __WIDL_INLINE ID3D10EffectShaderVariable * ID3D10EffectConstantBuffer_AsShader(ID3D10EffectConstantBuffer* This) {
    return This->lpVtbl->AsShader(This);
}
static __WIDL_INLINE ID3D10EffectBlendVariable * ID3D10EffectConstantBuffer_AsBlend(ID3D10EffectConstantBuffer* This) {
    return This->lpVtbl->AsBlend(This);
}
static __WIDL_INLINE ID3D10EffectDepthStencilVariable * ID3D10EffectConstantBuffer_AsDepthStencil(ID3D10EffectConstantBuffer* This) {
    return This->lpVtbl->AsDepthStencil(This);
}
static __WIDL_INLINE ID3D10EffectRasterizerVariable * ID3D10EffectConstantBuffer_AsRasterizer(ID3D10EffectConstantBuffer* This) {
    return This->lpVtbl->AsRasterizer(This);
}
static __WIDL_INLINE ID3D10EffectSamplerVariable * ID3D10EffectConstantBuffer_AsSampler(ID3D10EffectConstantBuffer* This) {
    return This->lpVtbl->AsSampler(This);
}
static __WIDL_INLINE HRESULT ID3D10EffectConstantBuffer_SetRawValue(ID3D10EffectConstantBuffer* This,void *data,UINT offset,UINT count) {
    return This->lpVtbl->SetRawValue(This,data,offset,count);
}
static __WIDL_INLINE HRESULT ID3D10EffectConstantBuffer_GetRawValue(ID3D10EffectConstantBuffer* This,void *data,UINT offset,UINT count) {
    return This->lpVtbl->GetRawValue(This,data,offset,count);
}
/*** ID3D10EffectConstantBuffer methods ***/
static __WIDL_INLINE HRESULT ID3D10EffectConstantBuffer_SetConstantBuffer(ID3D10EffectConstantBuffer* This,ID3D10Buffer *buffer) {
    return This->lpVtbl->SetConstantBuffer(This,buffer);
}
static __WIDL_INLINE HRESULT ID3D10EffectConstantBuffer_GetConstantBuffer(ID3D10EffectConstantBuffer* This,ID3D10Buffer **buffer) {
    return This->lpVtbl->GetConstantBuffer(This,buffer);
}
static __WIDL_INLINE HRESULT ID3D10EffectConstantBuffer_SetTextureBuffer(ID3D10EffectConstantBuffer* This,ID3D10ShaderResourceView *view) {
    return This->lpVtbl->SetTextureBuffer(This,view);
}
static __WIDL_INLINE HRESULT ID3D10EffectConstantBuffer_GetTextureBuffer(ID3D10EffectConstantBuffer* This,ID3D10ShaderResourceView **view) {
    return This->lpVtbl->GetTextureBuffer(This,view);
}
#endif
#endif

#endif


#endif  /* __ID3D10EffectConstantBuffer_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ID3D10EffectScalarVariable interface
 */
#ifndef __ID3D10EffectScalarVariable_INTERFACE_DEFINED__
#define __ID3D10EffectScalarVariable_INTERFACE_DEFINED__

DEFINE_GUID(IID_ID3D10EffectScalarVariable, 0x00e48f7b, 0xd2c8, 0x49e8, 0xa8,0x6c, 0x02,0x2d,0xee,0x53,0x43,0x1f);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("00e48f7b-d2c8-49e8-a86c-022dee53431f")
ID3D10EffectScalarVariable : public ID3D10EffectVariable
{
    virtual HRESULT STDMETHODCALLTYPE SetFloat(
        float value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetFloat(
        float *value) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetFloatArray(
        float *values,
        UINT offset,
        UINT count) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetFloatArray(
        float *values,
        UINT offset,
        UINT count) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetInt(
        int value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetInt(
        int *value) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetIntArray(
        int *values,
        UINT offset,
        UINT count) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetIntArray(
        int *values,
        UINT offset,
        UINT count) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetBool(
        BOOL value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetBool(
        BOOL *value) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetBoolArray(
        BOOL *values,
        UINT offset,
        UINT count) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetBoolArray(
        BOOL *values,
        UINT offset,
        UINT count) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ID3D10EffectScalarVariable, 0x00e48f7b, 0xd2c8, 0x49e8, 0xa8,0x6c, 0x02,0x2d,0xee,0x53,0x43,0x1f)
#endif
#else
typedef struct ID3D10EffectScalarVariableVtbl {
    BEGIN_INTERFACE

    /*** ID3D10EffectVariable methods ***/
    BOOL (STDMETHODCALLTYPE *IsValid)(
        ID3D10EffectScalarVariable *This);

    ID3D10EffectType * (STDMETHODCALLTYPE *GetType)(
        ID3D10EffectScalarVariable *This);

    HRESULT (STDMETHODCALLTYPE *GetDesc)(
        ID3D10EffectScalarVariable *This,
        D3D10_EFFECT_VARIABLE_DESC *desc);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetAnnotationByIndex)(
        ID3D10EffectScalarVariable *This,
        UINT index);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetAnnotationByName)(
        ID3D10EffectScalarVariable *This,
        const char *name);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberByIndex)(
        ID3D10EffectScalarVariable *This,
        UINT index);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberByName)(
        ID3D10EffectScalarVariable *This,
        const char *name);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberBySemantic)(
        ID3D10EffectScalarVariable *This,
        const char *semantic);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetElement)(
        ID3D10EffectScalarVariable *This,
        UINT index);

    ID3D10EffectConstantBuffer * (STDMETHODCALLTYPE *GetParentConstantBuffer)(
        ID3D10EffectScalarVariable *This);

    ID3D10EffectScalarVariable * (STDMETHODCALLTYPE *AsScalar)(
        ID3D10EffectScalarVariable *This);

    ID3D10EffectVectorVariable * (STDMETHODCALLTYPE *AsVector)(
        ID3D10EffectScalarVariable *This);

    ID3D10EffectMatrixVariable * (STDMETHODCALLTYPE *AsMatrix)(
        ID3D10EffectScalarVariable *This);

    ID3D10EffectStringVariable * (STDMETHODCALLTYPE *AsString)(
        ID3D10EffectScalarVariable *This);

    ID3D10EffectShaderResourceVariable * (STDMETHODCALLTYPE *AsShaderResource)(
        ID3D10EffectScalarVariable *This);

    ID3D10EffectRenderTargetViewVariable * (STDMETHODCALLTYPE *AsRenderTargetView)(
        ID3D10EffectScalarVariable *This);

    ID3D10EffectDepthStencilViewVariable * (STDMETHODCALLTYPE *AsDepthStencilView)(
        ID3D10EffectScalarVariable *This);

    ID3D10EffectConstantBuffer * (STDMETHODCALLTYPE *AsConstantBuffer)(
        ID3D10EffectScalarVariable *This);

    ID3D10EffectShaderVariable * (STDMETHODCALLTYPE *AsShader)(
        ID3D10EffectScalarVariable *This);

    ID3D10EffectBlendVariable * (STDMETHODCALLTYPE *AsBlend)(
        ID3D10EffectScalarVariable *This);

    ID3D10EffectDepthStencilVariable * (STDMETHODCALLTYPE *AsDepthStencil)(
        ID3D10EffectScalarVariable *This);

    ID3D10EffectRasterizerVariable * (STDMETHODCALLTYPE *AsRasterizer)(
        ID3D10EffectScalarVariable *This);

    ID3D10EffectSamplerVariable * (STDMETHODCALLTYPE *AsSampler)(
        ID3D10EffectScalarVariable *This);

    HRESULT (STDMETHODCALLTYPE *SetRawValue)(
        ID3D10EffectScalarVariable *This,
        void *data,
        UINT offset,
        UINT count);

    HRESULT (STDMETHODCALLTYPE *GetRawValue)(
        ID3D10EffectScalarVariable *This,
        void *data,
        UINT offset,
        UINT count);

    /*** ID3D10EffectScalarVariable methods ***/
    HRESULT (STDMETHODCALLTYPE *SetFloat)(
        ID3D10EffectScalarVariable *This,
        float value);

    HRESULT (STDMETHODCALLTYPE *GetFloat)(
        ID3D10EffectScalarVariable *This,
        float *value);

    HRESULT (STDMETHODCALLTYPE *SetFloatArray)(
        ID3D10EffectScalarVariable *This,
        float *values,
        UINT offset,
        UINT count);

    HRESULT (STDMETHODCALLTYPE *GetFloatArray)(
        ID3D10EffectScalarVariable *This,
        float *values,
        UINT offset,
        UINT count);

    HRESULT (STDMETHODCALLTYPE *SetInt)(
        ID3D10EffectScalarVariable *This,
        int value);

    HRESULT (STDMETHODCALLTYPE *GetInt)(
        ID3D10EffectScalarVariable *This,
        int *value);

    HRESULT (STDMETHODCALLTYPE *SetIntArray)(
        ID3D10EffectScalarVariable *This,
        int *values,
        UINT offset,
        UINT count);

    HRESULT (STDMETHODCALLTYPE *GetIntArray)(
        ID3D10EffectScalarVariable *This,
        int *values,
        UINT offset,
        UINT count);

    HRESULT (STDMETHODCALLTYPE *SetBool)(
        ID3D10EffectScalarVariable *This,
        BOOL value);

    HRESULT (STDMETHODCALLTYPE *GetBool)(
        ID3D10EffectScalarVariable *This,
        BOOL *value);

    HRESULT (STDMETHODCALLTYPE *SetBoolArray)(
        ID3D10EffectScalarVariable *This,
        BOOL *values,
        UINT offset,
        UINT count);

    HRESULT (STDMETHODCALLTYPE *GetBoolArray)(
        ID3D10EffectScalarVariable *This,
        BOOL *values,
        UINT offset,
        UINT count);

    END_INTERFACE
} ID3D10EffectScalarVariableVtbl;

interface ID3D10EffectScalarVariable {
    CONST_VTBL ID3D10EffectScalarVariableVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** ID3D10EffectVariable methods ***/
#define ID3D10EffectScalarVariable_IsValid(This) (This)->lpVtbl->IsValid(This)
#define ID3D10EffectScalarVariable_GetType(This) (This)->lpVtbl->GetType(This)
#define ID3D10EffectScalarVariable_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
#define ID3D10EffectScalarVariable_GetAnnotationByIndex(This,index) (This)->lpVtbl->GetAnnotationByIndex(This,index)
#define ID3D10EffectScalarVariable_GetAnnotationByName(This,name) (This)->lpVtbl->GetAnnotationByName(This,name)
#define ID3D10EffectScalarVariable_GetMemberByIndex(This,index) (This)->lpVtbl->GetMemberByIndex(This,index)
#define ID3D10EffectScalarVariable_GetMemberByName(This,name) (This)->lpVtbl->GetMemberByName(This,name)
#define ID3D10EffectScalarVariable_GetMemberBySemantic(This,semantic) (This)->lpVtbl->GetMemberBySemantic(This,semantic)
#define ID3D10EffectScalarVariable_GetElement(This,index) (This)->lpVtbl->GetElement(This,index)
#define ID3D10EffectScalarVariable_GetParentConstantBuffer(This) (This)->lpVtbl->GetParentConstantBuffer(This)
#define ID3D10EffectScalarVariable_AsScalar(This) (This)->lpVtbl->AsScalar(This)
#define ID3D10EffectScalarVariable_AsVector(This) (This)->lpVtbl->AsVector(This)
#define ID3D10EffectScalarVariable_AsMatrix(This) (This)->lpVtbl->AsMatrix(This)
#define ID3D10EffectScalarVariable_AsString(This) (This)->lpVtbl->AsString(This)
#define ID3D10EffectScalarVariable_AsShaderResource(This) (This)->lpVtbl->AsShaderResource(This)
#define ID3D10EffectScalarVariable_AsRenderTargetView(This) (This)->lpVtbl->AsRenderTargetView(This)
#define ID3D10EffectScalarVariable_AsDepthStencilView(This) (This)->lpVtbl->AsDepthStencilView(This)
#define ID3D10EffectScalarVariable_AsConstantBuffer(This) (This)->lpVtbl->AsConstantBuffer(This)
#define ID3D10EffectScalarVariable_AsShader(This) (This)->lpVtbl->AsShader(This)
#define ID3D10EffectScalarVariable_AsBlend(This) (This)->lpVtbl->AsBlend(This)
#define ID3D10EffectScalarVariable_AsDepthStencil(This) (This)->lpVtbl->AsDepthStencil(This)
#define ID3D10EffectScalarVariable_AsRasterizer(This) (This)->lpVtbl->AsRasterizer(This)
#define ID3D10EffectScalarVariable_AsSampler(This) (This)->lpVtbl->AsSampler(This)
#define ID3D10EffectScalarVariable_SetRawValue(This,data,offset,count) (This)->lpVtbl->SetRawValue(This,data,offset,count)
#define ID3D10EffectScalarVariable_GetRawValue(This,data,offset,count) (This)->lpVtbl->GetRawValue(This,data,offset,count)
/*** ID3D10EffectScalarVariable methods ***/
#define ID3D10EffectScalarVariable_SetFloat(This,value) (This)->lpVtbl->SetFloat(This,value)
#define ID3D10EffectScalarVariable_GetFloat(This,value) (This)->lpVtbl->GetFloat(This,value)
#define ID3D10EffectScalarVariable_SetFloatArray(This,values,offset,count) (This)->lpVtbl->SetFloatArray(This,values,offset,count)
#define ID3D10EffectScalarVariable_GetFloatArray(This,values,offset,count) (This)->lpVtbl->GetFloatArray(This,values,offset,count)
#define ID3D10EffectScalarVariable_SetInt(This,value) (This)->lpVtbl->SetInt(This,value)
#define ID3D10EffectScalarVariable_GetInt(This,value) (This)->lpVtbl->GetInt(This,value)
#define ID3D10EffectScalarVariable_SetIntArray(This,values,offset,count) (This)->lpVtbl->SetIntArray(This,values,offset,count)
#define ID3D10EffectScalarVariable_GetIntArray(This,values,offset,count) (This)->lpVtbl->GetIntArray(This,values,offset,count)
#define ID3D10EffectScalarVariable_SetBool(This,value) (This)->lpVtbl->SetBool(This,value)
#define ID3D10EffectScalarVariable_GetBool(This,value) (This)->lpVtbl->GetBool(This,value)
#define ID3D10EffectScalarVariable_SetBoolArray(This,values,offset,count) (This)->lpVtbl->SetBoolArray(This,values,offset,count)
#define ID3D10EffectScalarVariable_GetBoolArray(This,values,offset,count) (This)->lpVtbl->GetBoolArray(This,values,offset,count)
#else
/*** ID3D10EffectVariable methods ***/
static __WIDL_INLINE BOOL ID3D10EffectScalarVariable_IsValid(ID3D10EffectScalarVariable* This) {
    return This->lpVtbl->IsValid(This);
}
static __WIDL_INLINE ID3D10EffectType * ID3D10EffectScalarVariable_GetType(ID3D10EffectScalarVariable* This) {
    return This->lpVtbl->GetType(This);
}
static __WIDL_INLINE HRESULT ID3D10EffectScalarVariable_GetDesc(ID3D10EffectScalarVariable* This,D3D10_EFFECT_VARIABLE_DESC *desc) {
    return This->lpVtbl->GetDesc(This,desc);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectScalarVariable_GetAnnotationByIndex(ID3D10EffectScalarVariable* This,UINT index) {
    return This->lpVtbl->GetAnnotationByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectScalarVariable_GetAnnotationByName(ID3D10EffectScalarVariable* This,const char *name) {
    return This->lpVtbl->GetAnnotationByName(This,name);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectScalarVariable_GetMemberByIndex(ID3D10EffectScalarVariable* This,UINT index) {
    return This->lpVtbl->GetMemberByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectScalarVariable_GetMemberByName(ID3D10EffectScalarVariable* This,const char *name) {
    return This->lpVtbl->GetMemberByName(This,name);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectScalarVariable_GetMemberBySemantic(ID3D10EffectScalarVariable* This,const char *semantic) {
    return This->lpVtbl->GetMemberBySemantic(This,semantic);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectScalarVariable_GetElement(ID3D10EffectScalarVariable* This,UINT index) {
    return This->lpVtbl->GetElement(This,index);
}
static __WIDL_INLINE ID3D10EffectConstantBuffer * ID3D10EffectScalarVariable_GetParentConstantBuffer(ID3D10EffectScalarVariable* This) {
    return This->lpVtbl->GetParentConstantBuffer(This);
}
static __WIDL_INLINE ID3D10EffectScalarVariable * ID3D10EffectScalarVariable_AsScalar(ID3D10EffectScalarVariable* This) {
    return This->lpVtbl->AsScalar(This);
}
static __WIDL_INLINE ID3D10EffectVectorVariable * ID3D10EffectScalarVariable_AsVector(ID3D10EffectScalarVariable* This) {
    return This->lpVtbl->AsVector(This);
}
static __WIDL_INLINE ID3D10EffectMatrixVariable * ID3D10EffectScalarVariable_AsMatrix(ID3D10EffectScalarVariable* This) {
    return This->lpVtbl->AsMatrix(This);
}
static __WIDL_INLINE ID3D10EffectStringVariable * ID3D10EffectScalarVariable_AsString(ID3D10EffectScalarVariable* This) {
    return This->lpVtbl->AsString(This);
}
static __WIDL_INLINE ID3D10EffectShaderResourceVariable * ID3D10EffectScalarVariable_AsShaderResource(ID3D10EffectScalarVariable* This) {
    return This->lpVtbl->AsShaderResource(This);
}
static __WIDL_INLINE ID3D10EffectRenderTargetViewVariable * ID3D10EffectScalarVariable_AsRenderTargetView(ID3D10EffectScalarVariable* This) {
    return This->lpVtbl->AsRenderTargetView(This);
}
static __WIDL_INLINE ID3D10EffectDepthStencilViewVariable * ID3D10EffectScalarVariable_AsDepthStencilView(ID3D10EffectScalarVariable* This) {
    return This->lpVtbl->AsDepthStencilView(This);
}
static __WIDL_INLINE ID3D10EffectConstantBuffer * ID3D10EffectScalarVariable_AsConstantBuffer(ID3D10EffectScalarVariable* This) {
    return This->lpVtbl->AsConstantBuffer(This);
}
static __WIDL_INLINE ID3D10EffectShaderVariable * ID3D10EffectScalarVariable_AsShader(ID3D10EffectScalarVariable* This) {
    return This->lpVtbl->AsShader(This);
}
static __WIDL_INLINE ID3D10EffectBlendVariable * ID3D10EffectScalarVariable_AsBlend(ID3D10EffectScalarVariable* This) {
    return This->lpVtbl->AsBlend(This);
}
static __WIDL_INLINE ID3D10EffectDepthStencilVariable * ID3D10EffectScalarVariable_AsDepthStencil(ID3D10EffectScalarVariable* This) {
    return This->lpVtbl->AsDepthStencil(This);
}
static __WIDL_INLINE ID3D10EffectRasterizerVariable * ID3D10EffectScalarVariable_AsRasterizer(ID3D10EffectScalarVariable* This) {
    return This->lpVtbl->AsRasterizer(This);
}
static __WIDL_INLINE ID3D10EffectSamplerVariable * ID3D10EffectScalarVariable_AsSampler(ID3D10EffectScalarVariable* This) {
    return This->lpVtbl->AsSampler(This);
}
static __WIDL_INLINE HRESULT ID3D10EffectScalarVariable_SetRawValue(ID3D10EffectScalarVariable* This,void *data,UINT offset,UINT count) {
    return This->lpVtbl->SetRawValue(This,data,offset,count);
}
static __WIDL_INLINE HRESULT ID3D10EffectScalarVariable_GetRawValue(ID3D10EffectScalarVariable* This,void *data,UINT offset,UINT count) {
    return This->lpVtbl->GetRawValue(This,data,offset,count);
}
/*** ID3D10EffectScalarVariable methods ***/
static __WIDL_INLINE HRESULT ID3D10EffectScalarVariable_SetFloat(ID3D10EffectScalarVariable* This,float value) {
    return This->lpVtbl->SetFloat(This,value);
}
static __WIDL_INLINE HRESULT ID3D10EffectScalarVariable_GetFloat(ID3D10EffectScalarVariable* This,float *value) {
    return This->lpVtbl->GetFloat(This,value);
}
static __WIDL_INLINE HRESULT ID3D10EffectScalarVariable_SetFloatArray(ID3D10EffectScalarVariable* This,float *values,UINT offset,UINT count) {
    return This->lpVtbl->SetFloatArray(This,values,offset,count);
}
static __WIDL_INLINE HRESULT ID3D10EffectScalarVariable_GetFloatArray(ID3D10EffectScalarVariable* This,float *values,UINT offset,UINT count) {
    return This->lpVtbl->GetFloatArray(This,values,offset,count);
}
static __WIDL_INLINE HRESULT ID3D10EffectScalarVariable_SetInt(ID3D10EffectScalarVariable* This,int value) {
    return This->lpVtbl->SetInt(This,value);
}
static __WIDL_INLINE HRESULT ID3D10EffectScalarVariable_GetInt(ID3D10EffectScalarVariable* This,int *value) {
    return This->lpVtbl->GetInt(This,value);
}
static __WIDL_INLINE HRESULT ID3D10EffectScalarVariable_SetIntArray(ID3D10EffectScalarVariable* This,int *values,UINT offset,UINT count) {
    return This->lpVtbl->SetIntArray(This,values,offset,count);
}
static __WIDL_INLINE HRESULT ID3D10EffectScalarVariable_GetIntArray(ID3D10EffectScalarVariable* This,int *values,UINT offset,UINT count) {
    return This->lpVtbl->GetIntArray(This,values,offset,count);
}
static __WIDL_INLINE HRESULT ID3D10EffectScalarVariable_SetBool(ID3D10EffectScalarVariable* This,BOOL value) {
    return This->lpVtbl->SetBool(This,value);
}
static __WIDL_INLINE HRESULT ID3D10EffectScalarVariable_GetBool(ID3D10EffectScalarVariable* This,BOOL *value) {
    return This->lpVtbl->GetBool(This,value);
}
static __WIDL_INLINE HRESULT ID3D10EffectScalarVariable_SetBoolArray(ID3D10EffectScalarVariable* This,BOOL *values,UINT offset,UINT count) {
    return This->lpVtbl->SetBoolArray(This,values,offset,count);
}
static __WIDL_INLINE HRESULT ID3D10EffectScalarVariable_GetBoolArray(ID3D10EffectScalarVariable* This,BOOL *values,UINT offset,UINT count) {
    return This->lpVtbl->GetBoolArray(This,values,offset,count);
}
#endif
#endif

#endif


#endif  /* __ID3D10EffectScalarVariable_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ID3D10EffectVectorVariable interface
 */
#ifndef __ID3D10EffectVectorVariable_INTERFACE_DEFINED__
#define __ID3D10EffectVectorVariable_INTERFACE_DEFINED__

DEFINE_GUID(IID_ID3D10EffectVectorVariable, 0x62b98c44, 0x1f82, 0x4c67, 0xbc,0xd0, 0x72,0xcf,0x8f,0x21,0x7e,0x81);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("62b98c44-1f82-4c67-bcd0-72cf8f217e81")
ID3D10EffectVectorVariable : public ID3D10EffectVariable
{
    virtual HRESULT STDMETHODCALLTYPE SetBoolVector(
        BOOL *value) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetIntVector(
        int *value) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetFloatVector(
        float *value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetBoolVector(
        BOOL *value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetIntVector(
        int *value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetFloatVector(
        float *value) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetBoolVectorArray(
        BOOL *values,
        UINT offset,
        UINT count) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetIntVectorArray(
        int *values,
        UINT offset,
        UINT count) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetFloatVectorArray(
        float *values,
        UINT offset,
        UINT count) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetBoolVectorArray(
        BOOL *values,
        UINT offset,
        UINT count) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetIntVectorArray(
        int *values,
        UINT offset,
        UINT count) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetFloatVectorArray(
        float *values,
        UINT offset,
        UINT count) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ID3D10EffectVectorVariable, 0x62b98c44, 0x1f82, 0x4c67, 0xbc,0xd0, 0x72,0xcf,0x8f,0x21,0x7e,0x81)
#endif
#else
typedef struct ID3D10EffectVectorVariableVtbl {
    BEGIN_INTERFACE

    /*** ID3D10EffectVariable methods ***/
    BOOL (STDMETHODCALLTYPE *IsValid)(
        ID3D10EffectVectorVariable *This);

    ID3D10EffectType * (STDMETHODCALLTYPE *GetType)(
        ID3D10EffectVectorVariable *This);

    HRESULT (STDMETHODCALLTYPE *GetDesc)(
        ID3D10EffectVectorVariable *This,
        D3D10_EFFECT_VARIABLE_DESC *desc);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetAnnotationByIndex)(
        ID3D10EffectVectorVariable *This,
        UINT index);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetAnnotationByName)(
        ID3D10EffectVectorVariable *This,
        const char *name);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberByIndex)(
        ID3D10EffectVectorVariable *This,
        UINT index);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberByName)(
        ID3D10EffectVectorVariable *This,
        const char *name);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberBySemantic)(
        ID3D10EffectVectorVariable *This,
        const char *semantic);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetElement)(
        ID3D10EffectVectorVariable *This,
        UINT index);

    ID3D10EffectConstantBuffer * (STDMETHODCALLTYPE *GetParentConstantBuffer)(
        ID3D10EffectVectorVariable *This);

    ID3D10EffectScalarVariable * (STDMETHODCALLTYPE *AsScalar)(
        ID3D10EffectVectorVariable *This);

    ID3D10EffectVectorVariable * (STDMETHODCALLTYPE *AsVector)(
        ID3D10EffectVectorVariable *This);

    ID3D10EffectMatrixVariable * (STDMETHODCALLTYPE *AsMatrix)(
        ID3D10EffectVectorVariable *This);

    ID3D10EffectStringVariable * (STDMETHODCALLTYPE *AsString)(
        ID3D10EffectVectorVariable *This);

    ID3D10EffectShaderResourceVariable * (STDMETHODCALLTYPE *AsShaderResource)(
        ID3D10EffectVectorVariable *This);

    ID3D10EffectRenderTargetViewVariable * (STDMETHODCALLTYPE *AsRenderTargetView)(
        ID3D10EffectVectorVariable *This);

    ID3D10EffectDepthStencilViewVariable * (STDMETHODCALLTYPE *AsDepthStencilView)(
        ID3D10EffectVectorVariable *This);

    ID3D10EffectConstantBuffer * (STDMETHODCALLTYPE *AsConstantBuffer)(
        ID3D10EffectVectorVariable *This);

    ID3D10EffectShaderVariable * (STDMETHODCALLTYPE *AsShader)(
        ID3D10EffectVectorVariable *This);

    ID3D10EffectBlendVariable * (STDMETHODCALLTYPE *AsBlend)(
        ID3D10EffectVectorVariable *This);

    ID3D10EffectDepthStencilVariable * (STDMETHODCALLTYPE *AsDepthStencil)(
        ID3D10EffectVectorVariable *This);

    ID3D10EffectRasterizerVariable * (STDMETHODCALLTYPE *AsRasterizer)(
        ID3D10EffectVectorVariable *This);

    ID3D10EffectSamplerVariable * (STDMETHODCALLTYPE *AsSampler)(
        ID3D10EffectVectorVariable *This);

    HRESULT (STDMETHODCALLTYPE *SetRawValue)(
        ID3D10EffectVectorVariable *This,
        void *data,
        UINT offset,
        UINT count);

    HRESULT (STDMETHODCALLTYPE *GetRawValue)(
        ID3D10EffectVectorVariable *This,
        void *data,
        UINT offset,
        UINT count);

    /*** ID3D10EffectVectorVariable methods ***/
    HRESULT (STDMETHODCALLTYPE *SetBoolVector)(
        ID3D10EffectVectorVariable *This,
        BOOL *value);

    HRESULT (STDMETHODCALLTYPE *SetIntVector)(
        ID3D10EffectVectorVariable *This,
        int *value);

    HRESULT (STDMETHODCALLTYPE *SetFloatVector)(
        ID3D10EffectVectorVariable *This,
        float *value);

    HRESULT (STDMETHODCALLTYPE *GetBoolVector)(
        ID3D10EffectVectorVariable *This,
        BOOL *value);

    HRESULT (STDMETHODCALLTYPE *GetIntVector)(
        ID3D10EffectVectorVariable *This,
        int *value);

    HRESULT (STDMETHODCALLTYPE *GetFloatVector)(
        ID3D10EffectVectorVariable *This,
        float *value);

    HRESULT (STDMETHODCALLTYPE *SetBoolVectorArray)(
        ID3D10EffectVectorVariable *This,
        BOOL *values,
        UINT offset,
        UINT count);

    HRESULT (STDMETHODCALLTYPE *SetIntVectorArray)(
        ID3D10EffectVectorVariable *This,
        int *values,
        UINT offset,
        UINT count);

    HRESULT (STDMETHODCALLTYPE *SetFloatVectorArray)(
        ID3D10EffectVectorVariable *This,
        float *values,
        UINT offset,
        UINT count);

    HRESULT (STDMETHODCALLTYPE *GetBoolVectorArray)(
        ID3D10EffectVectorVariable *This,
        BOOL *values,
        UINT offset,
        UINT count);

    HRESULT (STDMETHODCALLTYPE *GetIntVectorArray)(
        ID3D10EffectVectorVariable *This,
        int *values,
        UINT offset,
        UINT count);

    HRESULT (STDMETHODCALLTYPE *GetFloatVectorArray)(
        ID3D10EffectVectorVariable *This,
        float *values,
        UINT offset,
        UINT count);

    END_INTERFACE
} ID3D10EffectVectorVariableVtbl;

interface ID3D10EffectVectorVariable {
    CONST_VTBL ID3D10EffectVectorVariableVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** ID3D10EffectVariable methods ***/
#define ID3D10EffectVectorVariable_IsValid(This) (This)->lpVtbl->IsValid(This)
#define ID3D10EffectVectorVariable_GetType(This) (This)->lpVtbl->GetType(This)
#define ID3D10EffectVectorVariable_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
#define ID3D10EffectVectorVariable_GetAnnotationByIndex(This,index) (This)->lpVtbl->GetAnnotationByIndex(This,index)
#define ID3D10EffectVectorVariable_GetAnnotationByName(This,name) (This)->lpVtbl->GetAnnotationByName(This,name)
#define ID3D10EffectVectorVariable_GetMemberByIndex(This,index) (This)->lpVtbl->GetMemberByIndex(This,index)
#define ID3D10EffectVectorVariable_GetMemberByName(This,name) (This)->lpVtbl->GetMemberByName(This,name)
#define ID3D10EffectVectorVariable_GetMemberBySemantic(This,semantic) (This)->lpVtbl->GetMemberBySemantic(This,semantic)
#define ID3D10EffectVectorVariable_GetElement(This,index) (This)->lpVtbl->GetElement(This,index)
#define ID3D10EffectVectorVariable_GetParentConstantBuffer(This) (This)->lpVtbl->GetParentConstantBuffer(This)
#define ID3D10EffectVectorVariable_AsScalar(This) (This)->lpVtbl->AsScalar(This)
#define ID3D10EffectVectorVariable_AsVector(This) (This)->lpVtbl->AsVector(This)
#define ID3D10EffectVectorVariable_AsMatrix(This) (This)->lpVtbl->AsMatrix(This)
#define ID3D10EffectVectorVariable_AsString(This) (This)->lpVtbl->AsString(This)
#define ID3D10EffectVectorVariable_AsShaderResource(This) (This)->lpVtbl->AsShaderResource(This)
#define ID3D10EffectVectorVariable_AsRenderTargetView(This) (This)->lpVtbl->AsRenderTargetView(This)
#define ID3D10EffectVectorVariable_AsDepthStencilView(This) (This)->lpVtbl->AsDepthStencilView(This)
#define ID3D10EffectVectorVariable_AsConstantBuffer(This) (This)->lpVtbl->AsConstantBuffer(This)
#define ID3D10EffectVectorVariable_AsShader(This) (This)->lpVtbl->AsShader(This)
#define ID3D10EffectVectorVariable_AsBlend(This) (This)->lpVtbl->AsBlend(This)
#define ID3D10EffectVectorVariable_AsDepthStencil(This) (This)->lpVtbl->AsDepthStencil(This)
#define ID3D10EffectVectorVariable_AsRasterizer(This) (This)->lpVtbl->AsRasterizer(This)
#define ID3D10EffectVectorVariable_AsSampler(This) (This)->lpVtbl->AsSampler(This)
#define ID3D10EffectVectorVariable_SetRawValue(This,data,offset,count) (This)->lpVtbl->SetRawValue(This,data,offset,count)
#define ID3D10EffectVectorVariable_GetRawValue(This,data,offset,count) (This)->lpVtbl->GetRawValue(This,data,offset,count)
/*** ID3D10EffectVectorVariable methods ***/
#define ID3D10EffectVectorVariable_SetBoolVector(This,value) (This)->lpVtbl->SetBoolVector(This,value)
#define ID3D10EffectVectorVariable_SetIntVector(This,value) (This)->lpVtbl->SetIntVector(This,value)
#define ID3D10EffectVectorVariable_SetFloatVector(This,value) (This)->lpVtbl->SetFloatVector(This,value)
#define ID3D10EffectVectorVariable_GetBoolVector(This,value) (This)->lpVtbl->GetBoolVector(This,value)
#define ID3D10EffectVectorVariable_GetIntVector(This,value) (This)->lpVtbl->GetIntVector(This,value)
#define ID3D10EffectVectorVariable_GetFloatVector(This,value) (This)->lpVtbl->GetFloatVector(This,value)
#define ID3D10EffectVectorVariable_SetBoolVectorArray(This,values,offset,count) (This)->lpVtbl->SetBoolVectorArray(This,values,offset,count)
#define ID3D10EffectVectorVariable_SetIntVectorArray(This,values,offset,count) (This)->lpVtbl->SetIntVectorArray(This,values,offset,count)
#define ID3D10EffectVectorVariable_SetFloatVectorArray(This,values,offset,count) (This)->lpVtbl->SetFloatVectorArray(This,values,offset,count)
#define ID3D10EffectVectorVariable_GetBoolVectorArray(This,values,offset,count) (This)->lpVtbl->GetBoolVectorArray(This,values,offset,count)
#define ID3D10EffectVectorVariable_GetIntVectorArray(This,values,offset,count) (This)->lpVtbl->GetIntVectorArray(This,values,offset,count)
#define ID3D10EffectVectorVariable_GetFloatVectorArray(This,values,offset,count) (This)->lpVtbl->GetFloatVectorArray(This,values,offset,count)
#else
/*** ID3D10EffectVariable methods ***/
static __WIDL_INLINE BOOL ID3D10EffectVectorVariable_IsValid(ID3D10EffectVectorVariable* This) {
    return This->lpVtbl->IsValid(This);
}
static __WIDL_INLINE ID3D10EffectType * ID3D10EffectVectorVariable_GetType(ID3D10EffectVectorVariable* This) {
    return This->lpVtbl->GetType(This);
}
static __WIDL_INLINE HRESULT ID3D10EffectVectorVariable_GetDesc(ID3D10EffectVectorVariable* This,D3D10_EFFECT_VARIABLE_DESC *desc) {
    return This->lpVtbl->GetDesc(This,desc);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectVectorVariable_GetAnnotationByIndex(ID3D10EffectVectorVariable* This,UINT index) {
    return This->lpVtbl->GetAnnotationByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectVectorVariable_GetAnnotationByName(ID3D10EffectVectorVariable* This,const char *name) {
    return This->lpVtbl->GetAnnotationByName(This,name);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectVectorVariable_GetMemberByIndex(ID3D10EffectVectorVariable* This,UINT index) {
    return This->lpVtbl->GetMemberByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectVectorVariable_GetMemberByName(ID3D10EffectVectorVariable* This,const char *name) {
    return This->lpVtbl->GetMemberByName(This,name);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectVectorVariable_GetMemberBySemantic(ID3D10EffectVectorVariable* This,const char *semantic) {
    return This->lpVtbl->GetMemberBySemantic(This,semantic);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectVectorVariable_GetElement(ID3D10EffectVectorVariable* This,UINT index) {
    return This->lpVtbl->GetElement(This,index);
}
static __WIDL_INLINE ID3D10EffectConstantBuffer * ID3D10EffectVectorVariable_GetParentConstantBuffer(ID3D10EffectVectorVariable* This) {
    return This->lpVtbl->GetParentConstantBuffer(This);
}
static __WIDL_INLINE ID3D10EffectScalarVariable * ID3D10EffectVectorVariable_AsScalar(ID3D10EffectVectorVariable* This) {
    return This->lpVtbl->AsScalar(This);
}
static __WIDL_INLINE ID3D10EffectVectorVariable * ID3D10EffectVectorVariable_AsVector(ID3D10EffectVectorVariable* This) {
    return This->lpVtbl->AsVector(This);
}
static __WIDL_INLINE ID3D10EffectMatrixVariable * ID3D10EffectVectorVariable_AsMatrix(ID3D10EffectVectorVariable* This) {
    return This->lpVtbl->AsMatrix(This);
}
static __WIDL_INLINE ID3D10EffectStringVariable * ID3D10EffectVectorVariable_AsString(ID3D10EffectVectorVariable* This) {
    return This->lpVtbl->AsString(This);
}
static __WIDL_INLINE ID3D10EffectShaderResourceVariable * ID3D10EffectVectorVariable_AsShaderResource(ID3D10EffectVectorVariable* This) {
    return This->lpVtbl->AsShaderResource(This);
}
static __WIDL_INLINE ID3D10EffectRenderTargetViewVariable * ID3D10EffectVectorVariable_AsRenderTargetView(ID3D10EffectVectorVariable* This) {
    return This->lpVtbl->AsRenderTargetView(This);
}
static __WIDL_INLINE ID3D10EffectDepthStencilViewVariable * ID3D10EffectVectorVariable_AsDepthStencilView(ID3D10EffectVectorVariable* This) {
    return This->lpVtbl->AsDepthStencilView(This);
}
static __WIDL_INLINE ID3D10EffectConstantBuffer * ID3D10EffectVectorVariable_AsConstantBuffer(ID3D10EffectVectorVariable* This) {
    return This->lpVtbl->AsConstantBuffer(This);
}
static __WIDL_INLINE ID3D10EffectShaderVariable * ID3D10EffectVectorVariable_AsShader(ID3D10EffectVectorVariable* This) {
    return This->lpVtbl->AsShader(This);
}
static __WIDL_INLINE ID3D10EffectBlendVariable * ID3D10EffectVectorVariable_AsBlend(ID3D10EffectVectorVariable* This) {
    return This->lpVtbl->AsBlend(This);
}
static __WIDL_INLINE ID3D10EffectDepthStencilVariable * ID3D10EffectVectorVariable_AsDepthStencil(ID3D10EffectVectorVariable* This) {
    return This->lpVtbl->AsDepthStencil(This);
}
static __WIDL_INLINE ID3D10EffectRasterizerVariable * ID3D10EffectVectorVariable_AsRasterizer(ID3D10EffectVectorVariable* This) {
    return This->lpVtbl->AsRasterizer(This);
}
static __WIDL_INLINE ID3D10EffectSamplerVariable * ID3D10EffectVectorVariable_AsSampler(ID3D10EffectVectorVariable* This) {
    return This->lpVtbl->AsSampler(This);
}
static __WIDL_INLINE HRESULT ID3D10EffectVectorVariable_SetRawValue(ID3D10EffectVectorVariable* This,void *data,UINT offset,UINT count) {
    return This->lpVtbl->SetRawValue(This,data,offset,count);
}
static __WIDL_INLINE HRESULT ID3D10EffectVectorVariable_GetRawValue(ID3D10EffectVectorVariable* This,void *data,UINT offset,UINT count) {
    return This->lpVtbl->GetRawValue(This,data,offset,count);
}
/*** ID3D10EffectVectorVariable methods ***/
static __WIDL_INLINE HRESULT ID3D10EffectVectorVariable_SetBoolVector(ID3D10EffectVectorVariable* This,BOOL *value) {
    return This->lpVtbl->SetBoolVector(This,value);
}
static __WIDL_INLINE HRESULT ID3D10EffectVectorVariable_SetIntVector(ID3D10EffectVectorVariable* This,int *value) {
    return This->lpVtbl->SetIntVector(This,value);
}
static __WIDL_INLINE HRESULT ID3D10EffectVectorVariable_SetFloatVector(ID3D10EffectVectorVariable* This,float *value) {
    return This->lpVtbl->SetFloatVector(This,value);
}
static __WIDL_INLINE HRESULT ID3D10EffectVectorVariable_GetBoolVector(ID3D10EffectVectorVariable* This,BOOL *value) {
    return This->lpVtbl->GetBoolVector(This,value);
}
static __WIDL_INLINE HRESULT ID3D10EffectVectorVariable_GetIntVector(ID3D10EffectVectorVariable* This,int *value) {
    return This->lpVtbl->GetIntVector(This,value);
}
static __WIDL_INLINE HRESULT ID3D10EffectVectorVariable_GetFloatVector(ID3D10EffectVectorVariable* This,float *value) {
    return This->lpVtbl->GetFloatVector(This,value);
}
static __WIDL_INLINE HRESULT ID3D10EffectVectorVariable_SetBoolVectorArray(ID3D10EffectVectorVariable* This,BOOL *values,UINT offset,UINT count) {
    return This->lpVtbl->SetBoolVectorArray(This,values,offset,count);
}
static __WIDL_INLINE HRESULT ID3D10EffectVectorVariable_SetIntVectorArray(ID3D10EffectVectorVariable* This,int *values,UINT offset,UINT count) {
    return This->lpVtbl->SetIntVectorArray(This,values,offset,count);
}
static __WIDL_INLINE HRESULT ID3D10EffectVectorVariable_SetFloatVectorArray(ID3D10EffectVectorVariable* This,float *values,UINT offset,UINT count) {
    return This->lpVtbl->SetFloatVectorArray(This,values,offset,count);
}
static __WIDL_INLINE HRESULT ID3D10EffectVectorVariable_GetBoolVectorArray(ID3D10EffectVectorVariable* This,BOOL *values,UINT offset,UINT count) {
    return This->lpVtbl->GetBoolVectorArray(This,values,offset,count);
}
static __WIDL_INLINE HRESULT ID3D10EffectVectorVariable_GetIntVectorArray(ID3D10EffectVectorVariable* This,int *values,UINT offset,UINT count) {
    return This->lpVtbl->GetIntVectorArray(This,values,offset,count);
}
static __WIDL_INLINE HRESULT ID3D10EffectVectorVariable_GetFloatVectorArray(ID3D10EffectVectorVariable* This,float *values,UINT offset,UINT count) {
    return This->lpVtbl->GetFloatVectorArray(This,values,offset,count);
}
#endif
#endif

#endif


#endif  /* __ID3D10EffectVectorVariable_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ID3D10EffectMatrixVariable interface
 */
#ifndef __ID3D10EffectMatrixVariable_INTERFACE_DEFINED__
#define __ID3D10EffectMatrixVariable_INTERFACE_DEFINED__

DEFINE_GUID(IID_ID3D10EffectMatrixVariable, 0x50666c24, 0xb82f, 0x4eed, 0xa1,0x72, 0x5b,0x6e,0x7e,0x85,0x22,0xe0);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("50666c24-b82f-4eed-a172-5b6e7e8522e0")
ID3D10EffectMatrixVariable : public ID3D10EffectVariable
{
    virtual HRESULT STDMETHODCALLTYPE SetMatrix(
        float *data) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetMatrix(
        float *data) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetMatrixArray(
        float *data,
        UINT offset,
        UINT count) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetMatrixArray(
        float *data,
        UINT offset,
        UINT count) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetMatrixTranspose(
        float *data) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetMatrixTranspose(
        float *data) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetMatrixTransposeArray(
        float *data,
        UINT offset,
        UINT count) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetMatrixTransposeArray(
        float *data,
        UINT offset,
        UINT count) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ID3D10EffectMatrixVariable, 0x50666c24, 0xb82f, 0x4eed, 0xa1,0x72, 0x5b,0x6e,0x7e,0x85,0x22,0xe0)
#endif
#else
typedef struct ID3D10EffectMatrixVariableVtbl {
    BEGIN_INTERFACE

    /*** ID3D10EffectVariable methods ***/
    BOOL (STDMETHODCALLTYPE *IsValid)(
        ID3D10EffectMatrixVariable *This);

    ID3D10EffectType * (STDMETHODCALLTYPE *GetType)(
        ID3D10EffectMatrixVariable *This);

    HRESULT (STDMETHODCALLTYPE *GetDesc)(
        ID3D10EffectMatrixVariable *This,
        D3D10_EFFECT_VARIABLE_DESC *desc);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetAnnotationByIndex)(
        ID3D10EffectMatrixVariable *This,
        UINT index);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetAnnotationByName)(
        ID3D10EffectMatrixVariable *This,
        const char *name);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberByIndex)(
        ID3D10EffectMatrixVariable *This,
        UINT index);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberByName)(
        ID3D10EffectMatrixVariable *This,
        const char *name);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberBySemantic)(
        ID3D10EffectMatrixVariable *This,
        const char *semantic);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetElement)(
        ID3D10EffectMatrixVariable *This,
        UINT index);

    ID3D10EffectConstantBuffer * (STDMETHODCALLTYPE *GetParentConstantBuffer)(
        ID3D10EffectMatrixVariable *This);

    ID3D10EffectScalarVariable * (STDMETHODCALLTYPE *AsScalar)(
        ID3D10EffectMatrixVariable *This);

    ID3D10EffectVectorVariable * (STDMETHODCALLTYPE *AsVector)(
        ID3D10EffectMatrixVariable *This);

    ID3D10EffectMatrixVariable * (STDMETHODCALLTYPE *AsMatrix)(
        ID3D10EffectMatrixVariable *This);

    ID3D10EffectStringVariable * (STDMETHODCALLTYPE *AsString)(
        ID3D10EffectMatrixVariable *This);

    ID3D10EffectShaderResourceVariable * (STDMETHODCALLTYPE *AsShaderResource)(
        ID3D10EffectMatrixVariable *This);

    ID3D10EffectRenderTargetViewVariable * (STDMETHODCALLTYPE *AsRenderTargetView)(
        ID3D10EffectMatrixVariable *This);

    ID3D10EffectDepthStencilViewVariable * (STDMETHODCALLTYPE *AsDepthStencilView)(
        ID3D10EffectMatrixVariable *This);

    ID3D10EffectConstantBuffer * (STDMETHODCALLTYPE *AsConstantBuffer)(
        ID3D10EffectMatrixVariable *This);

    ID3D10EffectShaderVariable * (STDMETHODCALLTYPE *AsShader)(
        ID3D10EffectMatrixVariable *This);

    ID3D10EffectBlendVariable * (STDMETHODCALLTYPE *AsBlend)(
        ID3D10EffectMatrixVariable *This);

    ID3D10EffectDepthStencilVariable * (STDMETHODCALLTYPE *AsDepthStencil)(
        ID3D10EffectMatrixVariable *This);

    ID3D10EffectRasterizerVariable * (STDMETHODCALLTYPE *AsRasterizer)(
        ID3D10EffectMatrixVariable *This);

    ID3D10EffectSamplerVariable * (STDMETHODCALLTYPE *AsSampler)(
        ID3D10EffectMatrixVariable *This);

    HRESULT (STDMETHODCALLTYPE *SetRawValue)(
        ID3D10EffectMatrixVariable *This,
        void *data,
        UINT offset,
        UINT count);

    HRESULT (STDMETHODCALLTYPE *GetRawValue)(
        ID3D10EffectMatrixVariable *This,
        void *data,
        UINT offset,
        UINT count);

    /*** ID3D10EffectMatrixVariable methods ***/
    HRESULT (STDMETHODCALLTYPE *SetMatrix)(
        ID3D10EffectMatrixVariable *This,
        float *data);

    HRESULT (STDMETHODCALLTYPE *GetMatrix)(
        ID3D10EffectMatrixVariable *This,
        float *data);

    HRESULT (STDMETHODCALLTYPE *SetMatrixArray)(
        ID3D10EffectMatrixVariable *This,
        float *data,
        UINT offset,
        UINT count);

    HRESULT (STDMETHODCALLTYPE *GetMatrixArray)(
        ID3D10EffectMatrixVariable *This,
        float *data,
        UINT offset,
        UINT count);

    HRESULT (STDMETHODCALLTYPE *SetMatrixTranspose)(
        ID3D10EffectMatrixVariable *This,
        float *data);

    HRESULT (STDMETHODCALLTYPE *GetMatrixTranspose)(
        ID3D10EffectMatrixVariable *This,
        float *data);

    HRESULT (STDMETHODCALLTYPE *SetMatrixTransposeArray)(
        ID3D10EffectMatrixVariable *This,
        float *data,
        UINT offset,
        UINT count);

    HRESULT (STDMETHODCALLTYPE *GetMatrixTransposeArray)(
        ID3D10EffectMatrixVariable *This,
        float *data,
        UINT offset,
        UINT count);

    END_INTERFACE
} ID3D10EffectMatrixVariableVtbl;

interface ID3D10EffectMatrixVariable {
    CONST_VTBL ID3D10EffectMatrixVariableVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** ID3D10EffectVariable methods ***/
#define ID3D10EffectMatrixVariable_IsValid(This) (This)->lpVtbl->IsValid(This)
#define ID3D10EffectMatrixVariable_GetType(This) (This)->lpVtbl->GetType(This)
#define ID3D10EffectMatrixVariable_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
#define ID3D10EffectMatrixVariable_GetAnnotationByIndex(This,index) (This)->lpVtbl->GetAnnotationByIndex(This,index)
#define ID3D10EffectMatrixVariable_GetAnnotationByName(This,name) (This)->lpVtbl->GetAnnotationByName(This,name)
#define ID3D10EffectMatrixVariable_GetMemberByIndex(This,index) (This)->lpVtbl->GetMemberByIndex(This,index)
#define ID3D10EffectMatrixVariable_GetMemberByName(This,name) (This)->lpVtbl->GetMemberByName(This,name)
#define ID3D10EffectMatrixVariable_GetMemberBySemantic(This,semantic) (This)->lpVtbl->GetMemberBySemantic(This,semantic)
#define ID3D10EffectMatrixVariable_GetElement(This,index) (This)->lpVtbl->GetElement(This,index)
#define ID3D10EffectMatrixVariable_GetParentConstantBuffer(This) (This)->lpVtbl->GetParentConstantBuffer(This)
#define ID3D10EffectMatrixVariable_AsScalar(This) (This)->lpVtbl->AsScalar(This)
#define ID3D10EffectMatrixVariable_AsVector(This) (This)->lpVtbl->AsVector(This)
#define ID3D10EffectMatrixVariable_AsMatrix(This) (This)->lpVtbl->AsMatrix(This)
#define ID3D10EffectMatrixVariable_AsString(This) (This)->lpVtbl->AsString(This)
#define ID3D10EffectMatrixVariable_AsShaderResource(This) (This)->lpVtbl->AsShaderResource(This)
#define ID3D10EffectMatrixVariable_AsRenderTargetView(This) (This)->lpVtbl->AsRenderTargetView(This)
#define ID3D10EffectMatrixVariable_AsDepthStencilView(This) (This)->lpVtbl->AsDepthStencilView(This)
#define ID3D10EffectMatrixVariable_AsConstantBuffer(This) (This)->lpVtbl->AsConstantBuffer(This)
#define ID3D10EffectMatrixVariable_AsShader(This) (This)->lpVtbl->AsShader(This)
#define ID3D10EffectMatrixVariable_AsBlend(This) (This)->lpVtbl->AsBlend(This)
#define ID3D10EffectMatrixVariable_AsDepthStencil(This) (This)->lpVtbl->AsDepthStencil(This)
#define ID3D10EffectMatrixVariable_AsRasterizer(This) (This)->lpVtbl->AsRasterizer(This)
#define ID3D10EffectMatrixVariable_AsSampler(This) (This)->lpVtbl->AsSampler(This)
#define ID3D10EffectMatrixVariable_SetRawValue(This,data,offset,count) (This)->lpVtbl->SetRawValue(This,data,offset,count)
#define ID3D10EffectMatrixVariable_GetRawValue(This,data,offset,count) (This)->lpVtbl->GetRawValue(This,data,offset,count)
/*** ID3D10EffectMatrixVariable methods ***/
#define ID3D10EffectMatrixVariable_SetMatrix(This,data) (This)->lpVtbl->SetMatrix(This,data)
#define ID3D10EffectMatrixVariable_GetMatrix(This,data) (This)->lpVtbl->GetMatrix(This,data)
#define ID3D10EffectMatrixVariable_SetMatrixArray(This,data,offset,count) (This)->lpVtbl->SetMatrixArray(This,data,offset,count)
#define ID3D10EffectMatrixVariable_GetMatrixArray(This,data,offset,count) (This)->lpVtbl->GetMatrixArray(This,data,offset,count)
#define ID3D10EffectMatrixVariable_SetMatrixTranspose(This,data) (This)->lpVtbl->SetMatrixTranspose(This,data)
#define ID3D10EffectMatrixVariable_GetMatrixTranspose(This,data) (This)->lpVtbl->GetMatrixTranspose(This,data)
#define ID3D10EffectMatrixVariable_SetMatrixTransposeArray(This,data,offset,count) (This)->lpVtbl->SetMatrixTransposeArray(This,data,offset,count)
#define ID3D10EffectMatrixVariable_GetMatrixTransposeArray(This,data,offset,count) (This)->lpVtbl->GetMatrixTransposeArray(This,data,offset,count)
#else
/*** ID3D10EffectVariable methods ***/
static __WIDL_INLINE BOOL ID3D10EffectMatrixVariable_IsValid(ID3D10EffectMatrixVariable* This) {
    return This->lpVtbl->IsValid(This);
}
static __WIDL_INLINE ID3D10EffectType * ID3D10EffectMatrixVariable_GetType(ID3D10EffectMatrixVariable* This) {
    return This->lpVtbl->GetType(This);
}
static __WIDL_INLINE HRESULT ID3D10EffectMatrixVariable_GetDesc(ID3D10EffectMatrixVariable* This,D3D10_EFFECT_VARIABLE_DESC *desc) {
    return This->lpVtbl->GetDesc(This,desc);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectMatrixVariable_GetAnnotationByIndex(ID3D10EffectMatrixVariable* This,UINT index) {
    return This->lpVtbl->GetAnnotationByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectMatrixVariable_GetAnnotationByName(ID3D10EffectMatrixVariable* This,const char *name) {
    return This->lpVtbl->GetAnnotationByName(This,name);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectMatrixVariable_GetMemberByIndex(ID3D10EffectMatrixVariable* This,UINT index) {
    return This->lpVtbl->GetMemberByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectMatrixVariable_GetMemberByName(ID3D10EffectMatrixVariable* This,const char *name) {
    return This->lpVtbl->GetMemberByName(This,name);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectMatrixVariable_GetMemberBySemantic(ID3D10EffectMatrixVariable* This,const char *semantic) {
    return This->lpVtbl->GetMemberBySemantic(This,semantic);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectMatrixVariable_GetElement(ID3D10EffectMatrixVariable* This,UINT index) {
    return This->lpVtbl->GetElement(This,index);
}
static __WIDL_INLINE ID3D10EffectConstantBuffer * ID3D10EffectMatrixVariable_GetParentConstantBuffer(ID3D10EffectMatrixVariable* This) {
    return This->lpVtbl->GetParentConstantBuffer(This);
}
static __WIDL_INLINE ID3D10EffectScalarVariable * ID3D10EffectMatrixVariable_AsScalar(ID3D10EffectMatrixVariable* This) {
    return This->lpVtbl->AsScalar(This);
}
static __WIDL_INLINE ID3D10EffectVectorVariable * ID3D10EffectMatrixVariable_AsVector(ID3D10EffectMatrixVariable* This) {
    return This->lpVtbl->AsVector(This);
}
static __WIDL_INLINE ID3D10EffectMatrixVariable * ID3D10EffectMatrixVariable_AsMatrix(ID3D10EffectMatrixVariable* This) {
    return This->lpVtbl->AsMatrix(This);
}
static __WIDL_INLINE ID3D10EffectStringVariable * ID3D10EffectMatrixVariable_AsString(ID3D10EffectMatrixVariable* This) {
    return This->lpVtbl->AsString(This);
}
static __WIDL_INLINE ID3D10EffectShaderResourceVariable * ID3D10EffectMatrixVariable_AsShaderResource(ID3D10EffectMatrixVariable* This) {
    return This->lpVtbl->AsShaderResource(This);
}
static __WIDL_INLINE ID3D10EffectRenderTargetViewVariable * ID3D10EffectMatrixVariable_AsRenderTargetView(ID3D10EffectMatrixVariable* This) {
    return This->lpVtbl->AsRenderTargetView(This);
}
static __WIDL_INLINE ID3D10EffectDepthStencilViewVariable * ID3D10EffectMatrixVariable_AsDepthStencilView(ID3D10EffectMatrixVariable* This) {
    return This->lpVtbl->AsDepthStencilView(This);
}
static __WIDL_INLINE ID3D10EffectConstantBuffer * ID3D10EffectMatrixVariable_AsConstantBuffer(ID3D10EffectMatrixVariable* This) {
    return This->lpVtbl->AsConstantBuffer(This);
}
static __WIDL_INLINE ID3D10EffectShaderVariable * ID3D10EffectMatrixVariable_AsShader(ID3D10EffectMatrixVariable* This) {
    return This->lpVtbl->AsShader(This);
}
static __WIDL_INLINE ID3D10EffectBlendVariable * ID3D10EffectMatrixVariable_AsBlend(ID3D10EffectMatrixVariable* This) {
    return This->lpVtbl->AsBlend(This);
}
static __WIDL_INLINE ID3D10EffectDepthStencilVariable * ID3D10EffectMatrixVariable_AsDepthStencil(ID3D10EffectMatrixVariable* This) {
    return This->lpVtbl->AsDepthStencil(This);
}
static __WIDL_INLINE ID3D10EffectRasterizerVariable * ID3D10EffectMatrixVariable_AsRasterizer(ID3D10EffectMatrixVariable* This) {
    return This->lpVtbl->AsRasterizer(This);
}
static __WIDL_INLINE ID3D10EffectSamplerVariable * ID3D10EffectMatrixVariable_AsSampler(ID3D10EffectMatrixVariable* This) {
    return This->lpVtbl->AsSampler(This);
}
static __WIDL_INLINE HRESULT ID3D10EffectMatrixVariable_SetRawValue(ID3D10EffectMatrixVariable* This,void *data,UINT offset,UINT count) {
    return This->lpVtbl->SetRawValue(This,data,offset,count);
}
static __WIDL_INLINE HRESULT ID3D10EffectMatrixVariable_GetRawValue(ID3D10EffectMatrixVariable* This,void *data,UINT offset,UINT count) {
    return This->lpVtbl->GetRawValue(This,data,offset,count);
}
/*** ID3D10EffectMatrixVariable methods ***/
static __WIDL_INLINE HRESULT ID3D10EffectMatrixVariable_SetMatrix(ID3D10EffectMatrixVariable* This,float *data) {
    return This->lpVtbl->SetMatrix(This,data);
}
static __WIDL_INLINE HRESULT ID3D10EffectMatrixVariable_GetMatrix(ID3D10EffectMatrixVariable* This,float *data) {
    return This->lpVtbl->GetMatrix(This,data);
}
static __WIDL_INLINE HRESULT ID3D10EffectMatrixVariable_SetMatrixArray(ID3D10EffectMatrixVariable* This,float *data,UINT offset,UINT count) {
    return This->lpVtbl->SetMatrixArray(This,data,offset,count);
}
static __WIDL_INLINE HRESULT ID3D10EffectMatrixVariable_GetMatrixArray(ID3D10EffectMatrixVariable* This,float *data,UINT offset,UINT count) {
    return This->lpVtbl->GetMatrixArray(This,data,offset,count);
}
static __WIDL_INLINE HRESULT ID3D10EffectMatrixVariable_SetMatrixTranspose(ID3D10EffectMatrixVariable* This,float *data) {
    return This->lpVtbl->SetMatrixTranspose(This,data);
}
static __WIDL_INLINE HRESULT ID3D10EffectMatrixVariable_GetMatrixTranspose(ID3D10EffectMatrixVariable* This,float *data) {
    return This->lpVtbl->GetMatrixTranspose(This,data);
}
static __WIDL_INLINE HRESULT ID3D10EffectMatrixVariable_SetMatrixTransposeArray(ID3D10EffectMatrixVariable* This,float *data,UINT offset,UINT count) {
    return This->lpVtbl->SetMatrixTransposeArray(This,data,offset,count);
}
static __WIDL_INLINE HRESULT ID3D10EffectMatrixVariable_GetMatrixTransposeArray(ID3D10EffectMatrixVariable* This,float *data,UINT offset,UINT count) {
    return This->lpVtbl->GetMatrixTransposeArray(This,data,offset,count);
}
#endif
#endif

#endif


#endif  /* __ID3D10EffectMatrixVariable_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ID3D10EffectStringVariable interface
 */
#ifndef __ID3D10EffectStringVariable_INTERFACE_DEFINED__
#define __ID3D10EffectStringVariable_INTERFACE_DEFINED__

DEFINE_GUID(IID_ID3D10EffectStringVariable, 0x71417501, 0x8df9, 0x4e0a, 0xa7,0x8a, 0x25,0x5f,0x97,0x56,0xba,0xff);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("71417501-8df9-4e0a-a78a-255f9756baff")
ID3D10EffectStringVariable : public ID3D10EffectVariable
{
    virtual HRESULT STDMETHODCALLTYPE GetString(
        const char **str) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetStringArray(
        const char **strs,
        UINT offset,
        UINT count) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ID3D10EffectStringVariable, 0x71417501, 0x8df9, 0x4e0a, 0xa7,0x8a, 0x25,0x5f,0x97,0x56,0xba,0xff)
#endif
#else
typedef struct ID3D10EffectStringVariableVtbl {
    BEGIN_INTERFACE

    /*** ID3D10EffectVariable methods ***/
    BOOL (STDMETHODCALLTYPE *IsValid)(
        ID3D10EffectStringVariable *This);

    ID3D10EffectType * (STDMETHODCALLTYPE *GetType)(
        ID3D10EffectStringVariable *This);

    HRESULT (STDMETHODCALLTYPE *GetDesc)(
        ID3D10EffectStringVariable *This,
        D3D10_EFFECT_VARIABLE_DESC *desc);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetAnnotationByIndex)(
        ID3D10EffectStringVariable *This,
        UINT index);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetAnnotationByName)(
        ID3D10EffectStringVariable *This,
        const char *name);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberByIndex)(
        ID3D10EffectStringVariable *This,
        UINT index);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberByName)(
        ID3D10EffectStringVariable *This,
        const char *name);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberBySemantic)(
        ID3D10EffectStringVariable *This,
        const char *semantic);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetElement)(
        ID3D10EffectStringVariable *This,
        UINT index);

    ID3D10EffectConstantBuffer * (STDMETHODCALLTYPE *GetParentConstantBuffer)(
        ID3D10EffectStringVariable *This);

    ID3D10EffectScalarVariable * (STDMETHODCALLTYPE *AsScalar)(
        ID3D10EffectStringVariable *This);

    ID3D10EffectVectorVariable * (STDMETHODCALLTYPE *AsVector)(
        ID3D10EffectStringVariable *This);

    ID3D10EffectMatrixVariable * (STDMETHODCALLTYPE *AsMatrix)(
        ID3D10EffectStringVariable *This);

    ID3D10EffectStringVariable * (STDMETHODCALLTYPE *AsString)(
        ID3D10EffectStringVariable *This);

    ID3D10EffectShaderResourceVariable * (STDMETHODCALLTYPE *AsShaderResource)(
        ID3D10EffectStringVariable *This);

    ID3D10EffectRenderTargetViewVariable * (STDMETHODCALLTYPE *AsRenderTargetView)(
        ID3D10EffectStringVariable *This);

    ID3D10EffectDepthStencilViewVariable * (STDMETHODCALLTYPE *AsDepthStencilView)(
        ID3D10EffectStringVariable *This);

    ID3D10EffectConstantBuffer * (STDMETHODCALLTYPE *AsConstantBuffer)(
        ID3D10EffectStringVariable *This);

    ID3D10EffectShaderVariable * (STDMETHODCALLTYPE *AsShader)(
        ID3D10EffectStringVariable *This);

    ID3D10EffectBlendVariable * (STDMETHODCALLTYPE *AsBlend)(
        ID3D10EffectStringVariable *This);

    ID3D10EffectDepthStencilVariable * (STDMETHODCALLTYPE *AsDepthStencil)(
        ID3D10EffectStringVariable *This);

    ID3D10EffectRasterizerVariable * (STDMETHODCALLTYPE *AsRasterizer)(
        ID3D10EffectStringVariable *This);

    ID3D10EffectSamplerVariable * (STDMETHODCALLTYPE *AsSampler)(
        ID3D10EffectStringVariable *This);

    HRESULT (STDMETHODCALLTYPE *SetRawValue)(
        ID3D10EffectStringVariable *This,
        void *data,
        UINT offset,
        UINT count);

    HRESULT (STDMETHODCALLTYPE *GetRawValue)(
        ID3D10EffectStringVariable *This,
        void *data,
        UINT offset,
        UINT count);

    /*** ID3D10EffectStringVariable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetString)(
        ID3D10EffectStringVariable *This,
        const char **str);

    HRESULT (STDMETHODCALLTYPE *GetStringArray)(
        ID3D10EffectStringVariable *This,
        const char **strs,
        UINT offset,
        UINT count);

    END_INTERFACE
} ID3D10EffectStringVariableVtbl;

interface ID3D10EffectStringVariable {
    CONST_VTBL ID3D10EffectStringVariableVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** ID3D10EffectVariable methods ***/
#define ID3D10EffectStringVariable_IsValid(This) (This)->lpVtbl->IsValid(This)
#define ID3D10EffectStringVariable_GetType(This) (This)->lpVtbl->GetType(This)
#define ID3D10EffectStringVariable_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
#define ID3D10EffectStringVariable_GetAnnotationByIndex(This,index) (This)->lpVtbl->GetAnnotationByIndex(This,index)
#define ID3D10EffectStringVariable_GetAnnotationByName(This,name) (This)->lpVtbl->GetAnnotationByName(This,name)
#define ID3D10EffectStringVariable_GetMemberByIndex(This,index) (This)->lpVtbl->GetMemberByIndex(This,index)
#define ID3D10EffectStringVariable_GetMemberByName(This,name) (This)->lpVtbl->GetMemberByName(This,name)
#define ID3D10EffectStringVariable_GetMemberBySemantic(This,semantic) (This)->lpVtbl->GetMemberBySemantic(This,semantic)
#define ID3D10EffectStringVariable_GetElement(This,index) (This)->lpVtbl->GetElement(This,index)
#define ID3D10EffectStringVariable_GetParentConstantBuffer(This) (This)->lpVtbl->GetParentConstantBuffer(This)
#define ID3D10EffectStringVariable_AsScalar(This) (This)->lpVtbl->AsScalar(This)
#define ID3D10EffectStringVariable_AsVector(This) (This)->lpVtbl->AsVector(This)
#define ID3D10EffectStringVariable_AsMatrix(This) (This)->lpVtbl->AsMatrix(This)
#define ID3D10EffectStringVariable_AsString(This) (This)->lpVtbl->AsString(This)
#define ID3D10EffectStringVariable_AsShaderResource(This) (This)->lpVtbl->AsShaderResource(This)
#define ID3D10EffectStringVariable_AsRenderTargetView(This) (This)->lpVtbl->AsRenderTargetView(This)
#define ID3D10EffectStringVariable_AsDepthStencilView(This) (This)->lpVtbl->AsDepthStencilView(This)
#define ID3D10EffectStringVariable_AsConstantBuffer(This) (This)->lpVtbl->AsConstantBuffer(This)
#define ID3D10EffectStringVariable_AsShader(This) (This)->lpVtbl->AsShader(This)
#define ID3D10EffectStringVariable_AsBlend(This) (This)->lpVtbl->AsBlend(This)
#define ID3D10EffectStringVariable_AsDepthStencil(This) (This)->lpVtbl->AsDepthStencil(This)
#define ID3D10EffectStringVariable_AsRasterizer(This) (This)->lpVtbl->AsRasterizer(This)
#define ID3D10EffectStringVariable_AsSampler(This) (This)->lpVtbl->AsSampler(This)
#define ID3D10EffectStringVariable_SetRawValue(This,data,offset,count) (This)->lpVtbl->SetRawValue(This,data,offset,count)
#define ID3D10EffectStringVariable_GetRawValue(This,data,offset,count) (This)->lpVtbl->GetRawValue(This,data,offset,count)
/*** ID3D10EffectStringVariable methods ***/
#define ID3D10EffectStringVariable_GetString(This,str) (This)->lpVtbl->GetString(This,str)
#define ID3D10EffectStringVariable_GetStringArray(This,strs,offset,count) (This)->lpVtbl->GetStringArray(This,strs,offset,count)
#else
/*** ID3D10EffectVariable methods ***/
static __WIDL_INLINE BOOL ID3D10EffectStringVariable_IsValid(ID3D10EffectStringVariable* This) {
    return This->lpVtbl->IsValid(This);
}
static __WIDL_INLINE ID3D10EffectType * ID3D10EffectStringVariable_GetType(ID3D10EffectStringVariable* This) {
    return This->lpVtbl->GetType(This);
}
static __WIDL_INLINE HRESULT ID3D10EffectStringVariable_GetDesc(ID3D10EffectStringVariable* This,D3D10_EFFECT_VARIABLE_DESC *desc) {
    return This->lpVtbl->GetDesc(This,desc);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectStringVariable_GetAnnotationByIndex(ID3D10EffectStringVariable* This,UINT index) {
    return This->lpVtbl->GetAnnotationByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectStringVariable_GetAnnotationByName(ID3D10EffectStringVariable* This,const char *name) {
    return This->lpVtbl->GetAnnotationByName(This,name);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectStringVariable_GetMemberByIndex(ID3D10EffectStringVariable* This,UINT index) {
    return This->lpVtbl->GetMemberByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectStringVariable_GetMemberByName(ID3D10EffectStringVariable* This,const char *name) {
    return This->lpVtbl->GetMemberByName(This,name);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectStringVariable_GetMemberBySemantic(ID3D10EffectStringVariable* This,const char *semantic) {
    return This->lpVtbl->GetMemberBySemantic(This,semantic);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectStringVariable_GetElement(ID3D10EffectStringVariable* This,UINT index) {
    return This->lpVtbl->GetElement(This,index);
}
static __WIDL_INLINE ID3D10EffectConstantBuffer * ID3D10EffectStringVariable_GetParentConstantBuffer(ID3D10EffectStringVariable* This) {
    return This->lpVtbl->GetParentConstantBuffer(This);
}
static __WIDL_INLINE ID3D10EffectScalarVariable * ID3D10EffectStringVariable_AsScalar(ID3D10EffectStringVariable* This) {
    return This->lpVtbl->AsScalar(This);
}
static __WIDL_INLINE ID3D10EffectVectorVariable * ID3D10EffectStringVariable_AsVector(ID3D10EffectStringVariable* This) {
    return This->lpVtbl->AsVector(This);
}
static __WIDL_INLINE ID3D10EffectMatrixVariable * ID3D10EffectStringVariable_AsMatrix(ID3D10EffectStringVariable* This) {
    return This->lpVtbl->AsMatrix(This);
}
static __WIDL_INLINE ID3D10EffectStringVariable * ID3D10EffectStringVariable_AsString(ID3D10EffectStringVariable* This) {
    return This->lpVtbl->AsString(This);
}
static __WIDL_INLINE ID3D10EffectShaderResourceVariable * ID3D10EffectStringVariable_AsShaderResource(ID3D10EffectStringVariable* This) {
    return This->lpVtbl->AsShaderResource(This);
}
static __WIDL_INLINE ID3D10EffectRenderTargetViewVariable * ID3D10EffectStringVariable_AsRenderTargetView(ID3D10EffectStringVariable* This) {
    return This->lpVtbl->AsRenderTargetView(This);
}
static __WIDL_INLINE ID3D10EffectDepthStencilViewVariable * ID3D10EffectStringVariable_AsDepthStencilView(ID3D10EffectStringVariable* This) {
    return This->lpVtbl->AsDepthStencilView(This);
}
static __WIDL_INLINE ID3D10EffectConstantBuffer * ID3D10EffectStringVariable_AsConstantBuffer(ID3D10EffectStringVariable* This) {
    return This->lpVtbl->AsConstantBuffer(This);
}
static __WIDL_INLINE ID3D10EffectShaderVariable * ID3D10EffectStringVariable_AsShader(ID3D10EffectStringVariable* This) {
    return This->lpVtbl->AsShader(This);
}
static __WIDL_INLINE ID3D10EffectBlendVariable * ID3D10EffectStringVariable_AsBlend(ID3D10EffectStringVariable* This) {
    return This->lpVtbl->AsBlend(This);
}
static __WIDL_INLINE ID3D10EffectDepthStencilVariable * ID3D10EffectStringVariable_AsDepthStencil(ID3D10EffectStringVariable* This) {
    return This->lpVtbl->AsDepthStencil(This);
}
static __WIDL_INLINE ID3D10EffectRasterizerVariable * ID3D10EffectStringVariable_AsRasterizer(ID3D10EffectStringVariable* This) {
    return This->lpVtbl->AsRasterizer(This);
}
static __WIDL_INLINE ID3D10EffectSamplerVariable * ID3D10EffectStringVariable_AsSampler(ID3D10EffectStringVariable* This) {
    return This->lpVtbl->AsSampler(This);
}
static __WIDL_INLINE HRESULT ID3D10EffectStringVariable_SetRawValue(ID3D10EffectStringVariable* This,void *data,UINT offset,UINT count) {
    return This->lpVtbl->SetRawValue(This,data,offset,count);
}
static __WIDL_INLINE HRESULT ID3D10EffectStringVariable_GetRawValue(ID3D10EffectStringVariable* This,void *data,UINT offset,UINT count) {
    return This->lpVtbl->GetRawValue(This,data,offset,count);
}
/*** ID3D10EffectStringVariable methods ***/
static __WIDL_INLINE HRESULT ID3D10EffectStringVariable_GetString(ID3D10EffectStringVariable* This,const char **str) {
    return This->lpVtbl->GetString(This,str);
}
static __WIDL_INLINE HRESULT ID3D10EffectStringVariable_GetStringArray(ID3D10EffectStringVariable* This,const char **strs,UINT offset,UINT count) {
    return This->lpVtbl->GetStringArray(This,strs,offset,count);
}
#endif
#endif

#endif


#endif  /* __ID3D10EffectStringVariable_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ID3D10EffectShaderResourceVariable interface
 */
#ifndef __ID3D10EffectShaderResourceVariable_INTERFACE_DEFINED__
#define __ID3D10EffectShaderResourceVariable_INTERFACE_DEFINED__

DEFINE_GUID(IID_ID3D10EffectShaderResourceVariable, 0xc0a7157b, 0xd872, 0x4b1d, 0x80,0x73, 0xef,0xc2,0xac,0xd4,0xb1,0xfc);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("c0a7157b-d872-4b1d-8073-efc2acd4b1fc")
ID3D10EffectShaderResourceVariable : public ID3D10EffectVariable
{
    virtual HRESULT STDMETHODCALLTYPE SetResource(
        ID3D10ShaderResourceView *resource) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetResource(
        ID3D10ShaderResourceView **resource) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetResourceArray(
        ID3D10ShaderResourceView **resources,
        UINT offset,
        UINT count) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetResourceArray(
        ID3D10ShaderResourceView **resources,
        UINT offset,
        UINT count) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ID3D10EffectShaderResourceVariable, 0xc0a7157b, 0xd872, 0x4b1d, 0x80,0x73, 0xef,0xc2,0xac,0xd4,0xb1,0xfc)
#endif
#else
typedef struct ID3D10EffectShaderResourceVariableVtbl {
    BEGIN_INTERFACE

    /*** ID3D10EffectVariable methods ***/
    BOOL (STDMETHODCALLTYPE *IsValid)(
        ID3D10EffectShaderResourceVariable *This);

    ID3D10EffectType * (STDMETHODCALLTYPE *GetType)(
        ID3D10EffectShaderResourceVariable *This);

    HRESULT (STDMETHODCALLTYPE *GetDesc)(
        ID3D10EffectShaderResourceVariable *This,
        D3D10_EFFECT_VARIABLE_DESC *desc);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetAnnotationByIndex)(
        ID3D10EffectShaderResourceVariable *This,
        UINT index);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetAnnotationByName)(
        ID3D10EffectShaderResourceVariable *This,
        const char *name);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberByIndex)(
        ID3D10EffectShaderResourceVariable *This,
        UINT index);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberByName)(
        ID3D10EffectShaderResourceVariable *This,
        const char *name);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberBySemantic)(
        ID3D10EffectShaderResourceVariable *This,
        const char *semantic);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetElement)(
        ID3D10EffectShaderResourceVariable *This,
        UINT index);

    ID3D10EffectConstantBuffer * (STDMETHODCALLTYPE *GetParentConstantBuffer)(
        ID3D10EffectShaderResourceVariable *This);

    ID3D10EffectScalarVariable * (STDMETHODCALLTYPE *AsScalar)(
        ID3D10EffectShaderResourceVariable *This);

    ID3D10EffectVectorVariable * (STDMETHODCALLTYPE *AsVector)(
        ID3D10EffectShaderResourceVariable *This);

    ID3D10EffectMatrixVariable * (STDMETHODCALLTYPE *AsMatrix)(
        ID3D10EffectShaderResourceVariable *This);

    ID3D10EffectStringVariable * (STDMETHODCALLTYPE *AsString)(
        ID3D10EffectShaderResourceVariable *This);

    ID3D10EffectShaderResourceVariable * (STDMETHODCALLTYPE *AsShaderResource)(
        ID3D10EffectShaderResourceVariable *This);

    ID3D10EffectRenderTargetViewVariable * (STDMETHODCALLTYPE *AsRenderTargetView)(
        ID3D10EffectShaderResourceVariable *This);

    ID3D10EffectDepthStencilViewVariable * (STDMETHODCALLTYPE *AsDepthStencilView)(
        ID3D10EffectShaderResourceVariable *This);

    ID3D10EffectConstantBuffer * (STDMETHODCALLTYPE *AsConstantBuffer)(
        ID3D10EffectShaderResourceVariable *This);

    ID3D10EffectShaderVariable * (STDMETHODCALLTYPE *AsShader)(
        ID3D10EffectShaderResourceVariable *This);

    ID3D10EffectBlendVariable * (STDMETHODCALLTYPE *AsBlend)(
        ID3D10EffectShaderResourceVariable *This);

    ID3D10EffectDepthStencilVariable * (STDMETHODCALLTYPE *AsDepthStencil)(
        ID3D10EffectShaderResourceVariable *This);

    ID3D10EffectRasterizerVariable * (STDMETHODCALLTYPE *AsRasterizer)(
        ID3D10EffectShaderResourceVariable *This);

    ID3D10EffectSamplerVariable * (STDMETHODCALLTYPE *AsSampler)(
        ID3D10EffectShaderResourceVariable *This);

    HRESULT (STDMETHODCALLTYPE *SetRawValue)(
        ID3D10EffectShaderResourceVariable *This,
        void *data,
        UINT offset,
        UINT count);

    HRESULT (STDMETHODCALLTYPE *GetRawValue)(
        ID3D10EffectShaderResourceVariable *This,
        void *data,
        UINT offset,
        UINT count);

    /*** ID3D10EffectShaderResourceVariable methods ***/
    HRESULT (STDMETHODCALLTYPE *SetResource)(
        ID3D10EffectShaderResourceVariable *This,
        ID3D10ShaderResourceView *resource);

    HRESULT (STDMETHODCALLTYPE *GetResource)(
        ID3D10EffectShaderResourceVariable *This,
        ID3D10ShaderResourceView **resource);

    HRESULT (STDMETHODCALLTYPE *SetResourceArray)(
        ID3D10EffectShaderResourceVariable *This,
        ID3D10ShaderResourceView **resources,
        UINT offset,
        UINT count);

    HRESULT (STDMETHODCALLTYPE *GetResourceArray)(
        ID3D10EffectShaderResourceVariable *This,
        ID3D10ShaderResourceView **resources,
        UINT offset,
        UINT count);

    END_INTERFACE
} ID3D10EffectShaderResourceVariableVtbl;

interface ID3D10EffectShaderResourceVariable {
    CONST_VTBL ID3D10EffectShaderResourceVariableVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** ID3D10EffectVariable methods ***/
#define ID3D10EffectShaderResourceVariable_IsValid(This) (This)->lpVtbl->IsValid(This)
#define ID3D10EffectShaderResourceVariable_GetType(This) (This)->lpVtbl->GetType(This)
#define ID3D10EffectShaderResourceVariable_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
#define ID3D10EffectShaderResourceVariable_GetAnnotationByIndex(This,index) (This)->lpVtbl->GetAnnotationByIndex(This,index)
#define ID3D10EffectShaderResourceVariable_GetAnnotationByName(This,name) (This)->lpVtbl->GetAnnotationByName(This,name)
#define ID3D10EffectShaderResourceVariable_GetMemberByIndex(This,index) (This)->lpVtbl->GetMemberByIndex(This,index)
#define ID3D10EffectShaderResourceVariable_GetMemberByName(This,name) (This)->lpVtbl->GetMemberByName(This,name)
#define ID3D10EffectShaderResourceVariable_GetMemberBySemantic(This,semantic) (This)->lpVtbl->GetMemberBySemantic(This,semantic)
#define ID3D10EffectShaderResourceVariable_GetElement(This,index) (This)->lpVtbl->GetElement(This,index)
#define ID3D10EffectShaderResourceVariable_GetParentConstantBuffer(This) (This)->lpVtbl->GetParentConstantBuffer(This)
#define ID3D10EffectShaderResourceVariable_AsScalar(This) (This)->lpVtbl->AsScalar(This)
#define ID3D10EffectShaderResourceVariable_AsVector(This) (This)->lpVtbl->AsVector(This)
#define ID3D10EffectShaderResourceVariable_AsMatrix(This) (This)->lpVtbl->AsMatrix(This)
#define ID3D10EffectShaderResourceVariable_AsString(This) (This)->lpVtbl->AsString(This)
#define ID3D10EffectShaderResourceVariable_AsShaderResource(This) (This)->lpVtbl->AsShaderResource(This)
#define ID3D10EffectShaderResourceVariable_AsRenderTargetView(This) (This)->lpVtbl->AsRenderTargetView(This)
#define ID3D10EffectShaderResourceVariable_AsDepthStencilView(This) (This)->lpVtbl->AsDepthStencilView(This)
#define ID3D10EffectShaderResourceVariable_AsConstantBuffer(This) (This)->lpVtbl->AsConstantBuffer(This)
#define ID3D10EffectShaderResourceVariable_AsShader(This) (This)->lpVtbl->AsShader(This)
#define ID3D10EffectShaderResourceVariable_AsBlend(This) (This)->lpVtbl->AsBlend(This)
#define ID3D10EffectShaderResourceVariable_AsDepthStencil(This) (This)->lpVtbl->AsDepthStencil(This)
#define ID3D10EffectShaderResourceVariable_AsRasterizer(This) (This)->lpVtbl->AsRasterizer(This)
#define ID3D10EffectShaderResourceVariable_AsSampler(This) (This)->lpVtbl->AsSampler(This)
#define ID3D10EffectShaderResourceVariable_SetRawValue(This,data,offset,count) (This)->lpVtbl->SetRawValue(This,data,offset,count)
#define ID3D10EffectShaderResourceVariable_GetRawValue(This,data,offset,count) (This)->lpVtbl->GetRawValue(This,data,offset,count)
/*** ID3D10EffectShaderResourceVariable methods ***/
#define ID3D10EffectShaderResourceVariable_SetResource(This,resource) (This)->lpVtbl->SetResource(This,resource)
#define ID3D10EffectShaderResourceVariable_GetResource(This,resource) (This)->lpVtbl->GetResource(This,resource)
#define ID3D10EffectShaderResourceVariable_SetResourceArray(This,resources,offset,count) (This)->lpVtbl->SetResourceArray(This,resources,offset,count)
#define ID3D10EffectShaderResourceVariable_GetResourceArray(This,resources,offset,count) (This)->lpVtbl->GetResourceArray(This,resources,offset,count)
#else
/*** ID3D10EffectVariable methods ***/
static __WIDL_INLINE BOOL ID3D10EffectShaderResourceVariable_IsValid(ID3D10EffectShaderResourceVariable* This) {
    return This->lpVtbl->IsValid(This);
}
static __WIDL_INLINE ID3D10EffectType * ID3D10EffectShaderResourceVariable_GetType(ID3D10EffectShaderResourceVariable* This) {
    return This->lpVtbl->GetType(This);
}
static __WIDL_INLINE HRESULT ID3D10EffectShaderResourceVariable_GetDesc(ID3D10EffectShaderResourceVariable* This,D3D10_EFFECT_VARIABLE_DESC *desc) {
    return This->lpVtbl->GetDesc(This,desc);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectShaderResourceVariable_GetAnnotationByIndex(ID3D10EffectShaderResourceVariable* This,UINT index) {
    return This->lpVtbl->GetAnnotationByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectShaderResourceVariable_GetAnnotationByName(ID3D10EffectShaderResourceVariable* This,const char *name) {
    return This->lpVtbl->GetAnnotationByName(This,name);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectShaderResourceVariable_GetMemberByIndex(ID3D10EffectShaderResourceVariable* This,UINT index) {
    return This->lpVtbl->GetMemberByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectShaderResourceVariable_GetMemberByName(ID3D10EffectShaderResourceVariable* This,const char *name) {
    return This->lpVtbl->GetMemberByName(This,name);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectShaderResourceVariable_GetMemberBySemantic(ID3D10EffectShaderResourceVariable* This,const char *semantic) {
    return This->lpVtbl->GetMemberBySemantic(This,semantic);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectShaderResourceVariable_GetElement(ID3D10EffectShaderResourceVariable* This,UINT index) {
    return This->lpVtbl->GetElement(This,index);
}
static __WIDL_INLINE ID3D10EffectConstantBuffer * ID3D10EffectShaderResourceVariable_GetParentConstantBuffer(ID3D10EffectShaderResourceVariable* This) {
    return This->lpVtbl->GetParentConstantBuffer(This);
}
static __WIDL_INLINE ID3D10EffectScalarVariable * ID3D10EffectShaderResourceVariable_AsScalar(ID3D10EffectShaderResourceVariable* This) {
    return This->lpVtbl->AsScalar(This);
}
static __WIDL_INLINE ID3D10EffectVectorVariable * ID3D10EffectShaderResourceVariable_AsVector(ID3D10EffectShaderResourceVariable* This) {
    return This->lpVtbl->AsVector(This);
}
static __WIDL_INLINE ID3D10EffectMatrixVariable * ID3D10EffectShaderResourceVariable_AsMatrix(ID3D10EffectShaderResourceVariable* This) {
    return This->lpVtbl->AsMatrix(This);
}
static __WIDL_INLINE ID3D10EffectStringVariable * ID3D10EffectShaderResourceVariable_AsString(ID3D10EffectShaderResourceVariable* This) {
    return This->lpVtbl->AsString(This);
}
static __WIDL_INLINE ID3D10EffectShaderResourceVariable * ID3D10EffectShaderResourceVariable_AsShaderResource(ID3D10EffectShaderResourceVariable* This) {
    return This->lpVtbl->AsShaderResource(This);
}
static __WIDL_INLINE ID3D10EffectRenderTargetViewVariable * ID3D10EffectShaderResourceVariable_AsRenderTargetView(ID3D10EffectShaderResourceVariable* This) {
    return This->lpVtbl->AsRenderTargetView(This);
}
static __WIDL_INLINE ID3D10EffectDepthStencilViewVariable * ID3D10EffectShaderResourceVariable_AsDepthStencilView(ID3D10EffectShaderResourceVariable* This) {
    return This->lpVtbl->AsDepthStencilView(This);
}
static __WIDL_INLINE ID3D10EffectConstantBuffer * ID3D10EffectShaderResourceVariable_AsConstantBuffer(ID3D10EffectShaderResourceVariable* This) {
    return This->lpVtbl->AsConstantBuffer(This);
}
static __WIDL_INLINE ID3D10EffectShaderVariable * ID3D10EffectShaderResourceVariable_AsShader(ID3D10EffectShaderResourceVariable* This) {
    return This->lpVtbl->AsShader(This);
}
static __WIDL_INLINE ID3D10EffectBlendVariable * ID3D10EffectShaderResourceVariable_AsBlend(ID3D10EffectShaderResourceVariable* This) {
    return This->lpVtbl->AsBlend(This);
}
static __WIDL_INLINE ID3D10EffectDepthStencilVariable * ID3D10EffectShaderResourceVariable_AsDepthStencil(ID3D10EffectShaderResourceVariable* This) {
    return This->lpVtbl->AsDepthStencil(This);
}
static __WIDL_INLINE ID3D10EffectRasterizerVariable * ID3D10EffectShaderResourceVariable_AsRasterizer(ID3D10EffectShaderResourceVariable* This) {
    return This->lpVtbl->AsRasterizer(This);
}
static __WIDL_INLINE ID3D10EffectSamplerVariable * ID3D10EffectShaderResourceVariable_AsSampler(ID3D10EffectShaderResourceVariable* This) {
    return This->lpVtbl->AsSampler(This);
}
static __WIDL_INLINE HRESULT ID3D10EffectShaderResourceVariable_SetRawValue(ID3D10EffectShaderResourceVariable* This,void *data,UINT offset,UINT count) {
    return This->lpVtbl->SetRawValue(This,data,offset,count);
}
static __WIDL_INLINE HRESULT ID3D10EffectShaderResourceVariable_GetRawValue(ID3D10EffectShaderResourceVariable* This,void *data,UINT offset,UINT count) {
    return This->lpVtbl->GetRawValue(This,data,offset,count);
}
/*** ID3D10EffectShaderResourceVariable methods ***/
static __WIDL_INLINE HRESULT ID3D10EffectShaderResourceVariable_SetResource(ID3D10EffectShaderResourceVariable* This,ID3D10ShaderResourceView *resource) {
    return This->lpVtbl->SetResource(This,resource);
}
static __WIDL_INLINE HRESULT ID3D10EffectShaderResourceVariable_GetResource(ID3D10EffectShaderResourceVariable* This,ID3D10ShaderResourceView **resource) {
    return This->lpVtbl->GetResource(This,resource);
}
static __WIDL_INLINE HRESULT ID3D10EffectShaderResourceVariable_SetResourceArray(ID3D10EffectShaderResourceVariable* This,ID3D10ShaderResourceView **resources,UINT offset,UINT count) {
    return This->lpVtbl->SetResourceArray(This,resources,offset,count);
}
static __WIDL_INLINE HRESULT ID3D10EffectShaderResourceVariable_GetResourceArray(ID3D10EffectShaderResourceVariable* This,ID3D10ShaderResourceView **resources,UINT offset,UINT count) {
    return This->lpVtbl->GetResourceArray(This,resources,offset,count);
}
#endif
#endif

#endif


#endif  /* __ID3D10EffectShaderResourceVariable_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ID3D10EffectRenderTargetViewVariable interface
 */
#ifndef __ID3D10EffectRenderTargetViewVariable_INTERFACE_DEFINED__
#define __ID3D10EffectRenderTargetViewVariable_INTERFACE_DEFINED__

DEFINE_GUID(IID_ID3D10EffectRenderTargetViewVariable, 0x28ca0cc3, 0xc2c9, 0x40bb, 0xb5,0x7f, 0x67,0xb7,0x37,0x12,0x2b,0x17);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("28ca0cc3-c2c9-40bb-b57f-67b737122b17")
ID3D10EffectRenderTargetViewVariable : public ID3D10EffectVariable
{
    virtual HRESULT STDMETHODCALLTYPE SetRenderTarget(
        ID3D10RenderTargetView *view) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetRenderTarget(
        ID3D10RenderTargetView **view) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetRenderTargetArray(
        ID3D10RenderTargetView **views,
        UINT offset,
        UINT count) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetRenderTargetArray(
        ID3D10RenderTargetView **views,
        UINT offset,
        UINT count) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ID3D10EffectRenderTargetViewVariable, 0x28ca0cc3, 0xc2c9, 0x40bb, 0xb5,0x7f, 0x67,0xb7,0x37,0x12,0x2b,0x17)
#endif
#else
typedef struct ID3D10EffectRenderTargetViewVariableVtbl {
    BEGIN_INTERFACE

    /*** ID3D10EffectVariable methods ***/
    BOOL (STDMETHODCALLTYPE *IsValid)(
        ID3D10EffectRenderTargetViewVariable *This);

    ID3D10EffectType * (STDMETHODCALLTYPE *GetType)(
        ID3D10EffectRenderTargetViewVariable *This);

    HRESULT (STDMETHODCALLTYPE *GetDesc)(
        ID3D10EffectRenderTargetViewVariable *This,
        D3D10_EFFECT_VARIABLE_DESC *desc);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetAnnotationByIndex)(
        ID3D10EffectRenderTargetViewVariable *This,
        UINT index);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetAnnotationByName)(
        ID3D10EffectRenderTargetViewVariable *This,
        const char *name);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberByIndex)(
        ID3D10EffectRenderTargetViewVariable *This,
        UINT index);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberByName)(
        ID3D10EffectRenderTargetViewVariable *This,
        const char *name);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberBySemantic)(
        ID3D10EffectRenderTargetViewVariable *This,
        const char *semantic);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetElement)(
        ID3D10EffectRenderTargetViewVariable *This,
        UINT index);

    ID3D10EffectConstantBuffer * (STDMETHODCALLTYPE *GetParentConstantBuffer)(
        ID3D10EffectRenderTargetViewVariable *This);

    ID3D10EffectScalarVariable * (STDMETHODCALLTYPE *AsScalar)(
        ID3D10EffectRenderTargetViewVariable *This);

    ID3D10EffectVectorVariable * (STDMETHODCALLTYPE *AsVector)(
        ID3D10EffectRenderTargetViewVariable *This);

    ID3D10EffectMatrixVariable * (STDMETHODCALLTYPE *AsMatrix)(
        ID3D10EffectRenderTargetViewVariable *This);

    ID3D10EffectStringVariable * (STDMETHODCALLTYPE *AsString)(
        ID3D10EffectRenderTargetViewVariable *This);

    ID3D10EffectShaderResourceVariable * (STDMETHODCALLTYPE *AsShaderResource)(
        ID3D10EffectRenderTargetViewVariable *This);

    ID3D10EffectRenderTargetViewVariable * (STDMETHODCALLTYPE *AsRenderTargetView)(
        ID3D10EffectRenderTargetViewVariable *This);

    ID3D10EffectDepthStencilViewVariable * (STDMETHODCALLTYPE *AsDepthStencilView)(
        ID3D10EffectRenderTargetViewVariable *This);

    ID3D10EffectConstantBuffer * (STDMETHODCALLTYPE *AsConstantBuffer)(
        ID3D10EffectRenderTargetViewVariable *This);

    ID3D10EffectShaderVariable * (STDMETHODCALLTYPE *AsShader)(
        ID3D10EffectRenderTargetViewVariable *This);

    ID3D10EffectBlendVariable * (STDMETHODCALLTYPE *AsBlend)(
        ID3D10EffectRenderTargetViewVariable *This);

    ID3D10EffectDepthStencilVariable * (STDMETHODCALLTYPE *AsDepthStencil)(
        ID3D10EffectRenderTargetViewVariable *This);

    ID3D10EffectRasterizerVariable * (STDMETHODCALLTYPE *AsRasterizer)(
        ID3D10EffectRenderTargetViewVariable *This);

    ID3D10EffectSamplerVariable * (STDMETHODCALLTYPE *AsSampler)(
        ID3D10EffectRenderTargetViewVariable *This);

    HRESULT (STDMETHODCALLTYPE *SetRawValue)(
        ID3D10EffectRenderTargetViewVariable *This,
        void *data,
        UINT offset,
        UINT count);

    HRESULT (STDMETHODCALLTYPE *GetRawValue)(
        ID3D10EffectRenderTargetViewVariable *This,
        void *data,
        UINT offset,
        UINT count);

    /*** ID3D10EffectRenderTargetViewVariable methods ***/
    HRESULT (STDMETHODCALLTYPE *SetRenderTarget)(
        ID3D10EffectRenderTargetViewVariable *This,
        ID3D10RenderTargetView *view);

    HRESULT (STDMETHODCALLTYPE *GetRenderTarget)(
        ID3D10EffectRenderTargetViewVariable *This,
        ID3D10RenderTargetView **view);

    HRESULT (STDMETHODCALLTYPE *SetRenderTargetArray)(
        ID3D10EffectRenderTargetViewVariable *This,
        ID3D10RenderTargetView **views,
        UINT offset,
        UINT count);

    HRESULT (STDMETHODCALLTYPE *GetRenderTargetArray)(
        ID3D10EffectRenderTargetViewVariable *This,
        ID3D10RenderTargetView **views,
        UINT offset,
        UINT count);

    END_INTERFACE
} ID3D10EffectRenderTargetViewVariableVtbl;

interface ID3D10EffectRenderTargetViewVariable {
    CONST_VTBL ID3D10EffectRenderTargetViewVariableVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** ID3D10EffectVariable methods ***/
#define ID3D10EffectRenderTargetViewVariable_IsValid(This) (This)->lpVtbl->IsValid(This)
#define ID3D10EffectRenderTargetViewVariable_GetType(This) (This)->lpVtbl->GetType(This)
#define ID3D10EffectRenderTargetViewVariable_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
#define ID3D10EffectRenderTargetViewVariable_GetAnnotationByIndex(This,index) (This)->lpVtbl->GetAnnotationByIndex(This,index)
#define ID3D10EffectRenderTargetViewVariable_GetAnnotationByName(This,name) (This)->lpVtbl->GetAnnotationByName(This,name)
#define ID3D10EffectRenderTargetViewVariable_GetMemberByIndex(This,index) (This)->lpVtbl->GetMemberByIndex(This,index)
#define ID3D10EffectRenderTargetViewVariable_GetMemberByName(This,name) (This)->lpVtbl->GetMemberByName(This,name)
#define ID3D10EffectRenderTargetViewVariable_GetMemberBySemantic(This,semantic) (This)->lpVtbl->GetMemberBySemantic(This,semantic)
#define ID3D10EffectRenderTargetViewVariable_GetElement(This,index) (This)->lpVtbl->GetElement(This,index)
#define ID3D10EffectRenderTargetViewVariable_GetParentConstantBuffer(This) (This)->lpVtbl->GetParentConstantBuffer(This)
#define ID3D10EffectRenderTargetViewVariable_AsScalar(This) (This)->lpVtbl->AsScalar(This)
#define ID3D10EffectRenderTargetViewVariable_AsVector(This) (This)->lpVtbl->AsVector(This)
#define ID3D10EffectRenderTargetViewVariable_AsMatrix(This) (This)->lpVtbl->AsMatrix(This)
#define ID3D10EffectRenderTargetViewVariable_AsString(This) (This)->lpVtbl->AsString(This)
#define ID3D10EffectRenderTargetViewVariable_AsShaderResource(This) (This)->lpVtbl->AsShaderResource(This)
#define ID3D10EffectRenderTargetViewVariable_AsRenderTargetView(This) (This)->lpVtbl->AsRenderTargetView(This)
#define ID3D10EffectRenderTargetViewVariable_AsDepthStencilView(This) (This)->lpVtbl->AsDepthStencilView(This)
#define ID3D10EffectRenderTargetViewVariable_AsConstantBuffer(This) (This)->lpVtbl->AsConstantBuffer(This)
#define ID3D10EffectRenderTargetViewVariable_AsShader(This) (This)->lpVtbl->AsShader(This)
#define ID3D10EffectRenderTargetViewVariable_AsBlend(This) (This)->lpVtbl->AsBlend(This)
#define ID3D10EffectRenderTargetViewVariable_AsDepthStencil(This) (This)->lpVtbl->AsDepthStencil(This)
#define ID3D10EffectRenderTargetViewVariable_AsRasterizer(This) (This)->lpVtbl->AsRasterizer(This)
#define ID3D10EffectRenderTargetViewVariable_AsSampler(This) (This)->lpVtbl->AsSampler(This)
#define ID3D10EffectRenderTargetViewVariable_SetRawValue(This,data,offset,count) (This)->lpVtbl->SetRawValue(This,data,offset,count)
#define ID3D10EffectRenderTargetViewVariable_GetRawValue(This,data,offset,count) (This)->lpVtbl->GetRawValue(This,data,offset,count)
/*** ID3D10EffectRenderTargetViewVariable methods ***/
#define ID3D10EffectRenderTargetViewVariable_SetRenderTarget(This,view) (This)->lpVtbl->SetRenderTarget(This,view)
#define ID3D10EffectRenderTargetViewVariable_GetRenderTarget(This,view) (This)->lpVtbl->GetRenderTarget(This,view)
#define ID3D10EffectRenderTargetViewVariable_SetRenderTargetArray(This,views,offset,count) (This)->lpVtbl->SetRenderTargetArray(This,views,offset,count)
#define ID3D10EffectRenderTargetViewVariable_GetRenderTargetArray(This,views,offset,count) (This)->lpVtbl->GetRenderTargetArray(This,views,offset,count)
#else
/*** ID3D10EffectVariable methods ***/
static __WIDL_INLINE BOOL ID3D10EffectRenderTargetViewVariable_IsValid(ID3D10EffectRenderTargetViewVariable* This) {
    return This->lpVtbl->IsValid(This);
}
static __WIDL_INLINE ID3D10EffectType * ID3D10EffectRenderTargetViewVariable_GetType(ID3D10EffectRenderTargetViewVariable* This) {
    return This->lpVtbl->GetType(This);
}
static __WIDL_INLINE HRESULT ID3D10EffectRenderTargetViewVariable_GetDesc(ID3D10EffectRenderTargetViewVariable* This,D3D10_EFFECT_VARIABLE_DESC *desc) {
    return This->lpVtbl->GetDesc(This,desc);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectRenderTargetViewVariable_GetAnnotationByIndex(ID3D10EffectRenderTargetViewVariable* This,UINT index) {
    return This->lpVtbl->GetAnnotationByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectRenderTargetViewVariable_GetAnnotationByName(ID3D10EffectRenderTargetViewVariable* This,const char *name) {
    return This->lpVtbl->GetAnnotationByName(This,name);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectRenderTargetViewVariable_GetMemberByIndex(ID3D10EffectRenderTargetViewVariable* This,UINT index) {
    return This->lpVtbl->GetMemberByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectRenderTargetViewVariable_GetMemberByName(ID3D10EffectRenderTargetViewVariable* This,const char *name) {
    return This->lpVtbl->GetMemberByName(This,name);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectRenderTargetViewVariable_GetMemberBySemantic(ID3D10EffectRenderTargetViewVariable* This,const char *semantic) {
    return This->lpVtbl->GetMemberBySemantic(This,semantic);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectRenderTargetViewVariable_GetElement(ID3D10EffectRenderTargetViewVariable* This,UINT index) {
    return This->lpVtbl->GetElement(This,index);
}
static __WIDL_INLINE ID3D10EffectConstantBuffer * ID3D10EffectRenderTargetViewVariable_GetParentConstantBuffer(ID3D10EffectRenderTargetViewVariable* This) {
    return This->lpVtbl->GetParentConstantBuffer(This);
}
static __WIDL_INLINE ID3D10EffectScalarVariable * ID3D10EffectRenderTargetViewVariable_AsScalar(ID3D10EffectRenderTargetViewVariable* This) {
    return This->lpVtbl->AsScalar(This);
}
static __WIDL_INLINE ID3D10EffectVectorVariable * ID3D10EffectRenderTargetViewVariable_AsVector(ID3D10EffectRenderTargetViewVariable* This) {
    return This->lpVtbl->AsVector(This);
}
static __WIDL_INLINE ID3D10EffectMatrixVariable * ID3D10EffectRenderTargetViewVariable_AsMatrix(ID3D10EffectRenderTargetViewVariable* This) {
    return This->lpVtbl->AsMatrix(This);
}
static __WIDL_INLINE ID3D10EffectStringVariable * ID3D10EffectRenderTargetViewVariable_AsString(ID3D10EffectRenderTargetViewVariable* This) {
    return This->lpVtbl->AsString(This);
}
static __WIDL_INLINE ID3D10EffectShaderResourceVariable * ID3D10EffectRenderTargetViewVariable_AsShaderResource(ID3D10EffectRenderTargetViewVariable* This) {
    return This->lpVtbl->AsShaderResource(This);
}
static __WIDL_INLINE ID3D10EffectRenderTargetViewVariable * ID3D10EffectRenderTargetViewVariable_AsRenderTargetView(ID3D10EffectRenderTargetViewVariable* This) {
    return This->lpVtbl->AsRenderTargetView(This);
}
static __WIDL_INLINE ID3D10EffectDepthStencilViewVariable * ID3D10EffectRenderTargetViewVariable_AsDepthStencilView(ID3D10EffectRenderTargetViewVariable* This) {
    return This->lpVtbl->AsDepthStencilView(This);
}
static __WIDL_INLINE ID3D10EffectConstantBuffer * ID3D10EffectRenderTargetViewVariable_AsConstantBuffer(ID3D10EffectRenderTargetViewVariable* This) {
    return This->lpVtbl->AsConstantBuffer(This);
}
static __WIDL_INLINE ID3D10EffectShaderVariable * ID3D10EffectRenderTargetViewVariable_AsShader(ID3D10EffectRenderTargetViewVariable* This) {
    return This->lpVtbl->AsShader(This);
}
static __WIDL_INLINE ID3D10EffectBlendVariable * ID3D10EffectRenderTargetViewVariable_AsBlend(ID3D10EffectRenderTargetViewVariable* This) {
    return This->lpVtbl->AsBlend(This);
}
static __WIDL_INLINE ID3D10EffectDepthStencilVariable * ID3D10EffectRenderTargetViewVariable_AsDepthStencil(ID3D10EffectRenderTargetViewVariable* This) {
    return This->lpVtbl->AsDepthStencil(This);
}
static __WIDL_INLINE ID3D10EffectRasterizerVariable * ID3D10EffectRenderTargetViewVariable_AsRasterizer(ID3D10EffectRenderTargetViewVariable* This) {
    return This->lpVtbl->AsRasterizer(This);
}
static __WIDL_INLINE ID3D10EffectSamplerVariable * ID3D10EffectRenderTargetViewVariable_AsSampler(ID3D10EffectRenderTargetViewVariable* This) {
    return This->lpVtbl->AsSampler(This);
}
static __WIDL_INLINE HRESULT ID3D10EffectRenderTargetViewVariable_SetRawValue(ID3D10EffectRenderTargetViewVariable* This,void *data,UINT offset,UINT count) {
    return This->lpVtbl->SetRawValue(This,data,offset,count);
}
static __WIDL_INLINE HRESULT ID3D10EffectRenderTargetViewVariable_GetRawValue(ID3D10EffectRenderTargetViewVariable* This,void *data,UINT offset,UINT count) {
    return This->lpVtbl->GetRawValue(This,data,offset,count);
}
/*** ID3D10EffectRenderTargetViewVariable methods ***/
static __WIDL_INLINE HRESULT ID3D10EffectRenderTargetViewVariable_SetRenderTarget(ID3D10EffectRenderTargetViewVariable* This,ID3D10RenderTargetView *view) {
    return This->lpVtbl->SetRenderTarget(This,view);
}
static __WIDL_INLINE HRESULT ID3D10EffectRenderTargetViewVariable_GetRenderTarget(ID3D10EffectRenderTargetViewVariable* This,ID3D10RenderTargetView **view) {
    return This->lpVtbl->GetRenderTarget(This,view);
}
static __WIDL_INLINE HRESULT ID3D10EffectRenderTargetViewVariable_SetRenderTargetArray(ID3D10EffectRenderTargetViewVariable* This,ID3D10RenderTargetView **views,UINT offset,UINT count) {
    return This->lpVtbl->SetRenderTargetArray(This,views,offset,count);
}
static __WIDL_INLINE HRESULT ID3D10EffectRenderTargetViewVariable_GetRenderTargetArray(ID3D10EffectRenderTargetViewVariable* This,ID3D10RenderTargetView **views,UINT offset,UINT count) {
    return This->lpVtbl->GetRenderTargetArray(This,views,offset,count);
}
#endif
#endif

#endif


#endif  /* __ID3D10EffectRenderTargetViewVariable_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ID3D10EffectDepthStencilViewVariable interface
 */
#ifndef __ID3D10EffectDepthStencilViewVariable_INTERFACE_DEFINED__
#define __ID3D10EffectDepthStencilViewVariable_INTERFACE_DEFINED__

DEFINE_GUID(IID_ID3D10EffectDepthStencilViewVariable, 0x3e02c918, 0xcc79, 0x4985, 0xb6,0x22, 0x2d,0x92,0xad,0x70,0x16,0x23);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("3e02c918-cc79-4985-b622-2d92ad701623")
ID3D10EffectDepthStencilViewVariable : public ID3D10EffectVariable
{
    virtual HRESULT STDMETHODCALLTYPE SetDepthStencil(
        ID3D10DepthStencilView *view) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetDepthStencil(
        ID3D10DepthStencilView **view) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetDepthStencilArray(
        ID3D10DepthStencilView **views,
        UINT offset,
        UINT count) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetDepthStencilArray(
        ID3D10DepthStencilView **views,
        UINT offset,
        UINT count) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ID3D10EffectDepthStencilViewVariable, 0x3e02c918, 0xcc79, 0x4985, 0xb6,0x22, 0x2d,0x92,0xad,0x70,0x16,0x23)
#endif
#else
typedef struct ID3D10EffectDepthStencilViewVariableVtbl {
    BEGIN_INTERFACE

    /*** ID3D10EffectVariable methods ***/
    BOOL (STDMETHODCALLTYPE *IsValid)(
        ID3D10EffectDepthStencilViewVariable *This);

    ID3D10EffectType * (STDMETHODCALLTYPE *GetType)(
        ID3D10EffectDepthStencilViewVariable *This);

    HRESULT (STDMETHODCALLTYPE *GetDesc)(
        ID3D10EffectDepthStencilViewVariable *This,
        D3D10_EFFECT_VARIABLE_DESC *desc);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetAnnotationByIndex)(
        ID3D10EffectDepthStencilViewVariable *This,
        UINT index);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetAnnotationByName)(
        ID3D10EffectDepthStencilViewVariable *This,
        const char *name);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberByIndex)(
        ID3D10EffectDepthStencilViewVariable *This,
        UINT index);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberByName)(
        ID3D10EffectDepthStencilViewVariable *This,
        const char *name);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberBySemantic)(
        ID3D10EffectDepthStencilViewVariable *This,
        const char *semantic);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetElement)(
        ID3D10EffectDepthStencilViewVariable *This,
        UINT index);

    ID3D10EffectConstantBuffer * (STDMETHODCALLTYPE *GetParentConstantBuffer)(
        ID3D10EffectDepthStencilViewVariable *This);

    ID3D10EffectScalarVariable * (STDMETHODCALLTYPE *AsScalar)(
        ID3D10EffectDepthStencilViewVariable *This);

    ID3D10EffectVectorVariable * (STDMETHODCALLTYPE *AsVector)(
        ID3D10EffectDepthStencilViewVariable *This);

    ID3D10EffectMatrixVariable * (STDMETHODCALLTYPE *AsMatrix)(
        ID3D10EffectDepthStencilViewVariable *This);

    ID3D10EffectStringVariable * (STDMETHODCALLTYPE *AsString)(
        ID3D10EffectDepthStencilViewVariable *This);

    ID3D10EffectShaderResourceVariable * (STDMETHODCALLTYPE *AsShaderResource)(
        ID3D10EffectDepthStencilViewVariable *This);

    ID3D10EffectRenderTargetViewVariable * (STDMETHODCALLTYPE *AsRenderTargetView)(
        ID3D10EffectDepthStencilViewVariable *This);

    ID3D10EffectDepthStencilViewVariable * (STDMETHODCALLTYPE *AsDepthStencilView)(
        ID3D10EffectDepthStencilViewVariable *This);

    ID3D10EffectConstantBuffer * (STDMETHODCALLTYPE *AsConstantBuffer)(
        ID3D10EffectDepthStencilViewVariable *This);

    ID3D10EffectShaderVariable * (STDMETHODCALLTYPE *AsShader)(
        ID3D10EffectDepthStencilViewVariable *This);

    ID3D10EffectBlendVariable * (STDMETHODCALLTYPE *AsBlend)(
        ID3D10EffectDepthStencilViewVariable *This);

    ID3D10EffectDepthStencilVariable * (STDMETHODCALLTYPE *AsDepthStencil)(
        ID3D10EffectDepthStencilViewVariable *This);

    ID3D10EffectRasterizerVariable * (STDMETHODCALLTYPE *AsRasterizer)(
        ID3D10EffectDepthStencilViewVariable *This);

    ID3D10EffectSamplerVariable * (STDMETHODCALLTYPE *AsSampler)(
        ID3D10EffectDepthStencilViewVariable *This);

    HRESULT (STDMETHODCALLTYPE *SetRawValue)(
        ID3D10EffectDepthStencilViewVariable *This,
        void *data,
        UINT offset,
        UINT count);

    HRESULT (STDMETHODCALLTYPE *GetRawValue)(
        ID3D10EffectDepthStencilViewVariable *This,
        void *data,
        UINT offset,
        UINT count);

    /*** ID3D10EffectDepthStencilViewVariable methods ***/
    HRESULT (STDMETHODCALLTYPE *SetDepthStencil)(
        ID3D10EffectDepthStencilViewVariable *This,
        ID3D10DepthStencilView *view);

    HRESULT (STDMETHODCALLTYPE *GetDepthStencil)(
        ID3D10EffectDepthStencilViewVariable *This,
        ID3D10DepthStencilView **view);

    HRESULT (STDMETHODCALLTYPE *SetDepthStencilArray)(
        ID3D10EffectDepthStencilViewVariable *This,
        ID3D10DepthStencilView **views,
        UINT offset,
        UINT count);

    HRESULT (STDMETHODCALLTYPE *GetDepthStencilArray)(
        ID3D10EffectDepthStencilViewVariable *This,
        ID3D10DepthStencilView **views,
        UINT offset,
        UINT count);

    END_INTERFACE
} ID3D10EffectDepthStencilViewVariableVtbl;

interface ID3D10EffectDepthStencilViewVariable {
    CONST_VTBL ID3D10EffectDepthStencilViewVariableVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** ID3D10EffectVariable methods ***/
#define ID3D10EffectDepthStencilViewVariable_IsValid(This) (This)->lpVtbl->IsValid(This)
#define ID3D10EffectDepthStencilViewVariable_GetType(This) (This)->lpVtbl->GetType(This)
#define ID3D10EffectDepthStencilViewVariable_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
#define ID3D10EffectDepthStencilViewVariable_GetAnnotationByIndex(This,index) (This)->lpVtbl->GetAnnotationByIndex(This,index)
#define ID3D10EffectDepthStencilViewVariable_GetAnnotationByName(This,name) (This)->lpVtbl->GetAnnotationByName(This,name)
#define ID3D10EffectDepthStencilViewVariable_GetMemberByIndex(This,index) (This)->lpVtbl->GetMemberByIndex(This,index)
#define ID3D10EffectDepthStencilViewVariable_GetMemberByName(This,name) (This)->lpVtbl->GetMemberByName(This,name)
#define ID3D10EffectDepthStencilViewVariable_GetMemberBySemantic(This,semantic) (This)->lpVtbl->GetMemberBySemantic(This,semantic)
#define ID3D10EffectDepthStencilViewVariable_GetElement(This,index) (This)->lpVtbl->GetElement(This,index)
#define ID3D10EffectDepthStencilViewVariable_GetParentConstantBuffer(This) (This)->lpVtbl->GetParentConstantBuffer(This)
#define ID3D10EffectDepthStencilViewVariable_AsScalar(This) (This)->lpVtbl->AsScalar(This)
#define ID3D10EffectDepthStencilViewVariable_AsVector(This) (This)->lpVtbl->AsVector(This)
#define ID3D10EffectDepthStencilViewVariable_AsMatrix(This) (This)->lpVtbl->AsMatrix(This)
#define ID3D10EffectDepthStencilViewVariable_AsString(This) (This)->lpVtbl->AsString(This)
#define ID3D10EffectDepthStencilViewVariable_AsShaderResource(This) (This)->lpVtbl->AsShaderResource(This)
#define ID3D10EffectDepthStencilViewVariable_AsRenderTargetView(This) (This)->lpVtbl->AsRenderTargetView(This)
#define ID3D10EffectDepthStencilViewVariable_AsDepthStencilView(This) (This)->lpVtbl->AsDepthStencilView(This)
#define ID3D10EffectDepthStencilViewVariable_AsConstantBuffer(This) (This)->lpVtbl->AsConstantBuffer(This)
#define ID3D10EffectDepthStencilViewVariable_AsShader(This) (This)->lpVtbl->AsShader(This)
#define ID3D10EffectDepthStencilViewVariable_AsBlend(This) (This)->lpVtbl->AsBlend(This)
#define ID3D10EffectDepthStencilViewVariable_AsDepthStencil(This) (This)->lpVtbl->AsDepthStencil(This)
#define ID3D10EffectDepthStencilViewVariable_AsRasterizer(This) (This)->lpVtbl->AsRasterizer(This)
#define ID3D10EffectDepthStencilViewVariable_AsSampler(This) (This)->lpVtbl->AsSampler(This)
#define ID3D10EffectDepthStencilViewVariable_SetRawValue(This,data,offset,count) (This)->lpVtbl->SetRawValue(This,data,offset,count)
#define ID3D10EffectDepthStencilViewVariable_GetRawValue(This,data,offset,count) (This)->lpVtbl->GetRawValue(This,data,offset,count)
/*** ID3D10EffectDepthStencilViewVariable methods ***/
#define ID3D10EffectDepthStencilViewVariable_SetDepthStencil(This,view) (This)->lpVtbl->SetDepthStencil(This,view)
#define ID3D10EffectDepthStencilViewVariable_GetDepthStencil(This,view) (This)->lpVtbl->GetDepthStencil(This,view)
#define ID3D10EffectDepthStencilViewVariable_SetDepthStencilArray(This,views,offset,count) (This)->lpVtbl->SetDepthStencilArray(This,views,offset,count)
#define ID3D10EffectDepthStencilViewVariable_GetDepthStencilArray(This,views,offset,count) (This)->lpVtbl->GetDepthStencilArray(This,views,offset,count)
#else
/*** ID3D10EffectVariable methods ***/
static __WIDL_INLINE BOOL ID3D10EffectDepthStencilViewVariable_IsValid(ID3D10EffectDepthStencilViewVariable* This) {
    return This->lpVtbl->IsValid(This);
}
static __WIDL_INLINE ID3D10EffectType * ID3D10EffectDepthStencilViewVariable_GetType(ID3D10EffectDepthStencilViewVariable* This) {
    return This->lpVtbl->GetType(This);
}
static __WIDL_INLINE HRESULT ID3D10EffectDepthStencilViewVariable_GetDesc(ID3D10EffectDepthStencilViewVariable* This,D3D10_EFFECT_VARIABLE_DESC *desc) {
    return This->lpVtbl->GetDesc(This,desc);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectDepthStencilViewVariable_GetAnnotationByIndex(ID3D10EffectDepthStencilViewVariable* This,UINT index) {
    return This->lpVtbl->GetAnnotationByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectDepthStencilViewVariable_GetAnnotationByName(ID3D10EffectDepthStencilViewVariable* This,const char *name) {
    return This->lpVtbl->GetAnnotationByName(This,name);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectDepthStencilViewVariable_GetMemberByIndex(ID3D10EffectDepthStencilViewVariable* This,UINT index) {
    return This->lpVtbl->GetMemberByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectDepthStencilViewVariable_GetMemberByName(ID3D10EffectDepthStencilViewVariable* This,const char *name) {
    return This->lpVtbl->GetMemberByName(This,name);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectDepthStencilViewVariable_GetMemberBySemantic(ID3D10EffectDepthStencilViewVariable* This,const char *semantic) {
    return This->lpVtbl->GetMemberBySemantic(This,semantic);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectDepthStencilViewVariable_GetElement(ID3D10EffectDepthStencilViewVariable* This,UINT index) {
    return This->lpVtbl->GetElement(This,index);
}
static __WIDL_INLINE ID3D10EffectConstantBuffer * ID3D10EffectDepthStencilViewVariable_GetParentConstantBuffer(ID3D10EffectDepthStencilViewVariable* This) {
    return This->lpVtbl->GetParentConstantBuffer(This);
}
static __WIDL_INLINE ID3D10EffectScalarVariable * ID3D10EffectDepthStencilViewVariable_AsScalar(ID3D10EffectDepthStencilViewVariable* This) {
    return This->lpVtbl->AsScalar(This);
}
static __WIDL_INLINE ID3D10EffectVectorVariable * ID3D10EffectDepthStencilViewVariable_AsVector(ID3D10EffectDepthStencilViewVariable* This) {
    return This->lpVtbl->AsVector(This);
}
static __WIDL_INLINE ID3D10EffectMatrixVariable * ID3D10EffectDepthStencilViewVariable_AsMatrix(ID3D10EffectDepthStencilViewVariable* This) {
    return This->lpVtbl->AsMatrix(This);
}
static __WIDL_INLINE ID3D10EffectStringVariable * ID3D10EffectDepthStencilViewVariable_AsString(ID3D10EffectDepthStencilViewVariable* This) {
    return This->lpVtbl->AsString(This);
}
static __WIDL_INLINE ID3D10EffectShaderResourceVariable * ID3D10EffectDepthStencilViewVariable_AsShaderResource(ID3D10EffectDepthStencilViewVariable* This) {
    return This->lpVtbl->AsShaderResource(This);
}
static __WIDL_INLINE ID3D10EffectRenderTargetViewVariable * ID3D10EffectDepthStencilViewVariable_AsRenderTargetView(ID3D10EffectDepthStencilViewVariable* This) {
    return This->lpVtbl->AsRenderTargetView(This);
}
static __WIDL_INLINE ID3D10EffectDepthStencilViewVariable * ID3D10EffectDepthStencilViewVariable_AsDepthStencilView(ID3D10EffectDepthStencilViewVariable* This) {
    return This->lpVtbl->AsDepthStencilView(This);
}
static __WIDL_INLINE ID3D10EffectConstantBuffer * ID3D10EffectDepthStencilViewVariable_AsConstantBuffer(ID3D10EffectDepthStencilViewVariable* This) {
    return This->lpVtbl->AsConstantBuffer(This);
}
static __WIDL_INLINE ID3D10EffectShaderVariable * ID3D10EffectDepthStencilViewVariable_AsShader(ID3D10EffectDepthStencilViewVariable* This) {
    return This->lpVtbl->AsShader(This);
}
static __WIDL_INLINE ID3D10EffectBlendVariable * ID3D10EffectDepthStencilViewVariable_AsBlend(ID3D10EffectDepthStencilViewVariable* This) {
    return This->lpVtbl->AsBlend(This);
}
static __WIDL_INLINE ID3D10EffectDepthStencilVariable * ID3D10EffectDepthStencilViewVariable_AsDepthStencil(ID3D10EffectDepthStencilViewVariable* This) {
    return This->lpVtbl->AsDepthStencil(This);
}
static __WIDL_INLINE ID3D10EffectRasterizerVariable * ID3D10EffectDepthStencilViewVariable_AsRasterizer(ID3D10EffectDepthStencilViewVariable* This) {
    return This->lpVtbl->AsRasterizer(This);
}
static __WIDL_INLINE ID3D10EffectSamplerVariable * ID3D10EffectDepthStencilViewVariable_AsSampler(ID3D10EffectDepthStencilViewVariable* This) {
    return This->lpVtbl->AsSampler(This);
}
static __WIDL_INLINE HRESULT ID3D10EffectDepthStencilViewVariable_SetRawValue(ID3D10EffectDepthStencilViewVariable* This,void *data,UINT offset,UINT count) {
    return This->lpVtbl->SetRawValue(This,data,offset,count);
}
static __WIDL_INLINE HRESULT ID3D10EffectDepthStencilViewVariable_GetRawValue(ID3D10EffectDepthStencilViewVariable* This,void *data,UINT offset,UINT count) {
    return This->lpVtbl->GetRawValue(This,data,offset,count);
}
/*** ID3D10EffectDepthStencilViewVariable methods ***/
static __WIDL_INLINE HRESULT ID3D10EffectDepthStencilViewVariable_SetDepthStencil(ID3D10EffectDepthStencilViewVariable* This,ID3D10DepthStencilView *view) {
    return This->lpVtbl->SetDepthStencil(This,view);
}
static __WIDL_INLINE HRESULT ID3D10EffectDepthStencilViewVariable_GetDepthStencil(ID3D10EffectDepthStencilViewVariable* This,ID3D10DepthStencilView **view) {
    return This->lpVtbl->GetDepthStencil(This,view);
}
static __WIDL_INLINE HRESULT ID3D10EffectDepthStencilViewVariable_SetDepthStencilArray(ID3D10EffectDepthStencilViewVariable* This,ID3D10DepthStencilView **views,UINT offset,UINT count) {
    return This->lpVtbl->SetDepthStencilArray(This,views,offset,count);
}
static __WIDL_INLINE HRESULT ID3D10EffectDepthStencilViewVariable_GetDepthStencilArray(ID3D10EffectDepthStencilViewVariable* This,ID3D10DepthStencilView **views,UINT offset,UINT count) {
    return This->lpVtbl->GetDepthStencilArray(This,views,offset,count);
}
#endif
#endif

#endif


#endif  /* __ID3D10EffectDepthStencilViewVariable_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ID3D10EffectShaderVariable interface
 */
#ifndef __ID3D10EffectShaderVariable_INTERFACE_DEFINED__
#define __ID3D10EffectShaderVariable_INTERFACE_DEFINED__

DEFINE_GUID(IID_ID3D10EffectShaderVariable, 0x80849279, 0xc799, 0x4797, 0x8c,0x33, 0x04,0x07,0xa0,0x7d,0x9e,0x06);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("80849279-c799-4797-8c33-0407a07d9e06")
ID3D10EffectShaderVariable : public ID3D10EffectVariable
{
    virtual HRESULT STDMETHODCALLTYPE GetShaderDesc(
        UINT index,
        D3D10_EFFECT_SHADER_DESC *desc) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetVertexShader(
        UINT index,
        ID3D10VertexShader **shader) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetGeometryShader(
        UINT index,
        ID3D10GeometryShader **shader) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetPixelShader(
        UINT index,
        ID3D10PixelShader **shader) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetInputSignatureElementDesc(
        UINT shader_index,
        UINT element_index,
        D3D10_SIGNATURE_PARAMETER_DESC *desc) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetOutputSignatureElementDesc(
        UINT shader_index,
        UINT element_index,
        D3D10_SIGNATURE_PARAMETER_DESC *desc) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ID3D10EffectShaderVariable, 0x80849279, 0xc799, 0x4797, 0x8c,0x33, 0x04,0x07,0xa0,0x7d,0x9e,0x06)
#endif
#else
typedef struct ID3D10EffectShaderVariableVtbl {
    BEGIN_INTERFACE

    /*** ID3D10EffectVariable methods ***/
    BOOL (STDMETHODCALLTYPE *IsValid)(
        ID3D10EffectShaderVariable *This);

    ID3D10EffectType * (STDMETHODCALLTYPE *GetType)(
        ID3D10EffectShaderVariable *This);

    HRESULT (STDMETHODCALLTYPE *GetDesc)(
        ID3D10EffectShaderVariable *This,
        D3D10_EFFECT_VARIABLE_DESC *desc);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetAnnotationByIndex)(
        ID3D10EffectShaderVariable *This,
        UINT index);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetAnnotationByName)(
        ID3D10EffectShaderVariable *This,
        const char *name);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberByIndex)(
        ID3D10EffectShaderVariable *This,
        UINT index);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberByName)(
        ID3D10EffectShaderVariable *This,
        const char *name);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberBySemantic)(
        ID3D10EffectShaderVariable *This,
        const char *semantic);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetElement)(
        ID3D10EffectShaderVariable *This,
        UINT index);

    ID3D10EffectConstantBuffer * (STDMETHODCALLTYPE *GetParentConstantBuffer)(
        ID3D10EffectShaderVariable *This);

    ID3D10EffectScalarVariable * (STDMETHODCALLTYPE *AsScalar)(
        ID3D10EffectShaderVariable *This);

    ID3D10EffectVectorVariable * (STDMETHODCALLTYPE *AsVector)(
        ID3D10EffectShaderVariable *This);

    ID3D10EffectMatrixVariable * (STDMETHODCALLTYPE *AsMatrix)(
        ID3D10EffectShaderVariable *This);

    ID3D10EffectStringVariable * (STDMETHODCALLTYPE *AsString)(
        ID3D10EffectShaderVariable *This);

    ID3D10EffectShaderResourceVariable * (STDMETHODCALLTYPE *AsShaderResource)(
        ID3D10EffectShaderVariable *This);

    ID3D10EffectRenderTargetViewVariable * (STDMETHODCALLTYPE *AsRenderTargetView)(
        ID3D10EffectShaderVariable *This);

    ID3D10EffectDepthStencilViewVariable * (STDMETHODCALLTYPE *AsDepthStencilView)(
        ID3D10EffectShaderVariable *This);

    ID3D10EffectConstantBuffer * (STDMETHODCALLTYPE *AsConstantBuffer)(
        ID3D10EffectShaderVariable *This);

    ID3D10EffectShaderVariable * (STDMETHODCALLTYPE *AsShader)(
        ID3D10EffectShaderVariable *This);

    ID3D10EffectBlendVariable * (STDMETHODCALLTYPE *AsBlend)(
        ID3D10EffectShaderVariable *This);

    ID3D10EffectDepthStencilVariable * (STDMETHODCALLTYPE *AsDepthStencil)(
        ID3D10EffectShaderVariable *This);

    ID3D10EffectRasterizerVariable * (STDMETHODCALLTYPE *AsRasterizer)(
        ID3D10EffectShaderVariable *This);

    ID3D10EffectSamplerVariable * (STDMETHODCALLTYPE *AsSampler)(
        ID3D10EffectShaderVariable *This);

    HRESULT (STDMETHODCALLTYPE *SetRawValue)(
        ID3D10EffectShaderVariable *This,
        void *data,
        UINT offset,
        UINT count);

    HRESULT (STDMETHODCALLTYPE *GetRawValue)(
        ID3D10EffectShaderVariable *This,
        void *data,
        UINT offset,
        UINT count);

    /*** ID3D10EffectShaderVariable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetShaderDesc)(
        ID3D10EffectShaderVariable *This,
        UINT index,
        D3D10_EFFECT_SHADER_DESC *desc);

    HRESULT (STDMETHODCALLTYPE *GetVertexShader)(
        ID3D10EffectShaderVariable *This,
        UINT index,
        ID3D10VertexShader **shader);

    HRESULT (STDMETHODCALLTYPE *GetGeometryShader)(
        ID3D10EffectShaderVariable *This,
        UINT index,
        ID3D10GeometryShader **shader);

    HRESULT (STDMETHODCALLTYPE *GetPixelShader)(
        ID3D10EffectShaderVariable *This,
        UINT index,
        ID3D10PixelShader **shader);

    HRESULT (STDMETHODCALLTYPE *GetInputSignatureElementDesc)(
        ID3D10EffectShaderVariable *This,
        UINT shader_index,
        UINT element_index,
        D3D10_SIGNATURE_PARAMETER_DESC *desc);

    HRESULT (STDMETHODCALLTYPE *GetOutputSignatureElementDesc)(
        ID3D10EffectShaderVariable *This,
        UINT shader_index,
        UINT element_index,
        D3D10_SIGNATURE_PARAMETER_DESC *desc);

    END_INTERFACE
} ID3D10EffectShaderVariableVtbl;

interface ID3D10EffectShaderVariable {
    CONST_VTBL ID3D10EffectShaderVariableVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** ID3D10EffectVariable methods ***/
#define ID3D10EffectShaderVariable_IsValid(This) (This)->lpVtbl->IsValid(This)
#define ID3D10EffectShaderVariable_GetType(This) (This)->lpVtbl->GetType(This)
#define ID3D10EffectShaderVariable_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
#define ID3D10EffectShaderVariable_GetAnnotationByIndex(This,index) (This)->lpVtbl->GetAnnotationByIndex(This,index)
#define ID3D10EffectShaderVariable_GetAnnotationByName(This,name) (This)->lpVtbl->GetAnnotationByName(This,name)
#define ID3D10EffectShaderVariable_GetMemberByIndex(This,index) (This)->lpVtbl->GetMemberByIndex(This,index)
#define ID3D10EffectShaderVariable_GetMemberByName(This,name) (This)->lpVtbl->GetMemberByName(This,name)
#define ID3D10EffectShaderVariable_GetMemberBySemantic(This,semantic) (This)->lpVtbl->GetMemberBySemantic(This,semantic)
#define ID3D10EffectShaderVariable_GetElement(This,index) (This)->lpVtbl->GetElement(This,index)
#define ID3D10EffectShaderVariable_GetParentConstantBuffer(This) (This)->lpVtbl->GetParentConstantBuffer(This)
#define ID3D10EffectShaderVariable_AsScalar(This) (This)->lpVtbl->AsScalar(This)
#define ID3D10EffectShaderVariable_AsVector(This) (This)->lpVtbl->AsVector(This)
#define ID3D10EffectShaderVariable_AsMatrix(This) (This)->lpVtbl->AsMatrix(This)
#define ID3D10EffectShaderVariable_AsString(This) (This)->lpVtbl->AsString(This)
#define ID3D10EffectShaderVariable_AsShaderResource(This) (This)->lpVtbl->AsShaderResource(This)
#define ID3D10EffectShaderVariable_AsRenderTargetView(This) (This)->lpVtbl->AsRenderTargetView(This)
#define ID3D10EffectShaderVariable_AsDepthStencilView(This) (This)->lpVtbl->AsDepthStencilView(This)
#define ID3D10EffectShaderVariable_AsConstantBuffer(This) (This)->lpVtbl->AsConstantBuffer(This)
#define ID3D10EffectShaderVariable_AsShader(This) (This)->lpVtbl->AsShader(This)
#define ID3D10EffectShaderVariable_AsBlend(This) (This)->lpVtbl->AsBlend(This)
#define ID3D10EffectShaderVariable_AsDepthStencil(This) (This)->lpVtbl->AsDepthStencil(This)
#define ID3D10EffectShaderVariable_AsRasterizer(This) (This)->lpVtbl->AsRasterizer(This)
#define ID3D10EffectShaderVariable_AsSampler(This) (This)->lpVtbl->AsSampler(This)
#define ID3D10EffectShaderVariable_SetRawValue(This,data,offset,count) (This)->lpVtbl->SetRawValue(This,data,offset,count)
#define ID3D10EffectShaderVariable_GetRawValue(This,data,offset,count) (This)->lpVtbl->GetRawValue(This,data,offset,count)
/*** ID3D10EffectShaderVariable methods ***/
#define ID3D10EffectShaderVariable_GetShaderDesc(This,index,desc) (This)->lpVtbl->GetShaderDesc(This,index,desc)
#define ID3D10EffectShaderVariable_GetVertexShader(This,index,shader) (This)->lpVtbl->GetVertexShader(This,index,shader)
#define ID3D10EffectShaderVariable_GetGeometryShader(This,index,shader) (This)->lpVtbl->GetGeometryShader(This,index,shader)
#define ID3D10EffectShaderVariable_GetPixelShader(This,index,shader) (This)->lpVtbl->GetPixelShader(This,index,shader)
#define ID3D10EffectShaderVariable_GetInputSignatureElementDesc(This,shader_index,element_index,desc) (This)->lpVtbl->GetInputSignatureElementDesc(This,shader_index,element_index,desc)
#define ID3D10EffectShaderVariable_GetOutputSignatureElementDesc(This,shader_index,element_index,desc) (This)->lpVtbl->GetOutputSignatureElementDesc(This,shader_index,element_index,desc)
#else
/*** ID3D10EffectVariable methods ***/
static __WIDL_INLINE BOOL ID3D10EffectShaderVariable_IsValid(ID3D10EffectShaderVariable* This) {
    return This->lpVtbl->IsValid(This);
}
static __WIDL_INLINE ID3D10EffectType * ID3D10EffectShaderVariable_GetType(ID3D10EffectShaderVariable* This) {
    return This->lpVtbl->GetType(This);
}
static __WIDL_INLINE HRESULT ID3D10EffectShaderVariable_GetDesc(ID3D10EffectShaderVariable* This,D3D10_EFFECT_VARIABLE_DESC *desc) {
    return This->lpVtbl->GetDesc(This,desc);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectShaderVariable_GetAnnotationByIndex(ID3D10EffectShaderVariable* This,UINT index) {
    return This->lpVtbl->GetAnnotationByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectShaderVariable_GetAnnotationByName(ID3D10EffectShaderVariable* This,const char *name) {
    return This->lpVtbl->GetAnnotationByName(This,name);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectShaderVariable_GetMemberByIndex(ID3D10EffectShaderVariable* This,UINT index) {
    return This->lpVtbl->GetMemberByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectShaderVariable_GetMemberByName(ID3D10EffectShaderVariable* This,const char *name) {
    return This->lpVtbl->GetMemberByName(This,name);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectShaderVariable_GetMemberBySemantic(ID3D10EffectShaderVariable* This,const char *semantic) {
    return This->lpVtbl->GetMemberBySemantic(This,semantic);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectShaderVariable_GetElement(ID3D10EffectShaderVariable* This,UINT index) {
    return This->lpVtbl->GetElement(This,index);
}
static __WIDL_INLINE ID3D10EffectConstantBuffer * ID3D10EffectShaderVariable_GetParentConstantBuffer(ID3D10EffectShaderVariable* This) {
    return This->lpVtbl->GetParentConstantBuffer(This);
}
static __WIDL_INLINE ID3D10EffectScalarVariable * ID3D10EffectShaderVariable_AsScalar(ID3D10EffectShaderVariable* This) {
    return This->lpVtbl->AsScalar(This);
}
static __WIDL_INLINE ID3D10EffectVectorVariable * ID3D10EffectShaderVariable_AsVector(ID3D10EffectShaderVariable* This) {
    return This->lpVtbl->AsVector(This);
}
static __WIDL_INLINE ID3D10EffectMatrixVariable * ID3D10EffectShaderVariable_AsMatrix(ID3D10EffectShaderVariable* This) {
    return This->lpVtbl->AsMatrix(This);
}
static __WIDL_INLINE ID3D10EffectStringVariable * ID3D10EffectShaderVariable_AsString(ID3D10EffectShaderVariable* This) {
    return This->lpVtbl->AsString(This);
}
static __WIDL_INLINE ID3D10EffectShaderResourceVariable * ID3D10EffectShaderVariable_AsShaderResource(ID3D10EffectShaderVariable* This) {
    return This->lpVtbl->AsShaderResource(This);
}
static __WIDL_INLINE ID3D10EffectRenderTargetViewVariable * ID3D10EffectShaderVariable_AsRenderTargetView(ID3D10EffectShaderVariable* This) {
    return This->lpVtbl->AsRenderTargetView(This);
}
static __WIDL_INLINE ID3D10EffectDepthStencilViewVariable * ID3D10EffectShaderVariable_AsDepthStencilView(ID3D10EffectShaderVariable* This) {
    return This->lpVtbl->AsDepthStencilView(This);
}
static __WIDL_INLINE ID3D10EffectConstantBuffer * ID3D10EffectShaderVariable_AsConstantBuffer(ID3D10EffectShaderVariable* This) {
    return This->lpVtbl->AsConstantBuffer(This);
}
static __WIDL_INLINE ID3D10EffectShaderVariable * ID3D10EffectShaderVariable_AsShader(ID3D10EffectShaderVariable* This) {
    return This->lpVtbl->AsShader(This);
}
static __WIDL_INLINE ID3D10EffectBlendVariable * ID3D10EffectShaderVariable_AsBlend(ID3D10EffectShaderVariable* This) {
    return This->lpVtbl->AsBlend(This);
}
static __WIDL_INLINE ID3D10EffectDepthStencilVariable * ID3D10EffectShaderVariable_AsDepthStencil(ID3D10EffectShaderVariable* This) {
    return This->lpVtbl->AsDepthStencil(This);
}
static __WIDL_INLINE ID3D10EffectRasterizerVariable * ID3D10EffectShaderVariable_AsRasterizer(ID3D10EffectShaderVariable* This) {
    return This->lpVtbl->AsRasterizer(This);
}
static __WIDL_INLINE ID3D10EffectSamplerVariable * ID3D10EffectShaderVariable_AsSampler(ID3D10EffectShaderVariable* This) {
    return This->lpVtbl->AsSampler(This);
}
static __WIDL_INLINE HRESULT ID3D10EffectShaderVariable_SetRawValue(ID3D10EffectShaderVariable* This,void *data,UINT offset,UINT count) {
    return This->lpVtbl->SetRawValue(This,data,offset,count);
}
static __WIDL_INLINE HRESULT ID3D10EffectShaderVariable_GetRawValue(ID3D10EffectShaderVariable* This,void *data,UINT offset,UINT count) {
    return This->lpVtbl->GetRawValue(This,data,offset,count);
}
/*** ID3D10EffectShaderVariable methods ***/
static __WIDL_INLINE HRESULT ID3D10EffectShaderVariable_GetShaderDesc(ID3D10EffectShaderVariable* This,UINT index,D3D10_EFFECT_SHADER_DESC *desc) {
    return This->lpVtbl->GetShaderDesc(This,index,desc);
}
static __WIDL_INLINE HRESULT ID3D10EffectShaderVariable_GetVertexShader(ID3D10EffectShaderVariable* This,UINT index,ID3D10VertexShader **shader) {
    return This->lpVtbl->GetVertexShader(This,index,shader);
}
static __WIDL_INLINE HRESULT ID3D10EffectShaderVariable_GetGeometryShader(ID3D10EffectShaderVariable* This,UINT index,ID3D10GeometryShader **shader) {
    return This->lpVtbl->GetGeometryShader(This,index,shader);
}
static __WIDL_INLINE HRESULT ID3D10EffectShaderVariable_GetPixelShader(ID3D10EffectShaderVariable* This,UINT index,ID3D10PixelShader **shader) {
    return This->lpVtbl->GetPixelShader(This,index,shader);
}
static __WIDL_INLINE HRESULT ID3D10EffectShaderVariable_GetInputSignatureElementDesc(ID3D10EffectShaderVariable* This,UINT shader_index,UINT element_index,D3D10_SIGNATURE_PARAMETER_DESC *desc) {
    return This->lpVtbl->GetInputSignatureElementDesc(This,shader_index,element_index,desc);
}
static __WIDL_INLINE HRESULT ID3D10EffectShaderVariable_GetOutputSignatureElementDesc(ID3D10EffectShaderVariable* This,UINT shader_index,UINT element_index,D3D10_SIGNATURE_PARAMETER_DESC *desc) {
    return This->lpVtbl->GetOutputSignatureElementDesc(This,shader_index,element_index,desc);
}
#endif
#endif

#endif


#endif  /* __ID3D10EffectShaderVariable_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ID3D10EffectBlendVariable interface
 */
#ifndef __ID3D10EffectBlendVariable_INTERFACE_DEFINED__
#define __ID3D10EffectBlendVariable_INTERFACE_DEFINED__

DEFINE_GUID(IID_ID3D10EffectBlendVariable, 0x1fcd2294, 0xdf6d, 0x4eae, 0x86,0xb3, 0x0e,0x91,0x60,0xcf,0xb0,0x7b);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("1fcd2294-df6d-4eae-86b3-0e9160cfb07b")
ID3D10EffectBlendVariable : public ID3D10EffectVariable
{
    virtual HRESULT STDMETHODCALLTYPE GetBlendState(
        UINT index,
        ID3D10BlendState **blend_state) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetBackingStore(
        UINT index,
        D3D10_BLEND_DESC *desc) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ID3D10EffectBlendVariable, 0x1fcd2294, 0xdf6d, 0x4eae, 0x86,0xb3, 0x0e,0x91,0x60,0xcf,0xb0,0x7b)
#endif
#else
typedef struct ID3D10EffectBlendVariableVtbl {
    BEGIN_INTERFACE

    /*** ID3D10EffectVariable methods ***/
    BOOL (STDMETHODCALLTYPE *IsValid)(
        ID3D10EffectBlendVariable *This);

    ID3D10EffectType * (STDMETHODCALLTYPE *GetType)(
        ID3D10EffectBlendVariable *This);

    HRESULT (STDMETHODCALLTYPE *GetDesc)(
        ID3D10EffectBlendVariable *This,
        D3D10_EFFECT_VARIABLE_DESC *desc);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetAnnotationByIndex)(
        ID3D10EffectBlendVariable *This,
        UINT index);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetAnnotationByName)(
        ID3D10EffectBlendVariable *This,
        const char *name);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberByIndex)(
        ID3D10EffectBlendVariable *This,
        UINT index);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberByName)(
        ID3D10EffectBlendVariable *This,
        const char *name);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberBySemantic)(
        ID3D10EffectBlendVariable *This,
        const char *semantic);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetElement)(
        ID3D10EffectBlendVariable *This,
        UINT index);

    ID3D10EffectConstantBuffer * (STDMETHODCALLTYPE *GetParentConstantBuffer)(
        ID3D10EffectBlendVariable *This);

    ID3D10EffectScalarVariable * (STDMETHODCALLTYPE *AsScalar)(
        ID3D10EffectBlendVariable *This);

    ID3D10EffectVectorVariable * (STDMETHODCALLTYPE *AsVector)(
        ID3D10EffectBlendVariable *This);

    ID3D10EffectMatrixVariable * (STDMETHODCALLTYPE *AsMatrix)(
        ID3D10EffectBlendVariable *This);

    ID3D10EffectStringVariable * (STDMETHODCALLTYPE *AsString)(
        ID3D10EffectBlendVariable *This);

    ID3D10EffectShaderResourceVariable * (STDMETHODCALLTYPE *AsShaderResource)(
        ID3D10EffectBlendVariable *This);

    ID3D10EffectRenderTargetViewVariable * (STDMETHODCALLTYPE *AsRenderTargetView)(
        ID3D10EffectBlendVariable *This);

    ID3D10EffectDepthStencilViewVariable * (STDMETHODCALLTYPE *AsDepthStencilView)(
        ID3D10EffectBlendVariable *This);

    ID3D10EffectConstantBuffer * (STDMETHODCALLTYPE *AsConstantBuffer)(
        ID3D10EffectBlendVariable *This);

    ID3D10EffectShaderVariable * (STDMETHODCALLTYPE *AsShader)(
        ID3D10EffectBlendVariable *This);

    ID3D10EffectBlendVariable * (STDMETHODCALLTYPE *AsBlend)(
        ID3D10EffectBlendVariable *This);

    ID3D10EffectDepthStencilVariable * (STDMETHODCALLTYPE *AsDepthStencil)(
        ID3D10EffectBlendVariable *This);

    ID3D10EffectRasterizerVariable * (STDMETHODCALLTYPE *AsRasterizer)(
        ID3D10EffectBlendVariable *This);

    ID3D10EffectSamplerVariable * (STDMETHODCALLTYPE *AsSampler)(
        ID3D10EffectBlendVariable *This);

    HRESULT (STDMETHODCALLTYPE *SetRawValue)(
        ID3D10EffectBlendVariable *This,
        void *data,
        UINT offset,
        UINT count);

    HRESULT (STDMETHODCALLTYPE *GetRawValue)(
        ID3D10EffectBlendVariable *This,
        void *data,
        UINT offset,
        UINT count);

    /*** ID3D10EffectBlendVariable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetBlendState)(
        ID3D10EffectBlendVariable *This,
        UINT index,
        ID3D10BlendState **blend_state);

    HRESULT (STDMETHODCALLTYPE *GetBackingStore)(
        ID3D10EffectBlendVariable *This,
        UINT index,
        D3D10_BLEND_DESC *desc);

    END_INTERFACE
} ID3D10EffectBlendVariableVtbl;

interface ID3D10EffectBlendVariable {
    CONST_VTBL ID3D10EffectBlendVariableVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** ID3D10EffectVariable methods ***/
#define ID3D10EffectBlendVariable_IsValid(This) (This)->lpVtbl->IsValid(This)
#define ID3D10EffectBlendVariable_GetType(This) (This)->lpVtbl->GetType(This)
#define ID3D10EffectBlendVariable_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
#define ID3D10EffectBlendVariable_GetAnnotationByIndex(This,index) (This)->lpVtbl->GetAnnotationByIndex(This,index)
#define ID3D10EffectBlendVariable_GetAnnotationByName(This,name) (This)->lpVtbl->GetAnnotationByName(This,name)
#define ID3D10EffectBlendVariable_GetMemberByIndex(This,index) (This)->lpVtbl->GetMemberByIndex(This,index)
#define ID3D10EffectBlendVariable_GetMemberByName(This,name) (This)->lpVtbl->GetMemberByName(This,name)
#define ID3D10EffectBlendVariable_GetMemberBySemantic(This,semantic) (This)->lpVtbl->GetMemberBySemantic(This,semantic)
#define ID3D10EffectBlendVariable_GetElement(This,index) (This)->lpVtbl->GetElement(This,index)
#define ID3D10EffectBlendVariable_GetParentConstantBuffer(This) (This)->lpVtbl->GetParentConstantBuffer(This)
#define ID3D10EffectBlendVariable_AsScalar(This) (This)->lpVtbl->AsScalar(This)
#define ID3D10EffectBlendVariable_AsVector(This) (This)->lpVtbl->AsVector(This)
#define ID3D10EffectBlendVariable_AsMatrix(This) (This)->lpVtbl->AsMatrix(This)
#define ID3D10EffectBlendVariable_AsString(This) (This)->lpVtbl->AsString(This)
#define ID3D10EffectBlendVariable_AsShaderResource(This) (This)->lpVtbl->AsShaderResource(This)
#define ID3D10EffectBlendVariable_AsRenderTargetView(This) (This)->lpVtbl->AsRenderTargetView(This)
#define ID3D10EffectBlendVariable_AsDepthStencilView(This) (This)->lpVtbl->AsDepthStencilView(This)
#define ID3D10EffectBlendVariable_AsConstantBuffer(This) (This)->lpVtbl->AsConstantBuffer(This)
#define ID3D10EffectBlendVariable_AsShader(This) (This)->lpVtbl->AsShader(This)
#define ID3D10EffectBlendVariable_AsBlend(This) (This)->lpVtbl->AsBlend(This)
#define ID3D10EffectBlendVariable_AsDepthStencil(This) (This)->lpVtbl->AsDepthStencil(This)
#define ID3D10EffectBlendVariable_AsRasterizer(This) (This)->lpVtbl->AsRasterizer(This)
#define ID3D10EffectBlendVariable_AsSampler(This) (This)->lpVtbl->AsSampler(This)
#define ID3D10EffectBlendVariable_SetRawValue(This,data,offset,count) (This)->lpVtbl->SetRawValue(This,data,offset,count)
#define ID3D10EffectBlendVariable_GetRawValue(This,data,offset,count) (This)->lpVtbl->GetRawValue(This,data,offset,count)
/*** ID3D10EffectBlendVariable methods ***/
#define ID3D10EffectBlendVariable_GetBlendState(This,index,blend_state) (This)->lpVtbl->GetBlendState(This,index,blend_state)
#define ID3D10EffectBlendVariable_GetBackingStore(This,index,desc) (This)->lpVtbl->GetBackingStore(This,index,desc)
#else
/*** ID3D10EffectVariable methods ***/
static __WIDL_INLINE BOOL ID3D10EffectBlendVariable_IsValid(ID3D10EffectBlendVariable* This) {
    return This->lpVtbl->IsValid(This);
}
static __WIDL_INLINE ID3D10EffectType * ID3D10EffectBlendVariable_GetType(ID3D10EffectBlendVariable* This) {
    return This->lpVtbl->GetType(This);
}
static __WIDL_INLINE HRESULT ID3D10EffectBlendVariable_GetDesc(ID3D10EffectBlendVariable* This,D3D10_EFFECT_VARIABLE_DESC *desc) {
    return This->lpVtbl->GetDesc(This,desc);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectBlendVariable_GetAnnotationByIndex(ID3D10EffectBlendVariable* This,UINT index) {
    return This->lpVtbl->GetAnnotationByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectBlendVariable_GetAnnotationByName(ID3D10EffectBlendVariable* This,const char *name) {
    return This->lpVtbl->GetAnnotationByName(This,name);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectBlendVariable_GetMemberByIndex(ID3D10EffectBlendVariable* This,UINT index) {
    return This->lpVtbl->GetMemberByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectBlendVariable_GetMemberByName(ID3D10EffectBlendVariable* This,const char *name) {
    return This->lpVtbl->GetMemberByName(This,name);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectBlendVariable_GetMemberBySemantic(ID3D10EffectBlendVariable* This,const char *semantic) {
    return This->lpVtbl->GetMemberBySemantic(This,semantic);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectBlendVariable_GetElement(ID3D10EffectBlendVariable* This,UINT index) {
    return This->lpVtbl->GetElement(This,index);
}
static __WIDL_INLINE ID3D10EffectConstantBuffer * ID3D10EffectBlendVariable_GetParentConstantBuffer(ID3D10EffectBlendVariable* This) {
    return This->lpVtbl->GetParentConstantBuffer(This);
}
static __WIDL_INLINE ID3D10EffectScalarVariable * ID3D10EffectBlendVariable_AsScalar(ID3D10EffectBlendVariable* This) {
    return This->lpVtbl->AsScalar(This);
}
static __WIDL_INLINE ID3D10EffectVectorVariable * ID3D10EffectBlendVariable_AsVector(ID3D10EffectBlendVariable* This) {
    return This->lpVtbl->AsVector(This);
}
static __WIDL_INLINE ID3D10EffectMatrixVariable * ID3D10EffectBlendVariable_AsMatrix(ID3D10EffectBlendVariable* This) {
    return This->lpVtbl->AsMatrix(This);
}
static __WIDL_INLINE ID3D10EffectStringVariable * ID3D10EffectBlendVariable_AsString(ID3D10EffectBlendVariable* This) {
    return This->lpVtbl->AsString(This);
}
static __WIDL_INLINE ID3D10EffectShaderResourceVariable * ID3D10EffectBlendVariable_AsShaderResource(ID3D10EffectBlendVariable* This) {
    return This->lpVtbl->AsShaderResource(This);
}
static __WIDL_INLINE ID3D10EffectRenderTargetViewVariable * ID3D10EffectBlendVariable_AsRenderTargetView(ID3D10EffectBlendVariable* This) {
    return This->lpVtbl->AsRenderTargetView(This);
}
static __WIDL_INLINE ID3D10EffectDepthStencilViewVariable * ID3D10EffectBlendVariable_AsDepthStencilView(ID3D10EffectBlendVariable* This) {
    return This->lpVtbl->AsDepthStencilView(This);
}
static __WIDL_INLINE ID3D10EffectConstantBuffer * ID3D10EffectBlendVariable_AsConstantBuffer(ID3D10EffectBlendVariable* This) {
    return This->lpVtbl->AsConstantBuffer(This);
}
static __WIDL_INLINE ID3D10EffectShaderVariable * ID3D10EffectBlendVariable_AsShader(ID3D10EffectBlendVariable* This) {
    return This->lpVtbl->AsShader(This);
}
static __WIDL_INLINE ID3D10EffectBlendVariable * ID3D10EffectBlendVariable_AsBlend(ID3D10EffectBlendVariable* This) {
    return This->lpVtbl->AsBlend(This);
}
static __WIDL_INLINE ID3D10EffectDepthStencilVariable * ID3D10EffectBlendVariable_AsDepthStencil(ID3D10EffectBlendVariable* This) {
    return This->lpVtbl->AsDepthStencil(This);
}
static __WIDL_INLINE ID3D10EffectRasterizerVariable * ID3D10EffectBlendVariable_AsRasterizer(ID3D10EffectBlendVariable* This) {
    return This->lpVtbl->AsRasterizer(This);
}
static __WIDL_INLINE ID3D10EffectSamplerVariable * ID3D10EffectBlendVariable_AsSampler(ID3D10EffectBlendVariable* This) {
    return This->lpVtbl->AsSampler(This);
}
static __WIDL_INLINE HRESULT ID3D10EffectBlendVariable_SetRawValue(ID3D10EffectBlendVariable* This,void *data,UINT offset,UINT count) {
    return This->lpVtbl->SetRawValue(This,data,offset,count);
}
static __WIDL_INLINE HRESULT ID3D10EffectBlendVariable_GetRawValue(ID3D10EffectBlendVariable* This,void *data,UINT offset,UINT count) {
    return This->lpVtbl->GetRawValue(This,data,offset,count);
}
/*** ID3D10EffectBlendVariable methods ***/
static __WIDL_INLINE HRESULT ID3D10EffectBlendVariable_GetBlendState(ID3D10EffectBlendVariable* This,UINT index,ID3D10BlendState **blend_state) {
    return This->lpVtbl->GetBlendState(This,index,blend_state);
}
static __WIDL_INLINE HRESULT ID3D10EffectBlendVariable_GetBackingStore(ID3D10EffectBlendVariable* This,UINT index,D3D10_BLEND_DESC *desc) {
    return This->lpVtbl->GetBackingStore(This,index,desc);
}
#endif
#endif

#endif


#endif  /* __ID3D10EffectBlendVariable_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ID3D10EffectDepthStencilVariable interface
 */
#ifndef __ID3D10EffectDepthStencilVariable_INTERFACE_DEFINED__
#define __ID3D10EffectDepthStencilVariable_INTERFACE_DEFINED__

DEFINE_GUID(IID_ID3D10EffectDepthStencilVariable, 0xaf482368, 0x330a, 0x46a5, 0x9a,0x5c, 0x01,0xc7,0x1a,0xf2,0x4c,0x8d);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("af482368-330a-46a5-9a5c-01c71af24c8d")
ID3D10EffectDepthStencilVariable : public ID3D10EffectVariable
{
    virtual HRESULT STDMETHODCALLTYPE GetDepthStencilState(
        UINT index,
        ID3D10DepthStencilState **depth_stencil_state) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetBackingStore(
        UINT index,
        D3D10_DEPTH_STENCIL_DESC *desc) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ID3D10EffectDepthStencilVariable, 0xaf482368, 0x330a, 0x46a5, 0x9a,0x5c, 0x01,0xc7,0x1a,0xf2,0x4c,0x8d)
#endif
#else
typedef struct ID3D10EffectDepthStencilVariableVtbl {
    BEGIN_INTERFACE

    /*** ID3D10EffectVariable methods ***/
    BOOL (STDMETHODCALLTYPE *IsValid)(
        ID3D10EffectDepthStencilVariable *This);

    ID3D10EffectType * (STDMETHODCALLTYPE *GetType)(
        ID3D10EffectDepthStencilVariable *This);

    HRESULT (STDMETHODCALLTYPE *GetDesc)(
        ID3D10EffectDepthStencilVariable *This,
        D3D10_EFFECT_VARIABLE_DESC *desc);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetAnnotationByIndex)(
        ID3D10EffectDepthStencilVariable *This,
        UINT index);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetAnnotationByName)(
        ID3D10EffectDepthStencilVariable *This,
        const char *name);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberByIndex)(
        ID3D10EffectDepthStencilVariable *This,
        UINT index);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberByName)(
        ID3D10EffectDepthStencilVariable *This,
        const char *name);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberBySemantic)(
        ID3D10EffectDepthStencilVariable *This,
        const char *semantic);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetElement)(
        ID3D10EffectDepthStencilVariable *This,
        UINT index);

    ID3D10EffectConstantBuffer * (STDMETHODCALLTYPE *GetParentConstantBuffer)(
        ID3D10EffectDepthStencilVariable *This);

    ID3D10EffectScalarVariable * (STDMETHODCALLTYPE *AsScalar)(
        ID3D10EffectDepthStencilVariable *This);

    ID3D10EffectVectorVariable * (STDMETHODCALLTYPE *AsVector)(
        ID3D10EffectDepthStencilVariable *This);

    ID3D10EffectMatrixVariable * (STDMETHODCALLTYPE *AsMatrix)(
        ID3D10EffectDepthStencilVariable *This);

    ID3D10EffectStringVariable * (STDMETHODCALLTYPE *AsString)(
        ID3D10EffectDepthStencilVariable *This);

    ID3D10EffectShaderResourceVariable * (STDMETHODCALLTYPE *AsShaderResource)(
        ID3D10EffectDepthStencilVariable *This);

    ID3D10EffectRenderTargetViewVariable * (STDMETHODCALLTYPE *AsRenderTargetView)(
        ID3D10EffectDepthStencilVariable *This);

    ID3D10EffectDepthStencilViewVariable * (STDMETHODCALLTYPE *AsDepthStencilView)(
        ID3D10EffectDepthStencilVariable *This);

    ID3D10EffectConstantBuffer * (STDMETHODCALLTYPE *AsConstantBuffer)(
        ID3D10EffectDepthStencilVariable *This);

    ID3D10EffectShaderVariable * (STDMETHODCALLTYPE *AsShader)(
        ID3D10EffectDepthStencilVariable *This);

    ID3D10EffectBlendVariable * (STDMETHODCALLTYPE *AsBlend)(
        ID3D10EffectDepthStencilVariable *This);

    ID3D10EffectDepthStencilVariable * (STDMETHODCALLTYPE *AsDepthStencil)(
        ID3D10EffectDepthStencilVariable *This);

    ID3D10EffectRasterizerVariable * (STDMETHODCALLTYPE *AsRasterizer)(
        ID3D10EffectDepthStencilVariable *This);

    ID3D10EffectSamplerVariable * (STDMETHODCALLTYPE *AsSampler)(
        ID3D10EffectDepthStencilVariable *This);

    HRESULT (STDMETHODCALLTYPE *SetRawValue)(
        ID3D10EffectDepthStencilVariable *This,
        void *data,
        UINT offset,
        UINT count);

    HRESULT (STDMETHODCALLTYPE *GetRawValue)(
        ID3D10EffectDepthStencilVariable *This,
        void *data,
        UINT offset,
        UINT count);

    /*** ID3D10EffectDepthStencilVariable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetDepthStencilState)(
        ID3D10EffectDepthStencilVariable *This,
        UINT index,
        ID3D10DepthStencilState **depth_stencil_state);

    HRESULT (STDMETHODCALLTYPE *GetBackingStore)(
        ID3D10EffectDepthStencilVariable *This,
        UINT index,
        D3D10_DEPTH_STENCIL_DESC *desc);

    END_INTERFACE
} ID3D10EffectDepthStencilVariableVtbl;

interface ID3D10EffectDepthStencilVariable {
    CONST_VTBL ID3D10EffectDepthStencilVariableVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** ID3D10EffectVariable methods ***/
#define ID3D10EffectDepthStencilVariable_IsValid(This) (This)->lpVtbl->IsValid(This)
#define ID3D10EffectDepthStencilVariable_GetType(This) (This)->lpVtbl->GetType(This)
#define ID3D10EffectDepthStencilVariable_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
#define ID3D10EffectDepthStencilVariable_GetAnnotationByIndex(This,index) (This)->lpVtbl->GetAnnotationByIndex(This,index)
#define ID3D10EffectDepthStencilVariable_GetAnnotationByName(This,name) (This)->lpVtbl->GetAnnotationByName(This,name)
#define ID3D10EffectDepthStencilVariable_GetMemberByIndex(This,index) (This)->lpVtbl->GetMemberByIndex(This,index)
#define ID3D10EffectDepthStencilVariable_GetMemberByName(This,name) (This)->lpVtbl->GetMemberByName(This,name)
#define ID3D10EffectDepthStencilVariable_GetMemberBySemantic(This,semantic) (This)->lpVtbl->GetMemberBySemantic(This,semantic)
#define ID3D10EffectDepthStencilVariable_GetElement(This,index) (This)->lpVtbl->GetElement(This,index)
#define ID3D10EffectDepthStencilVariable_GetParentConstantBuffer(This) (This)->lpVtbl->GetParentConstantBuffer(This)
#define ID3D10EffectDepthStencilVariable_AsScalar(This) (This)->lpVtbl->AsScalar(This)
#define ID3D10EffectDepthStencilVariable_AsVector(This) (This)->lpVtbl->AsVector(This)
#define ID3D10EffectDepthStencilVariable_AsMatrix(This) (This)->lpVtbl->AsMatrix(This)
#define ID3D10EffectDepthStencilVariable_AsString(This) (This)->lpVtbl->AsString(This)
#define ID3D10EffectDepthStencilVariable_AsShaderResource(This) (This)->lpVtbl->AsShaderResource(This)
#define ID3D10EffectDepthStencilVariable_AsRenderTargetView(This) (This)->lpVtbl->AsRenderTargetView(This)
#define ID3D10EffectDepthStencilVariable_AsDepthStencilView(This) (This)->lpVtbl->AsDepthStencilView(This)
#define ID3D10EffectDepthStencilVariable_AsConstantBuffer(This) (This)->lpVtbl->AsConstantBuffer(This)
#define ID3D10EffectDepthStencilVariable_AsShader(This) (This)->lpVtbl->AsShader(This)
#define ID3D10EffectDepthStencilVariable_AsBlend(This) (This)->lpVtbl->AsBlend(This)
#define ID3D10EffectDepthStencilVariable_AsDepthStencil(This) (This)->lpVtbl->AsDepthStencil(This)
#define ID3D10EffectDepthStencilVariable_AsRasterizer(This) (This)->lpVtbl->AsRasterizer(This)
#define ID3D10EffectDepthStencilVariable_AsSampler(This) (This)->lpVtbl->AsSampler(This)
#define ID3D10EffectDepthStencilVariable_SetRawValue(This,data,offset,count) (This)->lpVtbl->SetRawValue(This,data,offset,count)
#define ID3D10EffectDepthStencilVariable_GetRawValue(This,data,offset,count) (This)->lpVtbl->GetRawValue(This,data,offset,count)
/*** ID3D10EffectDepthStencilVariable methods ***/
#define ID3D10EffectDepthStencilVariable_GetDepthStencilState(This,index,depth_stencil_state) (This)->lpVtbl->GetDepthStencilState(This,index,depth_stencil_state)
#define ID3D10EffectDepthStencilVariable_GetBackingStore(This,index,desc) (This)->lpVtbl->GetBackingStore(This,index,desc)
#else
/*** ID3D10EffectVariable methods ***/
static __WIDL_INLINE BOOL ID3D10EffectDepthStencilVariable_IsValid(ID3D10EffectDepthStencilVariable* This) {
    return This->lpVtbl->IsValid(This);
}
static __WIDL_INLINE ID3D10EffectType * ID3D10EffectDepthStencilVariable_GetType(ID3D10EffectDepthStencilVariable* This) {
    return This->lpVtbl->GetType(This);
}
static __WIDL_INLINE HRESULT ID3D10EffectDepthStencilVariable_GetDesc(ID3D10EffectDepthStencilVariable* This,D3D10_EFFECT_VARIABLE_DESC *desc) {
    return This->lpVtbl->GetDesc(This,desc);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectDepthStencilVariable_GetAnnotationByIndex(ID3D10EffectDepthStencilVariable* This,UINT index) {
    return This->lpVtbl->GetAnnotationByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectDepthStencilVariable_GetAnnotationByName(ID3D10EffectDepthStencilVariable* This,const char *name) {
    return This->lpVtbl->GetAnnotationByName(This,name);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectDepthStencilVariable_GetMemberByIndex(ID3D10EffectDepthStencilVariable* This,UINT index) {
    return This->lpVtbl->GetMemberByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectDepthStencilVariable_GetMemberByName(ID3D10EffectDepthStencilVariable* This,const char *name) {
    return This->lpVtbl->GetMemberByName(This,name);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectDepthStencilVariable_GetMemberBySemantic(ID3D10EffectDepthStencilVariable* This,const char *semantic) {
    return This->lpVtbl->GetMemberBySemantic(This,semantic);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectDepthStencilVariable_GetElement(ID3D10EffectDepthStencilVariable* This,UINT index) {
    return This->lpVtbl->GetElement(This,index);
}
static __WIDL_INLINE ID3D10EffectConstantBuffer * ID3D10EffectDepthStencilVariable_GetParentConstantBuffer(ID3D10EffectDepthStencilVariable* This) {
    return This->lpVtbl->GetParentConstantBuffer(This);
}
static __WIDL_INLINE ID3D10EffectScalarVariable * ID3D10EffectDepthStencilVariable_AsScalar(ID3D10EffectDepthStencilVariable* This) {
    return This->lpVtbl->AsScalar(This);
}
static __WIDL_INLINE ID3D10EffectVectorVariable * ID3D10EffectDepthStencilVariable_AsVector(ID3D10EffectDepthStencilVariable* This) {
    return This->lpVtbl->AsVector(This);
}
static __WIDL_INLINE ID3D10EffectMatrixVariable * ID3D10EffectDepthStencilVariable_AsMatrix(ID3D10EffectDepthStencilVariable* This) {
    return This->lpVtbl->AsMatrix(This);
}
static __WIDL_INLINE ID3D10EffectStringVariable * ID3D10EffectDepthStencilVariable_AsString(ID3D10EffectDepthStencilVariable* This) {
    return This->lpVtbl->AsString(This);
}
static __WIDL_INLINE ID3D10EffectShaderResourceVariable * ID3D10EffectDepthStencilVariable_AsShaderResource(ID3D10EffectDepthStencilVariable* This) {
    return This->lpVtbl->AsShaderResource(This);
}
static __WIDL_INLINE ID3D10EffectRenderTargetViewVariable * ID3D10EffectDepthStencilVariable_AsRenderTargetView(ID3D10EffectDepthStencilVariable* This) {
    return This->lpVtbl->AsRenderTargetView(This);
}
static __WIDL_INLINE ID3D10EffectDepthStencilViewVariable * ID3D10EffectDepthStencilVariable_AsDepthStencilView(ID3D10EffectDepthStencilVariable* This) {
    return This->lpVtbl->AsDepthStencilView(This);
}
static __WIDL_INLINE ID3D10EffectConstantBuffer * ID3D10EffectDepthStencilVariable_AsConstantBuffer(ID3D10EffectDepthStencilVariable* This) {
    return This->lpVtbl->AsConstantBuffer(This);
}
static __WIDL_INLINE ID3D10EffectShaderVariable * ID3D10EffectDepthStencilVariable_AsShader(ID3D10EffectDepthStencilVariable* This) {
    return This->lpVtbl->AsShader(This);
}
static __WIDL_INLINE ID3D10EffectBlendVariable * ID3D10EffectDepthStencilVariable_AsBlend(ID3D10EffectDepthStencilVariable* This) {
    return This->lpVtbl->AsBlend(This);
}
static __WIDL_INLINE ID3D10EffectDepthStencilVariable * ID3D10EffectDepthStencilVariable_AsDepthStencil(ID3D10EffectDepthStencilVariable* This) {
    return This->lpVtbl->AsDepthStencil(This);
}
static __WIDL_INLINE ID3D10EffectRasterizerVariable * ID3D10EffectDepthStencilVariable_AsRasterizer(ID3D10EffectDepthStencilVariable* This) {
    return This->lpVtbl->AsRasterizer(This);
}
static __WIDL_INLINE ID3D10EffectSamplerVariable * ID3D10EffectDepthStencilVariable_AsSampler(ID3D10EffectDepthStencilVariable* This) {
    return This->lpVtbl->AsSampler(This);
}
static __WIDL_INLINE HRESULT ID3D10EffectDepthStencilVariable_SetRawValue(ID3D10EffectDepthStencilVariable* This,void *data,UINT offset,UINT count) {
    return This->lpVtbl->SetRawValue(This,data,offset,count);
}
static __WIDL_INLINE HRESULT ID3D10EffectDepthStencilVariable_GetRawValue(ID3D10EffectDepthStencilVariable* This,void *data,UINT offset,UINT count) {
    return This->lpVtbl->GetRawValue(This,data,offset,count);
}
/*** ID3D10EffectDepthStencilVariable methods ***/
static __WIDL_INLINE HRESULT ID3D10EffectDepthStencilVariable_GetDepthStencilState(ID3D10EffectDepthStencilVariable* This,UINT index,ID3D10DepthStencilState **depth_stencil_state) {
    return This->lpVtbl->GetDepthStencilState(This,index,depth_stencil_state);
}
static __WIDL_INLINE HRESULT ID3D10EffectDepthStencilVariable_GetBackingStore(ID3D10EffectDepthStencilVariable* This,UINT index,D3D10_DEPTH_STENCIL_DESC *desc) {
    return This->lpVtbl->GetBackingStore(This,index,desc);
}
#endif
#endif

#endif


#endif  /* __ID3D10EffectDepthStencilVariable_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ID3D10EffectRasterizerVariable interface
 */
#ifndef __ID3D10EffectRasterizerVariable_INTERFACE_DEFINED__
#define __ID3D10EffectRasterizerVariable_INTERFACE_DEFINED__

DEFINE_GUID(IID_ID3D10EffectRasterizerVariable, 0x21af9f0e, 0x4d94, 0x4ea9, 0x97,0x85, 0x2c,0xb7,0x6b,0x8c,0x0b,0x34);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("21af9f0e-4d94-4ea9-9785-2cb76b8c0b34")
ID3D10EffectRasterizerVariable : public ID3D10EffectVariable
{
    virtual HRESULT STDMETHODCALLTYPE GetRasterizerState(
        UINT index,
        ID3D10RasterizerState **rasterizer_state) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetBackingStore(
        UINT index,
        D3D10_RASTERIZER_DESC *desc) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ID3D10EffectRasterizerVariable, 0x21af9f0e, 0x4d94, 0x4ea9, 0x97,0x85, 0x2c,0xb7,0x6b,0x8c,0x0b,0x34)
#endif
#else
typedef struct ID3D10EffectRasterizerVariableVtbl {
    BEGIN_INTERFACE

    /*** ID3D10EffectVariable methods ***/
    BOOL (STDMETHODCALLTYPE *IsValid)(
        ID3D10EffectRasterizerVariable *This);

    ID3D10EffectType * (STDMETHODCALLTYPE *GetType)(
        ID3D10EffectRasterizerVariable *This);

    HRESULT (STDMETHODCALLTYPE *GetDesc)(
        ID3D10EffectRasterizerVariable *This,
        D3D10_EFFECT_VARIABLE_DESC *desc);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetAnnotationByIndex)(
        ID3D10EffectRasterizerVariable *This,
        UINT index);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetAnnotationByName)(
        ID3D10EffectRasterizerVariable *This,
        const char *name);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberByIndex)(
        ID3D10EffectRasterizerVariable *This,
        UINT index);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberByName)(
        ID3D10EffectRasterizerVariable *This,
        const char *name);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberBySemantic)(
        ID3D10EffectRasterizerVariable *This,
        const char *semantic);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetElement)(
        ID3D10EffectRasterizerVariable *This,
        UINT index);

    ID3D10EffectConstantBuffer * (STDMETHODCALLTYPE *GetParentConstantBuffer)(
        ID3D10EffectRasterizerVariable *This);

    ID3D10EffectScalarVariable * (STDMETHODCALLTYPE *AsScalar)(
        ID3D10EffectRasterizerVariable *This);

    ID3D10EffectVectorVariable * (STDMETHODCALLTYPE *AsVector)(
        ID3D10EffectRasterizerVariable *This);

    ID3D10EffectMatrixVariable * (STDMETHODCALLTYPE *AsMatrix)(
        ID3D10EffectRasterizerVariable *This);

    ID3D10EffectStringVariable * (STDMETHODCALLTYPE *AsString)(
        ID3D10EffectRasterizerVariable *This);

    ID3D10EffectShaderResourceVariable * (STDMETHODCALLTYPE *AsShaderResource)(
        ID3D10EffectRasterizerVariable *This);

    ID3D10EffectRenderTargetViewVariable * (STDMETHODCALLTYPE *AsRenderTargetView)(
        ID3D10EffectRasterizerVariable *This);

    ID3D10EffectDepthStencilViewVariable * (STDMETHODCALLTYPE *AsDepthStencilView)(
        ID3D10EffectRasterizerVariable *This);

    ID3D10EffectConstantBuffer * (STDMETHODCALLTYPE *AsConstantBuffer)(
        ID3D10EffectRasterizerVariable *This);

    ID3D10EffectShaderVariable * (STDMETHODCALLTYPE *AsShader)(
        ID3D10EffectRasterizerVariable *This);

    ID3D10EffectBlendVariable * (STDMETHODCALLTYPE *AsBlend)(
        ID3D10EffectRasterizerVariable *This);

    ID3D10EffectDepthStencilVariable * (STDMETHODCALLTYPE *AsDepthStencil)(
        ID3D10EffectRasterizerVariable *This);

    ID3D10EffectRasterizerVariable * (STDMETHODCALLTYPE *AsRasterizer)(
        ID3D10EffectRasterizerVariable *This);

    ID3D10EffectSamplerVariable * (STDMETHODCALLTYPE *AsSampler)(
        ID3D10EffectRasterizerVariable *This);

    HRESULT (STDMETHODCALLTYPE *SetRawValue)(
        ID3D10EffectRasterizerVariable *This,
        void *data,
        UINT offset,
        UINT count);

    HRESULT (STDMETHODCALLTYPE *GetRawValue)(
        ID3D10EffectRasterizerVariable *This,
        void *data,
        UINT offset,
        UINT count);

    /*** ID3D10EffectRasterizerVariable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetRasterizerState)(
        ID3D10EffectRasterizerVariable *This,
        UINT index,
        ID3D10RasterizerState **rasterizer_state);

    HRESULT (STDMETHODCALLTYPE *GetBackingStore)(
        ID3D10EffectRasterizerVariable *This,
        UINT index,
        D3D10_RASTERIZER_DESC *desc);

    END_INTERFACE
} ID3D10EffectRasterizerVariableVtbl;

interface ID3D10EffectRasterizerVariable {
    CONST_VTBL ID3D10EffectRasterizerVariableVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** ID3D10EffectVariable methods ***/
#define ID3D10EffectRasterizerVariable_IsValid(This) (This)->lpVtbl->IsValid(This)
#define ID3D10EffectRasterizerVariable_GetType(This) (This)->lpVtbl->GetType(This)
#define ID3D10EffectRasterizerVariable_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
#define ID3D10EffectRasterizerVariable_GetAnnotationByIndex(This,index) (This)->lpVtbl->GetAnnotationByIndex(This,index)
#define ID3D10EffectRasterizerVariable_GetAnnotationByName(This,name) (This)->lpVtbl->GetAnnotationByName(This,name)
#define ID3D10EffectRasterizerVariable_GetMemberByIndex(This,index) (This)->lpVtbl->GetMemberByIndex(This,index)
#define ID3D10EffectRasterizerVariable_GetMemberByName(This,name) (This)->lpVtbl->GetMemberByName(This,name)
#define ID3D10EffectRasterizerVariable_GetMemberBySemantic(This,semantic) (This)->lpVtbl->GetMemberBySemantic(This,semantic)
#define ID3D10EffectRasterizerVariable_GetElement(This,index) (This)->lpVtbl->GetElement(This,index)
#define ID3D10EffectRasterizerVariable_GetParentConstantBuffer(This) (This)->lpVtbl->GetParentConstantBuffer(This)
#define ID3D10EffectRasterizerVariable_AsScalar(This) (This)->lpVtbl->AsScalar(This)
#define ID3D10EffectRasterizerVariable_AsVector(This) (This)->lpVtbl->AsVector(This)
#define ID3D10EffectRasterizerVariable_AsMatrix(This) (This)->lpVtbl->AsMatrix(This)
#define ID3D10EffectRasterizerVariable_AsString(This) (This)->lpVtbl->AsString(This)
#define ID3D10EffectRasterizerVariable_AsShaderResource(This) (This)->lpVtbl->AsShaderResource(This)
#define ID3D10EffectRasterizerVariable_AsRenderTargetView(This) (This)->lpVtbl->AsRenderTargetView(This)
#define ID3D10EffectRasterizerVariable_AsDepthStencilView(This) (This)->lpVtbl->AsDepthStencilView(This)
#define ID3D10EffectRasterizerVariable_AsConstantBuffer(This) (This)->lpVtbl->AsConstantBuffer(This)
#define ID3D10EffectRasterizerVariable_AsShader(This) (This)->lpVtbl->AsShader(This)
#define ID3D10EffectRasterizerVariable_AsBlend(This) (This)->lpVtbl->AsBlend(This)
#define ID3D10EffectRasterizerVariable_AsDepthStencil(This) (This)->lpVtbl->AsDepthStencil(This)
#define ID3D10EffectRasterizerVariable_AsRasterizer(This) (This)->lpVtbl->AsRasterizer(This)
#define ID3D10EffectRasterizerVariable_AsSampler(This) (This)->lpVtbl->AsSampler(This)
#define ID3D10EffectRasterizerVariable_SetRawValue(This,data,offset,count) (This)->lpVtbl->SetRawValue(This,data,offset,count)
#define ID3D10EffectRasterizerVariable_GetRawValue(This,data,offset,count) (This)->lpVtbl->GetRawValue(This,data,offset,count)
/*** ID3D10EffectRasterizerVariable methods ***/
#define ID3D10EffectRasterizerVariable_GetRasterizerState(This,index,rasterizer_state) (This)->lpVtbl->GetRasterizerState(This,index,rasterizer_state)
#define ID3D10EffectRasterizerVariable_GetBackingStore(This,index,desc) (This)->lpVtbl->GetBackingStore(This,index,desc)
#else
/*** ID3D10EffectVariable methods ***/
static __WIDL_INLINE BOOL ID3D10EffectRasterizerVariable_IsValid(ID3D10EffectRasterizerVariable* This) {
    return This->lpVtbl->IsValid(This);
}
static __WIDL_INLINE ID3D10EffectType * ID3D10EffectRasterizerVariable_GetType(ID3D10EffectRasterizerVariable* This) {
    return This->lpVtbl->GetType(This);
}
static __WIDL_INLINE HRESULT ID3D10EffectRasterizerVariable_GetDesc(ID3D10EffectRasterizerVariable* This,D3D10_EFFECT_VARIABLE_DESC *desc) {
    return This->lpVtbl->GetDesc(This,desc);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectRasterizerVariable_GetAnnotationByIndex(ID3D10EffectRasterizerVariable* This,UINT index) {
    return This->lpVtbl->GetAnnotationByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectRasterizerVariable_GetAnnotationByName(ID3D10EffectRasterizerVariable* This,const char *name) {
    return This->lpVtbl->GetAnnotationByName(This,name);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectRasterizerVariable_GetMemberByIndex(ID3D10EffectRasterizerVariable* This,UINT index) {
    return This->lpVtbl->GetMemberByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectRasterizerVariable_GetMemberByName(ID3D10EffectRasterizerVariable* This,const char *name) {
    return This->lpVtbl->GetMemberByName(This,name);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectRasterizerVariable_GetMemberBySemantic(ID3D10EffectRasterizerVariable* This,const char *semantic) {
    return This->lpVtbl->GetMemberBySemantic(This,semantic);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectRasterizerVariable_GetElement(ID3D10EffectRasterizerVariable* This,UINT index) {
    return This->lpVtbl->GetElement(This,index);
}
static __WIDL_INLINE ID3D10EffectConstantBuffer * ID3D10EffectRasterizerVariable_GetParentConstantBuffer(ID3D10EffectRasterizerVariable* This) {
    return This->lpVtbl->GetParentConstantBuffer(This);
}
static __WIDL_INLINE ID3D10EffectScalarVariable * ID3D10EffectRasterizerVariable_AsScalar(ID3D10EffectRasterizerVariable* This) {
    return This->lpVtbl->AsScalar(This);
}
static __WIDL_INLINE ID3D10EffectVectorVariable * ID3D10EffectRasterizerVariable_AsVector(ID3D10EffectRasterizerVariable* This) {
    return This->lpVtbl->AsVector(This);
}
static __WIDL_INLINE ID3D10EffectMatrixVariable * ID3D10EffectRasterizerVariable_AsMatrix(ID3D10EffectRasterizerVariable* This) {
    return This->lpVtbl->AsMatrix(This);
}
static __WIDL_INLINE ID3D10EffectStringVariable * ID3D10EffectRasterizerVariable_AsString(ID3D10EffectRasterizerVariable* This) {
    return This->lpVtbl->AsString(This);
}
static __WIDL_INLINE ID3D10EffectShaderResourceVariable * ID3D10EffectRasterizerVariable_AsShaderResource(ID3D10EffectRasterizerVariable* This) {
    return This->lpVtbl->AsShaderResource(This);
}
static __WIDL_INLINE ID3D10EffectRenderTargetViewVariable * ID3D10EffectRasterizerVariable_AsRenderTargetView(ID3D10EffectRasterizerVariable* This) {
    return This->lpVtbl->AsRenderTargetView(This);
}
static __WIDL_INLINE ID3D10EffectDepthStencilViewVariable * ID3D10EffectRasterizerVariable_AsDepthStencilView(ID3D10EffectRasterizerVariable* This) {
    return This->lpVtbl->AsDepthStencilView(This);
}
static __WIDL_INLINE ID3D10EffectConstantBuffer * ID3D10EffectRasterizerVariable_AsConstantBuffer(ID3D10EffectRasterizerVariable* This) {
    return This->lpVtbl->AsConstantBuffer(This);
}
static __WIDL_INLINE ID3D10EffectShaderVariable * ID3D10EffectRasterizerVariable_AsShader(ID3D10EffectRasterizerVariable* This) {
    return This->lpVtbl->AsShader(This);
}
static __WIDL_INLINE ID3D10EffectBlendVariable * ID3D10EffectRasterizerVariable_AsBlend(ID3D10EffectRasterizerVariable* This) {
    return This->lpVtbl->AsBlend(This);
}
static __WIDL_INLINE ID3D10EffectDepthStencilVariable * ID3D10EffectRasterizerVariable_AsDepthStencil(ID3D10EffectRasterizerVariable* This) {
    return This->lpVtbl->AsDepthStencil(This);
}
static __WIDL_INLINE ID3D10EffectRasterizerVariable * ID3D10EffectRasterizerVariable_AsRasterizer(ID3D10EffectRasterizerVariable* This) {
    return This->lpVtbl->AsRasterizer(This);
}
static __WIDL_INLINE ID3D10EffectSamplerVariable * ID3D10EffectRasterizerVariable_AsSampler(ID3D10EffectRasterizerVariable* This) {
    return This->lpVtbl->AsSampler(This);
}
static __WIDL_INLINE HRESULT ID3D10EffectRasterizerVariable_SetRawValue(ID3D10EffectRasterizerVariable* This,void *data,UINT offset,UINT count) {
    return This->lpVtbl->SetRawValue(This,data,offset,count);
}
static __WIDL_INLINE HRESULT ID3D10EffectRasterizerVariable_GetRawValue(ID3D10EffectRasterizerVariable* This,void *data,UINT offset,UINT count) {
    return This->lpVtbl->GetRawValue(This,data,offset,count);
}
/*** ID3D10EffectRasterizerVariable methods ***/
static __WIDL_INLINE HRESULT ID3D10EffectRasterizerVariable_GetRasterizerState(ID3D10EffectRasterizerVariable* This,UINT index,ID3D10RasterizerState **rasterizer_state) {
    return This->lpVtbl->GetRasterizerState(This,index,rasterizer_state);
}
static __WIDL_INLINE HRESULT ID3D10EffectRasterizerVariable_GetBackingStore(ID3D10EffectRasterizerVariable* This,UINT index,D3D10_RASTERIZER_DESC *desc) {
    return This->lpVtbl->GetBackingStore(This,index,desc);
}
#endif
#endif

#endif


#endif  /* __ID3D10EffectRasterizerVariable_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ID3D10EffectSamplerVariable interface
 */
#ifndef __ID3D10EffectSamplerVariable_INTERFACE_DEFINED__
#define __ID3D10EffectSamplerVariable_INTERFACE_DEFINED__

DEFINE_GUID(IID_ID3D10EffectSamplerVariable, 0x6530d5c7, 0x07e9, 0x4271, 0xa4,0x18, 0xe7,0xce,0x4b,0xd1,0xe4,0x80);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("6530d5c7-07e9-4271-a418-e7ce4bd1e480")
ID3D10EffectSamplerVariable : public ID3D10EffectVariable
{
    virtual HRESULT STDMETHODCALLTYPE GetSampler(
        UINT index,
        ID3D10SamplerState **sampler) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetBackingStore(
        UINT index,
        D3D10_SAMPLER_DESC *desc) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ID3D10EffectSamplerVariable, 0x6530d5c7, 0x07e9, 0x4271, 0xa4,0x18, 0xe7,0xce,0x4b,0xd1,0xe4,0x80)
#endif
#else
typedef struct ID3D10EffectSamplerVariableVtbl {
    BEGIN_INTERFACE

    /*** ID3D10EffectVariable methods ***/
    BOOL (STDMETHODCALLTYPE *IsValid)(
        ID3D10EffectSamplerVariable *This);

    ID3D10EffectType * (STDMETHODCALLTYPE *GetType)(
        ID3D10EffectSamplerVariable *This);

    HRESULT (STDMETHODCALLTYPE *GetDesc)(
        ID3D10EffectSamplerVariable *This,
        D3D10_EFFECT_VARIABLE_DESC *desc);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetAnnotationByIndex)(
        ID3D10EffectSamplerVariable *This,
        UINT index);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetAnnotationByName)(
        ID3D10EffectSamplerVariable *This,
        const char *name);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberByIndex)(
        ID3D10EffectSamplerVariable *This,
        UINT index);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberByName)(
        ID3D10EffectSamplerVariable *This,
        const char *name);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetMemberBySemantic)(
        ID3D10EffectSamplerVariable *This,
        const char *semantic);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetElement)(
        ID3D10EffectSamplerVariable *This,
        UINT index);

    ID3D10EffectConstantBuffer * (STDMETHODCALLTYPE *GetParentConstantBuffer)(
        ID3D10EffectSamplerVariable *This);

    ID3D10EffectScalarVariable * (STDMETHODCALLTYPE *AsScalar)(
        ID3D10EffectSamplerVariable *This);

    ID3D10EffectVectorVariable * (STDMETHODCALLTYPE *AsVector)(
        ID3D10EffectSamplerVariable *This);

    ID3D10EffectMatrixVariable * (STDMETHODCALLTYPE *AsMatrix)(
        ID3D10EffectSamplerVariable *This);

    ID3D10EffectStringVariable * (STDMETHODCALLTYPE *AsString)(
        ID3D10EffectSamplerVariable *This);

    ID3D10EffectShaderResourceVariable * (STDMETHODCALLTYPE *AsShaderResource)(
        ID3D10EffectSamplerVariable *This);

    ID3D10EffectRenderTargetViewVariable * (STDMETHODCALLTYPE *AsRenderTargetView)(
        ID3D10EffectSamplerVariable *This);

    ID3D10EffectDepthStencilViewVariable * (STDMETHODCALLTYPE *AsDepthStencilView)(
        ID3D10EffectSamplerVariable *This);

    ID3D10EffectConstantBuffer * (STDMETHODCALLTYPE *AsConstantBuffer)(
        ID3D10EffectSamplerVariable *This);

    ID3D10EffectShaderVariable * (STDMETHODCALLTYPE *AsShader)(
        ID3D10EffectSamplerVariable *This);

    ID3D10EffectBlendVariable * (STDMETHODCALLTYPE *AsBlend)(
        ID3D10EffectSamplerVariable *This);

    ID3D10EffectDepthStencilVariable * (STDMETHODCALLTYPE *AsDepthStencil)(
        ID3D10EffectSamplerVariable *This);

    ID3D10EffectRasterizerVariable * (STDMETHODCALLTYPE *AsRasterizer)(
        ID3D10EffectSamplerVariable *This);

    ID3D10EffectSamplerVariable * (STDMETHODCALLTYPE *AsSampler)(
        ID3D10EffectSamplerVariable *This);

    HRESULT (STDMETHODCALLTYPE *SetRawValue)(
        ID3D10EffectSamplerVariable *This,
        void *data,
        UINT offset,
        UINT count);

    HRESULT (STDMETHODCALLTYPE *GetRawValue)(
        ID3D10EffectSamplerVariable *This,
        void *data,
        UINT offset,
        UINT count);

    /*** ID3D10EffectSamplerVariable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetSampler)(
        ID3D10EffectSamplerVariable *This,
        UINT index,
        ID3D10SamplerState **sampler);

    HRESULT (STDMETHODCALLTYPE *GetBackingStore)(
        ID3D10EffectSamplerVariable *This,
        UINT index,
        D3D10_SAMPLER_DESC *desc);

    END_INTERFACE
} ID3D10EffectSamplerVariableVtbl;

interface ID3D10EffectSamplerVariable {
    CONST_VTBL ID3D10EffectSamplerVariableVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** ID3D10EffectVariable methods ***/
#define ID3D10EffectSamplerVariable_IsValid(This) (This)->lpVtbl->IsValid(This)
#define ID3D10EffectSamplerVariable_GetType(This) (This)->lpVtbl->GetType(This)
#define ID3D10EffectSamplerVariable_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
#define ID3D10EffectSamplerVariable_GetAnnotationByIndex(This,index) (This)->lpVtbl->GetAnnotationByIndex(This,index)
#define ID3D10EffectSamplerVariable_GetAnnotationByName(This,name) (This)->lpVtbl->GetAnnotationByName(This,name)
#define ID3D10EffectSamplerVariable_GetMemberByIndex(This,index) (This)->lpVtbl->GetMemberByIndex(This,index)
#define ID3D10EffectSamplerVariable_GetMemberByName(This,name) (This)->lpVtbl->GetMemberByName(This,name)
#define ID3D10EffectSamplerVariable_GetMemberBySemantic(This,semantic) (This)->lpVtbl->GetMemberBySemantic(This,semantic)
#define ID3D10EffectSamplerVariable_GetElement(This,index) (This)->lpVtbl->GetElement(This,index)
#define ID3D10EffectSamplerVariable_GetParentConstantBuffer(This) (This)->lpVtbl->GetParentConstantBuffer(This)
#define ID3D10EffectSamplerVariable_AsScalar(This) (This)->lpVtbl->AsScalar(This)
#define ID3D10EffectSamplerVariable_AsVector(This) (This)->lpVtbl->AsVector(This)
#define ID3D10EffectSamplerVariable_AsMatrix(This) (This)->lpVtbl->AsMatrix(This)
#define ID3D10EffectSamplerVariable_AsString(This) (This)->lpVtbl->AsString(This)
#define ID3D10EffectSamplerVariable_AsShaderResource(This) (This)->lpVtbl->AsShaderResource(This)
#define ID3D10EffectSamplerVariable_AsRenderTargetView(This) (This)->lpVtbl->AsRenderTargetView(This)
#define ID3D10EffectSamplerVariable_AsDepthStencilView(This) (This)->lpVtbl->AsDepthStencilView(This)
#define ID3D10EffectSamplerVariable_AsConstantBuffer(This) (This)->lpVtbl->AsConstantBuffer(This)
#define ID3D10EffectSamplerVariable_AsShader(This) (This)->lpVtbl->AsShader(This)
#define ID3D10EffectSamplerVariable_AsBlend(This) (This)->lpVtbl->AsBlend(This)
#define ID3D10EffectSamplerVariable_AsDepthStencil(This) (This)->lpVtbl->AsDepthStencil(This)
#define ID3D10EffectSamplerVariable_AsRasterizer(This) (This)->lpVtbl->AsRasterizer(This)
#define ID3D10EffectSamplerVariable_AsSampler(This) (This)->lpVtbl->AsSampler(This)
#define ID3D10EffectSamplerVariable_SetRawValue(This,data,offset,count) (This)->lpVtbl->SetRawValue(This,data,offset,count)
#define ID3D10EffectSamplerVariable_GetRawValue(This,data,offset,count) (This)->lpVtbl->GetRawValue(This,data,offset,count)
/*** ID3D10EffectSamplerVariable methods ***/
#define ID3D10EffectSamplerVariable_GetSampler(This,index,sampler) (This)->lpVtbl->GetSampler(This,index,sampler)
#define ID3D10EffectSamplerVariable_GetBackingStore(This,index,desc) (This)->lpVtbl->GetBackingStore(This,index,desc)
#else
/*** ID3D10EffectVariable methods ***/
static __WIDL_INLINE BOOL ID3D10EffectSamplerVariable_IsValid(ID3D10EffectSamplerVariable* This) {
    return This->lpVtbl->IsValid(This);
}
static __WIDL_INLINE ID3D10EffectType * ID3D10EffectSamplerVariable_GetType(ID3D10EffectSamplerVariable* This) {
    return This->lpVtbl->GetType(This);
}
static __WIDL_INLINE HRESULT ID3D10EffectSamplerVariable_GetDesc(ID3D10EffectSamplerVariable* This,D3D10_EFFECT_VARIABLE_DESC *desc) {
    return This->lpVtbl->GetDesc(This,desc);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectSamplerVariable_GetAnnotationByIndex(ID3D10EffectSamplerVariable* This,UINT index) {
    return This->lpVtbl->GetAnnotationByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectSamplerVariable_GetAnnotationByName(ID3D10EffectSamplerVariable* This,const char *name) {
    return This->lpVtbl->GetAnnotationByName(This,name);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectSamplerVariable_GetMemberByIndex(ID3D10EffectSamplerVariable* This,UINT index) {
    return This->lpVtbl->GetMemberByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectSamplerVariable_GetMemberByName(ID3D10EffectSamplerVariable* This,const char *name) {
    return This->lpVtbl->GetMemberByName(This,name);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectSamplerVariable_GetMemberBySemantic(ID3D10EffectSamplerVariable* This,const char *semantic) {
    return This->lpVtbl->GetMemberBySemantic(This,semantic);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectSamplerVariable_GetElement(ID3D10EffectSamplerVariable* This,UINT index) {
    return This->lpVtbl->GetElement(This,index);
}
static __WIDL_INLINE ID3D10EffectConstantBuffer * ID3D10EffectSamplerVariable_GetParentConstantBuffer(ID3D10EffectSamplerVariable* This) {
    return This->lpVtbl->GetParentConstantBuffer(This);
}
static __WIDL_INLINE ID3D10EffectScalarVariable * ID3D10EffectSamplerVariable_AsScalar(ID3D10EffectSamplerVariable* This) {
    return This->lpVtbl->AsScalar(This);
}
static __WIDL_INLINE ID3D10EffectVectorVariable * ID3D10EffectSamplerVariable_AsVector(ID3D10EffectSamplerVariable* This) {
    return This->lpVtbl->AsVector(This);
}
static __WIDL_INLINE ID3D10EffectMatrixVariable * ID3D10EffectSamplerVariable_AsMatrix(ID3D10EffectSamplerVariable* This) {
    return This->lpVtbl->AsMatrix(This);
}
static __WIDL_INLINE ID3D10EffectStringVariable * ID3D10EffectSamplerVariable_AsString(ID3D10EffectSamplerVariable* This) {
    return This->lpVtbl->AsString(This);
}
static __WIDL_INLINE ID3D10EffectShaderResourceVariable * ID3D10EffectSamplerVariable_AsShaderResource(ID3D10EffectSamplerVariable* This) {
    return This->lpVtbl->AsShaderResource(This);
}
static __WIDL_INLINE ID3D10EffectRenderTargetViewVariable * ID3D10EffectSamplerVariable_AsRenderTargetView(ID3D10EffectSamplerVariable* This) {
    return This->lpVtbl->AsRenderTargetView(This);
}
static __WIDL_INLINE ID3D10EffectDepthStencilViewVariable * ID3D10EffectSamplerVariable_AsDepthStencilView(ID3D10EffectSamplerVariable* This) {
    return This->lpVtbl->AsDepthStencilView(This);
}
static __WIDL_INLINE ID3D10EffectConstantBuffer * ID3D10EffectSamplerVariable_AsConstantBuffer(ID3D10EffectSamplerVariable* This) {
    return This->lpVtbl->AsConstantBuffer(This);
}
static __WIDL_INLINE ID3D10EffectShaderVariable * ID3D10EffectSamplerVariable_AsShader(ID3D10EffectSamplerVariable* This) {
    return This->lpVtbl->AsShader(This);
}
static __WIDL_INLINE ID3D10EffectBlendVariable * ID3D10EffectSamplerVariable_AsBlend(ID3D10EffectSamplerVariable* This) {
    return This->lpVtbl->AsBlend(This);
}
static __WIDL_INLINE ID3D10EffectDepthStencilVariable * ID3D10EffectSamplerVariable_AsDepthStencil(ID3D10EffectSamplerVariable* This) {
    return This->lpVtbl->AsDepthStencil(This);
}
static __WIDL_INLINE ID3D10EffectRasterizerVariable * ID3D10EffectSamplerVariable_AsRasterizer(ID3D10EffectSamplerVariable* This) {
    return This->lpVtbl->AsRasterizer(This);
}
static __WIDL_INLINE ID3D10EffectSamplerVariable * ID3D10EffectSamplerVariable_AsSampler(ID3D10EffectSamplerVariable* This) {
    return This->lpVtbl->AsSampler(This);
}
static __WIDL_INLINE HRESULT ID3D10EffectSamplerVariable_SetRawValue(ID3D10EffectSamplerVariable* This,void *data,UINT offset,UINT count) {
    return This->lpVtbl->SetRawValue(This,data,offset,count);
}
static __WIDL_INLINE HRESULT ID3D10EffectSamplerVariable_GetRawValue(ID3D10EffectSamplerVariable* This,void *data,UINT offset,UINT count) {
    return This->lpVtbl->GetRawValue(This,data,offset,count);
}
/*** ID3D10EffectSamplerVariable methods ***/
static __WIDL_INLINE HRESULT ID3D10EffectSamplerVariable_GetSampler(ID3D10EffectSamplerVariable* This,UINT index,ID3D10SamplerState **sampler) {
    return This->lpVtbl->GetSampler(This,index,sampler);
}
static __WIDL_INLINE HRESULT ID3D10EffectSamplerVariable_GetBackingStore(ID3D10EffectSamplerVariable* This,UINT index,D3D10_SAMPLER_DESC *desc) {
    return This->lpVtbl->GetBackingStore(This,index,desc);
}
#endif
#endif

#endif


#endif  /* __ID3D10EffectSamplerVariable_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ID3D10EffectTechnique interface
 */
#ifndef __ID3D10EffectTechnique_INTERFACE_DEFINED__
#define __ID3D10EffectTechnique_INTERFACE_DEFINED__

DEFINE_GUID(IID_ID3D10EffectTechnique, 0xdb122ce8, 0xd1c9, 0x4292, 0xb2,0x37, 0x24,0xed,0x3d,0xe8,0xb1,0x75);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("db122ce8-d1c9-4292-b237-24ed3de8b175")
ID3D10EffectTechnique
{

    BEGIN_INTERFACE

    virtual BOOL STDMETHODCALLTYPE IsValid(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetDesc(
        D3D10_TECHNIQUE_DESC *desc) = 0;

    virtual ID3D10EffectVariable * STDMETHODCALLTYPE GetAnnotationByIndex(
        UINT index) = 0;

    virtual ID3D10EffectVariable * STDMETHODCALLTYPE GetAnnotationByName(
        const char *name) = 0;

    virtual ID3D10EffectPass * STDMETHODCALLTYPE GetPassByIndex(
        UINT index) = 0;

    virtual ID3D10EffectPass * STDMETHODCALLTYPE GetPassByName(
        const char *name) = 0;

    virtual HRESULT STDMETHODCALLTYPE ComputeStateBlockMask(
        D3D10_STATE_BLOCK_MASK *mask) = 0;

    END_INTERFACE

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ID3D10EffectTechnique, 0xdb122ce8, 0xd1c9, 0x4292, 0xb2,0x37, 0x24,0xed,0x3d,0xe8,0xb1,0x75)
#endif
#else
typedef struct ID3D10EffectTechniqueVtbl {
    BEGIN_INTERFACE

    /*** ID3D10EffectTechnique methods ***/
    BOOL (STDMETHODCALLTYPE *IsValid)(
        ID3D10EffectTechnique *This);

    HRESULT (STDMETHODCALLTYPE *GetDesc)(
        ID3D10EffectTechnique *This,
        D3D10_TECHNIQUE_DESC *desc);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetAnnotationByIndex)(
        ID3D10EffectTechnique *This,
        UINT index);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetAnnotationByName)(
        ID3D10EffectTechnique *This,
        const char *name);

    ID3D10EffectPass * (STDMETHODCALLTYPE *GetPassByIndex)(
        ID3D10EffectTechnique *This,
        UINT index);

    ID3D10EffectPass * (STDMETHODCALLTYPE *GetPassByName)(
        ID3D10EffectTechnique *This,
        const char *name);

    HRESULT (STDMETHODCALLTYPE *ComputeStateBlockMask)(
        ID3D10EffectTechnique *This,
        D3D10_STATE_BLOCK_MASK *mask);

    END_INTERFACE
} ID3D10EffectTechniqueVtbl;

interface ID3D10EffectTechnique {
    CONST_VTBL ID3D10EffectTechniqueVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** ID3D10EffectTechnique methods ***/
#define ID3D10EffectTechnique_IsValid(This) (This)->lpVtbl->IsValid(This)
#define ID3D10EffectTechnique_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
#define ID3D10EffectTechnique_GetAnnotationByIndex(This,index) (This)->lpVtbl->GetAnnotationByIndex(This,index)
#define ID3D10EffectTechnique_GetAnnotationByName(This,name) (This)->lpVtbl->GetAnnotationByName(This,name)
#define ID3D10EffectTechnique_GetPassByIndex(This,index) (This)->lpVtbl->GetPassByIndex(This,index)
#define ID3D10EffectTechnique_GetPassByName(This,name) (This)->lpVtbl->GetPassByName(This,name)
#define ID3D10EffectTechnique_ComputeStateBlockMask(This,mask) (This)->lpVtbl->ComputeStateBlockMask(This,mask)
#else
/*** ID3D10EffectTechnique methods ***/
static __WIDL_INLINE BOOL ID3D10EffectTechnique_IsValid(ID3D10EffectTechnique* This) {
    return This->lpVtbl->IsValid(This);
}
static __WIDL_INLINE HRESULT ID3D10EffectTechnique_GetDesc(ID3D10EffectTechnique* This,D3D10_TECHNIQUE_DESC *desc) {
    return This->lpVtbl->GetDesc(This,desc);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectTechnique_GetAnnotationByIndex(ID3D10EffectTechnique* This,UINT index) {
    return This->lpVtbl->GetAnnotationByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectTechnique_GetAnnotationByName(ID3D10EffectTechnique* This,const char *name) {
    return This->lpVtbl->GetAnnotationByName(This,name);
}
static __WIDL_INLINE ID3D10EffectPass * ID3D10EffectTechnique_GetPassByIndex(ID3D10EffectTechnique* This,UINT index) {
    return This->lpVtbl->GetPassByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectPass * ID3D10EffectTechnique_GetPassByName(ID3D10EffectTechnique* This,const char *name) {
    return This->lpVtbl->GetPassByName(This,name);
}
static __WIDL_INLINE HRESULT ID3D10EffectTechnique_ComputeStateBlockMask(ID3D10EffectTechnique* This,D3D10_STATE_BLOCK_MASK *mask) {
    return This->lpVtbl->ComputeStateBlockMask(This,mask);
}
#endif
#endif

#endif


#endif  /* __ID3D10EffectTechnique_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ID3D10Effect interface
 */
#ifndef __ID3D10Effect_INTERFACE_DEFINED__
#define __ID3D10Effect_INTERFACE_DEFINED__

DEFINE_GUID(IID_ID3D10Effect, 0x51b0ca8b, 0xec0b, 0x4519, 0x87,0x0d, 0x8e,0xe1,0xcb,0x50,0x17,0xc7);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("51b0ca8b-ec0b-4519-870d-8ee1cb5017c7")
ID3D10Effect : public IUnknown
{
    virtual BOOL STDMETHODCALLTYPE IsValid(
        ) = 0;

    virtual BOOL STDMETHODCALLTYPE IsPool(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetDevice(
        ID3D10Device **device) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetDesc(
        D3D10_EFFECT_DESC *desc) = 0;

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

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

    virtual ID3D10EffectVariable * STDMETHODCALLTYPE GetVariableByIndex(
        UINT index) = 0;

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

    virtual ID3D10EffectVariable * STDMETHODCALLTYPE GetVariableBySemantic(
        const char *semantic) = 0;

    virtual ID3D10EffectTechnique * STDMETHODCALLTYPE GetTechniqueByIndex(
        UINT index) = 0;

    virtual ID3D10EffectTechnique * STDMETHODCALLTYPE GetTechniqueByName(
        const char *name) = 0;

    virtual HRESULT STDMETHODCALLTYPE Optimize(
        ) = 0;

    virtual BOOL STDMETHODCALLTYPE IsOptimized(
        ) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ID3D10Effect, 0x51b0ca8b, 0xec0b, 0x4519, 0x87,0x0d, 0x8e,0xe1,0xcb,0x50,0x17,0xc7)
#endif
#else
typedef struct ID3D10EffectVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ID3D10Effect *This,
        REFIID riid,
        void **ppvObject);

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

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

    /*** ID3D10Effect methods ***/
    BOOL (STDMETHODCALLTYPE *IsValid)(
        ID3D10Effect *This);

    BOOL (STDMETHODCALLTYPE *IsPool)(
        ID3D10Effect *This);

    HRESULT (STDMETHODCALLTYPE *GetDevice)(
        ID3D10Effect *This,
        ID3D10Device **device);

    HRESULT (STDMETHODCALLTYPE *GetDesc)(
        ID3D10Effect *This,
        D3D10_EFFECT_DESC *desc);

    ID3D10EffectConstantBuffer * (STDMETHODCALLTYPE *GetConstantBufferByIndex)(
        ID3D10Effect *This,
        UINT index);

    ID3D10EffectConstantBuffer * (STDMETHODCALLTYPE *GetConstantBufferByName)(
        ID3D10Effect *This,
        const char *name);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetVariableByIndex)(
        ID3D10Effect *This,
        UINT index);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetVariableByName)(
        ID3D10Effect *This,
        const char *name);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetVariableBySemantic)(
        ID3D10Effect *This,
        const char *semantic);

    ID3D10EffectTechnique * (STDMETHODCALLTYPE *GetTechniqueByIndex)(
        ID3D10Effect *This,
        UINT index);

    ID3D10EffectTechnique * (STDMETHODCALLTYPE *GetTechniqueByName)(
        ID3D10Effect *This,
        const char *name);

    HRESULT (STDMETHODCALLTYPE *Optimize)(
        ID3D10Effect *This);

    BOOL (STDMETHODCALLTYPE *IsOptimized)(
        ID3D10Effect *This);

    END_INTERFACE
} ID3D10EffectVtbl;

interface ID3D10Effect {
    CONST_VTBL ID3D10EffectVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define ID3D10Effect_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ID3D10Effect_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ID3D10Effect_Release(This) (This)->lpVtbl->Release(This)
/*** ID3D10Effect methods ***/
#define ID3D10Effect_IsValid(This) (This)->lpVtbl->IsValid(This)
#define ID3D10Effect_IsPool(This) (This)->lpVtbl->IsPool(This)
#define ID3D10Effect_GetDevice(This,device) (This)->lpVtbl->GetDevice(This,device)
#define ID3D10Effect_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
#define ID3D10Effect_GetConstantBufferByIndex(This,index) (This)->lpVtbl->GetConstantBufferByIndex(This,index)
#define ID3D10Effect_GetConstantBufferByName(This,name) (This)->lpVtbl->GetConstantBufferByName(This,name)
#define ID3D10Effect_GetVariableByIndex(This,index) (This)->lpVtbl->GetVariableByIndex(This,index)
#define ID3D10Effect_GetVariableByName(This,name) (This)->lpVtbl->GetVariableByName(This,name)
#define ID3D10Effect_GetVariableBySemantic(This,semantic) (This)->lpVtbl->GetVariableBySemantic(This,semantic)
#define ID3D10Effect_GetTechniqueByIndex(This,index) (This)->lpVtbl->GetTechniqueByIndex(This,index)
#define ID3D10Effect_GetTechniqueByName(This,name) (This)->lpVtbl->GetTechniqueByName(This,name)
#define ID3D10Effect_Optimize(This) (This)->lpVtbl->Optimize(This)
#define ID3D10Effect_IsOptimized(This) (This)->lpVtbl->IsOptimized(This)
#else
/*** IUnknown methods ***/
static __WIDL_INLINE HRESULT ID3D10Effect_QueryInterface(ID3D10Effect* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static __WIDL_INLINE ULONG ID3D10Effect_AddRef(ID3D10Effect* This) {
    return This->lpVtbl->AddRef(This);
}
static __WIDL_INLINE ULONG ID3D10Effect_Release(ID3D10Effect* This) {
    return This->lpVtbl->Release(This);
}
/*** ID3D10Effect methods ***/
static __WIDL_INLINE BOOL ID3D10Effect_IsValid(ID3D10Effect* This) {
    return This->lpVtbl->IsValid(This);
}
static __WIDL_INLINE BOOL ID3D10Effect_IsPool(ID3D10Effect* This) {
    return This->lpVtbl->IsPool(This);
}
static __WIDL_INLINE HRESULT ID3D10Effect_GetDevice(ID3D10Effect* This,ID3D10Device **device) {
    return This->lpVtbl->GetDevice(This,device);
}
static __WIDL_INLINE HRESULT ID3D10Effect_GetDesc(ID3D10Effect* This,D3D10_EFFECT_DESC *desc) {
    return This->lpVtbl->GetDesc(This,desc);
}
static __WIDL_INLINE ID3D10EffectConstantBuffer * ID3D10Effect_GetConstantBufferByIndex(ID3D10Effect* This,UINT index) {
    return This->lpVtbl->GetConstantBufferByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectConstantBuffer * ID3D10Effect_GetConstantBufferByName(ID3D10Effect* This,const char *name) {
    return This->lpVtbl->GetConstantBufferByName(This,name);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10Effect_GetVariableByIndex(ID3D10Effect* This,UINT index) {
    return This->lpVtbl->GetVariableByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10Effect_GetVariableByName(ID3D10Effect* This,const char *name) {
    return This->lpVtbl->GetVariableByName(This,name);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10Effect_GetVariableBySemantic(ID3D10Effect* This,const char *semantic) {
    return This->lpVtbl->GetVariableBySemantic(This,semantic);
}
static __WIDL_INLINE ID3D10EffectTechnique * ID3D10Effect_GetTechniqueByIndex(ID3D10Effect* This,UINT index) {
    return This->lpVtbl->GetTechniqueByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectTechnique * ID3D10Effect_GetTechniqueByName(ID3D10Effect* This,const char *name) {
    return This->lpVtbl->GetTechniqueByName(This,name);
}
static __WIDL_INLINE HRESULT ID3D10Effect_Optimize(ID3D10Effect* This) {
    return This->lpVtbl->Optimize(This);
}
static __WIDL_INLINE BOOL ID3D10Effect_IsOptimized(ID3D10Effect* This) {
    return This->lpVtbl->IsOptimized(This);
}
#endif
#endif

#endif


#endif  /* __ID3D10Effect_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ID3D10EffectPool interface
 */
#ifndef __ID3D10EffectPool_INTERFACE_DEFINED__
#define __ID3D10EffectPool_INTERFACE_DEFINED__

DEFINE_GUID(IID_ID3D10EffectPool, 0x9537ab04, 0x3250, 0x412e, 0x82,0x13, 0xfc,0xd2,0xf8,0x67,0x79,0x33);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("9537ab04-3250-412e-8213-fcd2f8677933")
ID3D10EffectPool : public IUnknown
{
    virtual ID3D10Effect * STDMETHODCALLTYPE AsEffect(
        ) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ID3D10EffectPool, 0x9537ab04, 0x3250, 0x412e, 0x82,0x13, 0xfc,0xd2,0xf8,0x67,0x79,0x33)
#endif
#else
typedef struct ID3D10EffectPoolVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ID3D10EffectPool *This,
        REFIID riid,
        void **ppvObject);

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

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

    /*** ID3D10EffectPool methods ***/
    ID3D10Effect * (STDMETHODCALLTYPE *AsEffect)(
        ID3D10EffectPool *This);

    END_INTERFACE
} ID3D10EffectPoolVtbl;

interface ID3D10EffectPool {
    CONST_VTBL ID3D10EffectPoolVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define ID3D10EffectPool_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ID3D10EffectPool_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ID3D10EffectPool_Release(This) (This)->lpVtbl->Release(This)
/*** ID3D10EffectPool methods ***/
#define ID3D10EffectPool_AsEffect(This) (This)->lpVtbl->AsEffect(This)
#else
/*** IUnknown methods ***/
static __WIDL_INLINE HRESULT ID3D10EffectPool_QueryInterface(ID3D10EffectPool* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static __WIDL_INLINE ULONG ID3D10EffectPool_AddRef(ID3D10EffectPool* This) {
    return This->lpVtbl->AddRef(This);
}
static __WIDL_INLINE ULONG ID3D10EffectPool_Release(ID3D10EffectPool* This) {
    return This->lpVtbl->Release(This);
}
/*** ID3D10EffectPool methods ***/
static __WIDL_INLINE ID3D10Effect * ID3D10EffectPool_AsEffect(ID3D10EffectPool* This) {
    return This->lpVtbl->AsEffect(This);
}
#endif
#endif

#endif


#endif  /* __ID3D10EffectPool_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ID3D10EffectPass interface
 */
#ifndef __ID3D10EffectPass_INTERFACE_DEFINED__
#define __ID3D10EffectPass_INTERFACE_DEFINED__

DEFINE_GUID(IID_ID3D10EffectPass, 0x5cfbeb89, 0x1a06, 0x46e0, 0xb2,0x82, 0xe3,0xf9,0xbf,0xa3,0x6a,0x54);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("5cfbeb89-1a06-46e0-b282-e3f9bfa36a54")
ID3D10EffectPass
{

    BEGIN_INTERFACE

    virtual BOOL STDMETHODCALLTYPE IsValid(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetDesc(
        D3D10_PASS_DESC *desc) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetVertexShaderDesc(
        D3D10_PASS_SHADER_DESC *desc) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetGeometryShaderDesc(
        D3D10_PASS_SHADER_DESC *desc) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetPixelShaderDesc(
        D3D10_PASS_SHADER_DESC *desc) = 0;

    virtual ID3D10EffectVariable * STDMETHODCALLTYPE GetAnnotationByIndex(
        UINT index) = 0;

    virtual ID3D10EffectVariable * STDMETHODCALLTYPE GetAnnotationByName(
        const char *name) = 0;

    virtual HRESULT STDMETHODCALLTYPE Apply(
        UINT flags) = 0;

    virtual HRESULT STDMETHODCALLTYPE ComputeStateBlockMask(
        D3D10_STATE_BLOCK_MASK *mask) = 0;

    END_INTERFACE

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ID3D10EffectPass, 0x5cfbeb89, 0x1a06, 0x46e0, 0xb2,0x82, 0xe3,0xf9,0xbf,0xa3,0x6a,0x54)
#endif
#else
typedef struct ID3D10EffectPassVtbl {
    BEGIN_INTERFACE

    /*** ID3D10EffectPass methods ***/
    BOOL (STDMETHODCALLTYPE *IsValid)(
        ID3D10EffectPass *This);

    HRESULT (STDMETHODCALLTYPE *GetDesc)(
        ID3D10EffectPass *This,
        D3D10_PASS_DESC *desc);

    HRESULT (STDMETHODCALLTYPE *GetVertexShaderDesc)(
        ID3D10EffectPass *This,
        D3D10_PASS_SHADER_DESC *desc);

    HRESULT (STDMETHODCALLTYPE *GetGeometryShaderDesc)(
        ID3D10EffectPass *This,
        D3D10_PASS_SHADER_DESC *desc);

    HRESULT (STDMETHODCALLTYPE *GetPixelShaderDesc)(
        ID3D10EffectPass *This,
        D3D10_PASS_SHADER_DESC *desc);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetAnnotationByIndex)(
        ID3D10EffectPass *This,
        UINT index);

    ID3D10EffectVariable * (STDMETHODCALLTYPE *GetAnnotationByName)(
        ID3D10EffectPass *This,
        const char *name);

    HRESULT (STDMETHODCALLTYPE *Apply)(
        ID3D10EffectPass *This,
        UINT flags);

    HRESULT (STDMETHODCALLTYPE *ComputeStateBlockMask)(
        ID3D10EffectPass *This,
        D3D10_STATE_BLOCK_MASK *mask);

    END_INTERFACE
} ID3D10EffectPassVtbl;

interface ID3D10EffectPass {
    CONST_VTBL ID3D10EffectPassVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** ID3D10EffectPass methods ***/
#define ID3D10EffectPass_IsValid(This) (This)->lpVtbl->IsValid(This)
#define ID3D10EffectPass_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
#define ID3D10EffectPass_GetVertexShaderDesc(This,desc) (This)->lpVtbl->GetVertexShaderDesc(This,desc)
#define ID3D10EffectPass_GetGeometryShaderDesc(This,desc) (This)->lpVtbl->GetGeometryShaderDesc(This,desc)
#define ID3D10EffectPass_GetPixelShaderDesc(This,desc) (This)->lpVtbl->GetPixelShaderDesc(This,desc)
#define ID3D10EffectPass_GetAnnotationByIndex(This,index) (This)->lpVtbl->GetAnnotationByIndex(This,index)
#define ID3D10EffectPass_GetAnnotationByName(This,name) (This)->lpVtbl->GetAnnotationByName(This,name)
#define ID3D10EffectPass_Apply(This,flags) (This)->lpVtbl->Apply(This,flags)
#define ID3D10EffectPass_ComputeStateBlockMask(This,mask) (This)->lpVtbl->ComputeStateBlockMask(This,mask)
#else
/*** ID3D10EffectPass methods ***/
static __WIDL_INLINE BOOL ID3D10EffectPass_IsValid(ID3D10EffectPass* This) {
    return This->lpVtbl->IsValid(This);
}
static __WIDL_INLINE HRESULT ID3D10EffectPass_GetDesc(ID3D10EffectPass* This,D3D10_PASS_DESC *desc) {
    return This->lpVtbl->GetDesc(This,desc);
}
static __WIDL_INLINE HRESULT ID3D10EffectPass_GetVertexShaderDesc(ID3D10EffectPass* This,D3D10_PASS_SHADER_DESC *desc) {
    return This->lpVtbl->GetVertexShaderDesc(This,desc);
}
static __WIDL_INLINE HRESULT ID3D10EffectPass_GetGeometryShaderDesc(ID3D10EffectPass* This,D3D10_PASS_SHADER_DESC *desc) {
    return This->lpVtbl->GetGeometryShaderDesc(This,desc);
}
static __WIDL_INLINE HRESULT ID3D10EffectPass_GetPixelShaderDesc(ID3D10EffectPass* This,D3D10_PASS_SHADER_DESC *desc) {
    return This->lpVtbl->GetPixelShaderDesc(This,desc);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectPass_GetAnnotationByIndex(ID3D10EffectPass* This,UINT index) {
    return This->lpVtbl->GetAnnotationByIndex(This,index);
}
static __WIDL_INLINE ID3D10EffectVariable * ID3D10EffectPass_GetAnnotationByName(ID3D10EffectPass* This,const char *name) {
    return This->lpVtbl->GetAnnotationByName(This,name);
}
static __WIDL_INLINE HRESULT ID3D10EffectPass_Apply(ID3D10EffectPass* This,UINT flags) {
    return This->lpVtbl->Apply(This,flags);
}
static __WIDL_INLINE HRESULT ID3D10EffectPass_ComputeStateBlockMask(ID3D10EffectPass* This,D3D10_STATE_BLOCK_MASK *mask) {
    return This->lpVtbl->ComputeStateBlockMask(This,mask);
}
#endif
#endif

#endif


#endif  /* __ID3D10EffectPass_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ID3D10StateBlock interface
 */
#ifndef __ID3D10StateBlock_INTERFACE_DEFINED__
#define __ID3D10StateBlock_INTERFACE_DEFINED__

DEFINE_GUID(IID_ID3D10StateBlock, 0x0803425a, 0x57f5, 0x4dd6, 0x94,0x65, 0xa8,0x75,0x70,0x83,0x4a,0x08);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("0803425a-57f5-4dd6-9465-a87570834a08")
ID3D10StateBlock : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE Capture(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE Apply(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE ReleaseAllDeviceObjects(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetDevice(
        ID3D10Device **device) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ID3D10StateBlock, 0x0803425a, 0x57f5, 0x4dd6, 0x94,0x65, 0xa8,0x75,0x70,0x83,0x4a,0x08)
#endif
#else
typedef struct ID3D10StateBlockVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ID3D10StateBlock *This,
        REFIID riid,
        void **ppvObject);

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

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

    /*** ID3D10StateBlock methods ***/
    HRESULT (STDMETHODCALLTYPE *Capture)(
        ID3D10StateBlock *This);

    HRESULT (STDMETHODCALLTYPE *Apply)(
        ID3D10StateBlock *This);

    HRESULT (STDMETHODCALLTYPE *ReleaseAllDeviceObjects)(
        ID3D10StateBlock *This);

    HRESULT (STDMETHODCALLTYPE *GetDevice)(
        ID3D10StateBlock *This,
        ID3D10Device **device);

    END_INTERFACE
} ID3D10StateBlockVtbl;

interface ID3D10StateBlock {
    CONST_VTBL ID3D10StateBlockVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define ID3D10StateBlock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ID3D10StateBlock_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ID3D10StateBlock_Release(This) (This)->lpVtbl->Release(This)
/*** ID3D10StateBlock methods ***/
#define ID3D10StateBlock_Capture(This) (This)->lpVtbl->Capture(This)
#define ID3D10StateBlock_Apply(This) (This)->lpVtbl->Apply(This)
#define ID3D10StateBlock_ReleaseAllDeviceObjects(This) (This)->lpVtbl->ReleaseAllDeviceObjects(This)
#define ID3D10StateBlock_GetDevice(This,device) (This)->lpVtbl->GetDevice(This,device)
#else
/*** IUnknown methods ***/
static __WIDL_INLINE HRESULT ID3D10StateBlock_QueryInterface(ID3D10StateBlock* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static __WIDL_INLINE ULONG ID3D10StateBlock_AddRef(ID3D10StateBlock* This) {
    return This->lpVtbl->AddRef(This);
}
static __WIDL_INLINE ULONG ID3D10StateBlock_Release(ID3D10StateBlock* This) {
    return This->lpVtbl->Release(This);
}
/*** ID3D10StateBlock methods ***/
static __WIDL_INLINE HRESULT ID3D10StateBlock_Capture(ID3D10StateBlock* This) {
    return This->lpVtbl->Capture(This);
}
static __WIDL_INLINE HRESULT ID3D10StateBlock_Apply(ID3D10StateBlock* This) {
    return This->lpVtbl->Apply(This);
}
static __WIDL_INLINE HRESULT ID3D10StateBlock_ReleaseAllDeviceObjects(ID3D10StateBlock* This) {
    return This->lpVtbl->ReleaseAllDeviceObjects(This);
}
static __WIDL_INLINE HRESULT ID3D10StateBlock_GetDevice(ID3D10StateBlock* This,ID3D10Device **device) {
    return This->lpVtbl->GetDevice(This,device);
}
#endif
#endif

#endif


#endif  /* __ID3D10StateBlock_INTERFACE_DEFINED__ */

HRESULT __stdcall  D3D10CompileEffectFromMemory(void *data,SIZE_T data_size,const char *filename,const D3D10_SHADER_MACRO *defines,ID3D10Include *include,UINT hlsl_flags,UINT fx_flags,ID3D10Blob **effect,ID3D10Blob **errors);

HRESULT __stdcall  D3D10CreateEffectFromMemory(void *data,SIZE_T data_size,UINT flags,ID3D10Device *device,ID3D10EffectPool *effect_pool,ID3D10Effect **effect);

HRESULT __stdcall  D3D10CreateEffectPoolFromMemory(void *data,SIZE_T data_size,UINT fx_flags,ID3D10Device *device,ID3D10EffectPool **effect_pool);

HRESULT __stdcall  D3D10CreateStateBlock(ID3D10Device *device,D3D10_STATE_BLOCK_MASK *mask,ID3D10StateBlock **stateblock);

HRESULT __stdcall  D3D10StateBlockMaskDifference(D3D10_STATE_BLOCK_MASK *mask_x,D3D10_STATE_BLOCK_MASK *mask_y,D3D10_STATE_BLOCK_MASK *result);

HRESULT __stdcall  D3D10StateBlockMaskDisableAll(D3D10_STATE_BLOCK_MASK *mask);

HRESULT __stdcall  D3D10StateBlockMaskDisableCapture(D3D10_STATE_BLOCK_MASK *mask,D3D10_DEVICE_STATE_TYPES state_type,UINT start_idx,UINT count);

HRESULT __stdcall  D3D10StateBlockMaskEnableAll(D3D10_STATE_BLOCK_MASK *mask);

HRESULT __stdcall  D3D10StateBlockMaskEnableCapture(D3D10_STATE_BLOCK_MASK *mask,D3D10_DEVICE_STATE_TYPES state_type,UINT start_idx,UINT count);

BOOL __stdcall  D3D10StateBlockMaskGetSetting(D3D10_STATE_BLOCK_MASK *mask,D3D10_DEVICE_STATE_TYPES state_type,UINT idx);

HRESULT __stdcall  D3D10StateBlockMaskIntersect(D3D10_STATE_BLOCK_MASK *mask_x,D3D10_STATE_BLOCK_MASK *mask_y,D3D10_STATE_BLOCK_MASK *result);

HRESULT __stdcall  D3D10StateBlockMaskUnion(D3D10_STATE_BLOCK_MASK *mask_x,D3D10_STATE_BLOCK_MASK *mask_y,D3D10_STATE_BLOCK_MASK *result);

/* Begin additional prototypes for all interfaces */


/* End additional prototypes */

#ifdef __cplusplus
}
#endif

#endif /* __d3d10effect_h__ */
