Ada计算机图形DirectX之D3D10effect

----------------------------------------
-- File : D3D10effect.ads             --
-- Translator:Dongfeng.Gu,2018/10/25  --
-- Mail: 515639@qq.com                --
-- Progress:100%                      --
----------------------------------------

with win32;                   use win32;
with win32.windef;            use win32.windef;
with win32.rpcdce;            use win32.rpcdce;
with win32.objbase;           use win32.objbase;

with d3d10;                   use d3d10;
with d3d10misc;               use d3d10misc;
with D3D10shader;             use D3D10shader;

package D3D10effect is
   
   function Shift_Left(A:dword;B:Natural) return dword with import,convention=>Intrinsic;
   function Lsh(A:dword;B:Natural) return dword is (Shift_Left(A,B));
   
   function Shift_Right(A:dword;B:Natural) return dword with import,convention=>Intrinsic;
   function Rsh(A:dword;B:Natural) return dword is (Shift_Right(A,B));
   
   type ID3D10EffectScalarVariable;
   type LPID3D10EffectScalarVariable is access all ID3D10EffectScalarVariable;
   type LPLPID3D10EffectScalarVariable is access all LPID3D10EffectScalarVariable;
   subtype LPD3D10EffectScalarVariable is LPID3D10EffectScalarVariable;
   subtype LPLPD3D10EffectScalarVariable is LPLPID3D10EffectScalarVariable;
   
   type ID3D10EffectVectorVariable;
   type LPID3D10EffectVectorVariable is access all ID3D10EffectVectorVariable;
   type LPLPID3D10EffectVectorVariable is access all LPID3D10EffectVectorVariable;
   subtype LPD3D10EffectVectorVariable is LPID3D10EffectVectorVariable;
   subtype LPLPD3D10EffectVectorVariable is LPLPID3D10EffectVectorVariable;
   
   type ID3D10EffectMatrixVariable;
   type LPID3D10EffectMatrixVariable is access all ID3D10EffectMatrixVariable;
   type LPLPID3D10EffectMatrixVariable is access all LPID3D10EffectMatrixVariable;
   subtype LPD3D10EffectMatrixVariable is LPID3D10EffectMatrixVariable;
   subtype LPLPD3D10EffectMatrixVariable is LPLPID3D10EffectMatrixVariable;
   
   type ID3D10EffectStringVariable;
   type LPID3D10EffectStringVariable is access all ID3D10EffectStringVariable;
   type LPLPID3D10EffectStringVariable is access all LPID3D10EffectStringVariable;
   subtype LPD3D10EffectStringVariable is LPID3D10EffectStringVariable;
   subtype LPLPD3D10EffectStringVariable is LPLPID3D10EffectStringVariable;
   
   type ID3D10EffectShaderResourceVariable;
   type LPID3D10EffectShaderResourceVariable is access all ID3D10EffectShaderResourceVariable;
   type LPLPID3D10EffectShaderResourceVariable is access all LPID3D10EffectShaderResourceVariable;
   subtype LPD3D10EffectShaderResourceVariable is LPID3D10EffectShaderResourceVariable;
   subtype LPLPD3D10EffectShaderResourceVariable is LPLPID3D10EffectShaderResourceVariable;
   
   type ID3D10EffectRenderTargetViewVariable;
   type LPID3D10EffectRenderTargetViewVariable is access all ID3D10EffectRenderTargetViewVariable;
   type LPLPID3D10EffectRenderTargetViewVariable is access all LPID3D10EffectRenderTargetViewVariable;
   subtype LPD3D10EffectRenderTargetViewVariable is LPID3D10EffectRenderTargetViewVariable;
   subtype LPLPD3D10EffectRenderTargetViewVariable is LPLPID3D10EffectRenderTargetViewVariable;
   
   type ID3D10EffectDepthStencilViewVariable;
   type LPID3D10EffectDepthStencilViewVariable is access all ID3D10EffectDepthStencilViewVariable;
   type LPLPID3D10EffectDepthStencilViewVariable is access all LPID3D10EffectDepthStencilViewVariable;
   subtype LPD3D10EffectDepthStencilViewVariable is LPID3D10EffectDepthStencilViewVariable;
   subtype LPLPD3D10EffectDepthStencilViewVariable is LPLPID3D10EffectDepthStencilViewVariable;
   
   type ID3D10EffectConstantBuffer;
   type LPID3D10EffectConstantBuffer is access all ID3D10EffectConstantBuffer;
   type LPLPID3D10EffectConstantBuffer is access all LPID3D10EffectConstantBuffer;
   subtype LPD3D10EffectConstantBuffer is LPID3D10EffectConstantBuffer;
   subtype LPLPD3D10EffectConstantBuffer is LPLPID3D10EffectConstantBuffer;
   
   type ID3D10EffectShaderVariable;
   type LPID3D10EffectShaderVariable is access all ID3D10EffectShaderVariable;
   type LPLPID3D10EffectShaderVariable is access all LPID3D10EffectShaderVariable;
   subtype LPD3D10EffectShaderVariable is LPID3D10EffectShaderVariable;
   subtype LPLPD3D10EffectShaderVariable is LPLPID3D10EffectShaderVariable;
   
   type ID3D10EffectBlendVariable;
   type LPID3D10EffectBlendVariable is access all ID3D10EffectBlendVariable;
   type LPLPID3D10EffectBlendVariable is access all LPID3D10EffectBlendVariable;
   subtype LPD3D10EffectBlendVariable is LPID3D10EffectBlendVariable;
   subtype LPLPD3D10EffectBlendVariable is LPLPID3D10EffectBlendVariable;
   
   type ID3D10EffectDepthStencilVariable;
   type LPID3D10EffectDepthStencilVariable is access all ID3D10EffectDepthStencilVariable;
   type LPLPID3D10EffectDepthStencilVariable is access all LPID3D10EffectDepthStencilVariable;
   subtype LPD3D10EffectDepthStencilVariable is LPID3D10EffectDepthStencilVariable;
   subtype LPLPD3D10EffectDepthStencilVariable is LPLPID3D10EffectDepthStencilVariable;
   
   type ID3D10EffectRasterizerVariable;
   type LPID3D10EffectRasterizerVariable is access all ID3D10EffectRasterizerVariable;
   type LPLPID3D10EffectRasterizerVariable is access all LPID3D10EffectRasterizerVariable;
   subtype LPD3D10EffectRasterizerVariable is LPID3D10EffectRasterizerVariable;
   subtype LPLPD3D10EffectRasterizerVariable is LPLPID3D10EffectRasterizerVariable;
   
   type ID3D10EffectSamplerVariable;
   type LPID3D10EffectSamplerVariable is access all ID3D10EffectSamplerVariable;
   type LPLPID3D10EffectSamplerVariable is access all LPID3D10EffectSamplerVariable;
   subtype LPD3D10EffectSamplerVariable is LPID3D10EffectSamplerVariable;
   subtype LPLPD3D10EffectSamplerVariable is LPLPID3D10EffectSamplerVariable;
   
   type ID3D10EffectPass;
   type LPID3D10EffectPass is access all ID3D10EffectPass;
   type LPLPID3D10EffectPass is access all LPID3D10EffectPass;
   subtype LPD3D10EffectPass is LPID3D10EffectPass;
   subtype LPLPD3D10EffectPass is LPLPID3D10EffectPass;
   
   type ID3D10EffectTechnique;
   type LPID3D10EffectTechnique is access all ID3D10EffectTechnique;
   type LPLPID3D10EffectTechnique is access all LPID3D10EffectTechnique;
   subtype LPD3D10EffectTechnique is LPID3D10EffectTechnique;
   subtype LPLPD3D10EffectTechnique is LPLPID3D10EffectTechnique;
   
   type ID3D10Effect;
   type LPID3D10Effect is access all ID3D10Effect;
   type LPLPID3D10Effect is access all LPID3D10Effect;
   subtype LPD3D10Effect is LPID3D10Effect;
   subtype LPLPD3D10Effect is LPLPID3D10Effect;
   
   type ID3D10EffectPool;
   type LPID3D10EffectPool is access all ID3D10EffectPool;
   type LPLPID3D10EffectPool is access all LPID3D10EffectPool;
   subtype LPD3D10EffectPool is LPID3D10EffectPool;
   subtype LPLPD3D10EffectPool is LPLPID3D10EffectPool;
   
   
   
   type tagD3D10_DEVICE_STATE_TYPES is (D3D10_DST_SO_BUFFERS,
                                        D3D10_DST_OM_RENDER_TARGETS,
                                        D3D10_DST_OM_DEPTH_STENCIL_STATE,
                                        D3D10_DST_OM_BLEND_STATE,
                                        D3D10_DST_VS,
                                        D3D10_DST_VS_SAMPLERS,
                                        D3D10_DST_VS_SHADER_RESOURCES,
                                        D3D10_DST_VS_CONSTANT_BUFFERS,
                                        D3D10_DST_GS,
                                        D3D10_DST_GS_SAMPLERS,
                                        D3D10_DST_GS_SHADER_RESOURCES,
                                        D3D10_DST_GS_CONSTANT_BUFFERS,
                                        D3D10_DST_PS,
                                        D3D10_DST_PS_SAMPLERS,
                                        D3D10_DST_PS_SHADER_RESOURCES,
                                        D3D10_DST_PS_CONSTANT_BUFFERS,
                                        D3D10_DST_IA_VERTEX_BUFFERS,
                                        D3D10_DST_IA_INDEX_BUFFER,
                                        D3D10_DST_IA_INPUT_LAYOUT,
                                        D3D10_DST_IA_PRIMITIVE_TOPOLOGY,
                                        D3D10_DST_RS_VIEWPORTS,
                                        D3D10_DST_RS_SCISSOR_RECTS,
                                        D3D10_DST_RS_RASTERIZER_STATE,
                                        D3D10_DST_PREDICATION);
   for tagD3D10_DEVICE_STATE_TYPES use (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);

   subtype D3D10_DEVICE_STATE_TYPES is tagD3D10_DEVICE_STATE_TYPES;
   type LPD3D10_DEVICE_STATE_TYPES is access tagD3D10_DEVICE_STATE_TYPES;

   -- macro function
   function D3D10_BYTES_FROM_BITS(x:integer) return integer is (((x) + 7) / 8);

   type tagD3D10_STATE_BLOCK_MASK is record
      VS:BYTE;
      VSSamplers:BYTE_Array(0..D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT)-1);
      VSShaderResources:BYTE_Array(0..D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT)-1);
      VSConstantBuffers:BYTE_Array(0..D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT)-1);
      GS:BYTE;
      GSSamplers:BYTE_Array(0..D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT)-1);
      GSShaderResources:BYTE_Array(0..D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT)-1);
      GSConstantBuffers:BYTE_Array(0..D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT)-1);
      PS:BYTE;
      PSSamplers:BYTE_Array(0..D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT)-1);
      PSShaderResources:BYTE_Array(0..D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT)-1);
      PSConstantBuffers:BYTE_Array(0..D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT)-1);
      IAVertexBuffers:BYTE_Array(0..D3D10_BYTES_FROM_BITS(D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT)-1);
      IAIndexBuffer:BYTE;
      IAInputLayout:BYTE;
      IAPrimitiveTopology:BYTE;
      OMRenderTargets:BYTE;
      OMDepthStencilState:BYTE;
      OMBlendState:BYTE;
      RSViewports:BYTE;
      RSScissorRects:BYTE;
      RSRasterizerState:BYTE;
      SOBuffers:BYTE;
      Predication:BYTE;
   end record;

   subtype D3D10_STATE_BLOCK_MASK is tagD3D10_STATE_BLOCK_MASK;
   type LPD3D10_STATE_BLOCK_MASK is access all tagD3D10_STATE_BLOCK_MASK;
   
   
   type ID3D10StateBlock;
   type LPID3D10StateBlock is access all ID3D10StateBlock;
   type LPLPID3D10StateBlock is access all LPID3D10StateBlock;
   subtype LPD3D10StateBlock is LPID3D10StateBlock;
   subtype LPLPD3D10StateBlock is LPLPID3D10StateBlock;
   
   

   IID_ID3D10StateBlock:constant win32.rpcdce.GUID:=(16#803425a#,16#57f5#,16#4dd6#,(16#94#,16#65#,16#a8#,16#75#,16#70#,16#83#,16#4a#,16#8#));

   type ID3D10StateBlock is record
      QueryInterface:access procedure(THIS:LPID3D10StateBlock;iid:REFIID;ppv:LPLPVOID) with Convention=>Stdcall;
      AddRef:access function(THIS:LPID3D10StateBlock) return ULONG with Convention=>Stdcall;
      Release:access function(THIS:LPID3D10StateBlock) return ULONG with Convention=>Stdcall;
      Capture:access procedure(THIS:LPID3D10StateBlock) with Convention=>Stdcall;
      Apply:access procedure(THIS:LPID3D10StateBlock) with Convention=>Stdcall;
      ReleaseAllDeviceObjects:access procedure(THIS:LPID3D10StateBlock) with Convention=>Stdcall;
      GetDevice:access procedure(THIS:LPID3D10StateBlock;ppDevice:LPLPID3D10Device) with Convention=>Stdcall;
   end record;

   function D3D10StateBlockMaskUnion(pA:LPD3D10_STATE_BLOCK_MASK;pB:LPD3D10_STATE_BLOCK_MASK;pResult:LPD3D10_STATE_BLOCK_MASK) return HRESULT with Import,Convention=>stdcall,external_name=>"D3D10StateBlockMaskUnion";

   function D3D10StateBlockMaskIntersect(pA:LPD3D10_STATE_BLOCK_MASK;pB:LPD3D10_STATE_BLOCK_MASK;pResult:LPD3D10_STATE_BLOCK_MASK) return HRESULT with Import,Convention=>stdcall,external_name=>"D3D10StateBlockMaskIntersect";

   function D3D10StateBlockMaskDifference(pA:LPD3D10_STATE_BLOCK_MASK;pB:LPD3D10_STATE_BLOCK_MASK;pResult:LPD3D10_STATE_BLOCK_MASK) return HRESULT with Import,Convention=>stdcall,external_name=>"D3D10StateBlockMaskDifference";

   function D3D10StateBlockMaskEnableCapture(pMask:LPD3D10_STATE_BLOCK_MASK;StateType:D3D10_DEVICE_STATE_TYPES;RangeStart:UINT;RangeLength:UINT) return HRESULT with Import,Convention=>stdcall,external_name=>"D3D10StateBlockMaskEnableCapture";

   function D3D10StateBlockMaskDisableCapture(pMask:LPD3D10_STATE_BLOCK_MASK;StateType:D3D10_DEVICE_STATE_TYPES;RangeStart:UINT;RangeLength:UINT) return HRESULT with Import,Convention=>stdcall,external_name=>"D3D10StateBlockMaskDisableCapture";

   function D3D10StateBlockMaskEnableAll(pMask:LPD3D10_STATE_BLOCK_MASK) return HRESULT with Import,Convention=>stdcall,external_name=>"D3D10StateBlockMaskEnableAll";

   function D3D10StateBlockMaskDisableAll(pMask:LPD3D10_STATE_BLOCK_MASK) return HRESULT with Import,Convention=>stdcall,external_name=>"D3D10StateBlockMaskDisableAll";

   function D3D10StateBlockMaskGetSetting(pMask:LPD3D10_STATE_BLOCK_MASK;StateType:D3D10_DEVICE_STATE_TYPES;Entryi:UINT) return BOOL with Import,Convention=>stdcall,external_name=>"D3D10StateBlockMaskGetSetting";

   function D3D10CreateStateBlock(pDevice:LPID3D10Device;pStateBlockMask:LPD3D10_STATE_BLOCK_MASK;ppStateBlock:LPLPID3D10StateBlock) return HRESULT with Import,Convention=>stdcall,external_name=>"D3D10CreateStateBlock";

   D3D10_EFFECT_COMPILE_CHILD_EFFECT : constant dword:= Lsh(1,0);

   D3D10_EFFECT_COMPILE_ALLOW_SLOW_OPS : constant dword:= Lsh(1,1);

   D3D10_EFFECT_SINGLE_THREADED : constant dword:= Lsh(1,3);

   D3D10_EFFECT_VARIABLE_POOLED : constant dword:= Lsh(1,0);

   D3D10_EFFECT_VARIABLE_ANNOTATION : constant dword:= Lsh(1,1);

   D3D10_EFFECT_VARIABLE_EXPLICIT_BIND_POINT : constant dword:= Lsh(1,2);

   type tagD3D10_EFFECT_TYPE_DESC is record
      TypeName:LPCSTR;
      Class:D3D10_SHADER_VARIABLE_CLASS;
      Typ:D3D10_SHADER_VARIABLE_TYPE;
      Elements:UINT;
      Members:UINT;
      Rows:UINT;
      Columns:UINT;
      PackedSize:UINT;
      UnpackedSize:UINT;
      Stride:UINT;
   end record;

   subtype D3D10_EFFECT_TYPE_DESC is tagD3D10_EFFECT_TYPE_DESC;
   type LPD3D10_EFFECT_TYPE_DESC is access all D3D10_EFFECT_TYPE_DESC;


   type ID3D10EffectType;
   type LPID3D10EffectType is access all ID3D10EffectType;
   type LPLPID3D10EffectType is access all LPID3D10EffectType;
   subtype LPD3D10EffectType  is LPID3D10EffectType;
   subtype LPLPD3D10EffectType is LPLPID3D10EffectType;

   IID_ID3D10EffectType:constant win32.rpcdce.GUID:=(16#4e9e1ddc#,16#cd9d#,16#4772#,(16#a8#,16#37#,16#0#,16#18#,16#b#,16#9b#,16#88#,16#fd#));

   type ID3D10EffectType is record
      IsValid:access function(THIS:LPID3D10EffectType) return BOOL with Convention=>Stdcall;
      GetDesc:access procedure(THIS:LPID3D10EffectType;pDesc:LPD3D10_EFFECT_TYPE_DESC) with Convention=>Stdcall;
      GetMemberTypeByIndex:access function(THIS:LPID3D10EffectType;Index:UINT) return LPID3D10EffectType with Convention=>Stdcall;
      GetMemberTypeByName:access function(THIS:LPID3D10EffectType;Name:LPCSTR) return LPID3D10EffectType with Convention=>Stdcall;
      GetMemberTypeBySemantic:access function(THIS:LPID3D10EffectType;Semantic:LPCSTR) return LPID3D10EffectType with Convention=>Stdcall;
      GetMemberName:access function(THIS:LPID3D10EffectType;Index:UINT) return LPCSTR with Convention=>Stdcall;
      GetMemberSemantic:access function(THIS:LPID3D10EffectType;Index:UINT) return LPCSTR with Convention=>Stdcall;
   end record;

   type tagD3D10_EFFECT_VARIABLE_DESC is record
      Name:LPCSTR;
      Semantic:LPCSTR;
      Flags:UINT;
      Annotations:UINT;
      BufferOffset:UINT;
      ExplicitBindPoint:UINT;
   end record;

   subtype D3D10_EFFECT_VARIABLE_DESC is tagD3D10_EFFECT_VARIABLE_DESC;
   type LPD3D10_EFFECT_VARIABLE_DESC is access all tagD3D10_EFFECT_VARIABLE_DESC;


   type ID3D10EffectVariable;
   type LPID3D10EffectVariable is access all ID3D10EffectVariable;
   type LPLPID3D10EffectVariable is access all LPID3D10EffectVariable;
   subtype LPD3D10EffectVariable is LPID3D10EffectVariable;
   subtype LPLPD3D10EffectVariable is LPLPID3D10EffectVariable;

   IID_ID3D10EffectVariable:constant win32.rpcdce.GUID:=(16#ae897105#,16#e6#,16#45bf#,(16#bb#,16#8e#,16#28#,16#1d#,16#d6#,16#db#,16#8e#,16#1b#));

   type ID3D10EffectVariable is record
      IsValid:access function(THIS:LPID3D10EffectVariable) return BOOL with Convention=>Stdcall;
      GetType:access function(THIS:LPID3D10EffectVariable) return LPID3D10EffectType with Convention=>Stdcall;
      GetDesc:access procedure(THIS:LPID3D10EffectVariable;pDesc:LPD3D10_EFFECT_VARIABLE_DESC) with Convention=>Stdcall;
      GetAnnotationByIndex:access function(THIS:LPID3D10EffectVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetAnnotationByName:access function(THIS:LPID3D10EffectVariable;Name:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberByIndex:access function(THIS:LPID3D10EffectVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberByName:access function(THIS:LPID3D10EffectVariable;Name:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberBySemantic:access function(THIS:LPID3D10EffectVariable;Semantic:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetElement:access function(THIS:LPID3D10EffectVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetParentConstantBuffer:access function(THIS:LPID3D10EffectVariable) return LPID3D10EffectConstantBuffer with Convention=>Stdcall;
      AsScalar:access function(THIS:LPID3D10EffectVariable) return LPID3D10EffectScalarVariable with Convention=>Stdcall;
      AsVector:access function(THIS:LPID3D10EffectVariable) return LPID3D10EffectVectorVariable with Convention=>Stdcall;
      AsMatrix:access function(THIS:LPID3D10EffectVariable) return LPID3D10EffectMatrixVariable with Convention=>Stdcall;
      AsString:access function(THIS:LPID3D10EffectVariable) return LPID3D10EffectStringVariable with Convention=>Stdcall;
      AsShaderResource:access function(THIS:LPID3D10EffectVariable) return LPID3D10EffectShaderResourceVariable with Convention=>Stdcall;
      AsRenderTargetView:access function(THIS:LPID3D10EffectVariable) return LPID3D10EffectRenderTargetViewVariable with Convention=>Stdcall;
      AsDepthStencilView:access function(THIS:LPID3D10EffectVariable) return LPID3D10EffectDepthStencilViewVariable with Convention=>Stdcall;
      AsConstantBuffer:access function(THIS:LPID3D10EffectVariable) return LPID3D10EffectConstantBuffer with Convention=>Stdcall;
      AsShader:access function(THIS:LPID3D10EffectVariable) return LPID3D10EffectShaderVariable with Convention=>Stdcall;
      AsBlend:access function(THIS:LPID3D10EffectVariable) return LPID3D10EffectBlendVariable with Convention=>Stdcall;
      AsDepthStencil:access function(THIS:LPID3D10EffectVariable) return LPID3D10EffectDepthStencilVariable with Convention=>Stdcall;
      AsRasterizer:access function(THIS:LPID3D10EffectVariable) return LPID3D10EffectRasterizerVariable with Convention=>Stdcall;
      AsSampler:access function(THIS:LPID3D10EffectVariable) return LPID3D10EffectSamplerVariable with Convention=>Stdcall;
      SetRawValue:access procedure(THIS:LPID3D10EffectVariable;pData:LPvoid;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      GetRawValue:access procedure(THIS:LPID3D10EffectVariable;pData:LPvoid;Offset:UINT;Count:UINT) with Convention=>Stdcall;
   end record;



   IID_ID3D10EffectScalarVariable:constant win32.rpcdce.GUID:=(16#e48f7b#,16#d2c8#,16#49e8#,(16#a8#,16#6c#,16#2#,16#2d#,16#ee#,16#53#,16#43#,16#1f#));

   type ID3D10EffectScalarVariable is record
      IsValid:access function(THIS:LPID3D10EffectScalarVariable) return BOOL with Convention=>Stdcall;
      GetType:access function(THIS:LPID3D10EffectScalarVariable) return LPID3D10EffectType with Convention=>Stdcall;
      GetDesc:access procedure(THIS:LPID3D10EffectScalarVariable;pDesc:LPD3D10_EFFECT_VARIABLE_DESC) with Convention=>Stdcall;
      GetAnnotationByIndex:access function(THIS:LPID3D10EffectScalarVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetAnnotationByName:access function(THIS:LPID3D10EffectScalarVariable;Name:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberByIndex:access function(THIS:LPID3D10EffectScalarVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberByName:access function(THIS:LPID3D10EffectScalarVariable;Name:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberBySemantic:access function(THIS:LPID3D10EffectScalarVariable;Semantic:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetElement:access function(THIS:LPID3D10EffectScalarVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetParentConstantBuffer:access function(THIS:LPID3D10EffectScalarVariable) return LPID3D10EffectConstantBuffer with Convention=>Stdcall;
      AsScalar:access function(THIS:LPID3D10EffectScalarVariable) return LPID3D10EffectScalarVariable with Convention=>Stdcall;
      AsVector:access function(THIS:LPID3D10EffectScalarVariable) return LPID3D10EffectVectorVariable with Convention=>Stdcall;
      AsMatrix:access function(THIS:LPID3D10EffectScalarVariable) return LPID3D10EffectMatrixVariable with Convention=>Stdcall;
      AsString:access function(THIS:LPID3D10EffectScalarVariable) return LPID3D10EffectStringVariable with Convention=>Stdcall;
      AsShaderResource:access function(THIS:LPID3D10EffectScalarVariable) return LPID3D10EffectShaderResourceVariable with Convention=>Stdcall;
      AsRenderTargetView:access function(THIS:LPID3D10EffectScalarVariable) return LPID3D10EffectRenderTargetViewVariable with Convention=>Stdcall;
      AsDepthStencilView:access function(THIS:LPID3D10EffectScalarVariable) return LPID3D10EffectDepthStencilViewVariable with Convention=>Stdcall;
      AsConstantBuffer:access function(THIS:LPID3D10EffectScalarVariable) return LPID3D10EffectConstantBuffer with Convention=>Stdcall;
      AsShader:access function(THIS:LPID3D10EffectScalarVariable) return LPID3D10EffectShaderVariable with Convention=>Stdcall;
      AsBlend:access function(THIS:LPID3D10EffectScalarVariable) return LPID3D10EffectBlendVariable with Convention=>Stdcall;
      AsDepthStencil:access function(THIS:LPID3D10EffectScalarVariable) return LPID3D10EffectDepthStencilVariable with Convention=>Stdcall;
      AsRasterizer:access function(THIS:LPID3D10EffectScalarVariable) return LPID3D10EffectRasterizerVariable with Convention=>Stdcall;
      AsSampler:access function(THIS:LPID3D10EffectScalarVariable) return LPID3D10EffectSamplerVariable with Convention=>Stdcall;
      SetRawValue:access procedure(THIS:LPID3D10EffectScalarVariable;pData:LPvoid;ByteOffset:UINT;ByteCount:UINT) with Convention=>Stdcall;
      GetRawValue:access procedure(THIS:LPID3D10EffectScalarVariable;pData:LPvoid;ByteOffset:UINT;ByteCount:UINT) with Convention=>Stdcall;
      SetFloat:access procedure(THIS:LPID3D10EffectScalarVariable;Value:float) with Convention=>Stdcall;
      GetFloat:access procedure(THIS:LPID3D10EffectScalarVariable;pValue:LPfloat) with Convention=>Stdcall;
      SetFloatArray:access procedure(THIS:LPID3D10EffectScalarVariable;pData:LPfloat;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      GetFloatArray:access procedure(THIS:LPID3D10EffectScalarVariable;pData:LPfloat;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      SetInt:access procedure(THIS:LPID3D10EffectScalarVariable;Value:int) with Convention=>Stdcall;
      GetInt:access procedure(THIS:LPID3D10EffectScalarVariable;pValue:LPint) with Convention=>Stdcall;
      SetIntArray:access procedure(THIS:LPID3D10EffectScalarVariable;pData:LPint;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      GetIntArray:access procedure(THIS:LPID3D10EffectScalarVariable;pData:LPint;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      SetBool:access procedure(THIS:LPID3D10EffectScalarVariable;Value:BOOL) with Convention=>Stdcall;
      GetBool:access procedure(THIS:LPID3D10EffectScalarVariable;pValue:LPBOOL) with Convention=>Stdcall;
      SetBoolArray:access procedure(THIS:LPID3D10EffectScalarVariable;pData:LPBOOL;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      GetBoolArray:access procedure(THIS:LPID3D10EffectScalarVariable;pData:LPBOOL;Offset:UINT;Count:UINT) with Convention=>Stdcall;
   end record;



   IID_ID3D10EffectVectorVariable:constant win32.rpcdce.GUID:=(16#62b98c44#,16#1f82#,16#4c67#,(16#bc#,16#d0#,16#72#,16#cf#,16#8f#,16#21#,16#7e#,16#81#));

   type ID3D10EffectVectorVariable is record
      IsValid:access function(THIS:LPID3D10EffectVectorVariable) return BOOL with Convention=>Stdcall;
      GetType:access function(THIS:LPID3D10EffectVectorVariable) return LPID3D10EffectType with Convention=>Stdcall;
      GetDesc:access procedure(THIS:LPID3D10EffectVectorVariable;pDesc:LPD3D10_EFFECT_VARIABLE_DESC) with Convention=>Stdcall;
      GetAnnotationByIndex:access function(THIS:LPID3D10EffectVectorVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetAnnotationByName:access function(THIS:LPID3D10EffectVectorVariable;Name:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberByIndex:access function(THIS:LPID3D10EffectVectorVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberByName:access function(THIS:LPID3D10EffectVectorVariable;Name:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberBySemantic:access function(THIS:LPID3D10EffectVectorVariable;Semantic:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetElement:access function(THIS:LPID3D10EffectVectorVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetParentConstantBuffer:access function(THIS:LPID3D10EffectVectorVariable) return LPID3D10EffectConstantBuffer with Convention=>Stdcall;
      AsScalar:access function(THIS:LPID3D10EffectVectorVariable) return LPID3D10EffectScalarVariable with Convention=>Stdcall;
      AsVector:access function(THIS:LPID3D10EffectVectorVariable) return LPID3D10EffectVectorVariable with Convention=>Stdcall;
      AsMatrix:access function(THIS:LPID3D10EffectVectorVariable) return LPID3D10EffectMatrixVariable with Convention=>Stdcall;
      AsString:access function(THIS:LPID3D10EffectVectorVariable) return LPID3D10EffectStringVariable with Convention=>Stdcall;
      AsShaderResource:access function(THIS:LPID3D10EffectVectorVariable) return LPID3D10EffectShaderResourceVariable with Convention=>Stdcall;
      AsRenderTargetView:access function(THIS:LPID3D10EffectVectorVariable) return LPID3D10EffectRenderTargetViewVariable with Convention=>Stdcall;
      AsDepthStencilView:access function(THIS:LPID3D10EffectVectorVariable) return LPID3D10EffectDepthStencilViewVariable with Convention=>Stdcall;
      AsConstantBuffer:access function(THIS:LPID3D10EffectVectorVariable) return LPID3D10EffectConstantBuffer with Convention=>Stdcall;
      AsShader:access function(THIS:LPID3D10EffectVectorVariable) return LPID3D10EffectShaderVariable with Convention=>Stdcall;
      AsBlend:access function(THIS:LPID3D10EffectVectorVariable) return LPID3D10EffectBlendVariable with Convention=>Stdcall;
      AsDepthStencil:access function(THIS:LPID3D10EffectVectorVariable) return LPID3D10EffectDepthStencilVariable with Convention=>Stdcall;
      AsRasterizer:access function(THIS:LPID3D10EffectVectorVariable) return LPID3D10EffectRasterizerVariable with Convention=>Stdcall;
      AsSampler:access function(THIS:LPID3D10EffectVectorVariable) return LPID3D10EffectSamplerVariable with Convention=>Stdcall;
      SetRawValue:access procedure(THIS:LPID3D10EffectVectorVariable;pData:LPvoid;ByteOffset:UINT;ByteCount:UINT) with Convention=>Stdcall;
      GetRawValue:access procedure(THIS:LPID3D10EffectVectorVariable;pData:LPvoid;ByteOffset:UINT;ByteCount:UINT) with Convention=>Stdcall;
      SetBoolVector:access procedure(THIS:LPID3D10EffectVectorVariable;pData:LPBOOL) with Convention=>Stdcall;
      SetIntVector:access procedure(THIS:LPID3D10EffectVectorVariable;pData:LPint) with Convention=>Stdcall;
      SetFloatVector:access procedure(THIS:LPID3D10EffectVectorVariable;pData:LPfloat) with Convention=>Stdcall;
      GetBoolVector:access procedure(THIS:LPID3D10EffectVectorVariable;pData:LPBOOL) with Convention=>Stdcall;
      GetIntVector:access procedure(THIS:LPID3D10EffectVectorVariable;pData:LPint) with Convention=>Stdcall;
      GetFloatVector:access procedure(THIS:LPID3D10EffectVectorVariable;pData:LPfloat) with Convention=>Stdcall;
      SetBoolVectorArray:access procedure(THIS:LPID3D10EffectVectorVariable;pData:LPBOOL;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      SetIntVectorArray:access procedure(THIS:LPID3D10EffectVectorVariable;pData:LPint;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      SetFloatVectorArray:access procedure(THIS:LPID3D10EffectVectorVariable;pData:LPfloat;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      GetBoolVectorArray:access procedure(THIS:LPID3D10EffectVectorVariable;pData:LPBOOL;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      GetIntVectorArray:access procedure(THIS:LPID3D10EffectVectorVariable;pData:LPint;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      GetFloatVectorArray:access procedure(THIS:LPID3D10EffectVectorVariable;pData:LPfloat;Offset:UINT;Count:UINT) with Convention=>Stdcall;
   end record;



   IID_ID3D10EffectMatrixVariable:constant win32.rpcdce.GUID:=(16#50666c24#,16#b82f#,16#4eed#,(16#a1#,16#72#,16#5b#,16#6e#,16#7e#,16#85#,16#22#,16#e0#));

   type ID3D10EffectMatrixVariable is record
      IsValid:access function(THIS:LPID3D10EffectMatrixVariable) return BOOL with Convention=>Stdcall;
      GetType:access function(THIS:LPID3D10EffectMatrixVariable) return LPID3D10EffectType with Convention=>Stdcall;
      GetDesc:access procedure(THIS:LPID3D10EffectMatrixVariable;pDesc:LPD3D10_EFFECT_VARIABLE_DESC) with Convention=>Stdcall;
      GetAnnotationByIndex:access function(THIS:LPID3D10EffectMatrixVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetAnnotationByName:access function(THIS:LPID3D10EffectMatrixVariable;Name:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberByIndex:access function(THIS:LPID3D10EffectMatrixVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberByName:access function(THIS:LPID3D10EffectMatrixVariable;Name:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberBySemantic:access function(THIS:LPID3D10EffectMatrixVariable;Semantic:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetElement:access function(THIS:LPID3D10EffectMatrixVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetParentConstantBuffer:access function(THIS:LPID3D10EffectMatrixVariable) return LPID3D10EffectConstantBuffer with Convention=>Stdcall;
      AsScalar:access function(THIS:LPID3D10EffectMatrixVariable) return LPID3D10EffectScalarVariable with Convention=>Stdcall;
      AsVector:access function(THIS:LPID3D10EffectMatrixVariable) return LPID3D10EffectVectorVariable with Convention=>Stdcall;
      AsMatrix:access function(THIS:LPID3D10EffectMatrixVariable) return LPID3D10EffectMatrixVariable with Convention=>Stdcall;
      AsString:access function(THIS:LPID3D10EffectMatrixVariable) return LPID3D10EffectStringVariable with Convention=>Stdcall;
      AsShaderResource:access function(THIS:LPID3D10EffectMatrixVariable) return LPID3D10EffectShaderResourceVariable with Convention=>Stdcall;
      AsRenderTargetView:access function(THIS:LPID3D10EffectMatrixVariable) return LPID3D10EffectRenderTargetViewVariable with Convention=>Stdcall;
      AsDepthStencilView:access function(THIS:LPID3D10EffectMatrixVariable) return LPID3D10EffectDepthStencilViewVariable with Convention=>Stdcall;
      AsConstantBuffer:access function(THIS:LPID3D10EffectMatrixVariable) return LPID3D10EffectConstantBuffer with Convention=>Stdcall;
      AsShader:access function(THIS:LPID3D10EffectMatrixVariable) return LPID3D10EffectShaderVariable with Convention=>Stdcall;
      AsBlend:access function(THIS:LPID3D10EffectMatrixVariable) return LPID3D10EffectBlendVariable with Convention=>Stdcall;
      AsDepthStencil:access function(THIS:LPID3D10EffectMatrixVariable) return LPID3D10EffectDepthStencilVariable with Convention=>Stdcall;
      AsRasterizer:access function(THIS:LPID3D10EffectMatrixVariable) return LPID3D10EffectRasterizerVariable with Convention=>Stdcall;
      AsSampler:access function(THIS:LPID3D10EffectMatrixVariable) return LPID3D10EffectSamplerVariable with Convention=>Stdcall;
      SetRawValue:access procedure(THIS:LPID3D10EffectMatrixVariable;pData:LPvoid;ByteOffset:UINT;ByteCount:UINT) with Convention=>Stdcall;
      GetRawValue:access procedure(THIS:LPID3D10EffectMatrixVariable;pData:LPvoid;ByteOffset:UINT;ByteCount:UINT) with Convention=>Stdcall;
      SetMatrix:access procedure(THIS:LPID3D10EffectMatrixVariable;pData:LPfloat) with Convention=>Stdcall;
      GetMatrix:access procedure(THIS:LPID3D10EffectMatrixVariable;pData:LPfloat) with Convention=>Stdcall;
      SetMatrixArray:access procedure(THIS:LPID3D10EffectMatrixVariable;pData:LPfloat;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      GetMatrixArray:access procedure(THIS:LPID3D10EffectMatrixVariable;pData:LPfloat;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      SetMatrixTranspose:access procedure(THIS:LPID3D10EffectMatrixVariable;pData:LPfloat) with Convention=>Stdcall;
      GetMatrixTranspose:access procedure(THIS:LPID3D10EffectMatrixVariable;pData:LPfloat) with Convention=>Stdcall;
      SetMatrixTransposeArray:access procedure(THIS:LPID3D10EffectMatrixVariable;pData:LPfloat;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      GetMatrixTransposeArray:access procedure(THIS:LPID3D10EffectMatrixVariable;pData:LPfloat;Offset:UINT;Count:UINT) with Convention=>Stdcall;
   end record;



   IID_ID3D10EffectStringVariable:constant win32.rpcdce.GUID:=(16#71417501#,16#8df9#,16#4e0a#,(16#a7#,16#8a#,16#25#,16#5f#,16#97#,16#56#,16#ba#,16#ff#));

   type ID3D10EffectStringVariable is record
      IsValid:access function(THIS:LPID3D10EffectStringVariable) return BOOL with Convention=>Stdcall;
      GetType:access function(THIS:LPID3D10EffectStringVariable) return LPID3D10EffectType with Convention=>Stdcall;
      GetDesc:access procedure(THIS:LPID3D10EffectStringVariable;pDesc:LPD3D10_EFFECT_VARIABLE_DESC) with Convention=>Stdcall;
      GetAnnotationByIndex:access function(THIS:LPID3D10EffectStringVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetAnnotationByName:access function(THIS:LPID3D10EffectStringVariable;Name:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberByIndex:access function(THIS:LPID3D10EffectStringVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberByName:access function(THIS:LPID3D10EffectStringVariable;Name:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberBySemantic:access function(THIS:LPID3D10EffectStringVariable;Semantic:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetElement:access function(THIS:LPID3D10EffectStringVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetParentConstantBuffer:access function(THIS:LPID3D10EffectStringVariable) return LPID3D10EffectConstantBuffer with Convention=>Stdcall;
      AsScalar:access function(THIS:LPID3D10EffectStringVariable) return LPID3D10EffectScalarVariable with Convention=>Stdcall;
      AsVector:access function(THIS:LPID3D10EffectStringVariable) return LPID3D10EffectVectorVariable with Convention=>Stdcall;
      AsMatrix:access function(THIS:LPID3D10EffectStringVariable) return LPID3D10EffectMatrixVariable with Convention=>Stdcall;
      AsString:access function(THIS:LPID3D10EffectStringVariable) return LPID3D10EffectStringVariable with Convention=>Stdcall;
      AsShaderResource:access function(THIS:LPID3D10EffectStringVariable) return LPID3D10EffectShaderResourceVariable with Convention=>Stdcall;
      AsRenderTargetView:access function(THIS:LPID3D10EffectStringVariable) return LPID3D10EffectRenderTargetViewVariable with Convention=>Stdcall;
      AsDepthStencilView:access function(THIS:LPID3D10EffectStringVariable) return LPID3D10EffectDepthStencilViewVariable with Convention=>Stdcall;
      AsConstantBuffer:access function(THIS:LPID3D10EffectStringVariable) return LPID3D10EffectConstantBuffer with Convention=>Stdcall;
      AsShader:access function(THIS:LPID3D10EffectStringVariable) return LPID3D10EffectShaderVariable with Convention=>Stdcall;
      AsBlend:access function(THIS:LPID3D10EffectStringVariable) return LPID3D10EffectBlendVariable with Convention=>Stdcall;
      AsDepthStencil:access function(THIS:LPID3D10EffectStringVariable) return LPID3D10EffectDepthStencilVariable with Convention=>Stdcall;
      AsRasterizer:access function(THIS:LPID3D10EffectStringVariable) return LPID3D10EffectRasterizerVariable with Convention=>Stdcall;
      AsSampler:access function(THIS:LPID3D10EffectStringVariable) return LPID3D10EffectSamplerVariable with Convention=>Stdcall;
      SetRawValue:access procedure(THIS:LPID3D10EffectStringVariable;pData:LPvoid;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      GetRawValue:access procedure(THIS:LPID3D10EffectStringVariable;pData:LPvoid;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      GetString:access procedure(THIS:LPID3D10EffectStringVariable;ppString:access LPCSTR) with Convention=>Stdcall;
      GetStringArray:access procedure(THIS:LPID3D10EffectStringVariable;ppStrings:access LPCSTR;Offset:UINT;Count:UINT) with Convention=>Stdcall;
   end record;

   

   IID_ID3D10EffectShaderResourceVariable:constant win32.rpcdce.GUID:=(16#c0a7157b#,16#d872#,16#4b1d#,(16#80#,16#73#,16#ef#,16#c2#,16#ac#,16#d4#,16#b1#,16#fc#));

   type ID3D10EffectShaderResourceVariable is record
      IsValid:access function(THIS:LPID3D10EffectShaderResourceVariable) return BOOL with Convention=>Stdcall;
      GetType:access function(THIS:LPID3D10EffectShaderResourceVariable) return LPID3D10EffectType with Convention=>Stdcall;
      GetDesc:access procedure(THIS:LPID3D10EffectShaderResourceVariable;pDesc:LPD3D10_EFFECT_VARIABLE_DESC) with Convention=>Stdcall;
      GetAnnotationByIndex:access function(THIS:LPID3D10EffectShaderResourceVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetAnnotationByName:access function(THIS:LPID3D10EffectShaderResourceVariable;Name:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberByIndex:access function(THIS:LPID3D10EffectShaderResourceVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberByName:access function(THIS:LPID3D10EffectShaderResourceVariable;Name:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberBySemantic:access function(THIS:LPID3D10EffectShaderResourceVariable;Semantic:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetElement:access function(THIS:LPID3D10EffectShaderResourceVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetParentConstantBuffer:access function(THIS:LPID3D10EffectShaderResourceVariable) return LPID3D10EffectConstantBuffer with Convention=>Stdcall;
      AsScalar:access function(THIS:LPID3D10EffectShaderResourceVariable) return LPID3D10EffectScalarVariable with Convention=>Stdcall;
      AsVector:access function(THIS:LPID3D10EffectShaderResourceVariable) return LPID3D10EffectVectorVariable with Convention=>Stdcall;
      AsMatrix:access function(THIS:LPID3D10EffectShaderResourceVariable) return LPID3D10EffectMatrixVariable with Convention=>Stdcall;
      AsString:access function(THIS:LPID3D10EffectShaderResourceVariable) return LPID3D10EffectStringVariable with Convention=>Stdcall;
      AsShaderResource:access function(THIS:LPID3D10EffectShaderResourceVariable) return LPID3D10EffectShaderResourceVariable with Convention=>Stdcall;
      AsRenderTargetView:access function(THIS:LPID3D10EffectShaderResourceVariable) return LPID3D10EffectRenderTargetViewVariable with Convention=>Stdcall;
      AsDepthStencilView:access function(THIS:LPID3D10EffectShaderResourceVariable) return LPID3D10EffectDepthStencilViewVariable with Convention=>Stdcall;
      AsConstantBuffer:access function(THIS:LPID3D10EffectShaderResourceVariable) return LPID3D10EffectConstantBuffer with Convention=>Stdcall;
      AsShader:access function(THIS:LPID3D10EffectShaderResourceVariable) return LPID3D10EffectShaderVariable with Convention=>Stdcall;
      AsBlend:access function(THIS:LPID3D10EffectShaderResourceVariable) return LPID3D10EffectBlendVariable with Convention=>Stdcall;
      AsDepthStencil:access function(THIS:LPID3D10EffectShaderResourceVariable) return LPID3D10EffectDepthStencilVariable with Convention=>Stdcall;
      AsRasterizer:access function(THIS:LPID3D10EffectShaderResourceVariable) return LPID3D10EffectRasterizerVariable with Convention=>Stdcall;
      AsSampler:access function(THIS:LPID3D10EffectShaderResourceVariable) return LPID3D10EffectSamplerVariable with Convention=>Stdcall;
      SetRawValue:access procedure(THIS:LPID3D10EffectShaderResourceVariable;pData:LPvoid;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      GetRawValue:access procedure(THIS:LPID3D10EffectShaderResourceVariable;pData:LPvoid;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      SetResource:access procedure(THIS:LPID3D10EffectShaderResourceVariable;pResource:LPID3D10ShaderResourceView) with Convention=>Stdcall;
      GetResource:access procedure(THIS:LPID3D10EffectShaderResourceVariable;ppResource:LPLPID3D10ShaderResourceView) with Convention=>Stdcall;
      SetResourceArray:access procedure(THIS:LPID3D10EffectShaderResourceVariable;ppResources:LPLPID3D10ShaderResourceView;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      GetResourceArray:access procedure(THIS:LPID3D10EffectShaderResourceVariable;ppResources:LPLPID3D10ShaderResourceView;Offset:UINT;Count:UINT) with Convention=>Stdcall;
   end record;



   IID_ID3D10EffectRenderTargetViewVariable:constant win32.rpcdce.GUID:=(16#28ca0cc3#,16#c2c9#,16#40bb#,(16#b5#,16#7f#,16#67#,16#b7#,16#37#,16#12#,16#2b#,16#17#));

   type ID3D10EffectRenderTargetViewVariable is record
      IsValid:access function(THIS:LPID3D10EffectRenderTargetViewVariable) return BOOL with Convention=>Stdcall;
      GetType:access function(THIS:LPID3D10EffectRenderTargetViewVariable) return LPID3D10EffectType with Convention=>Stdcall;
      GetDesc:access procedure(THIS:LPID3D10EffectRenderTargetViewVariable;pDesc:LPD3D10_EFFECT_VARIABLE_DESC) with Convention=>Stdcall;
      GetAnnotationByIndex:access function(THIS:LPID3D10EffectRenderTargetViewVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetAnnotationByName:access function(THIS:LPID3D10EffectRenderTargetViewVariable;Name:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberByIndex:access function(THIS:LPID3D10EffectRenderTargetViewVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberByName:access function(THIS:LPID3D10EffectRenderTargetViewVariable;Name:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberBySemantic:access function(THIS:LPID3D10EffectRenderTargetViewVariable;Semantic:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetElement:access function(THIS:LPID3D10EffectRenderTargetViewVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetParentConstantBuffer:access function(THIS:LPID3D10EffectRenderTargetViewVariable) return LPID3D10EffectConstantBuffer with Convention=>Stdcall;
      AsScalar:access function(THIS:LPID3D10EffectRenderTargetViewVariable) return LPID3D10EffectScalarVariable with Convention=>Stdcall;
      AsVector:access function(THIS:LPID3D10EffectRenderTargetViewVariable) return LPID3D10EffectVectorVariable with Convention=>Stdcall;
      AsMatrix:access function(THIS:LPID3D10EffectRenderTargetViewVariable) return LPID3D10EffectMatrixVariable with Convention=>Stdcall;
      AsString:access function(THIS:LPID3D10EffectRenderTargetViewVariable) return LPID3D10EffectStringVariable with Convention=>Stdcall;
      AsShaderResource:access function(THIS:LPID3D10EffectRenderTargetViewVariable) return LPID3D10EffectShaderResourceVariable with Convention=>Stdcall;
      AsRenderTargetView:access function(THIS:LPID3D10EffectRenderTargetViewVariable) return LPID3D10EffectRenderTargetViewVariable with Convention=>Stdcall;
      AsDepthStencilView:access function(THIS:LPID3D10EffectRenderTargetViewVariable) return LPID3D10EffectDepthStencilViewVariable with Convention=>Stdcall;
      AsConstantBuffer:access function(THIS:LPID3D10EffectRenderTargetViewVariable) return LPID3D10EffectConstantBuffer with Convention=>Stdcall;
      AsShader:access function(THIS:LPID3D10EffectRenderTargetViewVariable) return LPID3D10EffectShaderVariable with Convention=>Stdcall;
      AsBlend:access function(THIS:LPID3D10EffectRenderTargetViewVariable) return LPID3D10EffectBlendVariable with Convention=>Stdcall;
      AsDepthStencil:access function(THIS:LPID3D10EffectRenderTargetViewVariable) return LPID3D10EffectDepthStencilVariable with Convention=>Stdcall;
      AsRasterizer:access function(THIS:LPID3D10EffectRenderTargetViewVariable) return LPID3D10EffectRasterizerVariable with Convention=>Stdcall;
      AsSampler:access function(THIS:LPID3D10EffectRenderTargetViewVariable) return LPID3D10EffectSamplerVariable with Convention=>Stdcall;
      SetRawValue:access procedure(THIS:LPID3D10EffectRenderTargetViewVariable;pData:LPvoid;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      GetRawValue:access procedure(THIS:LPID3D10EffectRenderTargetViewVariable;pData:LPvoid;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      SetRenderTarget:access procedure(THIS:LPID3D10EffectRenderTargetViewVariable;pResource:LPID3D10RenderTargetView) with Convention=>Stdcall;
      GetRenderTarget:access procedure(THIS:LPID3D10EffectRenderTargetViewVariable;ppResource:LPLPID3D10RenderTargetView) with Convention=>Stdcall;
      SetRenderTargetArray:access procedure(THIS:LPID3D10EffectRenderTargetViewVariable;ppResources:LPLPID3D10RenderTargetView;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      GetRenderTargetArray:access procedure(THIS:LPID3D10EffectRenderTargetViewVariable;ppResources:LPLPID3D10RenderTargetView;Offset:UINT;Count:UINT) with Convention=>Stdcall;
   end record;



   IID_ID3D10EffectDepthStencilViewVariable:constant win32.rpcdce.GUID:=(16#3e02c918#,16#cc79#,16#4985#,(16#b6#,16#22#,16#2d#,16#92#,16#ad#,16#70#,16#16#,16#23#));

   type ID3D10EffectDepthStencilViewVariable is record
      IsValid:access function(THIS:LPID3D10EffectDepthStencilViewVariable) return BOOL with Convention=>Stdcall;
      GetType:access function(THIS:LPID3D10EffectDepthStencilViewVariable) return LPID3D10EffectType with Convention=>Stdcall;
      GetDesc:access procedure(THIS:LPID3D10EffectDepthStencilViewVariable;pDesc:LPD3D10_EFFECT_VARIABLE_DESC) with Convention=>Stdcall;
      GetAnnotationByIndex:access function(THIS:LPID3D10EffectDepthStencilViewVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetAnnotationByName:access function(THIS:LPID3D10EffectDepthStencilViewVariable;Name:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberByIndex:access function(THIS:LPID3D10EffectDepthStencilViewVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberByName:access function(THIS:LPID3D10EffectDepthStencilViewVariable;Name:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberBySemantic:access function(THIS:LPID3D10EffectDepthStencilViewVariable;Semantic:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetElement:access function(THIS:LPID3D10EffectDepthStencilViewVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetParentConstantBuffer:access function(THIS:LPID3D10EffectDepthStencilViewVariable) return LPID3D10EffectConstantBuffer with Convention=>Stdcall;
      AsScalar:access function(THIS:LPID3D10EffectDepthStencilViewVariable) return LPID3D10EffectScalarVariable with Convention=>Stdcall;
      AsVector:access function(THIS:LPID3D10EffectDepthStencilViewVariable) return LPID3D10EffectVectorVariable with Convention=>Stdcall;
      AsMatrix:access function(THIS:LPID3D10EffectDepthStencilViewVariable) return LPID3D10EffectMatrixVariable with Convention=>Stdcall;
      AsString:access function(THIS:LPID3D10EffectDepthStencilViewVariable) return LPID3D10EffectStringVariable with Convention=>Stdcall;
      AsShaderResource:access function(THIS:LPID3D10EffectDepthStencilViewVariable) return LPID3D10EffectShaderResourceVariable with Convention=>Stdcall;
      AsRenderTargetView:access function(THIS:LPID3D10EffectDepthStencilViewVariable) return LPID3D10EffectRenderTargetViewVariable with Convention=>Stdcall;
      AsDepthStencilView:access function(THIS:LPID3D10EffectDepthStencilViewVariable) return LPID3D10EffectDepthStencilViewVariable with Convention=>Stdcall;
      AsConstantBuffer:access function(THIS:LPID3D10EffectDepthStencilViewVariable) return LPID3D10EffectConstantBuffer with Convention=>Stdcall;
      AsShader:access function(THIS:LPID3D10EffectDepthStencilViewVariable) return LPID3D10EffectShaderVariable with Convention=>Stdcall;
      AsBlend:access function(THIS:LPID3D10EffectDepthStencilViewVariable) return LPID3D10EffectBlendVariable with Convention=>Stdcall;
      AsDepthStencil:access function(THIS:LPID3D10EffectDepthStencilViewVariable) return LPID3D10EffectDepthStencilVariable with Convention=>Stdcall;
      AsRasterizer:access function(THIS:LPID3D10EffectDepthStencilViewVariable) return LPID3D10EffectRasterizerVariable with Convention=>Stdcall;
      AsSampler:access function(THIS:LPID3D10EffectDepthStencilViewVariable) return LPID3D10EffectSamplerVariable with Convention=>Stdcall;
      SetRawValue:access procedure(THIS:LPID3D10EffectDepthStencilViewVariable;pData:LPvoid;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      GetRawValue:access procedure(THIS:LPID3D10EffectDepthStencilViewVariable;pData:LPvoid;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      SetDepthStencil:access procedure(THIS:LPID3D10EffectDepthStencilViewVariable;pResource:LPID3D10DepthStencilView) with Convention=>Stdcall;
      GetDepthStencil:access procedure(THIS:LPID3D10EffectDepthStencilViewVariable;ppResource:LPLPID3D10DepthStencilView) with Convention=>Stdcall;
      SetDepthStencilArray:access procedure(THIS:LPID3D10EffectDepthStencilViewVariable;ppResources:LPLPID3D10DepthStencilView;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      GetDepthStencilArray:access procedure(THIS:LPID3D10EffectDepthStencilViewVariable;ppResources:LPLPID3D10DepthStencilView;Offset:UINT;Count:UINT) with Convention=>Stdcall;
   end record;



   IID_ID3D10EffectConstantBuffer:constant win32.rpcdce.GUID:=(16#56648f4d#,16#cc8b#,16#4444#,(16#a5#,16#ad#,16#b5#,16#a3#,16#d7#,16#6e#,16#91#,16#b3#));

   type ID3D10EffectConstantBuffer is record
      GetType:access function(THIS:LPID3D10EffectConstantBuffer) return LPID3D10EffectType with Convention=>Stdcall;
      GetDesc:access procedure(THIS:LPID3D10EffectConstantBuffer;pDesc:LPD3D10_EFFECT_VARIABLE_DESC) with Convention=>Stdcall;
      GetAnnotationByIndex:access function(THIS:LPID3D10EffectConstantBuffer;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetAnnotationByName:access function(THIS:LPID3D10EffectConstantBuffer;Name:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberByIndex:access function(THIS:LPID3D10EffectConstantBuffer;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberByName:access function(THIS:LPID3D10EffectConstantBuffer;Name:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberBySemantic:access function(THIS:LPID3D10EffectConstantBuffer;Semantic:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetElement:access function(THIS:LPID3D10EffectConstantBuffer;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetParentConstantBuffer:access function(THIS:LPID3D10EffectConstantBuffer) return LPID3D10EffectConstantBuffer with Convention=>Stdcall;
      AsScalar:access function(THIS:LPID3D10EffectConstantBuffer) return LPID3D10EffectScalarVariable with Convention=>Stdcall;
      AsVector:access function(THIS:LPID3D10EffectConstantBuffer) return LPID3D10EffectVectorVariable with Convention=>Stdcall;
      AsMatrix:access function(THIS:LPID3D10EffectConstantBuffer) return LPID3D10EffectMatrixVariable with Convention=>Stdcall;
      AsString:access function(THIS:LPID3D10EffectConstantBuffer) return LPID3D10EffectStringVariable with Convention=>Stdcall;
      AsShaderResource:access function(THIS:LPID3D10EffectConstantBuffer) return LPID3D10EffectShaderResourceVariable with Convention=>Stdcall;
      AsRenderTargetView:access function(THIS:LPID3D10EffectConstantBuffer) return LPID3D10EffectRenderTargetViewVariable with Convention=>Stdcall;
      AsDepthStencilView:access function(THIS:LPID3D10EffectConstantBuffer) return LPID3D10EffectDepthStencilViewVariable with Convention=>Stdcall;
      AsConstantBuffer:access function(THIS:LPID3D10EffectConstantBuffer) return LPID3D10EffectConstantBuffer with Convention=>Stdcall;
      AsShader:access function(THIS:LPID3D10EffectConstantBuffer) return LPID3D10EffectShaderVariable with Convention=>Stdcall;
      AsBlend:access function(THIS:LPID3D10EffectConstantBuffer) return LPID3D10EffectBlendVariable with Convention=>Stdcall;
      AsDepthStencil:access function(THIS:LPID3D10EffectConstantBuffer) return LPID3D10EffectDepthStencilVariable with Convention=>Stdcall;
      AsRasterizer:access function(THIS:LPID3D10EffectConstantBuffer) return LPID3D10EffectRasterizerVariable with Convention=>Stdcall;
      AsSampler:access function(THIS:LPID3D10EffectConstantBuffer) return LPID3D10EffectSamplerVariable with Convention=>Stdcall;
      SetRawValue:access procedure(THIS:LPID3D10EffectConstantBuffer;pData:LPvoid;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      GetRawValue:access procedure(THIS:LPID3D10EffectConstantBuffer;pData:LPvoid;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      SetConstantBuffer:access procedure(THIS:LPID3D10EffectConstantBuffer;pConstantBuffer:LPID3D10Buffer) with Convention=>Stdcall;
      GetConstantBuffer:access procedure(THIS:LPID3D10EffectConstantBuffer;ppConstantBuffer:LPLPID3D10Buffer) with Convention=>Stdcall;
      SetTextureBuffer:access procedure(THIS:LPID3D10EffectConstantBuffer;pTextureBuffer:LPID3D10ShaderResourceView) with Convention=>Stdcall;
      GetTextureBuffer:access procedure(THIS:LPID3D10EffectConstantBuffer;ppTextureBuffer:LPLPID3D10ShaderResourceView) with Convention=>Stdcall;
   end record;
   
   
   type tagD3D10_EFFECT_SHADER_DESC is record
      pInputSignature:LPBYTE;
      IsInline:BOOL;
      pBytecode:LPBYTE;
      BytecodeLength:UINT;
      SODecl:LPCSTR;
      NumInputSignatureEntries:UINT;
      NumOutputSignatureEntries:UINT;
   end record;

   subtype D3D10_EFFECT_SHADER_DESC is tagD3D10_EFFECT_SHADER_DESC;

   type LPD3D10_EFFECT_SHADER_DESC is access all tagD3D10_EFFECT_SHADER_DESC;

   IID_ID3D10EffectShaderVariable:constant win32.rpcdce.GUID:=(16#80849279#,16#c799#,16#4797#,(16#8c#,16#33#,16#4#,16#7#,16#a0#,16#7d#,16#9e#,16#6#));
   type ID3D10EffectShaderVariable is record
      GetType:access function(THIS:LPID3D10EffectShaderVariable) return LPID3D10EffectType with Convention=>Stdcall;
      GetDesc:access procedure(THIS:LPID3D10EffectShaderVariable;pDesc:LPD3D10_EFFECT_VARIABLE_DESC) with Convention=>Stdcall;
      GetAnnotationByIndex:access function(THIS:LPID3D10EffectShaderVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetAnnotationByName:access function(THIS:LPID3D10EffectShaderVariable;Name:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberByIndex:access function(THIS:LPID3D10EffectShaderVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberByName:access function(THIS:LPID3D10EffectShaderVariable;Name:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberBySemantic:access function(THIS:LPID3D10EffectShaderVariable;Semantic:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetElement:access function(THIS:LPID3D10EffectShaderVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetParentConstantBuffer:access function(THIS:LPID3D10EffectShaderVariable) return LPID3D10EffectConstantBuffer with Convention=>Stdcall;
      AsScalar:access function(THIS:LPID3D10EffectShaderVariable) return LPID3D10EffectScalarVariable with Convention=>Stdcall;
      AsVector:access function(THIS:LPID3D10EffectShaderVariable) return LPID3D10EffectVectorVariable with Convention=>Stdcall;
      AsMatrix:access function(THIS:LPID3D10EffectShaderVariable) return LPID3D10EffectMatrixVariable with Convention=>Stdcall;
      AsString:access function(THIS:LPID3D10EffectShaderVariable) return LPID3D10EffectStringVariable with Convention=>Stdcall;
      AsShaderResource:access function(THIS:LPID3D10EffectShaderVariable) return LPID3D10EffectShaderResourceVariable with Convention=>Stdcall;
      AsRenderTargetView:access function(THIS:LPID3D10EffectShaderVariable) return LPID3D10EffectRenderTargetViewVariable with Convention=>Stdcall;
      AsDepthStencilView:access function(THIS:LPID3D10EffectShaderVariable) return LPID3D10EffectDepthStencilViewVariable with Convention=>Stdcall;
      AsConstantBuffer:access function(THIS:LPID3D10EffectShaderVariable) return LPID3D10EffectConstantBuffer with Convention=>Stdcall;
      AsShader:access function(THIS:LPID3D10EffectShaderVariable) return LPID3D10EffectShaderVariable with Convention=>Stdcall;
      AsBlend:access function(THIS:LPID3D10EffectShaderVariable) return LPID3D10EffectBlendVariable with Convention=>Stdcall;
      AsDepthStencil:access function(THIS:LPID3D10EffectShaderVariable) return LPID3D10EffectDepthStencilVariable with Convention=>Stdcall;
      AsRasterizer:access function(THIS:LPID3D10EffectShaderVariable) return LPID3D10EffectRasterizerVariable with Convention=>Stdcall;
      AsSampler:access function(THIS:LPID3D10EffectShaderVariable) return LPID3D10EffectSamplerVariable with Convention=>Stdcall;
      SetRawValue:access procedure(THIS:LPID3D10EffectShaderVariable;pData:LPvoid;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      GetRawValue:access procedure(THIS:LPID3D10EffectShaderVariable;pData:LPvoid;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      GetShaderDesc:access procedure(THIS:LPID3D10EffectShaderVariable;ShaderIndex:UINT;pDesc:LPD3D10_EFFECT_SHADER_DESC) with Convention=>Stdcall;
      GetVertexShader:access procedure(THIS:LPID3D10EffectShaderVariable;ShaderIndex:UINT;ppVS:LPLPID3D10VertexShader) with Convention=>Stdcall;
      GetGeometryShader:access procedure(THIS:LPID3D10EffectShaderVariable;ShaderIndex:UINT;ppGS:LPLPID3D10GeometryShader) with Convention=>Stdcall;
      GetPixelShader:access procedure(THIS:LPID3D10EffectShaderVariable;ShaderIndex:UINT;ppPS:LPLPID3D10PixelShader) with Convention=>Stdcall;
      GetInputSignatureElementDesc:access procedure(THIS:LPID3D10EffectShaderVariable;ShaderIndex:UINT;Element:UINT;pDesc:LPD3D10_SIGNATURE_PARAMETER_DESC) with Convention=>Stdcall;
      GetOutputSignatureElementDesc:access procedure(THIS:LPID3D10EffectShaderVariable;ShaderIndex:UINT;Element:UINT;pDesc:LPD3D10_SIGNATURE_PARAMETER_DESC) with Convention=>Stdcall;
   end record;

   IID_ID3D10EffectBlendVariable:constant win32.rpcdce.GUID:=(16#1fcd2294#,16#df6d#,16#4eae#,(16#86#,16#b3#,16#e#,16#91#,16#60#,16#cf#,16#b0#,16#7b#));
   type ID3D10EffectBlendVariable is record
      GetType:access function(THIS:LPID3D10EffectBlendVariable) return LPID3D10EffectType with Convention=>Stdcall;
      GetDesc:access procedure(THIS:LPID3D10EffectBlendVariable;pDesc:LPD3D10_EFFECT_VARIABLE_DESC) with Convention=>Stdcall;
      GetAnnotationByIndex:access function(THIS:LPID3D10EffectBlendVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetAnnotationByName:access function(THIS:LPID3D10EffectBlendVariable;Name:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberByIndex:access function(THIS:LPID3D10EffectBlendVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberByName:access function(THIS:LPID3D10EffectBlendVariable;Name:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberBySemantic:access function(THIS:LPID3D10EffectBlendVariable;Semantic:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetElement:access function(THIS:LPID3D10EffectBlendVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetParentConstantBuffer:access function(THIS:LPID3D10EffectBlendVariable) return LPID3D10EffectConstantBuffer with Convention=>Stdcall;
      AsScalar:access function(THIS:LPID3D10EffectBlendVariable) return LPID3D10EffectScalarVariable with Convention=>Stdcall;
      AsVector:access function(THIS:LPID3D10EffectBlendVariable) return LPID3D10EffectVectorVariable with Convention=>Stdcall;
      AsMatrix:access function(THIS:LPID3D10EffectBlendVariable) return LPID3D10EffectMatrixVariable with Convention=>Stdcall;
      AsString:access function(THIS:LPID3D10EffectBlendVariable) return LPID3D10EffectStringVariable with Convention=>Stdcall;
      AsShaderResource:access function(THIS:LPID3D10EffectBlendVariable) return LPID3D10EffectShaderResourceVariable with Convention=>Stdcall;
      AsRenderTargetView:access function(THIS:LPID3D10EffectBlendVariable) return LPID3D10EffectRenderTargetViewVariable with Convention=>Stdcall;
      AsDepthStencilView:access function(THIS:LPID3D10EffectBlendVariable) return LPID3D10EffectDepthStencilViewVariable with Convention=>Stdcall;
      AsConstantBuffer:access function(THIS:LPID3D10EffectBlendVariable) return LPID3D10EffectConstantBuffer with Convention=>Stdcall;
      AsShader:access function(THIS:LPID3D10EffectBlendVariable) return LPID3D10EffectShaderVariable with Convention=>Stdcall;
      AsBlend:access function(THIS:LPID3D10EffectBlendVariable) return LPID3D10EffectBlendVariable with Convention=>Stdcall;
      AsDepthStencil:access function(THIS:LPID3D10EffectBlendVariable) return LPID3D10EffectDepthStencilVariable with Convention=>Stdcall;
      AsRasterizer:access function(THIS:LPID3D10EffectBlendVariable) return LPID3D10EffectRasterizerVariable with Convention=>Stdcall;
      AsSampler:access function(THIS:LPID3D10EffectBlendVariable) return LPID3D10EffectSamplerVariable with Convention=>Stdcall;
      SetRawValue:access procedure(THIS:LPID3D10EffectBlendVariable;pData:LPvoid;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      GetRawValue:access procedure(THIS:LPID3D10EffectBlendVariable;pData:LPvoid;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      GetBlendState:access procedure(THIS:LPID3D10EffectBlendVariable;Index:UINT;ppBlendState:LPLPID3D10BlendState) with Convention=>Stdcall;
      GetBackingStore:access procedure(THIS:LPID3D10EffectBlendVariable;Index:UINT;pBlendDesc:LPD3D10_BLEND_DESC) with Convention=>Stdcall;
   end record;

   IID_ID3D10EffectDepthStencilVariable:constant win32.rpcdce.GUID:=(16#af482368#,16#330a#,16#46a5#,(16#9a#,16#5c#,16#1#,16#c7#,16#1a#,16#f2#,16#4c#,16#8d#));
   type ID3D10EffectDepthStencilVariable is record
      GetType:access function(THIS:LPID3D10EffectDepthStencilVariable) return LPID3D10EffectType with Convention=>Stdcall;
      GetDesc:access procedure(THIS:LPID3D10EffectDepthStencilVariable;pDesc:LPD3D10_EFFECT_VARIABLE_DESC) with Convention=>Stdcall;
      GetAnnotationByIndex:access function(THIS:LPID3D10EffectDepthStencilVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetAnnotationByName:access function(THIS:LPID3D10EffectDepthStencilVariable;Name:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberByIndex:access function(THIS:LPID3D10EffectDepthStencilVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberByName:access function(THIS:LPID3D10EffectDepthStencilVariable;Name:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberBySemantic:access function(THIS:LPID3D10EffectDepthStencilVariable;Semantic:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetElement:access function(THIS:LPID3D10EffectDepthStencilVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetParentConstantBuffer:access function(THIS:LPID3D10EffectDepthStencilVariable) return LPID3D10EffectConstantBuffer with Convention=>Stdcall;
      AsScalar:access function(THIS:LPID3D10EffectDepthStencilVariable) return LPID3D10EffectScalarVariable with Convention=>Stdcall;
      AsVector:access function(THIS:LPID3D10EffectDepthStencilVariable) return LPID3D10EffectVectorVariable with Convention=>Stdcall;
      AsMatrix:access function(THIS:LPID3D10EffectDepthStencilVariable) return LPID3D10EffectMatrixVariable with Convention=>Stdcall;
      AsString:access function(THIS:LPID3D10EffectDepthStencilVariable) return LPID3D10EffectStringVariable with Convention=>Stdcall;
      AsShaderResource:access function(THIS:LPID3D10EffectDepthStencilVariable) return LPID3D10EffectShaderResourceVariable with Convention=>Stdcall;
      AsRenderTargetView:access function(THIS:LPID3D10EffectDepthStencilVariable) return LPID3D10EffectRenderTargetViewVariable with Convention=>Stdcall;
      AsDepthStencilView:access function(THIS:LPID3D10EffectDepthStencilVariable) return LPID3D10EffectDepthStencilViewVariable with Convention=>Stdcall;
      AsConstantBuffer:access function(THIS:LPID3D10EffectDepthStencilVariable) return LPID3D10EffectConstantBuffer with Convention=>Stdcall;
      AsShader:access function(THIS:LPID3D10EffectDepthStencilVariable) return LPID3D10EffectShaderVariable with Convention=>Stdcall;
      AsBlend:access function(THIS:LPID3D10EffectDepthStencilVariable) return LPID3D10EffectBlendVariable with Convention=>Stdcall;
      AsDepthStencil:access function(THIS:LPID3D10EffectDepthStencilVariable) return LPID3D10EffectDepthStencilVariable with Convention=>Stdcall;
      AsRasterizer:access function(THIS:LPID3D10EffectDepthStencilVariable) return LPID3D10EffectRasterizerVariable with Convention=>Stdcall;
      AsSampler:access function(THIS:LPID3D10EffectDepthStencilVariable) return LPID3D10EffectSamplerVariable with Convention=>Stdcall;
      SetRawValue:access procedure(THIS:LPID3D10EffectDepthStencilVariable;pData:LPvoid;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      GetRawValue:access procedure(THIS:LPID3D10EffectDepthStencilVariable;pData:LPvoid;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      GetDepthStencilState:access procedure(THIS:LPID3D10EffectDepthStencilVariable;Index:UINT;ppDepthStencilState:LPLPID3D10DepthStencilState) with Convention=>Stdcall;
      GetBackingStore:access procedure(THIS:LPID3D10EffectDepthStencilVariable;Index:UINT;pDepthStencilDesc:LPD3D10_DEPTH_STENCIL_DESC) with Convention=>Stdcall;
   end record;

   IID_ID3D10EffectRasterizerVariable:constant win32.rpcdce.GUID:=(16#21af9f0e#,16#4d94#,16#4ea9#,(16#97#,16#85#,16#2c#,16#b7#,16#6b#,16#8c#,16#b#,16#34#));
   type ID3D10EffectRasterizerVariable is record
      GetType:access function(THIS:LPID3D10EffectRasterizerVariable) return LPID3D10EffectType with Convention=>Stdcall;
      GetDesc:access procedure(THIS:LPID3D10EffectRasterizerVariable;pDesc:LPD3D10_EFFECT_VARIABLE_DESC) with Convention=>Stdcall;
      GetAnnotationByIndex:access function(THIS:LPID3D10EffectRasterizerVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetAnnotationByName:access function(THIS:LPID3D10EffectRasterizerVariable;Name:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberByIndex:access function(THIS:LPID3D10EffectRasterizerVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberByName:access function(THIS:LPID3D10EffectRasterizerVariable;Name:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberBySemantic:access function(THIS:LPID3D10EffectRasterizerVariable;Semantic:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetElement:access function(THIS:LPID3D10EffectRasterizerVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetParentConstantBuffer:access function(THIS:LPID3D10EffectRasterizerVariable) return LPID3D10EffectConstantBuffer with Convention=>Stdcall;
      AsScalar:access function(THIS:LPID3D10EffectRasterizerVariable) return LPID3D10EffectScalarVariable with Convention=>Stdcall;
      AsVector:access function(THIS:LPID3D10EffectRasterizerVariable) return LPID3D10EffectVectorVariable with Convention=>Stdcall;
      AsMatrix:access function(THIS:LPID3D10EffectRasterizerVariable) return LPID3D10EffectMatrixVariable with Convention=>Stdcall;
      AsString:access function(THIS:LPID3D10EffectRasterizerVariable) return LPID3D10EffectStringVariable with Convention=>Stdcall;
      AsShaderResource:access function(THIS:LPID3D10EffectRasterizerVariable) return LPID3D10EffectShaderResourceVariable with Convention=>Stdcall;
      AsRenderTargetView:access function(THIS:LPID3D10EffectRasterizerVariable) return LPID3D10EffectRenderTargetViewVariable with Convention=>Stdcall;
      AsDepthStencilView:access function(THIS:LPID3D10EffectRasterizerVariable) return LPID3D10EffectDepthStencilViewVariable with Convention=>Stdcall;
      AsConstantBuffer:access function(THIS:LPID3D10EffectRasterizerVariable) return LPID3D10EffectConstantBuffer with Convention=>Stdcall;
      AsShader:access function(THIS:LPID3D10EffectRasterizerVariable) return LPID3D10EffectShaderVariable with Convention=>Stdcall;
      AsBlend:access function(THIS:LPID3D10EffectRasterizerVariable) return LPID3D10EffectBlendVariable with Convention=>Stdcall;
      AsDepthStencil:access function(THIS:LPID3D10EffectRasterizerVariable) return LPID3D10EffectDepthStencilVariable with Convention=>Stdcall;
      AsRasterizer:access function(THIS:LPID3D10EffectRasterizerVariable) return LPID3D10EffectRasterizerVariable with Convention=>Stdcall;
      AsSampler:access function(THIS:LPID3D10EffectRasterizerVariable) return LPID3D10EffectSamplerVariable with Convention=>Stdcall;
      SetRawValue:access procedure(THIS:LPID3D10EffectRasterizerVariable;pData:LPvoid;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      GetRawValue:access procedure(THIS:LPID3D10EffectRasterizerVariable;pData:LPvoid;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      GetRasterizerState:access procedure(THIS:LPID3D10EffectRasterizerVariable;Index:UINT;ppRasterizerState:LPLPID3D10RasterizerState) with Convention=>Stdcall;
      GetBackingStore:access procedure(THIS:LPID3D10EffectRasterizerVariable;Index:UINT;pRasterizerDesc:LPD3D10_RASTERIZER_DESC) with Convention=>Stdcall;
   end record;

   IID_ID3D10EffectSamplerVariable:constant win32.rpcdce.GUID:=(16#6530d5c7#,16#7e9#,16#4271#,(16#a4#,16#18#,16#e7#,16#ce#,16#4b#,16#d1#,16#e4#,16#80#));
   type ID3D10EffectSamplerVariable is record
      GetType:access function(THIS:LPID3D10EffectSamplerVariable) return LPID3D10EffectType with Convention=>Stdcall;
      GetDesc:access procedure(THIS:LPID3D10EffectSamplerVariable;pDesc:LPD3D10_EFFECT_VARIABLE_DESC) with Convention=>Stdcall;
      GetAnnotationByIndex:access function(THIS:LPID3D10EffectSamplerVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetAnnotationByName:access function(THIS:LPID3D10EffectSamplerVariable;Name:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberByIndex:access function(THIS:LPID3D10EffectSamplerVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberByName:access function(THIS:LPID3D10EffectSamplerVariable;Name:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetMemberBySemantic:access function(THIS:LPID3D10EffectSamplerVariable;Semantic:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetElement:access function(THIS:LPID3D10EffectSamplerVariable;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetParentConstantBuffer:access function(THIS:LPID3D10EffectSamplerVariable) return LPID3D10EffectConstantBuffer with Convention=>Stdcall;
      AsScalar:access function(THIS:LPID3D10EffectSamplerVariable) return LPID3D10EffectScalarVariable with Convention=>Stdcall;
      AsVector:access function(THIS:LPID3D10EffectSamplerVariable) return LPID3D10EffectVectorVariable with Convention=>Stdcall;
      AsMatrix:access function(THIS:LPID3D10EffectSamplerVariable) return LPID3D10EffectMatrixVariable with Convention=>Stdcall;
      AsString:access function(THIS:LPID3D10EffectSamplerVariable) return LPID3D10EffectStringVariable with Convention=>Stdcall;
      AsShaderResource:access function(THIS:LPID3D10EffectSamplerVariable) return LPID3D10EffectShaderResourceVariable with Convention=>Stdcall;
      AsRenderTargetView:access function(THIS:LPID3D10EffectSamplerVariable) return LPID3D10EffectRenderTargetViewVariable with Convention=>Stdcall;
      AsDepthStencilView:access function(THIS:LPID3D10EffectSamplerVariable) return LPID3D10EffectDepthStencilViewVariable with Convention=>Stdcall;
      AsConstantBuffer:access function(THIS:LPID3D10EffectSamplerVariable) return LPID3D10EffectConstantBuffer with Convention=>Stdcall;
      AsShader:access function(THIS:LPID3D10EffectSamplerVariable) return LPID3D10EffectShaderVariable with Convention=>Stdcall;
      AsBlend:access function(THIS:LPID3D10EffectSamplerVariable) return LPID3D10EffectBlendVariable with Convention=>Stdcall;
      AsDepthStencil:access function(THIS:LPID3D10EffectSamplerVariable) return LPID3D10EffectDepthStencilVariable with Convention=>Stdcall;
      AsRasterizer:access function(THIS:LPID3D10EffectSamplerVariable) return LPID3D10EffectRasterizerVariable with Convention=>Stdcall;
      AsSampler:access function(THIS:LPID3D10EffectSamplerVariable) return LPID3D10EffectSamplerVariable with Convention=>Stdcall;
      SetRawValue:access procedure(THIS:LPID3D10EffectSamplerVariable;pData:LPvoid;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      GetRawValue:access procedure(THIS:LPID3D10EffectSamplerVariable;pData:LPvoid;Offset:UINT;Count:UINT) with Convention=>Stdcall;
      GetSampler:access procedure(THIS:LPID3D10EffectSamplerVariable;Index:UINT;ppSampler:LPLPID3D10SamplerState) with Convention=>Stdcall;
      GetBackingStore:access procedure(THIS:LPID3D10EffectSamplerVariable;Index:UINT;pSamplerDesc:LPD3D10_SAMPLER_DESC) with Convention=>Stdcall;
   end record;

   type tagD3D10_PASS_DESC is record
      Name:LPCSTR;
      Annotations:UINT;
      pIAInputSignature:LPBYTE;
      IAInputSignatureSize:SIZE_T;
      StencilRef:UINT;
      SampleMask:UINT;
      BlendFactor:FLOAT_Array(0..4-1);
   end record;

   subtype D3D10_PASS_DESC is tagD3D10_PASS_DESC;
   type LPD3D10_PASS_DESC is access all D3D10_PASS_DESC;

   type tagD3D10_PASS_SHADER_DESC is record
      pShaderVariable:LPID3D10EffectShaderVariable;
      ShaderIndex:UINT;
   end record;

   subtype D3D10_PASS_SHADER_DESC is tagD3D10_PASS_SHADER_DESC;

   type LPD3D10_PASS_SHADER_DESC is access all tagD3D10_PASS_SHADER_DESC;

   IID_ID3D10EffectPass:constant win32.rpcdce.GUID:=(16#5cfbeb89#,16#1a06#,16#46e0#,(16#b2#,16#82#,16#e3#,16#f9#,16#bf#,16#a3#,16#6a#,16#54#));
   type ID3D10EffectPass is record
      IsValid:access function(THIS:LPID3D10EffectPass) return BOOL with Convention=>Stdcall;
      GetDesc:access procedure(THIS:LPID3D10EffectPass;pDesc:LPD3D10_PASS_DESC) with Convention=>Stdcall;
      GetVertexShaderDesc:access procedure(THIS:LPID3D10EffectPass;pDesc:LPD3D10_PASS_SHADER_DESC) with Convention=>Stdcall;
      GetGeometryShaderDesc:access procedure(THIS:LPID3D10EffectPass;pDesc:LPD3D10_PASS_SHADER_DESC) with Convention=>Stdcall;
      GetPixelShaderDesc:access procedure(THIS:LPID3D10EffectPass;pDesc:LPD3D10_PASS_SHADER_DESC) with Convention=>Stdcall;
      GetAnnotationByIndex:access function(THIS:LPID3D10EffectPass;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetAnnotationByName:access function(THIS:LPID3D10EffectPass;Name:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      Apply:access procedure(THIS:LPID3D10EffectPass;Flags:UINT) with Convention=>Stdcall;
      ComputeStateBlockMask:access procedure(THIS:LPID3D10EffectPass;pStateBlockMask:LPD3D10_STATE_BLOCK_MASK) with Convention=>Stdcall;
   end record;

   type tagD3D10_TECHNIQUE_DESC is record
      Name:LPCSTR;
      Passes:UINT;
      Annotations:UINT;
   end record;

   subtype D3D10_TECHNIQUE_DESC is tagD3D10_TECHNIQUE_DESC;

   type LPD3D10_TECHNIQUE_DESC is access all tagD3D10_TECHNIQUE_DESC;

   IID_ID3D10EffectTechnique:constant win32.rpcdce.GUID:=(16#db122ce8#,16#d1c9#,16#4292#,(16#b2#,16#37#,16#24#,16#ed#,16#3d#,16#e8#,16#b1#,16#75#));
   type ID3D10EffectTechnique is record
      IsValid:access function(THIS:LPID3D10EffectTechnique) return BOOL with Convention=>Stdcall;
      GetDesc:access procedure(THIS:LPID3D10EffectTechnique;pDesc:LPD3D10_TECHNIQUE_DESC) with Convention=>Stdcall;
      GetAnnotationByIndex:access function(THIS:LPID3D10EffectTechnique;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetAnnotationByName:access function(THIS:LPID3D10EffectTechnique;Name:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetPassByIndex:access function(THIS:LPID3D10EffectTechnique;Index:UINT) return LPID3D10EffectPass with Convention=>Stdcall;
      GetPassByName:access function(THIS:LPID3D10EffectTechnique;Name:LPCSTR) return LPID3D10EffectPass with Convention=>Stdcall;
      ComputeStateBlockMask:access procedure(THIS:LPID3D10EffectTechnique;pStateBlockMask:LPD3D10_STATE_BLOCK_MASK) with Convention=>Stdcall;
   end record;

   type tagD3D10_EFFECT_DESC is record
      IsChildEffect:BOOL;
      ConstantBuffers:UINT;
      SharedConstantBuffers:UINT;
      GlobalVariables:UINT;
      SharedGlobalVariables:UINT;
      Techniques:UINT;
   end record;

   subtype D3D10_EFFECT_DESC is tagD3D10_EFFECT_DESC;

   type LPD3D10_EFFECT_DESC is access all tagD3D10_EFFECT_DESC;

   IID_ID3D10Effect:constant win32.rpcdce.GUID:=(16#51b0ca8b#,16#ec0b#,16#4519#,(16#87#,16#d#,16#8e#,16#e1#,16#cb#,16#50#,16#17#,16#c7#));
   type ID3D10Effect is record
      QueryInterface:access procedure(THIS:LPID3D10Effect;iid:REFIID;ppv:LPLPVOID) with Convention=>Stdcall;
      AddRef:access function(THIS:LPID3D10Effect) return ULONG with Convention=>Stdcall;
      Release:access function(THIS:LPID3D10Effect) return ULONG with Convention=>Stdcall;
      IsValid:access function(THIS:LPID3D10Effect) return BOOL with Convention=>Stdcall;
      IsPool:access function(THIS:LPID3D10Effect) return BOOL with Convention=>Stdcall;
      GetDevice:access procedure(THIS:LPID3D10Effect;ppDevice:LPLPID3D10Device) with Convention=>Stdcall;
      GetDesc:access procedure(THIS:LPID3D10Effect;pDesc:LPD3D10_EFFECT_DESC) with Convention=>Stdcall;
      GetConstantBufferByIndex:access function(THIS:LPID3D10Effect;Index:UINT) return LPID3D10EffectConstantBuffer with Convention=>Stdcall;
      GetConstantBufferByName:access function(THIS:LPID3D10Effect;Name:LPCSTR) return LPID3D10EffectConstantBuffer with Convention=>Stdcall;
      GetVariableByIndex:access function(THIS:LPID3D10Effect;Index:UINT) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetVariableByName:access function(THIS:LPID3D10Effect;Name:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetVariableBySemantic:access function(THIS:LPID3D10Effect;Semantic:LPCSTR) return LPID3D10EffectVariable with Convention=>Stdcall;
      GetTechniqueByIndex:access function(THIS:LPID3D10Effect;Index:UINT) return LPID3D10EffectTechnique with Convention=>Stdcall;
      GetTechniqueByName:access function(THIS:LPID3D10Effect;Name:LPCSTR) return LPID3D10EffectTechnique with Convention=>Stdcall;
      Optimize:access procedure(THIS:LPID3D10Effect) with Convention=>Stdcall;
      IsOptimized:access function(THIS:LPID3D10Effect) return BOOL with Convention=>Stdcall;
   end record;

   IID_ID3D10EffectPool:constant win32.rpcdce.GUID:=(16#9537ab04#,16#3250#,16#412e#,(16#82#,16#13#,16#fc#,16#d2#,16#f8#,16#67#,16#79#,16#33#));
   type ID3D10EffectPool is record
      QueryInterface:access procedure(THIS:LPID3D10EffectPool;iid:REFIID;ppv:LPLPVOID) with Convention=>Stdcall;
      AddRef:access function(THIS:LPID3D10EffectPool) return ULONG with Convention=>Stdcall;
      Release:access function(THIS:LPID3D10EffectPool) return ULONG with Convention=>Stdcall;
      AsEffect:access function(THIS:LPID3D10EffectPool) return LPID3D10Effect with Convention=>Stdcall;
   end record;

   function D3D10CompileEffectFromMemory(pData:LPvoid;DataLength:SIZE_T;pSrcFileName:LPCSTR;pDefines:LPCD3D10_SHADER_MACRO;pInclude:LPID3D10Include;HLSLFlags:UINT;FXFlags:UINT;ppCompiledEffect:LPLPID3D10Blob;ppErrors:LPLPID3D10Blob) return HRESULT with Import,Convention=>stdcall,external_name=>"D3D10CompileEffectFromMemory";

   function D3D10CreateEffectFromMemory(pData:LPvoid;DataLength:SIZE_T;FXFlags:UINT;pDevice:LPID3D10Device;pEffectPool:LPID3D10EffectPool;ppEffect:LPLPID3D10Effect) return HRESULT with Import,Convention=>stdcall,external_name=>"D3D10CreateEffectFromMemory";

   function D3D10CreateEffectPoolFromMemory(pData:LPvoid;DataLength:SIZE_T;FXFlags:UINT;pDevice:LPID3D10Device;ppEffectPool:LPLPID3D10EffectPool) return HRESULT with Import,Convention=>stdcall,external_name=>"D3D10CreateEffectPoolFromMemory";

   function D3D10DisassembleEffect(pEffect:LPID3D10Effect;EnableColorCode:BOOL;ppDisassembly:LPLPID3D10Blob) return HRESULT with Import,Convention=>stdcall,external_name=>"D3D10DisassembleEffect";





end D3D10effect;












 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值